Rename Replicator#getStateChangeChannel to getEventChannel and variables associated with its usage. Fixes #206.
Make InRamLog block momentarily to better simulate blocking log calls, providing tests more opportunity for failure (i.e., better tests)
Fix issues with aSecondQuorumChangeWillOverrideTheFirst and aQuorumChangeCanCompleteEvenIf[...] tests, where in certain circumstances the test would not complete because a new leader could not commit an entry from a previous term before committing an entry from its current term.
Add ReplicatorReceipt, which encapsulates information used to check whether submitted data was successfully replicated; and add getCommitNoticeChannel to Replicator interface
Change IndexCommitNotice to describe a range of replicator-indexes, all associated with one election term; and improve its hamcrest matchers (tests failing)
Make "quorum change committed" an event (that is, a ReplicatorInstanceEvent) rather than signaling it with a special case IndexCommitNotice
Add allowing() statements to various unit tests for Replicator#getCommitNoticeChannel method
Add failing tests for OLogShim appending and syncing
Add a failing test for ReplicatorInstance's IndexCommitNotice contract
Implement OLogShim#sync (resolves #184 and resolves #197)
Improve error message when simplePut or simpleDelete fails
Better error message when logging data to a non-leader (resolves #251)
Rename replicatorId to nodeId, to better express that the id is shared among all replicator instances on the node
Add quorum ID to IndexCommitNotice, and add failing test for OLogShim#sync making use of quorum IDs
OLogShim to filter incoming IndexCommitNotices by quorumId; fixes issue with OLogShim#sync implementation
Workaround for #252
Make sure we wait til we are the leader.
Add failing test for replicator append atomicity
Fix race condition caused by lack of atomicity of the log operations in ReplicatorInstance append path (resolves #204)
Disable not-passing ManyClustersBaseTest (will be fixed in a later commit)