Yes, Infinispan 4.0.0.ALPHA4 is ready for a sound thrashing.
What's new? Galder Zamarreño's recent contribution of ripping out the marshalling framework Infinispan "inherited" from JBoss Cache and replacing it with JBoss Marshalling has made the marshalling code much leaner, more modular and more testable, and comes with a nifty performance boost too. What's also interesting is that he has overcome issues with object stream caching (see my blog on the subject) by using JBoss Marshalling streams which can be reset. This too provides a very handy performance boost for short lived streams. (See
ISPN-42,
ISPN-84)
Mircea Markus has put together a bunch of migration scripts to migrate your JBoss Cache 3.x configuration to Infinispan. More migration scripts are on their way. (See
ISPN-53,
ISPN-54)
Vladimir Blagojevic has contributed the new
lock() API - which allows for explicit, eager cluster-wide locks. (See
ISPN-48)
Heiko Rupp has contributed the early days of a JOPR plugin, allowing Infinispan instances to be managed by
JBoss AS 5.1.0's embedded console as well as other environments. Read his guide to
managing Infinispan with JOPR for more details.
And I've implemented some enhancements to the
Future API. Now, rather than returning
Futures, the
xxxAsync() methods return a
NotifyingFuture.
NotifyingFuture extends
Future, adding the ability to register a notifier such that the caller can be notified when the
Future completes. Note that
Future completion could mean any of successful completion, exception or cancellation, so the listener should check the state of the
Future using
get() on notification. For example:
NotifyingFuture<Void> f = cache.clearAsync().attachListener(new FutureListener<Void>() {
public void futureDone(Future<Void> f) {
if (f.get() && !f.isCancelled()) {
System.out.println("clear operation succeeded");
}
}
});
The full change log for this release is
available on JIRA.
Download this release, and provide feedback on the
Infinispan user forums.
Onward to Beta1!
Enjoy,
Manik