I just want to give the community a heads up: I am going to release amqp gem 0.7.2<div>release on Sunday and 0.8.0.RC14 will follow in the next few days.</div><div><br></div><div>0.8.0.RC14 is fully backwards compatible with RC13 but amq-client library</div>
<div>will need an upgrade to the 0.7.0 (will be released right before amqp 0.8.0.RC14). So when upgrading, make</div><div>sure to update your Gemfile or .gemspec dependency on amq-client if necessary.</div><div><br></div>
<div>0.8.0.RC14 introduces a number of exciting features related to application recovery from network & broker failures:</div><div><br></div><div>* A number of events/callbacks and API methods useful to developers who want to implement their own recovery strategies.</div>
<div>* Automatic recovery mode that makes it very easy to re-declare all entities, bindings & consumers when AMQP connection recovers from</div><div> a network outage or broker failure: it is opt-in (not opt-out) and will make recovery significantly simpler for "the 80%" of apps.</div>
<div><br></div><div>(Not yet compete) documentation of these features is available at <a href="http://bit.ly/amqp-gem-error-handling-and-recovery">http://bit.ly/amqp-gem-error-handling-and-recovery</a></div><div><br></div>
<div><br></div><div>There are also other improvements:</div><div><br></div><div>* RC14 will no longer have pre-release gem dependencies. This should make life easier for RubyGems 1.3.7 users, most notably those running on Heroku.</div>
<div> RubyGems 1.3.7, also know as "the Internet Explorer 6 of the Ruby ecosystem", has broken pre-release version comparison logic and considers</div><div> version 0.7.0.pre9 to be more recent than 0.7.0.pre35, for example.</div>
<div><br></div><div>* Ability to register more than one consumer per queue on the same channel. Historically AMQP:::Queue#subscribe only allowed to register one consumer.</div><div> This is still being the case for backwards compatibility but you now can easily instantiate AMQP::Consumers directly.</div>
<div><br></div><div><div>* New bitset-based channel id allocator. Previously apps that open & close channels aggressively could hit connection max channel limit</div><div> pretty quickly because channel id was a growing integer. Now channel id are allocated from a pool of integers, just as in the RabbitMQ Java client.</div>
</div><div><br></div><div>* Broker capabilities introspection API. See <a href="http://www.rabbitmq.com/extensions.html#capabilities">http://www.rabbitmq.com/extensions.html#capabilities</a></div><div>* Support for arrays in attribute tables (for example, message headers)</div>
<div><br></div><div>As usual, we keep improving my favorite amqp gem feature: documentation (<a href="http://bit.ly/amqp-gem-docs">http://bit.ly/amqp-gem-docs</a>).</div><div><br></div><div>* Documentation is now being proof-read and edited by Chris Duncan, the creator of the bunny gem.</div>
<div>* Initial bits of the Migration guide 0.6.x and 0.7.x to 0.8.x (<a href="http://bit.ly/amqp-gem-080-migration-guide">http://bit.ly/amqp-gem-080-migration-guide</a>)</div><div>* Initial bits of the Patterns & Use Cases guide (<a href="http://bit.ly/amqp-gem-patterns">http://bit.ly/amqp-gem-patterns</a>) that explains how to implement many patterns from the Enterprise Integration Patterns book (<a href="http://www.eaipatterns.com">http://www.eaipatterns.com</a>)</div>
<div>* TLS guide</div><div>* Numerous small improvements to all other guides & code examples.</div><div><br></div><div>RC14 will be the second to last RC before 0.8.0. RC15 will bring up support for Ruby 1.8.7-p249 (this particular patch level) that has a bug that seriously affects amqp gem.</div>
<div>Working around it will take a moderate refactoring on our side. Learn more in the FAQ at the bottom of <a href="https://github.com/ruby-amqp/amqp/blob/master/README.md">https://github.com/ruby-amqp/amqp/blob/master/README.md</a></div>
<div><br></div><div>Have a great sunny Sunday.</div><div>-- <br>MK<br><br><a href="http://github.com/michaelklishin" target="_blank">http://github.com/michaelklishin</a><br><a href="http://twitter.com/michaelklishin" target="_blank">http://twitter.com/michaelklishin</a><br>
<br>
</div>