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