From 614b8af248d4690345691a26884d9a93a735a518 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Thu, 24 Nov 2016 19:21:59 +0000
Subject: [PATCH] Prep work OPENDJ-3180 Remove DirectoryServer.register/deregisterBackendInitializationListener() methods
---
opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java | 27 -------------
opendj-server-legacy/src/main/java/org/opends/server/core/SubentryManager.java | 6 ++-
opendj-server-legacy/src/main/java/org/opends/server/core/GroupManager.java | 4 +-
opendj-server-legacy/src/main/java/org/opends/server/core/BackendConfigManager.java | 41 +++++++++++---------
opendj-server-legacy/src/main/java/org/opends/server/extensions/DefaultEntryCache.java | 3 +
opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java | 6 ++-
opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciListenerManager.java | 5 +-
opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerSync.java | 3 +
8 files changed, 40 insertions(+), 55 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciListenerManager.java b/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciListenerManager.java
index 25ac9d9..96a2b7a 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciListenerManager.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciListenerManager.java
@@ -316,7 +316,7 @@
}
DirectoryServer.registerInternalPlugin(plugin);
- DirectoryServer.registerBackendInitializationListener(this);
+ serverContext.getBackendConfigManager().registerLocalBackendInitializationListener(this);
DirectoryServer.registerAlertGenerator(this);
}
@@ -327,7 +327,8 @@
public void finalizeListenerManager()
{
DirectoryServer.deregisterInternalPlugin(plugin);
- DirectoryServer.deregisterBackendInitializationListener(this);
+ DirectoryServer.getInstance().getServerContext().getBackendConfigManager()
+ .deregisterLocalBackendInitializationListener(this);
DirectoryServer.deregisterAlertGenerator(this);
}
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 1a0671d..7b1f47a 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
@@ -88,8 +88,8 @@
/** The mapping between backend configuration names and backend implementations. */
private final Map<DN, Backend<? extends BackendCfg>> configuredBackends = new ConcurrentHashMap<>();
- /** The set of local backend initialization listeners. */
- private final Set<LocalBackendInitializationListener> initializationListeners = new CopyOnWriteArraySet<>();
+ /** The set of initialization listeners restricted to local backends. */
+ private final Set<LocalBackendInitializationListener> localInitializationListeners = new CopyOnWriteArraySet<>();
/** Contains all relationships between the base DNs and the backends (at the exclusion of RootDSE backend). */
private volatile Registry registry = new Registry();
@@ -656,9 +656,9 @@
*
* @param listener The listener to register.
*/
- public void registerBackendInitializationListener(LocalBackendInitializationListener listener)
+ public void registerLocalBackendInitializationListener(LocalBackendInitializationListener listener)
{
- initializationListeners.add(listener);
+ localInitializationListeners.add(listener);
}
/**
@@ -689,9 +689,9 @@
*
* @param listener The listener to deregister.
*/
- public void deregisterBackendInitializationListener(LocalBackendInitializationListener listener)
+ public void deregisterLocalBackendInitializationListener(LocalBackendInitializationListener listener)
{
- initializationListeners.remove(listener);
+ localInitializationListeners.remove(listener);
}
/**
@@ -906,7 +906,7 @@
if (backend instanceof LocalBackend<?>)
{
LocalBackend<?> localBackend = (LocalBackend<?>) backend;
- for (LocalBackendInitializationListener listener : initializationListeners)
+ for (LocalBackendInitializationListener listener : localInitializationListeners)
{
listener.performBackendPreInitializationProcessing(localBackend);
}
@@ -928,7 +928,7 @@
return false;
}
- for (LocalBackendInitializationListener listener : initializationListeners)
+ for (LocalBackendInitializationListener listener : localInitializationListeners)
{
listener.performBackendPostInitializationProcessing(localBackend);
}
@@ -1150,24 +1150,29 @@
private void deregisterBackend(DN backendDN, Backend<?> backend)
{
- if (backend instanceof LocalBackend<?>)
+ boolean isLocalBackend = backend instanceof LocalBackend<?>;
+ LocalBackend<?> localBackend = isLocalBackend ? (LocalBackend<?>) backend : null;
+ if (isLocalBackend)
{
- LocalBackend<?> localBackend = (LocalBackend<?>) backend;
- for (LocalBackendInitializationListener listener : initializationListeners)
+ for (LocalBackendInitializationListener listener : localInitializationListeners)
{
listener.performBackendPreFinalizationProcessing(localBackend);
}
+ }
- configuredBackends.remove(backendDN);
+ configuredBackends.remove(backendDN);
+
+ if (isLocalBackend)
+ {
deregisterLocalBackend(localBackend);
-
- for (LocalBackendInitializationListener listener : initializationListeners)
+ for (LocalBackendInitializationListener listener : localInitializationListeners)
{
listener.performBackendPostFinalizationProcessing(localBackend);
}
}
- else {
- throw new RuntimeException("deregisterBackend() is not yet supported for proxy backend.");
+ else
+ {
+ throw new RuntimeException("Proxy backend deregistration not implemented yet");
}
}
@@ -1181,14 +1186,14 @@
{
try
{
- for (LocalBackendInitializationListener listener : initializationListeners)
+ for (LocalBackendInitializationListener listener : localInitializationListeners)
{
listener.performBackendPreFinalizationProcessing(backend);
}
backend.finalizeBackend();
- for (LocalBackendInitializationListener listener : initializationListeners)
+ for (LocalBackendInitializationListener listener : localInitializationListeners)
{
listener.performBackendPostFinalizationProcessing(backend);
}
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 db84e6a..22b1e3b 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
@@ -82,7 +82,6 @@
import org.opends.server.api.AuthenticationPolicy;
import org.opends.server.api.Backend;
import org.opends.server.api.LocalBackend;
-import org.opends.server.api.LocalBackendInitializationListener;
import org.opends.server.api.BackupTaskListener;
import org.opends.server.api.CertificateMapper;
import org.opends.server.api.ClientConnection;
@@ -1625,32 +1624,6 @@
return directoryServer.compressedSchema;
}
- /**
- * Registers the provided local backend initialization listener with the Directory
- * Server.
- *
- * @param listener The local backend initialization listener to register with the
- * Directory Server.
- */
- public static void registerBackendInitializationListener(
- LocalBackendInitializationListener listener)
- {
- directoryServer.backendConfigManager.registerBackendInitializationListener(listener);
- }
-
- /**
- * Deregisters the provided local backend initialization listener with the Directory
- * Server.
- *
- * @param listener The backend initialization listener to deregister with
- * the Directory Server.
- */
- public static void deregisterBackendInitializationListener(
- LocalBackendInitializationListener listener)
- {
- directoryServer.backendConfigManager.deregisterBackendInitializationListener(listener);
- }
-
private void initializeRootAndAdminDataBackends() throws ConfigException, InitializationException
{
backendConfigManager.initializeBackendConfig(Arrays.asList("adminRoot", "ads-truststore"));
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/GroupManager.java b/opendj-server-legacy/src/main/java/org/opends/server/core/GroupManager.java
index 35a8240..fc1ca49 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/GroupManager.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/GroupManager.java
@@ -142,7 +142,7 @@
lock = new ReentrantReadWriteLock();
DirectoryServer.registerInternalPlugin(this);
- DirectoryServer.registerBackendInitializationListener(this);
+ serverContext.getBackendConfigManager().registerLocalBackendInitializationListener(this);
}
/**
@@ -443,7 +443,7 @@
public void finalizeGroupManager()
{
DirectoryServer.deregisterInternalPlugin(this);
- DirectoryServer.deregisterBackendInitializationListener(this);
+ serverContext.getBackendConfigManager().deregisterLocalBackendInitializationListener(this);
deregisterAllGroups();
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/SubentryManager.java b/opendj-server-legacy/src/main/java/org/opends/server/core/SubentryManager.java
index a613ac3..a42fbbf 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/SubentryManager.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/SubentryManager.java
@@ -131,7 +131,8 @@
true);
DirectoryServer.registerInternalPlugin(this);
- DirectoryServer.registerBackendInitializationListener(this);
+ DirectoryServer.getInstance().getServerContext().getBackendConfigManager()
+ .registerLocalBackendInitializationListener(this);
}
/**
@@ -143,7 +144,8 @@
// Deregister as internal plugin and
// backend initialization listener.
DirectoryServer.deregisterInternalPlugin(this);
- DirectoryServer.deregisterBackendInitializationListener(this);
+ DirectoryServer.getInstance().getServerContext().getBackendConfigManager()
+ .deregisterLocalBackendInitializationListener(this);
}
/**
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerSync.java b/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerSync.java
index e200fe2..c51402f 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerSync.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerSync.java
@@ -136,7 +136,8 @@
catch (CryptoManagerException ex) {
throw new InitializationException(ex.getMessageObject());
}
- DirectoryServer.registerBackendInitializationListener(this);
+ DirectoryServer.getInstance().getServerContext().getBackendConfigManager()
+ .registerLocalBackendInitializationListener(this);
try
{
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/DefaultEntryCache.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/DefaultEntryCache.java
index 8fd4b7d..f3d3011 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/DefaultEntryCache.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/DefaultEntryCache.java
@@ -64,7 +64,8 @@
// Register with backend initialization listener to clear cache
// entries belonging to given backend that about to go offline.
- DirectoryServer.registerBackendInitializationListener(this);
+ DirectoryServer.getInstance().getServerContext().getBackendConfigManager()
+ .registerLocalBackendInitializationListener(this);
}
@Override
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java
index 0fa85da..0ddb67b 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java
@@ -594,7 +594,8 @@
// register as an AlertGenerator
DirectoryServer.registerAlertGenerator(this);
- DirectoryServer.registerBackendInitializationListener(this);
+ DirectoryServer.getInstance().getServerContext().getBackendConfigManager()
+ .registerLocalBackendInitializationListener(this);
DirectoryServer.registerShutdownListener(this);
startPublishService();
@@ -2238,7 +2239,8 @@
}
DirectoryServer.deregisterAlertGenerator(this);
- DirectoryServer.deregisterBackendInitializationListener(this);
+ DirectoryServer.getInstance().getServerContext().getBackendConfigManager()
+ .deregisterLocalBackendInitializationListener(this);
DirectoryServer.deregisterShutdownListener(this);
// stop the ReplicationDomain
--
Gitblit v1.10.0