Fork me on GitHub

Change History

The following sections outline Oracle Coherence Incubator changes in reverse chronological order.

Version 11.3.1 @ 2016-05-06 18:30

Source and Documentation Contributors

  • Brian Oliver
  • Jonathan Knight

Global and Cross-Module Changes

  • COHINC-104: Upgraded to use Oracle Coherence 3.7.1.14

coherence-common

  • COHINC-124: Introduced the ability to determine if a FiniteStateMachine is still accepting Events to process while performing an StateEntry/StateExit/Transaction Acton through the use of the new ExecutionContext.isAcceptingEvents() method.

coherence-commandpattern

  • COHINC-100: Refactored Command Pattern CommandExecutor to use the latest Finite State Machine from Coherence Incubator 12 to resolve potential missing event and associated executor thread starvation when scaling out.

coherence-incubator-site

  • COHINC-119: Modifed pom.xml to produce and deploy the documentation to github in the "deploy" phase.

coherence-messagingpattern

  • COHINC-118: Introduce the JMX-based diagnostics for Subcriptions. This includes the ability to display the internal state of a Subscription.

  • COHINC-121: Resolved potential message leaks when publishing to disabled subscriptions (subscriptions won't recieve messages, but messages may be left unacknowledged)

coherence-eventdistributionpattern

  • COHINC-108: Resolved ability to distribute and replicate Cache Entry expiry timeouts between clusters.

    This includes introducing the ability to customize expiry when during conflict resolution.

  • COHINC-110: Introduce the ability to control batch-size, inter batch-distribution-delay and restart-delay using JMX at runtime.

  • COHINC-112: Replace the "message out of order" log when using Coherence-based event distribution implementations with something more apppropriate. This log only indicates that a recovery is occuring (nothing bad!), because it's redistributing messages to an event channel that previously failed for some reason.

  • COHINC-115: Refactored the "drain" functionality for Coherence-based event distribution implementations so that they use the configured batches and delays.

  • COHINC-120: Introduced the ability to "propagate" a copy of a NamedCache over an associated EventChannel using a JMX operation. This allows remote clusters to be "rebuilt" from another cluster or alternatively allows an EventChannel implementation to receive a entire copy of a NamedCache.

  • COHINC-127: Corrected expiry-time calculation to ensure that "loaded" BinaryEntries can be sent over an EventChannel without loss of fidelity. This allows LocalCacheEventChannels to correctly update Entries with the required expiry time.

coherence-pushreplicationpattern

coherence-pushreplicationpattern

  • COHINC-36: Fixed an issue where keys of replicated entries were being deserialized on the receiving cluster during replication.

  • COHINC-64: Changed the coherence-web dependency to be "provided".

  • COHINC-120: Introduced the ability to "propagate" a copy of a NamedCache over an associated EventChannel using a JMX operation. This allows remote clusters to be "rebuilt" from another cluster or alternatively allows an EventChannel implementation to receive a entire copy of a NamedCache.

Version 11.3.0 @ 2014-04-12 06:57

Source and Documentation Contributors

  • Brian Oliver

Global and Cross-Module Changes

  • COHINC-81: Upgraded to use Oracle Tools 1.2.2

  • COHINC-86: Upgraded to use Oracle Coherence 3.7.1.11

  • COHINC-92: Upgraded Maven Plugins.

coherence-incubator-all

  • COHINC-90: (re)Introduced coherence-incubator-all distribution that contains all of the Incubator projects, as a single artifact.

coherence-common

  • COHINC-85: Improved Annotation-based FiniteStateMachine Models to allow for @Transitions defined by super-classes.

  • COHINC-87: Introduced the ability to control whether a NonBlockingFiniteStateMachine autostarts (aka: transitions) to its initial state.

  • COHINC-128: Removed the dependency on CGLib from the pom.xml file as the code does not actually have a dependency on CGLib.

coherence-eventdistributionpattern

  • COHINC-83: Refactored AbstractEventChannelController internals to use a Non-Blocking Finite State Machine, instead of Java Synchronization and an ExecutorService.

    Apart from simplifying the implementation, this enhancement permits the use of "coalescing events", which can help reduce CPU when message subscriptions are updated, causing numerous events triggering extraneous distribution requests.

  • COHINC-93: Introduced new DELAYED state for the AbstractEventChannelController, together with a new "polling-delay" configuration for Event Channels. This allows separate control of polling and inter-batch delays.

coherence-pushreplicationpattern-tests

  • COHINC-11: Refactored Push Replication Functional Tests into their own module.

Version: 11.2.0 @ 2013-11-21 19:20

Source and Documentation Contributors

  • Noah Arliss, Brian Oliver, Alexandru Serban

Global and Cross-Module Changes

  • Upgraded to use Oracle Tools 1.1.0

  • COHINC-72: Upgraded to use Oracle Coherence 3.7.1.10

  • COHINC-74: Upgraded to use Oracle Tools 1.1.0 including a). refactoring the use of deprecated classes and b). removing the requirement for JMX enabled Coherence cluster members.

coherence-common

  • COHINC-69: Resolved issue where Coherence Xml Elements that produced custom instances would introduce a "use-scheme" attribute. This should only occur for custom namespace elements. This would cause some patterns, especially those using custom namespaces to fail to deploy on WLS 10.3.6.

coherence-eventdistributionpattern

  • COHINC-71: Introduce the ability to filter events prior to queuing them for distribution.

    Introduced EventChannelEventFilter interface that can be used to filter Events. Implemented filtering for InterClusterEventChannels in the AbstractInterClusterEventChannelBuilder class.

  • COHINC-71: Resolves NullPointerException that may occur when attempting to use EntryEventOptimizingTransformers with Hub & Spoke or Centralized replication topologies.

coherence-pushreplicationpattern

  • COHINC-65: Resolved issue where attempting to remove non-existing or expired entries would not be replicated.

  • COHINC-71: Introduce the ability to filter events prior to queuing them for distribution.

    Refactored PublishingCacheStore to consult the EventChannelEventFilters for each configured EventChannel(Builder) priority to distributing an Event.

  • COHINC-73: Resolves NullPointerException that may occur when attempting to use EntryEventOptimizingTransformers with Hub & Spoke or Centralized replication topologies.

Version 11.1.0 @ 2013-08-08 15:10

Source and Documentation Contributors

  • Noah Arliss, Jonathan Knight, Brian Oliver

Global and Cross-Module Changes

  • COHINC-33: Upgraded to use JUnit 4.10 and Hamcrest 1.3

  • COHINC-42: Upgraded to use Oracle Tools 1.0.0

coherence-incubator-all

  • Removed this module as it wasn't published publically.

coherence-common

  • COHINC-18: Resolved incorrect PortableObject.writeExternal(...) implementation for the StaticFactoryClassSchemeBasedParameterizedBuilder class.

  • COHINC-29: Improved LifecycleAwareEvent information when using a NonBlockingFiniteStateMachine.

    This is a breaking change for the LifecycleAwareEvent interface. However as we are only using this interface only with in an inner class of NonBlockingFiniteStateMachine, it does not break any public interfaces.

  • COHINC-35: Corrected use of printf in the Runner class that may prevent examples running on some platforms (like Windows).

  • COHINC-38: Enhanced ConfigurableCacheFactory Tests.

coherence-commandpattern

  • COHINC-34: Added missing pof-type declaration for the CommandBatch class.

  • COHINC-48: Refactored calls to CacheFactory.ensureCluster() that prevent redeployment in a Container.

coherence-messagingpattern

  • COHINC-28: Migrated Functional Test from internal Oracle Testing Framework. These are contained in the new coherence-messagingpattern-tests module.

  • COHINC-37: Changed JMS Dependency to one that includes a jar artifact.

coherence-pushreplicationpattern

  • COHINC-19: Fixed Active-Active Push Replication Example - now correctly terminates.

  • COHINC-30: Removed hardcoded logging path from Push Replication tests.

coherence-pushreplicationpattern-web-example

  • COHINC-40: Introduced new Coherence*Web examples.

Version 11.0.0 @ 2013-02-26 15:05

Source and Documentation Contributors

  • Noah Arliss, Jonathan Knight, Paul Mackin, Brian Oliver, Patrick Peralta

Global and Cross-Module Changes

  • Refactored all of the modules into a single source tree, with separate folders for each module and their associated examples.

  • Restructured all of the modules follow standard Apache Maven conventions.

  • Completely re-wrote the build system to use Apache Maven instead of Apache Ant.

  • Ratified and released all of the modules under a standard open source license (CDDL). This included changing all file headers to use standard CDDL headers. Templates for these headers are available in the "documents" folder.

  • Formalized the mechanism and process for accepting contributions.

  • Completely migrated the existing "closed" Atlassian Confluence-based documentation to be part of the source tree, thus enabling contributions. This included re-writing and updating parts of the documentation for this release. The documentation can be found in the coherence-incubator-site module.

  • Rationalized all modules to use a single Coherence Incubator version number instead of individual version numbers.

  • Migrated the source repository to GitHub.

  • Migrated the Issue Tracking to java.net.

  • Introduced "uber" jar generation support to produce the entire Oracle Coherence Incubator in a single jar.

  • Introduced (extracted) individual "example" modules for the patterns instead of using a single large example module.

  • Introduced a dependency on the Oracle Tools project for tests. Re-wrote all process-based tests to use this package. This work was originally part of the Oracle Coherence Incubator but is now a separate project. This work now includes signficiant contributions from the "Grid Man" project (developed by Jonathan Knight).

  • Upgraded projects to use Oracle Coherence 3.7.1.7

  • Migrated binary distribution mechanism to use maven.java.net instead of download links.

coherence-incubator-all

  • Introduced the ability to generate a coherence-incubator-all-x.y.z.jar that contains all of the Oracle Coherence Incubator compiled modules without third-party libraries and without Oracle Coherence itself. This allows developers to use a single jar file in applications instead of having to specify individual jars.

coherence-incubator-site (Documentation)

  • Introduced during the migration and re-write of the original Oracle Coherence Incubator 10 web-based documentation from http://oracle.coherence.com/.

coherence-common

  • Refactored the implementation of the Finite State Machines to correctly adopt and use standard UML terminology.

coherence-commandpattern

  • No Changes

coherence-commandpattern-examples

  • Introduced by extracting examples from Oracle Coherence Incubator 10.

coherence-functorpattern

  • No Changes

coherence-functorpattern-examples

  • Introduced by extracting examples from Oracle Coherence Incubator 10.

coherence-processingpattern

  • No Changes

coherence-processingpattern-examples

  • Introduced by extracting examples from Oracle Coherence Incubator 10.

coherence-messagingpattern

  • Resolved potential Message memory leak (messages not being removed from the messages cache after being acknowledged)

coherence-eventdistributionpattern

  • Resolved potential and unnecessary hi-cpu usage when using Coherence-based Messaging distributors.

  • Refactored tests to use Oracle Tools.

  • Introduced the new ParallelLocalCacheEventChannel providing the ability to update local caches in parallel across a cluster.

coherence-pushreplicationpattern

  • Refactored tests to use Oracle Tools.

  • Resolved issue were calling NamedCache.getAll(...) on a cache that is being used for Push Replication would throw an UnsupportedOperationException.

  • Added new tests for the new ParallelLocalCacheEventChannel.

coherence-pushreplicationpattern-examples

  • Introduced by extracting examples from Oracle Coherence Incubator 10.