Today is a big day. After a few months of effort and following on from a lot of interaction with the global Coherence Community, we released the new series of updates to the Coherence Incubator, including; Coherence Common (Version 1.3), Coherence Command Pattern (Version 2.3.0), Coherence Functor Pattern (Version 1.1.0), Coherence Messaging Pattern (Version 2.3.0) and the Coherence Push Replication Pattern (Version 2.3.0).
So what’s new? Here’s a brief breakdown…
Coherence Incubator Wide Changes
There have been several changes that are common to all projects. These are;
1. The migration to use Apache Ivy as a dependency manager.
2. Simplification of the project Apache Ant build tasks and the ability to build (once Apache Ivy is installed) from the base of each project, simply by typing “ant”.
3. The inclusion of more examples and unit tests (based on TestNG) for most projects.
Essentially this release of Coherence Common adds infrastructure for Coherence Messaging and the next generation of patterns (we’ll discuss this in a separate post). There are some generally useful things in here though that you might find interesting, including support for Tuples, different Ranges and more advanced (but simplified) Backing Map Listener implementations (like the DelegatingBackingMapListener).
This release adds support for two often requested features;
1. The ability to cancel a submitted Command, and
2. The ability to submit “high priority” Commands – that will be executed in front of “regular” Commands.
The Functor Pattern has been updated to more closely follow the Java Concurrent Future interface and especially to support canceling submitted Functors through the use of the Future.cancel method.
There have been many significant changes to the Coherence Messaging Pattern implementation. In brief changes include;
1. Initial support for Queues (not just Topics)
2. The introduction of Subscribers (for both Queues and Topics)
3. Support for Durable and Non-Durable Subscribers (to Topics)
4. Support for Transactional Subscribers – the ability to rollback read messages (for both Queues and Topics).
Apart from upgrading to use the latest Coherence Messaging Pattern implementation, this release of the Coherence Push Replication Pattern adds support for “draining” pending updates for Publishers that have been off-line for a long period of time. That is, instead of keeping all of the pending updates for a Publisher (ie: site) that you may be upgrading, taken down or taken offline, you can now “drain” those updates as to restart publishing from a point in time. The “Drain” operation, together with the “Resume” and “Suspend” operations are available via the Publisher JMX MBean.
As with most Coherence Incubator releases there are a number of contributors that deserve special acknowledgement. Of course there are some that equally deserve but be can’t publicly acknowledged (due to corporate confidentiality rules etc) and to those that fit in this category, we still say a “huge thanks” for your help.
Some people do deserve some special acknowledgement. Those include;
a). The Coherence Incubator Team. We’re really starting to rock guys. Looking forward to the next release!
b). Simon Bisson. Awesome work again mate. Thanks for your help reviewing everything. Looking forward to the next set of releases. They’ll certainly be the most exciting yet.
c). Sal Gambino. Sal your thoughts, time and direction on the Messaging Pattern have been invaluable. Looking forward to working with you on the next generation.
d). Nick Gregory. As usual Nick, thanks for your direction on Push Replication and Hub-less Messaging. I’m sure the next release will cover even more WAN-replication requirements. We’re all looking forward to constructing the ultimate auto-configuring global data grid-based replication solution.
e). Andy Piper. Thanks for your insight into both Messaging and the subtle changes to the Command Pattern. I hope they are all that you envisioned.
Now to start on the next generation…