Here’s a short list of features that made it into 2.8.0.GA (here are the release notes):
* Logical addresses: decouples physical addresses (which can change) from logical ones. Eliminates reincarnation issues. This alone is worth 2.8, as it eliminates a big source of problems !
* Logical names: allow for meaningful channel names, logical names stay with a channel for its lifetime, even after reconnecting it
* Improved merging / no more shunning: shunning was replaced by merging. Now we have a much simpler model: JOIN – LEAVE – MERGE. The merging algorithm was improved to take ‘weird’ (e.g. asymmetric) merges into account
* Better IPv6 support
* Better support for defaults for addresses: based on the type of the stack (IPv4, IPv6), we perform sanity checks and set default addresses of the correct type
* FILE_PING / S3_PING: new discovery protocols, file-based and Amazon S3 based. The latter protocol can be used as a replacement for GossipRouter on EC2
* Speaking of which: major overhaul of GossipRouter
* Ability to have multiple protocols of the same class in the same stack
* Ability to override message bundling on a per-message basis
* Much improved and faster UNICAST
* XSD schema for protocol configurations
* STREAMING_STATE_TRANSFER now doesn’t need to use TCP, but can also use the configured transport, e.g. UDP
* RpcDispatcher: additional methods returning a Future rather than blocking
* Probe.sh: ability to invoke methods cluster-wide. E.g. run message stability on all nodes: probe.sh invoke=STABLE.runMessageGarbageCollection
* Logging
o Removal of commons-logging.jar: JGroups now has ZERO dependencies !
o Configure logging level at runtime, e.g. through JMX (jconsole) or probe.sh, or programmatically. Use case: set logging for NAKACK from “warn” to “trace” for a unit test, then reset it back to “warn”
o Ability to set custom log provider. This allows for support of new logging frameworks (JGroups ships with support for log4j and JDK logging)