Avoided possible costly thread leaks in ReplicationServerDomain.
ReplicationServerDomain.java:
Used AtomicReference for statusAnalyzer and monitoringPublisher.
As a consequence:
- Changed update*(), start*() and stop*() methods.
- Removed isRunning*() methods.
MonitoringPublisher.java:
Extracted getMessage() to make error messages more conherent.
ServerReader.java:
In run(), removed redundant code by checking whether the message is a RoutableMsg.
Extracted method logException().
In ServerReader.run(), moved some code to ServerHandler.put().
Code cleanups:
- inlined useless local variables
- removed useless use of "this" before method calls.
DataServerHandler.java, ECLServerHandler.java, ReplicationServerHandler.java:
Extracted method createReplServerStartMsg().
ServerHandler.java:
Renamed process(WindowProbeMsg) to replyToWindowProbe().
Made some instance members private.
Moved createReplServerStartMsg here.
In put(), moved decAndCheckWindow() call here from ServerReader.run().
WindowProbeMsg.java:
Fixed javadocs + simplified code.