Add an Environment that loads Dispatchers from an externalized configuration file. Also had to make all of the other components aware of the Environment, which involved significant cascading changes to make everything that needs a Reactor, Composable, or Promise, to get one from one of the R factory methods.
Fixes to get Composable.Spec.merge to work correctly. Tweak error handling.
Add cascading error handling in Composable and change the way DispatcherSuppliers are managed in Environment. Also removed Observable from Environment.
Changes to Promise and Composable to fix generics issues with inheriting from a common ComponentSpec and getting the merge method to return the correct value.
Upgrade groovy tests
Eliminated DispatcherSupplier abstraction and changed Environment to use Dispatchers directly.
Fixes #61 #62 #63 #64 by Removed the Lifecycle interface completely and added halt() and shutdown() methods to the Dispatcher interface. Re-implemented how isAlive worked and put some basic logic into an abstract class that the other Dispatcher implementations descend from now. Added shutdown() and shutdownNow() calls to the ExecutorServices in RingBufferDispatcher and ThreadPoolExecutorDispatcher to keep them from leaking threads. Updated the tests to reflect the changes in the API.
Eliminate compiler warnings.
Fix a bug where Promises were always being created with a value, even when none was specified.
Minor whitespace changes.
Upgrade groovy tests
fix recursive exception call
all tests ok
Fixes #45 Provides a single-use Consumer implementation that delegates to a given Consumer and ensures that the delegate is only ever called the first time. Subsequent calls are ignored. Should be used in combination with cancelAfterUse() to provide clean, single-use semantics.
typecheck doMerge
fix PromiseTests
Add debug logging when the profile properties file isn't found.
Added a default.properties file to the test resources.
Re-enabled ComposableThroughputTests.
fix exception chaining
fix spring module