mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Nicolas Capponi
22.19.2014 e53ece2d372bc18e22340da7152291f93b45cb8c
refs
author Nicolas Capponi <nicolas.capponi@forgerock.com>
Monday, September 22, 2014 16:19 +0200
committer Nicolas Capponi <nicolas.capponi@forgerock.com>
Monday, September 22, 2014 16:19 +0200
commite53ece2d372bc18e22340da7152291f93b45cb8c
tree 5f4d5840123ee340981b2d9c1ca3a539a5ee93e2 tree | zip | gz
parent 9467777a0ed9ed3cf07a4f4be0d021333d39b653 view | diff
Checkpoint commit for OPENDJ-1206 : Create a new ReplicationBackend/ChangelogBackend 
to support cn=changelog
CR-4083

[Note: real merge of all changelog.file package content and ChangelogBackend to be done
in one shot in a future commit]

Implementation of core features of the changelog backend:
* Initialization and finalization of the backend
* Search of the changelog, in cookie mode (with a cookie control) and
draft compat mode (by change number)

Code changes:
* ChangelogBackend.java:
- implementation of search(), hasSubordinates(), numSubordinates(),
and getEntryCount() methods

* ReplicationServer.java:
- new dependency on ChangelogBackend and ECLEnabledDomainPredicate
- new constructor with ECLEnabledDomainPredicate argument
- new methods enableExternalChangeLog() and shutdownExternalChangelog()
as future replacement of enabledECL() and shutdownECL()
- new method getDomainDNs(Set<DN>) for retrieval of domain DNs but an
excluded set of dns
- new method validateServerState(MultiDomainServerState, Set<DN>) for
checking coherency of given state with the replication server

* ReplicationDomainDB.java:
- new method getCursorFrom(MultiDomainServerState, PositionStrategy, Set<DN>)
that exclude a given set of domain DNs from the cursor obtained

* FileChangelogDB.java, JEChangelogDB.java:
- implementation of new method
getCursorFrom(MultiDomainServerState, PositionStrategy, Set<DN>)

* ECLEnabledDomainPredicate.java, ECLMultiDomainDBCursor.java:
- update visibility to public in order to use these classes in ChangelogBackend

* ChangelogBackedTestCase.java:
- test of ChangelogBackend class, built from ExternalChangeLogTest.java,
with lots of renaming, refactoring, cleaning compared to original class
- majority of tests are disabled until the changelog backend is branched into
code (as these tests require a running server)

* MonitorTest.java:
- update creation of ReplicationServer class to use a custom
ECLEnabledDomainPredicate

* replication.properties:
- add messages for changelog backend
8 files modified
1 files added
518 ■■■■■ changed files
opendj-sdk/opendj3-server-dev/src/messages/messages/replication.properties 6 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/ChangelogBackend.java 288 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java 156 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/api/ReplicationDomainDB.java 28 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/file/FileChangelogDB.java 11 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/ECLEnabledDomainPredicate.java 2 ●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/ECLMultiDomainDBCursor.java 2 ●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java 13 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/MonitorTest.java 12 ●●●●● diff | view | raw | blame | history