Coherence Common

Skip to end of metadata
Go to start of metadata

Coherence Common

The Coherence Common project provides a collection of utility packages and classes that are commonly used to support the implementation of other Incubator projects.

Contained packages and classes include;
(Legend: = Improved, = New, = Cool)

  • The Class - An enhanced ConfigurableCacheFactory implementation that allows developers to independently create custom configurations and runtime extensions to Coherence.
  • The Package - A simple framework to enable the development of server-side synchronous and asynchronous event-based applications, embedded within Coherence.
  • The Class - A Java Log Handler that writes java.util.logging LogRecords to the Coherence Logger. This allows applications to use the standard java.util.logging framework, but have the log records appended asynchronously to the configured Coherence Logger.
  • The Package - A set of interfaces and classes to simplify the creation of sequence numbers, either locally in a Java Virtual Machine, or across a cluster.
  • The Package - A specialized ReadWriteBackingMap implementation that introduces the concept of a BinaryEntryStore enabling CacheStore operations to be performed using the underlying binary representation of cache entries rather than the standard deserialized representation, thus eliminating the need for Coherence to serialize/deserialize cache entries in the store/load process.
  • The Package - Containing a collection of useful new Entry Processors, including the InvokeMethodProcessor for remotely invoking methods through reflection.
  • The - A class to enable the creation of local proxies of objects stored in a cache, thus allowing direct use of the said objects directly without knowing their location in a cluster and without using EntryProcessors for access.
  • The - A class to simplify and automate the dynamic formation a cluster on Amazon EC2, without needing multi-cast or manually specifying individual IP addresses.
  • Several utility packages for the creation of different types of Identifiers (often used for as cache keys), handling Tickets, Ranges, Tuples, Leases and some customized Thread Factories.

What's New?

This release encompasses some of the most sigificant changes since the package was first published. For complete details of the changes, including breaking changes, it's advised that you look at the history.txt in the source. However, here are highlights of features and changes in version 1.7.0 over Coherence Common 1.6.0

  • Introduced the EC2AddressProvider to simplify and automate determining Coherence cluster member IP addresses in an Amazon EC2 environment, without the need to use multicast (which doesn't work on Ec2) or manually specify IP addresses.
  • Forced the registration and resolution of Resources in an to be strongly typed. it is no longer possible to use Strings and Objects alone to identify resource types.
  • Introduced the ability to use command-line overrides (aka: system-properties) with in custom namespaces. For example, the following is now legal and will be resolved as per regular Coherence elements.
  • Introduced and refactored a number of ConfigurationContext.process*(...) methods to improve consistency and simplify the processing of Cache Configuration files.
  • BackingMapEntryEvents now cache deserializations. This leads to less garbage and increase performance.
  • Introduced the Filter Namespace to aid in the declarative specification of Coherence Filters.
  • BREAKING CHANGE: Refactored the SimpleEventDispatcher so that calls to dispatch(...) to dispatch events now occur on the calling thread instead of a background thread. This means that event dispatching and processing is now synchronous and blocking on the calling thread, where as before it was asynchronous. To have event processing occur asynchronously, the EventProcessor should be wrapped in a AsynchronousEventProcessorAdapter or inherit its implementation from the AsynchronousEventProcessor class.

Changes made as a part of version 1.7.3:

  • Resolved CacheMapping.isForCache(...) matching defect (out-by-one). Added new unit tests.
  • Resolved CacheMappingRegistry.addCacheMapping(...) defect where new registrations of an existing CacheMapping would override and cause loss of previous configuration information. Configurations are now merged. Added new unit tests.
  • Resolved defect that throws UnsupportedOperationException when attempting to ensureService for a LocalCache.
  • Added additional logging to warn when users are overriding configurations, typically from other cache configuration files.
  • Introduced new package, containing a collection of ApplicationScheme that aid in the testing of clusters.

Changes made as part of version 1.7.2:

  • Fixed a compatibility issue with the LogExceptionScheduledThreadPoolExecutor and LogExceptionThreadPoolExecutor and the 1.5 JDK.

Changes made as part of version 1.7.1:

  • Fixed reporting of exceptions from LogExceptionThreadPoolExecutor
  • Introduced ExecutorListener and ObservableExecutor interfaces
  • BREAKING CHANGE: Introduced support for Macro Parameters. This includes changing the signature of ClassScheme.realize to allow passing of ParameterScopes.
  • Introduced CacheMapping and CacheMappingRegistry (managed by the Environment) to support looking up CacheMappings defined in Cache Configuration Files. This includes support for parsing <init-params> from Cache Configuration Files to aid in the construction of ParameterScopes.
  • Introduced the class. A Variant-like type to support representing untyped values at runtime, together with a mechanism to dynamically Coerce values into required types.
  • Resolved issue where the AbstractBackingMapEntryEvent.EntryEvent constructor would assigns a key to the value attribute instead of key attribute

Coherence 3.6 Support

Release Name: Version 1.7.3: November 22, 2010
Target Platforms: Java Standard Edition 6+
Requires Coherence Version: 3.6+
Dependencies: (none)
Download: coherence-3.6-common-
MD5: f214f61957798e1a215f144fc511a066
Source and Documentation:
Build Instructions: Building the Coherence Incubator Projects

Coherence 3.5 Support

Release Name: Version 1.7.3: November 22, 2010
Target Platforms: Java Standard Edition 6+
Requires Coherence Version: 3.5.3 Patch 3+
Dependencies: (none)
Download: coherence-3.5-common-
MD5: d896b49b3a9b0d629d74e2176bf62558
Source and Documentation:
Build Instructions: Building the Coherence Incubator Projects

Previous Releases

The following releases are provided for historical purposes only.
Coherence Common 1.6.1, Coherence Common 1.6.0, Coherence Common 1.5.0, Coherence Common 1.4.0, Coherence Common 1.3.0, Coherence Common 1.2.0, Coherence Common 1.1.1

Detailed Documentation

Extensible Environments

Background and Motivation
The Coherence Bootstrap Procedure, the Configurable Cache Factory and Cache Configurations.

Introduction to XML Namespaces
XML Namespaces and XML Namespaces in Cache Configurations.

Creating Custom Cache Configuration Namespaces
A tutorial outlining how to create your own XML Cache Configuration Namespace for Coherence.

XML Cache Configuration Namespace Reference
The out-of-the box XML Cache Configuration Namespaces provided with Coherence Common.

The Coherence Namespace
The default and implicitly defined namespace for processing Coherence cache configuration elements.

The Filter Namespace
A utility namespace providing the ability to define Coherence Filters.

The Introduce Namespace
A namespace to permit the introduction of other cache configuration files. ie: provide <introduce-cache-config> functionality.

The Instance Namespace
A utility namespace providing the ability to specify how custom classes may be instantiated.

The Value Namespace
A utility namespace providing the ability to define strongly typed values.

Amazon EC2 AddressProvider

The Amazon EC2 AddressProvider
Amazon provides compute power on demand through its Elastic Compute Cloud (EC2). The EC2 AddressProvider makes it simpler to run a Coherence based application on EC2.

current current Delete
project project Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.