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

Jean-Noel Rouvignac
22.23.2014 b0f2849592c88370d1e3890c42f77a66ff6d9c0e
refs
author Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Monday, September 22, 2014 18:23 +0200
committer Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Monday, September 22, 2014 18:23 +0200
commitb0f2849592c88370d1e3890c42f77a66ff6d9c0e
tree 038f6fe2664dd42469e6d442d71ce0942f9b9c4a tree | zip | gz
parent 89ed175914345a998a0ca87c2c5afc6076274faa 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.
27 files modified
935 ■■■■■ changed files
opendj-sdk/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ReadOnlyConfigFileHandler.java 7 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/api/Backend.java 66 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/BackupBackend.java 1 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/MonitorBackend.java 4 ●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/NullBackend.java 1 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/RootDSEBackend.java 1 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/SchemaBackend.java 1 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/TrustStoreBackend.java 1 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/BackendImpl.java 7 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/task/TaskBackend.java 2 ●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/PersistentSearch.java 36 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/ConfigFileHandler.java 8 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java 41 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/ECLServerHandler.java 43 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/ECLServerWriter.java 8 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java 97 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java 2 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java 3 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/workflowelement/externalchangelog/ECLSearchOperation.java 32 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/workflowelement/externalchangelog/ECLWorkflowElement.java 75 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java 2 ●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java 2 ●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java 2 ●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java 205 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java 117 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendWorkflowElement.java 107 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java 64 ●●●● diff | view | raw | blame | history