Added shutdown hook to Main. Running the shutdown method will terminate all thread started by Hydra. If a thread is hung, Hydra will be killed after 30 seconds
Added an uncaught exception handler that runs the shutdown method if an uncaught exception is thrown by Hydra
Added possibility to throw a ProcessingException after a configurable timeout unless the document was completed.
Added a stage that gets stuck in an infinite loop and never returns. For example used for testing how your pipeline handles failing libraries that never returns
Added a stage that throws an uncaught runtime exception. Used to test how your pipeline handles unexpected runtime errors
Added some sleep in the infinit loop stage
Added test for process timout
If an IOException is caught when trying to start hydra, the shutdown method is called instead of only shutting down the server.
Named process thread with stage name. Inverted isCompleted to isRunning. Made running volatile
Added a time provider and fixed test so that invocation can be fast. Set stage name as name only if it is not null
Used clearer format for time
Fixed formatting
Made Main implement a TerminationHandler. Removed all static modifiers in Main. Passed a refrence to main to NodeMaster that passes it to StageRunner
Added a trace log if processing returns exception
Updated tests to take a mock of TerminationHandler
Removed template comments from ConcatenatingHashStage
Replaces ProcessThread with Futures. Restructures tests for AbstractProcessStage. Adds possibility for processing timeouts to cause stage JVM restart
Removes unused and confusing constructor
JavaDoc and format cleanup
Cleans up structure and spelling