Category Archives: coherence

Oracle Coherence

Exciting things happening in Coherence…

I hope everyone is attending/watching JavaOne 2014 tomorrow.   There’s a sneak preview of some cool next generation Coherence with Java 8 in the Java One Technical Keynote

Follow @JavaOneConf and @pinocchiocode to find out more…


Coherence Incubator 11.2.0 Released!

While we’re certainly excited about the latest Coherence 12.1.0 release for Coherence 12.1.2 (including the new JVisualVM Plug-In), we’re not leaving the Coherence 3.7.1 developers out!

As part of our continued support for the Coherence Community we recently released Coherence Incubator 11.2.0 (for Coherence 3.7.1).   For the most part it’s a patch release – a few defect fixes and an upgrade to use Coherence 3.7.1 patch 10, however there are some big improvements in the way we’ve been doing testing, especially for Push Replication, that of which now incorporates the improvements made in Oracle Tools 1.1.0.

Coherence Incubator 12.1.0 Released!

On the back of the Oracle Tools 1.1.0 release, today we released an update to Coherence Incubator – Version 12.1.0.   While the change history provides the low-level details, the exciting news is the introduction of the JVisualVM plugin for Oracle Coherence (supporting versions 3.5, 3.6, 3.7 and 12.1.2) – the details of which are available here.

If you are using Oracle Coherence, running Java Development Kit 7 and want to visualize what’s happening in your development environment, this plug-in is for you!   Forget JConsole – you need JVisualVM for Coherence.  It’s extremely easy to install and easy to use.  (btw: you’ve already got JVisualVM installed if you’re using JDK7)

More details about the plug-in installation is now available on the Oracle Coherence Blog.

As usual, comments, feedback, defect reports and feature requests are always welcome on the Coherence Incubator Project.

Project Page:
Issue Tracker:
Project Forums:

Oracle Tools 1.1.0 Released!

After some significant research and development we’ve finally released Oracle Tools 1.1.0.   While a seemingly minor update (without breaking anything), it contains some nice improvements over Oracle Tools 1.0.0.

While the Issue Tracker (JIRA)  and Change History outline all of the low-level details, in a nutshell we made the following improvements:

  1. Orphan Process Protection: We introduced the ability to ensure that spawned processes, including Java applications, can be prevented from becoming orphaned, should a starting (ie: parent) process terminate unexpectedly.   While most people seem to run Oracle Tools with in the context of Continuous Integration Systems (which typically prevent “orphan processes”), we found systems using Oracle Tools in a standalone mode may create orphan processes when they terminate carelessly.  Not anymore!  “Orphan Protection” is turned on by-default.   If you really want to “orphan” newly created applications, just turn if off with a call to the NativeJavaApplicationBuilder.setOrphanProtection(false) method.
  2. Remote Runnable and Callable Execution: Having the ability to communicate between the starting and client applications allowed us to introduce the ability to request the execution of arbitrary Java Callables (or Runnables) for Java-based Applications (including Oracle Coherence).   Essentially this means that you can do things like this:Future<T> future = someApplication.submit(Callable<T>); in your tests.Note: This works for both container-based, local and soon-to-be-released “remote” applications.
  3. Introduced the new Eventually class:  With the advent of remote execution we decided to refactor (and deprecate) the DeferredAssert class to make things easier to use.  eg:  Say you want to assert that a remote application eventually reaches a certain state, you can now do this:Eventually.assertThat(application, Callable<T>, Matcher<T>);This will attempt to execute the specified Callable against the provided Application, hoping to eventually have the result “match” the specified Hamcrest/JUnit Matcher.   How it retries / backs-off in order to “eventually” match is covered by the Ensured class.
  4. New Documentation for Oracle Tools for Coherence:  While we also added a bunch of new features for the Oracle Tools for Coherence module, we also added new tutorial-based documentation.   It’s all covered here.

Comments, suggestions, feedback and defect reports are always welcome!

Project Page:
Issue Tracking:

Coherence Incubator 11 Released

It’s here!  Oracle Coherence Incubator Release 11 has now been finalized and made public.  Everyone can now pick up the official Maven builds from or via Maven Central.

Instead of repeating all of the goodies and release details again, I’ll simply refer you to take a look at my recent post.   However to save you some time, here are the important new links:

Coherence Incubator Project:

Coherence Community Source Code:

Release Documentation:

If you’re not using Apache Maven for dependency management, you can still download the signed artifacts manually, including the jars, javadoc and source from Maven Central (which is Simply search for: “coherence incubator“.

What about Coherence Incubator 10?
Over the next few days, weeks and months our plan is to retire Coherence Incubator 10.  During this time we will be encouraging everyone to move over to Coherence Incubator 11.   There are a lot of advantages to this (like being able to easily build it yourself).  

Importantly we’ve gone to great lengths to ensure that Coherence Incubator 11 is technically the same as Coherence Incubator 10 – if they aren’t that’s a defect – which we should be able to resolve.  Basically anyone that’s currently using Coherence Incubator 10 should be able to simply swap the jars (updating the versions of course) and carry on.  Of course there are a few differences, but this are scoped to where and how examples are run, together with new documentation.

As we’ve previously done with major releases,  the old site, documentation and downloads for Coherence Incubator 10 will still be available.  We’re not taking those away.   However all new work and defect fixes will only occur in Coherence Incubator 11+ (unless there’s some monumental pressure – and I mean monumental).


Coherence Incubator 11 (coming to an open-source repository near you soon…)

As mentioned at the past few Oracle Coherence Special Interest Group (SIG) and Customer Advisory Board (CAB) meetings, we’ve been busily working away at opening up (open sourcing) the entire Oracle Coherence Incubator for the Coherence Community.   I’m very pleased to say that this work is now “almost” complete!

Note: I say “almost” complete simply because we’ve not yet made an official release from the source repositories, but as far as openness goes, the work is now done.

If you’ve been looking at or using the Oracle Coherence Incubator in the past, a lot of things are about to change organizationally.

1. All source code and documentation is now officially licensed under CDDL.

2. The entire project has been “Mavenized”.  ie: easy to build, release etc from source.

3. All source code and documentation is now publicly available on GitHub.  ie: easy to access for everyone.

4. The project is now officially hosted at  ie: it’s like Glassfish and other open-source Java projects.

5. The issue tracking system is also publicly available (also on

6. The project documentation is now part of the project source (as a maven site).

7. You can now officially contribute to the Incubator!  Instructions on “how” are in the project documentation

8. Releases will be available on (and Maven Central).  Snapshots are already available on

While these are major structural changes to the project, the source packaging and classes remain the same.   ie:  Coherence Incubator 11 is simply Coherence Incubator 10, but cleaned up with a new home and licensing model.

Here are the important new links:

Coherence Incubator Project:

Coherence Community Source Code:

Latest Documentation:

What about Coherence Incubator 10?

Ultimately the plan is to retire Coherence Incubator 10 and encourage everyone to move over to Coherence Incubator 11.   There are a lot of advantages to this (like being able to easily build stuff yourself).

Technically they are the same (if they aren’t that’s a defect – which we can track openly!).  We’ve gone to great lengths to keep them in sync so that everyone that’s been using Coherence Incubator 10 should be able to simply swap the jars (updating the versions) and carry on.

Once we’ve made an official release of Coherence Incubator 11, we plan to retire Coherence Incubator 10.  The site and downloads will still be available.  We’re not taking that away.   However all new work and defect fixes will only occur in Coherence Incubator 11 (unless there’s some monumental pressure – and I mean monumental).

Currently Coherence Incubator 11 contains a rollup of all changes to Coherence Incubator 10.  ie: in terms of source code they are the same (or very close).

So if you’re using Coherence Incubator 10, take a look at Coherence Incubator 11.  Grab the snapshots from or build it yourself from GitHub.

What’s next?

There’s still a bit of documentation to move over from Coherence Incubator 10 site and into Coherence Incubator 11.  We’re hoping to have this completed in the next week or so.  After this we’ll start the process of making an official release.  Once this is complete, we’ll announce retirement plan for Coherence Incubator 10.

As you can guess by the time this has taken, this has been a massive effort.  While it may seem like it was a simple project restructuring  – eg: getting source, documentation ready, this has involved a tremendous amount of organizational and community consultation.  I’m happy to say we’re through this now.   I look forward to putting out some new releases with new functionality pretty soon.

Coherence Incubator 10 Patch 2 Released

Just uploaded the latest fix patches for Coherence Incubator 10.  While mostly minor fixes, there’s also a few new additions, like the new @LiveObject annotation.  Check out the Coherence Incubator project pages for more details.