OPENDJ-1206 (CR-4261) Create a new ReplicationBackend/ChangelogBackend to support cn=changelog
Implemented PositionStrategy.ON_MATCHING_KEY for JEChangelogDB.getCursorFrom(DN baseDN, int serverId).
JEChangelogDB.java, JEReplicaDB.java:
Implemented PositionStrategy.ON_MATCHING_KEY.
JEReplicaDBCursor.java:
Added new field positionStrategy.
Simplified code in next() + added gotoNext().
ReplicationDB.java:
In openReadCursor(), added PositionStrategy parameter.
Made createReplicationKey() handle null CSNs.
Inner class ReplServerDBCursor now implement DBCursor + Added getRecord() + Made next(), now return boolean instead of UpdateMsg + Extracted method computeCurrentRecord().
Added new field "UpdateMsg currentRecord".
Added PositionStrategy parameter to ReplServerDBCursor ctor + protected special code for PositionStrategy.AFTER_MATCHING_KEY.
JEReplicaDBTest.java:
Added test cases for new PositionStrategy ON_MATCHING_KEY.
Split assertFoundInOrder() in two: one each for AFTER_MATCHING_KEY and ON_MATCHING_KEY.
In testGenerateCursorFrom(), changed the code to cover all CSNs.
Extracted method assertNextCSN() and shutdown().
Used SoftAssertions.