Skip to end of metadata
Go to start of metadata
Deprecation Announcement
This release of the Coherence Incubator is now deprecated. For the latest supported release, help and documentation, please refer to the Coherence Incubator Project on at

The Coherence Common Project
Provides a collection of utility packages and classes commonly used to support the implementation of other Incubator projects.


Noteworthy packages and classes in the Coherence Common Project.

  • The ExtensibleEnvironment Class:
    A replacement for the standard Coherence ConfigurableCacheFactory implementation, responsible for processing cache configurations, 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 CoherenceLogHandler 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:
    Containing a collection of useful new Entry Processors, including the InvokeMethodProcessor for remotely invoking methods through reflection.
  • The ObjectProxyFactory Class:
    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 EC2AddressProvider Class:
    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 useful for cache keys), handling Tickets, Ranges, Tuples, Leases and some customized Thread Factories.
Revision History
Version 2.3.0 (changes since 2.2.0)

Version 2.3.0 contains the following changes since the previous release. These include:

Legend | = Fixed | = Breaking Change / Deprecation | = Improved | = New
  • Renamed StateChangeProcessor to StateChangeContinuation in the package.
  • Introduced* package to encapsulate all of the runtime and deferred classes.
    This can later be separated out into a standardized tools/testing/runtime library for everyone to consume.

This finally deprecates the, and packages.

Huge thanks to Jonathan Knight for his contributions and recommendations for in-process execution.

Version 2.2.0 (changes since 2.1.2)

Version 2.2.0 contains the following changes since the previous release. These include:

Legend | = Fixed | = Breaking Change / Deprecation | = Improved | = New
  • Introduced new <filter:*> support, including filters for: "all", "any", "present", "not", "and", "or", "xor" and "where" (that uses CohQL)
  • Introduced new package
  • Resolved a defect where SimpleBinaryEntry and AbstractBackingMapEvent.Entry.extract(..) were not
    correctly taking Entry types into account (it was assuming they were Objects).
    This defect would potentially cause non-EntryFilters to fail when used with non-Entries (in unit tests)
Version 2.1.2 (changes since 2.1.1)

Version 2.1.2 contains minor defect fixes identified and resolved since 2.1.1. These include:

Legend | = Fixed | = Breaking Change / Deprecation | = Improved | = New
  • Resolved issue where calling ServiceReference.isReferencing(...) on a service that is shutting down would cause a RuntimeException.
  • Resolved issue where ExtensibleEnvironment.instantiateAny(...) would not include all of the (overriding) parameters defined by ClassInfo, thus preventing some wrapper-based cache implementations from working.
  • Resolved issue where the AbstractApplicationScheme.setEnvironmentVariables(...) would not actually do anything.
Version 2.1.1 (changes since 2.1.0)

Version 2.1.1 contains numerous performance fixes and optimizations discovered and resolved since 2.1.0. Below are the highlights for this release:

Legend | = Fixed | = Breaking Change / Deprecation | = Improved | = New
  • Introduced the @LiveObject annotation to simplify declaration of Live Objects.
  • Refactored DelegatingBackingMapListener implementation to improve performance when using annotated objects, like @LiveObjects
  • Resolved failure to detect event processing annotations on super-classes.
  • Resolved inability to use primitive values in certain circumstances with <class-scheme>.
  • Resolved potential cluster configuration problem for functional tests and application runtime when using OSX Lion.
Version 2.1.0 (changes since 2.0.0)

Version 2.1.0 contains numerous performance fixes and optimizations discovered and resolved since 2.0.0. While essentially a patch release, it also introduces a new package to assist in testing clustered applications. Below are the highlights for this release:

Legend | = Fixed | = Breaking Change / Deprecation | = Improved | = New
  • Added a new type parameter to the VarArgsParameterizedBuilder to improve type checking and simplify use with named parameters.
  • Made the ScopedParameterProvider and SystemPropertyParameterProvider serializable and portable. This allows both parameters and builders to be passed between processes and cluster members.
  • Modified the implementation of the element:introduce-cache-config attribute to accept a comma separated list of cache configuration URIs, thus allowing multiple cache-configurations to be introduced.
  • Introduced the EnvironmentClassLoaderExpression to support representing the Environment (CacheFactory) ClassLoader as an Expression, thus also allowing them to be passed between processes.
  • Introduced the NamedCacheSerializerBuilder to support passing a Serializer between processes.
  • Introduced the package to allow runtime creation/management/destruction of Java Applications, Application Groups and Clusters. Included in this is the concept of Schemas for Applications, Java Applications and Cluster Members. This is a refactoring of the old package.
  • Deprecated the package. Please migrate to using the new package.
  • Out-of-the-box support for the up and coming Coherence Release.
Version 2.0.0 (changes since 1.7.0)

Version 2.0.0 contains some of the most significant changes since the project 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 some of the more important are highlights since version 1.7.0.

Legend | = Fixed | = Breaking Change / Deprecation | = Improved | = New
  • The introduce:config and <introduce-cache-config> namespaces and elements are no longer supported. Instead they are replaced by the new Xml Element pre-processing namespace, that offers increased functionality in a consistently defined package. All uses of the above will need to be migrated to use the new namespace.
  • All *Scheme classes have be renamed and refactored into the new *Builders package. This is to align the Coherence Incubator with a future release of Coherence, to enforce consistent naming and adoption of the Builder Pattern.
  • Refactored and migrated all Application*Builder implementations into the package.
  • Renamed Configuration "Decorations" to become Configuration "Enrichments" to avoid conceptual confusion with Coherence Decorations.
  • Migrated all of the Configurator methods onto the ConfigurationContext. This optimizes the implementations somewhat.
  • Removed the separate pof and non-pof cache configurations. Cache configuration files now use the system-wide defined serializer. This dramatically simplifies serialization configuration and halves the number of cache configuration files.
  • Upgraded to use the latest Coherence 3.7 release.
  • Explicitly specifies xsds in configuration files to strictly enforce document validation.
  • Introduce full support for processing <class-schemes> with in the ExtensibleEnvironment, hence deprecating the need for the Instance Namespace and Value Namespace.
  • Introduced support for using {cache-ref} in Parameter Macro Expressions.
  • Introduced the concept of named resources with in an Environment.

Release Version: Version
Release Date: October 31, 2012
Coherence Version: 3.7.1+
Target Platforms: Java Standard Edition 6+
Dependencies: (none)
Download: coherence-common-
MD5: 7976ec53bc4bd86afc0bc8e9cf46b33b
Source and
Java Doc:

* Previous releases are available from the attachments page

Further 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.

Coherence Common 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 Xml Element Namespace
A namespace enabling runtime transformation of XML elements in a cache configuration. ie: provides <cache-config element:introduce-cache-config="..."> and other functionality.

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

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

The Amazon EC2 Address Provider

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.

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