amqp 0.18.1 → 0.18.2
raw patch · 3 files changed
+13/−16 lines, 3 filesdep ~connectiondep ~networkPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: connection, network
API changes (from Hackage documentation)
- Network.AMQP.Types: instance GHC.Exception.Exception Network.AMQP.Types.AMQPException
+ Network.AMQP.Types: instance GHC.Exception.Type.Exception Network.AMQP.Types.AMQPException
- Network.AMQP: ConnectionOpts :: ![(String, PortNumber)] -> !Text -> ![SASLMechanism] -> !(Maybe Word32) -> !(Maybe Word16) -> !(Maybe Word16) -> Maybe TLSSettings -> !(Maybe Text) -> ConnectionOpts
+ Network.AMQP: ConnectionOpts :: ![(String, PortNumber)] -> !Text -> ![SASLMechanism] -> !Maybe Word32 -> !Maybe Word16 -> !Maybe Word16 -> Maybe TLSSettings -> !Maybe Text -> ConnectionOpts
- Network.AMQP: SASLMechanism :: !Text -> !ByteString -> !(Maybe (ByteString -> IO ByteString)) -> SASLMechanism
+ Network.AMQP: SASLMechanism :: !Text -> !ByteString -> !Maybe (ByteString -> IO ByteString) -> SASLMechanism
- Network.AMQP: [coHeartbeatDelay] :: ConnectionOpts -> !(Maybe Word16)
+ Network.AMQP: [coHeartbeatDelay] :: ConnectionOpts -> !Maybe Word16
- Network.AMQP: [coMaxChannel] :: ConnectionOpts -> !(Maybe Word16)
+ Network.AMQP: [coMaxChannel] :: ConnectionOpts -> !Maybe Word16
- Network.AMQP: [coMaxFrameSize] :: ConnectionOpts -> !(Maybe Word32)
+ Network.AMQP: [coMaxFrameSize] :: ConnectionOpts -> !Maybe Word32
- Network.AMQP: [coName] :: ConnectionOpts -> !(Maybe Text)
+ Network.AMQP: [coName] :: ConnectionOpts -> !Maybe Text
- Network.AMQP: [saslChallengeFunc] :: SASLMechanism -> !(Maybe (ByteString -> IO ByteString))
+ Network.AMQP: [saslChallengeFunc] :: SASLMechanism -> !Maybe (ByteString -> IO ByteString)
- Network.AMQP.Types: FieldTable :: (Map Text FieldValue) -> FieldTable
+ Network.AMQP.Types: FieldTable :: Map Text FieldValue -> FieldTable
Files
- Network/AMQP.hs +3/−3
- Network/AMQP/Internal.hs +1/−1
- amqp.cabal +9/−12
Network/AMQP.hs view
@@ -156,7 +156,7 @@ import Data.List.Split (splitOn) import Data.Binary import Data.Binary.Put -import Network +import Network.Socket (PortNumber) import Network.URI (unEscapeString) import Data.Text (Text) @@ -366,8 +366,8 @@ -- -- If you do any exception handling inside the callback, you should make sure not to catch 'ChanThreadKilledException', or re-throw it if you did catch it, since it is used internally by the library to close channels. -- --- NOTE: The callback will be run on the same thread as the channel thread (every channel spawns its own thread to listen for incoming data) so DO NOT perform any request on @chan@ inside the callback (however, you CAN perform requests on other open channels inside the callback, though I wouldn't recommend it). --- Functions that can safely be called on @chan@ are 'ackMsg', 'ackEnv', 'rejectMsg', 'recoverMsgs'. If you want to perform anything more complex, it's a good idea to wrap it inside 'forkIO'. +-- NOTE: The callback will be run on the channel's receiver thread (which is responsible for handling all incoming messages on this channel, including responses to requests from the client) so DO NOT perform any blocking request on @chan@ inside the callback, as this would lead to a dead-lock. However, you CAN perform requests on other open channels inside the callback, though that would keep @chan@ blocked until the requests are done, so it is not recommended. +-- Unless you're using AMQP flow control, the following functions can safely be called on @chan@: 'ackMsg', 'ackEnv', 'rejectMsg', 'publishMsg'. If you use flow-control or want to perform anything more complex, it's a good idea to wrap your requests inside 'forkIO'. consumeMsgs :: Channel -> Text -> Ack -> ((Message,Envelope) -> IO ()) -> IO ConsumerTag consumeMsgs chan queue ack callback = consumeMsgs' chan queue ack callback (\_ -> return ()) (FieldTable M.empty)
Network/AMQP/Internal.hs view
@@ -14,7 +14,7 @@ import Data.Int (Int64) import Data.Maybe import Data.Text (Text) -import Network +import Network.Socket (PortNumber, withSocketsDo) import System.IO (hPutStrLn, stderr) import qualified Control.Exception as CE
amqp.cabal view
@@ -1,5 +1,5 @@ Name: amqp -Version: 0.18.1 +Version: 0.18.2 Synopsis: Client library for AMQP servers (currently only RabbitMQ) Description: Client library for AMQP servers (currently only RabbitMQ) License: BSD3 @@ -31,14 +31,13 @@ split>=0.2, clock >= 0.4.0.1, monad-control >= 0.3, - connection == 0.2.*, + connection >= 0.2 && <= 0.4, vector, - stm >= 2.4.0 - if flag(network-uri) - build-depends: network-uri >= 2.6, network > 2.6 - else - build-depends: network < 2.6 + stm >= 2.4.0, + network-uri >= 2.6, + network > 2.6 + Exposed-modules: Network.AMQP, Network.AMQP.Types, Network.AMQP.Lifted Other-modules: Network.AMQP.ChannelAllocator, Network.AMQP.Generated, Network.AMQP.Helpers, Network.AMQP.Protocol, Network.AMQP.Internal, Paths_amqp GHC-Options: -Wall @@ -83,10 +82,8 @@ , clock >= 0.4.0.1 , hspec >= 1.3 , hspec-expectations >= 0.3.3 - , connection == 0.2.* + , connection >= 0.2 && <= 0.4 , vector , stm >= 2.4.0 - if flag(network-uri) - build-depends: network-uri >= 2.6, network > 2.6 - else - build-depends: network < 2.6 + , network-uri >= 2.6 + , network > 2.6