From 8ed24d57f423f11acc2a5c0ccdea5d3e685d8189 Mon Sep 17 00:00:00 2001
From: Fabio Pistolesi <fabio.pistolesi@forgerock.com>
Date: Tue, 24 Mar 2015 15:41:13 +0000
Subject: [PATCH] OPENDJ-1884 CR-6447 Revise {configure,initialize,finalize}Backend calls.
---
opendj-server-legacy/src/test/java/org/opends/server/TestCaseUtils.java | 2
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ReadOnlyConfigFileHandler.java | 3
opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java | 4
opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java | 5 -
opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskBackend.java | 5 -
opendj-server-legacy/src/main/java/org/opends/server/backends/MonitorBackend.java | 6 -
opendj-server-legacy/src/test/java/org/opends/server/backends/ChangelogBackendTestCase.java | 2
opendj-server-legacy/src/main/java/org/opends/server/backends/ChangelogBackend.java | 6 -
opendj-server-legacy/src/main/java/org/opends/server/backends/MemoryBackend.java | 4
opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/BackendImpl.java | 5 -
opendj-server-legacy/src/main/java/org/opends/server/core/BackendConfigManager.java | 2
opendj-server-legacy/src/main/java/org/opends/server/backends/NullBackend.java | 6 -
opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/PluggableBackendImplTestCase.java | 4
opendj-server-legacy/src/main/java/org/opends/server/api/Backend.java | 48 +++++++++------
opendj-server-legacy/src/main/java/org/opends/server/tools/EncodePassword.java | 2
opendj-server-legacy/src/main/java/org/opends/server/backends/LDIFBackend.java | 4
opendj-server-legacy/src/main/java/org/opends/server/replication/server/ReplicationServer.java | 2
opendj-server-legacy/src/main/java/org/opends/server/extensions/ConfigFileHandler.java | 2
opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java | 5 -
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java | 5 -
opendj-server-legacy/src/main/java/org/opends/server/backends/BackupBackend.java | 5 -
opendj-server-legacy/src/main/java/org/opends/server/backends/TrustStoreBackend.java | 5 -
22 files changed, 63 insertions(+), 69 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ReadOnlyConfigFileHandler.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ReadOnlyConfigFileHandler.java
index d4266c0..e8e8f87 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ReadOnlyConfigFileHandler.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ReadOnlyConfigFileHandler.java
@@ -354,8 +354,7 @@
/** {@inheritDoc} */
@Override
- public void initializeBackend()
- throws ConfigException, InitializationException
+ public void openBackend() throws ConfigException, InitializationException
{
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/api/Backend.java b/opendj-server-legacy/src/main/java/org/opends/server/api/Backend.java
index c36885c..6f13f57 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/api/Backend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/api/Backend.java
@@ -113,8 +113,9 @@
new ConcurrentLinkedQueue<PersistentSearch>();
/**
- * Configure this backend based on the information in the provided
- * configuration.
+ * Configure this backend based on the information in the provided configuration.
+ * When the method returns, the backend will have been configured (ready to be opened) but still unable
+ * to process operations.
*
* @param cfg The configuration of this backend.
* @param serverContext The server context for this instance
@@ -155,44 +156,51 @@
}
/**
- * Initializes this backend based on the information provided
- * when the backend was configured.
+ * Opens this backend based on the information provided when the backend was configured.
+ * It also should open any underlying storage and register all suffixes with the server.
*
* @see #configureBackend
*
- * @throws ConfigException If an unrecoverable problem arises in
- * the process of performing the
- * initialization.
+ * @throws ConfigException If an unrecoverable problem arises while opening the backend.
*
- * @throws InitializationException If a problem occurs during
- * initialization that is not
- * related to the server
- * configuration.
+ * @throws InitializationException If a problem occurs during opening that is not
+ * related to the server configuration.
*/
- public abstract void initializeBackend() throws ConfigException, InitializationException;
+ public abstract void openBackend() throws ConfigException, InitializationException;
/**
- * Performs any necessary work to finalize this backend, including
- * closing any underlying databases or connections and deregistering
- * any suffixes that it manages with the Directory Server. This may
- * be called during the Directory Server shutdown process or if a
- * backend is disabled with the server online.
+ * Performs any necessary work to finalize this backend. The backend must be an opened backend,
+ * so do not use this method on backends where only <code>configureBackend()</code> has been called.
+ * This may be called during the Directory Server shutdown process or if a backend is disabled
+ * with the server online.
* It must not return until the backend is closed.
* <p>
* This method may not throw any exceptions. If any problems are encountered,
* then they may be logged but the closure should progress as completely as
* possible.
* <p>
- * This method must be called by all overriding methods with
- * <code>super.finalizeBackend()</code>.
*/
- public void finalizeBackend()
+ public final void finalizeBackend()
{
for (PersistentSearch psearch : persistentSearches)
{
psearch.cancel();
}
persistentSearches.clear();
+ closeBackend();
+ }
+
+ /**
+ * Performs any necessary work to finally close this backend, particularly
+ * closing any underlying databases or connections and deregistering
+ * any suffixes that it manages with the Directory Server.
+ * <p>
+ * It will be called as final step of <code>finalizeBackend()</code>,
+ * so subclasses might override it.
+ * </p>
+ */
+ public void closeBackend()
+ {
}
/**
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/BackupBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/BackupBackend.java
index 2316ed3..0f287d7 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/BackupBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/BackupBackend.java
@@ -173,7 +173,7 @@
/** {@inheritDoc} */
@Override
- public void initializeBackend()
+ public void openBackend()
throws ConfigException, InitializationException
{
// Create the set of base DNs that we will handle. In this case, it's just
@@ -255,9 +255,8 @@
/** {@inheritDoc} */
@Override
- public void finalizeBackend()
+ public void closeBackend()
{
- super.finalizeBackend();
currentConfig.removeBackupChangeListener(this);
try
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/ChangelogBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/ChangelogBackend.java
index 3591280..6080da6 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/ChangelogBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/ChangelogBackend.java
@@ -287,7 +287,7 @@
/** {@inheritDoc} */
@Override
- public void initializeBackend() throws InitializationException
+ public void openBackend() throws InitializationException
{
baseDNs = new DN[] { CHANGELOG_BASE_DN };
@@ -304,10 +304,8 @@
/** {@inheritDoc} */
@Override
- public void finalizeBackend()
+ public void closeBackend()
{
- super.finalizeBackend();
-
try
{
DirectoryServer.deregisterBaseDN(CHANGELOG_BASE_DN);
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/LDIFBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/LDIFBackend.java
index 8ff550d..0db1d50 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/LDIFBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/LDIFBackend.java
@@ -114,7 +114,7 @@
/** {@inheritDoc} */
@Override
- public void initializeBackend()
+ public void openBackend()
throws ConfigException, InitializationException
{
// We won't support anything other than exactly one base DN in this
@@ -330,7 +330,7 @@
/** {@inheritDoc} */
@Override
- public void finalizeBackend()
+ public void closeBackend()
{
backendLock.writeLock().lock();
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/MemoryBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/MemoryBackend.java
index 045428e..3c8a2e7 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/MemoryBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/MemoryBackend.java
@@ -162,7 +162,7 @@
/** {@inheritDoc} */
@Override
- public synchronized void initializeBackend()
+ public synchronized void openBackend()
throws ConfigException, InitializationException
{
// We won't support anything other than exactly one base DN in this
@@ -214,7 +214,7 @@
/** {@inheritDoc} */
@Override
- public synchronized void finalizeBackend()
+ public synchronized void closeBackend()
{
clearMemoryBackend();
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/MonitorBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/MonitorBackend.java
index d06ac2e..a337ea5 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/MonitorBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/MonitorBackend.java
@@ -318,9 +318,8 @@
/** {@inheritDoc} */
@Override
- public void finalizeBackend()
+ public void closeBackend()
{
- super.finalizeBackend();
currentConfig.removeMonitorChangeListener(this);
try
{
@@ -415,8 +414,7 @@
/** {@inheritDoc} */
@Override
- public void initializeBackend() throws ConfigException,
- InitializationException
+ public void openBackend() throws ConfigException, InitializationException
{
// Register with the Directory Server as a configurable component.
currentConfig.addMonitorChangeListener(this);
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/NullBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/NullBackend.java
index 305fc1b..7d8e0b8 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/NullBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/NullBackend.java
@@ -160,8 +160,7 @@
/** {@inheritDoc} */
@Override
- public synchronized void initializeBackend()
- throws ConfigException, InitializationException
+ public synchronized void openBackend() throws ConfigException, InitializationException
{
baseDNSet = new HashSet<DN>();
for (DN dn : baseDNs)
@@ -218,9 +217,8 @@
/** {@inheritDoc} */
@Override
- public synchronized void finalizeBackend()
+ public synchronized void closeBackend()
{
- super.finalizeBackend();
for (DN dn : baseDNs)
{
try
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java
index e1fbf41..a0082ee 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java
@@ -152,7 +152,7 @@
/** {@inheritDoc} */
@Override
- public void initializeBackend() throws ConfigException, InitializationException
+ public void openBackend() throws ConfigException, InitializationException
{
ConfigEntry configEntry =
DirectoryServer.getConfigEntry(configEntryDN);
@@ -289,9 +289,8 @@
/** {@inheritDoc} */
@Override
- public void finalizeBackend()
+ public void closeBackend()
{
- super.finalizeBackend();
currentConfig.removeChangeListener(this);
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java
index 328c522..a801583 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java
@@ -354,7 +354,7 @@
/** {@inheritDoc} */
@Override
- public void initializeBackend() throws ConfigException, InitializationException
+ public void openBackend() throws ConfigException, InitializationException
{
// Register each of the suffixes with the Directory Server. Also, register
// the first one as the schema base.
@@ -480,9 +480,8 @@
/** {@inheritDoc} */
@Override
- public void finalizeBackend()
+ public void closeBackend()
{
- super.finalizeBackend();
currentConfig.removeSchemaChangeListener(this);
for (DN baseDN : baseDNs)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/TrustStoreBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/TrustStoreBackend.java
index 199bf59..3451f40 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/TrustStoreBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/TrustStoreBackend.java
@@ -141,7 +141,7 @@
/** {@inheritDoc} */
@Override
- public void initializeBackend() throws ConfigException, InitializationException
+ public void openBackend() throws ConfigException, InitializationException
{
DN configEntryDN = configuration.dn();
@@ -344,9 +344,8 @@
/** {@inheritDoc} */
@Override
- public void finalizeBackend()
+ public void closeBackend()
{
- super.finalizeBackend();
configuration.addTrustStoreChangeListener(this);
try
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/BackendImpl.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/BackendImpl.java
index 78807f6..430a18b 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/BackendImpl.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/BackendImpl.java
@@ -163,7 +163,7 @@
/** {@inheritDoc} */
@Override
- public void initializeBackend()
+ public void openBackend()
throws ConfigException, InitializationException
{
if (mustOpenRootContainer())
@@ -232,9 +232,8 @@
/** {@inheritDoc} */
@Override
- public void finalizeBackend()
+ public void closeBackend()
{
- super.finalizeBackend();
cfg.removeLocalDBChangeListener(this);
// Deregister our base DNs.
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java
index 7b57683..93b2483 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendImpl.java
@@ -155,7 +155,7 @@
/** {@inheritDoc} */
@Override
- public void initializeBackend() throws ConfigException, InitializationException
+ public void openBackend() throws ConfigException, InitializationException
{
if (mustOpenRootContainer())
{
@@ -200,9 +200,8 @@
/** {@inheritDoc} */
@Override
- public void finalizeBackend()
+ public void closeBackend()
{
- super.finalizeBackend();
cfg.removePluggableChangeListener(this);
// Deregister our base DNs.
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskBackend.java
index db58b54..11619ae 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskBackend.java
@@ -231,7 +231,7 @@
/** {@inheritDoc} */
@Override
- public void initializeBackend()
+ public void openBackend()
throws ConfigException, InitializationException
{
// Create the scheduler and initialize it from the backing file.
@@ -262,9 +262,8 @@
/** {@inheritDoc} */
@Override
- public void finalizeBackend()
+ public void closeBackend()
{
- super.finalizeBackend();
currentConfig.removeTaskChangeListener(this);
try
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/BackendConfigManager.java b/opendj-server-legacy/src/main/java/org/opends/server/core/BackendConfigManager.java
index 9ca25dc..7f66dc7 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/BackendConfigManager.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/BackendConfigManager.java
@@ -1025,7 +1025,7 @@
throws ConfigException, InitializationException
{
backend.configureBackend(cfg, serverContext);
- backend.initializeBackend();
+ backend.openBackend();
}
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java b/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java
index 947d739..9a0b462 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java
@@ -2101,7 +2101,7 @@
rootDSEBackend = new RootDSEBackend();
rootDSEBackend.configureBackend(rootDSECfg, serverContext);
- rootDSEBackend.initializeBackend();
+ rootDSEBackend.openBackend();
}
@@ -2435,7 +2435,7 @@
}
rootDSEBackend = new RootDSEBackend();
rootDSEBackend.configureBackend(rootDSECfg, serverContext);
- rootDSEBackend.initializeBackend();
+ rootDSEBackend.openBackend();
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/ConfigFileHandler.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/ConfigFileHandler.java
index 3913c1b..5fe870e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/ConfigFileHandler.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/ConfigFileHandler.java
@@ -803,7 +803,7 @@
/** {@inheritDoc} */
@Override
- public void initializeBackend() throws ConfigException, InitializationException
+ public void openBackend() throws ConfigException, InitializationException
{
// No action is required, since all initialization was performed in the
// initializeConfigHandler method.
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/server/ReplicationServer.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/server/ReplicationServer.java
index 6e99523..6e634be 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/server/ReplicationServer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/server/ReplicationServer.java
@@ -473,7 +473,7 @@
try
{
changelogBackend = new ChangelogBackend(this, domainPredicate);
- changelogBackend.initializeBackend();
+ changelogBackend.openBackend();
try
{
DirectoryServer.registerBackend(changelogBackend);
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/EncodePassword.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/EncodePassword.java
index de606ed..2f744be 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/EncodePassword.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/EncodePassword.java
@@ -880,7 +880,7 @@
backend.setWritabilityMode(WritabilityMode.INTERNAL_ONLY);
try {
backend.configureBackend(backendCfg, directoryServer.getServerContext());
- backend.initializeBackend();
+ backend.openBackend();
} catch (Exception e) {
LocalizableMessage msg = ERR_CONFIG_BACKEND_CANNOT_INITIALIZE.get(className, backendCfg.dn(),
stackTraceToSingleLineString(e));
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/TestCaseUtils.java b/opendj-server-legacy/src/test/java/org/opends/server/TestCaseUtils.java
index 7dc8b64..61af898 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/TestCaseUtils.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/TestCaseUtils.java
@@ -840,7 +840,7 @@
memoryBackend = new MemoryBackend();
memoryBackend.setBackendID(backendID);
memoryBackend.setBaseDNs(new DN[] {baseDN});
- memoryBackend.initializeBackend();
+ memoryBackend.openBackend();
DirectoryServer.registerBackend(memoryBackend);
}
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/backends/ChangelogBackendTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/backends/ChangelogBackendTestCase.java
index b4dbdca..34e7d2c 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/backends/ChangelogBackendTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/backends/ChangelogBackendTestCase.java
@@ -1492,7 +1492,7 @@
memoryBackend = new MemoryBackend();
memoryBackend.setBackendID(backendId);
memoryBackend.setBaseDNs(new DN[] {baseDN});
- memoryBackend.initializeBackend();
+ memoryBackend.openBackend();
DirectoryServer.registerBackend(memoryBackend);
}
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/PluggableBackendImplTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/PluggableBackendImplTestCase.java
index e59c500..29381e4 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/PluggableBackendImplTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/PluggableBackendImplTestCase.java
@@ -115,7 +115,7 @@
testBaseDN = DN.valueOf("dc=test,dc=com");
backend = createBackend();
- backend.initializeBackend();
+ backend.openBackend();
topEntries = TestCaseUtils.makeEntries(
"dn: " + testBaseDN,
@@ -800,7 +800,7 @@
}
assertEquals(rejectedEntries.size(), 0, "No entries should be rejected");
- backend.initializeBackend();
+ backend.openBackend();
assertEquals(backend.getEntryCount(), ldifNumberOfEntries, "Not enough entries in DIT.");
}
--
Gitblit v1.10.0