From 93240e26b8bb610e87ba12194f82cfe41fafcabc Mon Sep 17 00:00:00 2001
From: jcambon <jcambon@localhost>
Date: Wed, 18 Jun 2008 08:48:26 +0000
Subject: [PATCH] New top level object in RootConfiguration.xml : "extension", that allows to create a configuration object for an extension, that does not inherit from an existing configuration object.
---
opends/src/server/org/opends/server/core/DirectoryServer.java | 72 ++++++++++++++++++++++++++++++++++++
1 files changed, 72 insertions(+), 0 deletions(-)
diff --git a/opends/src/server/org/opends/server/core/DirectoryServer.java b/opends/src/server/org/opends/server/core/DirectoryServer.java
index efbf7f0..4d108ef 100644
--- a/opends/src/server/org/opends/server/core/DirectoryServer.java
+++ b/opends/src/server/org/opends/server/core/DirectoryServer.java
@@ -56,6 +56,7 @@
import org.opends.server.api.ImportTaskListener;
import org.opends.server.api.InvokableComponent;
import org.opends.server.api.KeyManagerProvider;
+import org.opends.server.api.Extension;
import org.opends.server.api.MatchingRule;
import org.opends.server.api.MonitorProvider;
import org.opends.server.api.OrderingMatchingRule;
@@ -400,6 +401,9 @@
// The set of key manager providers registered with the server.
private ConcurrentHashMap<DN,KeyManagerProvider> keyManagerProviders;
+ // The set of extensions registered with the server.
+ private ConcurrentHashMap<DN,Extension> extensions;
+
// The set of password generators registered with the Directory Server, as a
// mapping between the DN of the associated configuration entry and the
// generator implementation.
@@ -577,6 +581,9 @@
// The key manager provider configuration manager for the Directory Server.
private KeyManagerProviderConfigManager keyManagerProviderConfigManager;
+ // The extension configuration manager for the Directory Server.
+ private ExtensionConfigManager extensionConfigManager;
+
// The set of connections that are currently established.
private LinkedHashSet<ClientConnection> establishedConnections;
@@ -896,6 +903,8 @@
directoryServer.alternateRootBindDNs = new ConcurrentHashMap<DN,DN>();
directoryServer.keyManagerProviders =
new ConcurrentHashMap<DN,KeyManagerProvider>();
+ directoryServer.extensions =
+ new ConcurrentHashMap<DN,Extension>();
directoryServer.trustManagerProviders =
new ConcurrentHashMap<DN,TrustManagerProvider>();
directoryServer.rotationPolicies =
@@ -1326,6 +1335,11 @@
keyManagerProviderConfigManager.initializeKeyManagerProviders();
+ // Initialize the extension.
+ extensionConfigManager = new ExtensionConfigManager();
+ extensionConfigManager.initializeExtensions();
+
+
// Initialize the trust manager provider.
trustManagerProviderConfigManager =
new TrustManagerProviderConfigManager();
@@ -7631,6 +7645,64 @@
/**
+ * Retrieves the set of extensions registered with the Directory
+ * Server.
+ *
+ * @return The set of extensions registered with the Directory
+ * Server.
+ */
+ public static Map<DN,Extension> getExtensions()
+ {
+ return directoryServer.extensions;
+ }
+
+
+
+ /**
+ * Retrieves the extension registered with the provided entry DN.
+ *
+ * @param providerDN The DN with which the extension is
+ * registered.
+ *
+ * @return The extension registered with the provided entry DN, or
+ * {@code null} if there is no such extension registered
+ * with the server.
+ */
+ public static Extension getExtension(DN providerDN)
+ {
+ return directoryServer.extensions.get(providerDN);
+ }
+
+
+
+ /**
+ * Registers the provided extension with the Directory Server.
+ *
+ * @param providerDN The DN with which to register the extension.
+ * @param provider The extension to register with the server.
+ */
+ public static void registerExtension(DN providerDN,
+ Extension provider)
+ {
+ directoryServer.extensions.put(providerDN, provider);
+ }
+
+
+
+ /**
+ * Deregisters the specified extension with the Directory Server.
+ *
+ * @param providerDN The DN with which the extension is
+ * registered.
+ */
+ public static void deregisterExtension(DN providerDN)
+ {
+ directoryServer.extensions.remove(providerDN);
+ }
+
+
+
+ /**
* Retrieves a set containing the names of the allowed tasks that may be
* invoked in the server.
*
--
Gitblit v1.10.0