Langohr 3.0.0-rc3 is released
TL;DR
Langohr is a small Clojure RabbitMQ client.
3.0
will be a major release that introduces moderate internal changes in the
library and some breaking public API refinements.
Changes Between Langohr 3.0.0-rc2 and 3.0.0-rc3
Clojure 1.7 Support
Clojure 1.7-specific compilation issues and warnings were eliminated.
clj-http Upgrade
clj-http dependency has been updated to 1.0.0
.
ClojureWerkz Support Upgrade
clojurewerkz/support
dependency has been updated to 1.1.0
.
Changes Between Langohr 2.11.x and 3.0.0-rc2
Options as Maps
Functions that take options now require a proper Clojure map instead of pseudo keyword arguments:
# in Langohr 2.x
(lq/declare ch q :durable true)
(lhcons/subscribe ch q (fn [_ _ _])
:consumer-tag ctag :handle-cancel-ok (fn [_]))
(lb/publish ch "" q "a message" :mandatory true)
# in Langohr 3.x
(lq/declare ch q {:durable true})
(lhcons/subscribe ch q (fn [_ _ _])
{:consumer-tag ctag :handle-cancel-ok (fn [_])})
(lb/publish ch "" q "a message" {:mandatory true})
JDK 8 Compatibility
Langohr test suite now passes on JDK 8 (previously there was 1 failure in recovery test).
GH issue: #54.
Connection Recovery Performed by Java Client
Langohr no longer implements automatic connection recovery of its own. The feature is still there and there should be no behaviour changes but the functionality has now been pushed “upstream” in the Java client, so Langohr now relies on it to do all the work.
There is one public API change:
com.novemberain.langohr.Recoverable
is gone, langohr.core/on-recovery
now uses com.rabbitmq.client.Recoverable
instead in its signature.
GH issue: #58.
RabbitMQ Java Client Upgrade
RabbitMQ Java client dependency has been updated to 3.3.5
.
Custom Exception Handlers
langohr.core/exception-handler
is a function that customizes
default exception handler RabbitMQ Java client uses:
(require '[langohr.core :as rmq])
(let [(rmq/exception-handler :handle-consumer-exception-fn (fn [ch ex consumer
consumer-tag method-name]
))]
)
Valid keys are:
:handle-connection-exception-fn
:handle-return-listener-exception-fn
:handle-flow-listener-exception-fn
:handle-confirm-listener-exception-fn
:handle-blocked-listener-exception-fn
:handle-consumer-exception-fn
:handle-connection-recovery-exception-fn
:handle-channel-recovery-exception-fn
:handle-topology-recovery-exception-fn
GH issue: #47.
langohr.core/version is Removed
langohr.core/version
was removed.
Change Log
Langohr change log is available on GitHub.
Langohr is a ClojureWerkz Project
Langohr is part of the group of libraries known as ClojureWerkz, together with
- Elastisch, a minimalistic well documented Clojure client for ElasticSearch
- Cassaforte, a Clojure Cassandra client built around CQL 3.0
- Monger, a Clojure MongoDB client for a more civilized age
- Neocons, a client for the Neo4J REST API
- Quartzite, a powerful scheduling library
and several others. If you like Langohr, you may also like our other projects.
Let us know what you think on Twitter or on the Clojure mailing list.
About The Author
Michael on behalf of the ClojureWerkz Team