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

Jean-Noel Rouvignac
01.51.2014 02bbeacbfb05101989dac510cbef7815fdf28a2e
refs
author Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Monday, September 1, 2014 14:51 +0200
committer Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Monday, September 1, 2014 14:51 +0200
commit02bbeacbfb05101989dac510cbef7815fdf28a2e
tree 804ef1f2142754a3940dcc783e10152331906724 tree | zip | gz
parent 6f67d530b928bec0b43baf99898ea85014d46ada view | diff
OPENDJ-1206 (CR-4393) Create a new ReplicationBackend/ChangelogBackend to support cn=changelog

Moved persistent searches from workflow elements to the backends.
Made persistent searches work for the ChangelogBackend.
Ensured the base changelog entry is always returned before any changelog entry, even with persistent searches. For this, used SearchOperation attachments to pass information from the "initial search" phase to the "persistent search" phase.
Added ChangelogBackend.notifyEntryAdded() and called it directly from the (JE|File)ChangelogDB and the ChangeNumberIndexer.

FIXME: prevent concurrent execution of initial vs. persistent search phases to avoid sending duplicates.
How do other backends deal with such issue? Apparently they don not deal with it.
TODO: verify changelog read privilege for persistent searches




Backend.java
Added persistentSearches field + registerPersistentSearch() and getPersistentSearches().

ChangelogBackend.java:
Replaced baseChangelogDN with CHANGELOG_BASE_DN and used it throughout + simplified ctor.
Added notifyEntryAdded(), getPersistentSearches(), isPersistentSearch(), isCookieBased(), getNewestCookie(), getChangelogDB(), getInstance(), NumSubordinatesSearchOperation.setAttachment(), TODO JNR
Overrode Backend.registerPersistentSearch().
Extracted method getExcludedDomains().
Renamed SearchParams.multiDomainServerState to cookie.
Removed unused SearchParams.operationId.
Added inner class EntrySender and moved methods to it: matchBaseAndScopeAndFilter(), sendBaseChangelogEntry(), buildBaseChangelogEntry(),
In searchFromCookie(), searchFromChangeNumber() and sendEntryForUpdateMessage(), simplified the code by using EntrySender.
Implemented finalizeBackend().

*Backend.java:
Called super.finalizeBackend()

ChangelogBackendTestCase.java:
Enabled as many tests as possible.



PersistentSearch.java
Added changesOnly field + isChangesOnly() + modified ctor to set it.

ReplicationServer.java:
Replaced old code enabling External Changelog (via workflow element) with new code (with ChangelogBackend).



FileChangelogDB.java, ChangeNumberIndexer.java, JEChangelogDB.java:
Called new ChangelogBackend.notifyEntryAdded().

ChangeNumberIndexerTest.java
Consequence of the change to ChangeNumberIndexer.



LDAPReplicationDomain.java:
Removed old code enabling External Changelog.
Code cleanup.

ExternalChangeLogTest.java:
Disabled tests that do not pass anymore.
Removed old code enabling External Changelog.
Code cleanup.



ECLWorkflowElement.java, LocalBackendWorkflowElement.java:
Removed persistentSearches field + registerPersistentSearch() and getPersistentSearches().

LocalBackendAddOperation.java, LocalBackendDeleteOperation.java, LocalBackendModifyDNOperation.java:
Consequence of moving persistent searches from workflow elements to the backends.

LocalBackendModifyOperation.java:
Consequence of moving persistent searches from workflow elements to the backends.
In performAdditionalPasswordChangedProcessing(), simplified code because we are adding to a Set.
Code cleanup.

LocalBackendSearchOperation.java:
Consequence of moving persistent searches from workflow elements to the backends.
Transformed processSearch field into a local variable.
Code cleanup.

ECLServerHandler.java, ECLServerWriter.java, ECLSearchOperation.java:
Adapted the code to use ChangelogBackend.
31 files modified
1724 ■■■■ changed files
opends/src/guitools/org/opends/guitools/controlpanel/util/ReadOnlyConfigFileHandler.java 13 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/api/Backend.java 65 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/backends/BackupBackend.java 3 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/backends/ChangelogBackend.java 569 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/backends/MonitorBackend.java 21 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/backends/NullBackend.java 1 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/backends/RootDSEBackend.java 1 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/backends/SchemaBackend.java 6 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/backends/TrustStoreBackend.java 13 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/backends/jeb/BackendImpl.java 14 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/backends/task/TaskBackend.java 2 ●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/core/PersistentSearch.java 44 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/extensions/ConfigFileHandler.java 8 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java 42 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/ECLServerHandler.java 59 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/ECLServerWriter.java 8 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/ReplicationServer.java 100 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/file/FileChangelogDB.java 3 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java 30 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java 3 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/workflowelement/externalchangelog/ECLSearchOperation.java 38 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/workflowelement/externalchangelog/ECLWorkflowElement.java 84 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java 2 ●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java 2 ●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java 2 ●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java 237 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java 121 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/workflowelement/localbackend/LocalBackendWorkflowElement.java 109 ●●●● diff | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/backends/ChangelogBackendTestCase.java 44 ●●●● diff | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java 64 ●●●● diff | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexerTest.java 16 ●●●●● diff | view | raw | blame | history