From 8271ebead97bf11132eb1146c836212ae456e27c Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 25 Feb 2014 13:48:08 +0000
Subject: [PATCH] Removed unnecessary use of reflection for invoking methods, aprticularly with all ConfigManagers. However, I could not do it for WorkflowElementConfigManager.
---
opendj3-server-dev/src/server/org/opends/server/core/ExtendedOperationConfigManager.java | 76 +--
opendj3-server-dev/src/snmp/src/org/opends/server/snmp/SNMPConnectionHandler.java | 5
opendj3-server-dev/src/server/org/opends/server/core/AccessControlConfigManager.java | 24 -
opendj3-server-dev/src/server/org/opends/server/core/MatchingRuleConfigManager.java | 15
opendj3-server-dev/src/server/org/opends/server/core/PasswordStorageSchemeConfigManager.java | 33 -
opendj3-server-dev/src/server/org/opends/server/core/ConnectionHandlerConfigManager.java | 116 +----
opendj3-server-dev/src/server/org/opends/server/loggers/AbstractLogger.java | 4
opendj3-server-dev/src/server/org/opends/server/core/WorkQueueConfigManager.java | 18
opendj3-server-dev/src/server/org/opends/server/core/IdentityMapperConfigManager.java | 13
opendj3-server-dev/src/server/org/opends/server/core/PasswordValidatorConfigManager.java | 22
opendj3-server-dev/src/server/org/opends/server/core/TrustManagerProviderConfigManager.java | 21
opendj3-server-dev/src/server/org/opends/server/core/KeyManagerProviderConfigManager.java | 14
opendj3-server-dev/src/server/org/opends/server/core/PasswordGeneratorConfigManager.java | 22
opendj3-server-dev/src/server/org/opends/server/core/ExtensionConfigManager.java | 14
opendj3-server-dev/src/server/org/opends/server/tools/tasks/TaskEntry.java | 20
opendj3-server-dev/src/server/org/opends/server/core/AttributeSyntaxConfigManager.java | 13
opendj3-server-dev/src/server/org/opends/server/core/GroupManager.java | 18
opendj3-server-dev/src/server/org/opends/server/core/MonitorConfigManager.java | 23
opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroup.java | 77 ---
opendj3-server-dev/src/server/org/opends/server/core/LogRotationPolicyConfigManager.java | 79 +--
opendj3-server-dev/src/server/org/opends/server/core/PluginConfigManager.java | 22
opendj3-server-dev/src/server/org/opends/server/core/AlertHandlerConfigManager.java | 30
opendj3-server-dev/src/server/org/opends/server/core/SynchronizationProviderConfigManager.java | 65 --
opendj3-server-dev/src/server/org/opends/server/core/EntryCacheConfigManager.java | 56 +-
opendj3-server-dev/src/server/org/opends/server/core/AccountStatusNotificationHandlerConfigManager.java | 72 +--
opendj3-server-dev/src/server/org/opends/server/core/CertificateMapperConfigManager.java | 14
opendj3-server-dev/src/server/org/opends/server/core/LogRetentionPolicyConfigManager.java | 80 +--
opendj3-server-dev/src/server/org/opends/server/core/SASLConfigManager.java | 15
opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyConfigManager.java | 86 +---
29 files changed, 318 insertions(+), 749 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/AccessControlConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/AccessControlConfigManager.java
index 0d38a5a..f1d9e05 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/AccessControlConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/AccessControlConfigManager.java
@@ -26,7 +26,6 @@
*/
package org.opends.server.core;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
@@ -34,6 +33,7 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.util.Utils;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationChangeListener;
@@ -47,7 +47,6 @@
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
-import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.ServerConstants.*;
@@ -426,9 +425,9 @@
* @throws InitializationException If a problem occurred while attempting to
* initialize the Access Control Handler.
*/
- private AccessControlHandler<? extends AccessControlHandlerCfg>
+ private <T extends AccessControlHandlerCfg> AccessControlHandler<T>
loadHandler(String className,
- AccessControlHandlerCfg configuration,
+ T configuration,
boolean initialize)
throws InitializationException
{
@@ -440,29 +439,18 @@
definition.getJavaClassPropertyDefinition();
Class<? extends AccessControlHandler> providerClass =
propertyDefinition.loadClass(className, AccessControlHandler.class);
- AccessControlHandler<? extends AccessControlHandlerCfg> provider =
- providerClass.newInstance();
+ AccessControlHandler<T> provider = providerClass.newInstance();
if (configuration != null)
{
- Method method = provider.getClass().getMethod(
- "initializeAccessControlHandler",
- configuration.configurationClass());
if(initialize) {
- method.invoke(provider, configuration);
+ provider.initializeAccessControlHandler(configuration);
}
}
else
{
- Method method =
- provider.getClass().getMethod("isConfigurationAcceptable",
- AccessControlHandlerCfg.class,
- List.class);
-
List<LocalizableMessage> unacceptableReasons = new ArrayList<LocalizableMessage>();
- Boolean acceptable = (Boolean) method.invoke(provider, configuration,
- unacceptableReasons);
- if (! acceptable)
+ if (!provider.isConfigurationAcceptable(configuration, unacceptableReasons))
{
String reasons = Utils.joinAsString(". ", unacceptableReasons);
// Bug: we are in a section where configuration is null
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/AccountStatusNotificationHandlerConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/AccountStatusNotificationHandlerConfigManager.java
index 393dc92..6119695 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/AccountStatusNotificationHandlerConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/AccountStatusNotificationHandlerConfigManager.java
@@ -26,17 +26,13 @@
*/
package org.opends.server.core;
-import org.forgerock.i18n.LocalizableMessage;
-import org.forgerock.util.Utils;
-
-import static org.opends.messages.ConfigMessages.*;
-import static org.opends.server.util.StaticUtils.*;
-
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.opendj.ldap.ResultCode;
+import org.forgerock.util.Utils;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
@@ -50,7 +46,9 @@
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
-import org.forgerock.opendj.ldap.ResultCode;
+
+import static org.opends.messages.ConfigMessages.*;
+import static org.opends.server.util.StaticUtils.*;
/**
* This class defines a utility that will be used to manage the set of account
@@ -141,6 +139,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationChangeAcceptable(
AccountStatusNotificationHandlerCfg configuration,
List<LocalizableMessage> unacceptableReasons
@@ -174,6 +173,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationChange(
AccountStatusNotificationHandlerCfg configuration
)
@@ -238,6 +238,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationAddAcceptable(
AccountStatusNotificationHandlerCfg configuration,
List<LocalizableMessage> unacceptableReasons
@@ -280,6 +281,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationAdd(
AccountStatusNotificationHandlerCfg configuration
)
@@ -317,6 +319,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationDeleteAcceptable(
AccountStatusNotificationHandlerCfg configuration,
List<LocalizableMessage> unacceptableReasons
@@ -331,6 +334,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationDelete(
AccountStatusNotificationHandlerCfg configuration
)
@@ -397,54 +401,32 @@
* @throws InitializationException If a problem occurred while attempting
* to initialize the notification handler.
*/
- private
- AccountStatusNotificationHandler
- <? extends AccountStatusNotificationHandlerCfg>
- loadNotificationHandler(
- String className,
- AccountStatusNotificationHandlerCfg configuration,
- boolean initialize)
- throws InitializationException
+ private <T extends AccountStatusNotificationHandlerCfg>
+ AccountStatusNotificationHandler<T> loadNotificationHandler(
+ String className, T configuration, boolean initialize)
+ throws InitializationException
{
try
{
- AccountStatusNotificationHandlerCfgDefn definition;
- ClassPropertyDefinition propertyDefinition;
- Class<? extends AccountStatusNotificationHandler> handlerClass;
- AccountStatusNotificationHandler
- <? extends AccountStatusNotificationHandlerCfg> notificationHandler;
-
- definition = AccountStatusNotificationHandlerCfgDefn.getInstance();
- propertyDefinition =
+ final AccountStatusNotificationHandlerCfgDefn definition =
+ AccountStatusNotificationHandlerCfgDefn.getInstance();
+ final ClassPropertyDefinition propertyDefinition =
definition.getJavaClassPropertyDefinition();
- handlerClass = propertyDefinition.loadClass(
- className,
- AccountStatusNotificationHandler.class
- );
- notificationHandler =
- (AccountStatusNotificationHandler
- <? extends AccountStatusNotificationHandlerCfg>)
- handlerClass.newInstance();
+ final Class<? extends AccountStatusNotificationHandler> handlerClass =
+ propertyDefinition.loadClass(className,
+ AccountStatusNotificationHandler.class);
+ final AccountStatusNotificationHandler<T> notificationHandler =
+ handlerClass.newInstance();
if (initialize)
{
- Method method = notificationHandler.getClass().getMethod(
- "initializeStatusNotificationHandler",
- configuration.configurationClass());
- method.invoke(notificationHandler, configuration);
+ notificationHandler.initializeStatusNotificationHandler(configuration);
}
else
{
- Method method =
- notificationHandler.getClass().getMethod(
- "isConfigurationAcceptable",
- AccountStatusNotificationHandlerCfg.class, List.class);
-
List<LocalizableMessage> unacceptableReasons = new ArrayList<LocalizableMessage>();
- Boolean acceptable = (Boolean) method.invoke(notificationHandler,
- configuration,
- unacceptableReasons);
- if (! acceptable)
+ if (!notificationHandler.isConfigurationAcceptable(configuration,
+ unacceptableReasons))
{
String reasons = Utils.joinAsString(". ", unacceptableReasons);
throw new InitializationException(
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/AlertHandlerConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/AlertHandlerConfigManager.java
index f339af3..4b480d6 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/AlertHandlerConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/AlertHandlerConfigManager.java
@@ -26,29 +26,27 @@
*/
package org.opends.server.core;
-import org.forgerock.i18n.LocalizableMessage;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
-import org.forgerock.util.Utils;
-
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.ResultCode;
+import org.forgerock.util.Utils;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
+import org.opends.server.admin.server.ServerManagementContext;
import org.opends.server.admin.std.meta.AlertHandlerCfgDefn;
import org.opends.server.admin.std.server.AlertHandlerCfg;
import org.opends.server.admin.std.server.RootCfg;
-import org.opends.server.admin.server.ServerManagementContext;
import org.opends.server.api.AlertHandler;
import org.opends.server.config.ConfigException;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
-import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
@@ -139,6 +137,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationAddAcceptable(AlertHandlerCfg configuration,
List<LocalizableMessage> unacceptableReasons)
{
@@ -167,6 +166,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationAdd(AlertHandlerCfg configuration)
{
ResultCode resultCode = ResultCode.SUCCESS;
@@ -213,6 +213,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationDeleteAcceptable(
AlertHandlerCfg configuration,
List<LocalizableMessage> unacceptableReasons)
@@ -227,6 +228,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationDelete(
AlertHandlerCfg configuration)
{
@@ -249,6 +251,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationChangeAcceptable(AlertHandlerCfg configuration,
List<LocalizableMessage> unacceptableReasons)
{
@@ -277,6 +280,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationChange(
AlertHandlerCfg configuration)
{
@@ -382,20 +386,12 @@
if (initialize)
{
- Method method = handler.getClass().getMethod("initializeAlertHandler",
- configuration.configurationClass());
- method.invoke(handler, configuration);
+ handler.initializeAlertHandler(configuration);
}
else
{
- Method method =
- handler.getClass().getMethod("isConfigurationAcceptable",
- AlertHandlerCfg.class, List.class);
-
List<LocalizableMessage> unacceptableReasons = new ArrayList<LocalizableMessage>();
- Boolean acceptable = (Boolean) method.invoke(handler, configuration,
- unacceptableReasons);
- if (! acceptable)
+ if (!handler.isConfigurationAcceptable(configuration, unacceptableReasons))
{
String reasons = Utils.joinAsString(". ", unacceptableReasons);
throw new InitializationException(
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/AttributeSyntaxConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/AttributeSyntaxConfigManager.java
index d895d3c..0b3f734 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/AttributeSyntaxConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/AttributeSyntaxConfigManager.java
@@ -26,7 +26,6 @@
*/
package org.opends.server.core;
-import java.lang.reflect.Method;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import java.util.ArrayList;
import java.util.List;
@@ -465,20 +464,12 @@
if (initialize)
{
- Method method = syntax.getClass().getMethod("initializeSyntax",
- configuration.configurationClass());
- method.invoke(syntax, configuration);
+ syntax.initializeSyntax(configuration);
}
else
{
- Method method = syntax.getClass().getMethod("isConfigurationAcceptable",
- AttributeSyntaxCfg.class,
- List.class);
-
List<LocalizableMessage> unacceptableReasons = new ArrayList<LocalizableMessage>();
- Boolean acceptable = (Boolean) method.invoke(syntax, configuration,
- unacceptableReasons);
- if (! acceptable)
+ if (!syntax.isConfigurationAcceptable(configuration, unacceptableReasons))
{
String reasons = Utils.joinAsString(". ", unacceptableReasons);
throw new InitializationException(
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/CertificateMapperConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/CertificateMapperConfigManager.java
index 9ef5057..dc7c19c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/CertificateMapperConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/CertificateMapperConfigManager.java
@@ -30,7 +30,6 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.util.Utils;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
@@ -398,21 +397,12 @@
if (initialize)
{
- Method method =
- mapper.getClass().getMethod("initializeCertificateMapper",
- configuration.configurationClass());
- method.invoke(mapper, configuration);
+ mapper.initializeCertificateMapper(configuration);
}
else
{
- Method method = mapper.getClass().getMethod("isConfigurationAcceptable",
- CertificateMapperCfg.class,
- List.class);
-
List<LocalizableMessage> unacceptableReasons = new ArrayList<LocalizableMessage>();
- Boolean acceptable = (Boolean) method.invoke(mapper, configuration,
- unacceptableReasons);
- if (! acceptable)
+ if (!mapper.isConfigurationAcceptable(configuration, unacceptableReasons))
{
String reasons = Utils.joinAsString(". ", unacceptableReasons);
throw new InitializationException(
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/ConnectionHandlerConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/ConnectionHandlerConfigManager.java
index 0fe7691..6e8c541 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/ConnectionHandlerConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/ConnectionHandlerConfigManager.java
@@ -25,29 +25,22 @@
* Portions Copyright 2012-2014 ForgeRock AS.
*/
package org.opends.server.core;
-import org.forgerock.i18n.LocalizableMessage;
-
-
-import org.forgerock.i18n.slf4j.LocalizedLogger;
-import static org.opends.messages.ConfigMessages.*;
-import static org.opends.messages.CoreMessages.*;
-
-import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
-
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.AdministrationConnector;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
import org.opends.server.admin.server.ServerManagementContext;
-import org.opends.server.admin.std.meta.*;
+import org.opends.server.admin.std.meta.ConnectionHandlerCfgDefn;
import org.opends.server.admin.std.server.AdministrationConnectorCfg;
import org.opends.server.admin.std.server.ConnectionHandlerCfg;
import org.opends.server.admin.std.server.RootCfg;
@@ -57,8 +50,10 @@
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
-import org.forgerock.opendj.ldap.ResultCode;
+import static org.opends.messages.ConfigMessages.*;
+import static org.opends.messages.CoreMessages.*;
+import static org.opends.server.util.StaticUtils.*;
/**
* This class defines a utility that will be used to manage the
@@ -93,6 +88,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationAdd(
ConnectionHandlerCfg configuration) {
// Default result code.
@@ -143,6 +139,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationChange(
ConnectionHandlerCfg configuration) {
// Attempt to get the existing connection handler. This will only
@@ -217,6 +214,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationDelete(
ConnectionHandlerCfg configuration) {
@@ -330,6 +328,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationAddAcceptable(
ConnectionHandlerCfg configuration,
List<LocalizableMessage> unacceptableReasons) {
@@ -347,6 +346,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationChangeAcceptable(
ConnectionHandlerCfg configuration,
List<LocalizableMessage> unacceptableReasons) {
@@ -364,6 +364,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationDeleteAcceptable(
ConnectionHandlerCfg configuration,
List<LocalizableMessage> unacceptableReasons) {
@@ -374,24 +375,22 @@
// Load and initialize the connection handler named in the config.
- private ConnectionHandler<? extends ConnectionHandlerCfg>
- getConnectionHandler(ConnectionHandlerCfg config)
- throws ConfigException
+ private <T extends ConnectionHandlerCfg> ConnectionHandler<T> getConnectionHandler(
+ T config) throws ConfigException
{
String className = config.getJavaClass();
- ConnectionHandlerCfgDefn d =
- ConnectionHandlerCfgDefn.getInstance();
- ClassPropertyDefinition pd = d
- .getJavaClassPropertyDefinition();
-
- // Load the class and cast it to a connection handler.
- @SuppressWarnings("rawtypes")
- Class<? extends ConnectionHandler> theClass;
- ConnectionHandler<?> connectionHandler;
+ ConnectionHandlerCfgDefn d = ConnectionHandlerCfgDefn.getInstance();
+ ClassPropertyDefinition pd = d.getJavaClassPropertyDefinition();
try {
- theClass = pd.loadClass(className, ConnectionHandler.class);
- connectionHandler = theClass.newInstance();
+ @SuppressWarnings("rawtypes")
+ Class<? extends ConnectionHandler> theClass =
+ pd.loadClass(className, ConnectionHandler.class);
+ ConnectionHandler<T> connectionHandler = theClass.newInstance();
+
+ connectionHandler.initializeConnectionHandler(config);
+
+ return connectionHandler;
} catch (Exception e) {
logger.traceException(e);
@@ -399,27 +398,6 @@
className, config.dn(), stackTraceToSingleLineString(e));
throw new ConfigException(message, e);
}
-
- // Perform the necessary initialization for the connection
- // handler.
- try {
- // Determine the initialization method to use: it must take a
- // single parameter which is the exact type of the configuration
- // object.
- Method method = theClass.getMethod("initializeConnectionHandler", config
- .configurationClass());
-
- method.invoke(connectionHandler, config);
- } catch (Exception e) {
- logger.traceException(e);
-
- LocalizableMessage message = ERR_CONFIG_CONNHANDLER_CANNOT_INITIALIZE.get(
- className, config.dn(), stackTraceToSingleLineString(e));
- throw new ConfigException(message, e);
- }
-
- // The connection handler has been successfully initialized.
- return connectionHandler;
}
@@ -430,46 +408,19 @@
ConnectionHandlerCfg config,
List<LocalizableMessage> unacceptableReasons) {
String className = config.getJavaClass();
- ConnectionHandlerCfgDefn d =
- ConnectionHandlerCfgDefn.getInstance();
- ClassPropertyDefinition pd = d
- .getJavaClassPropertyDefinition();
+ ConnectionHandlerCfgDefn d = ConnectionHandlerCfgDefn.getInstance();
+ ClassPropertyDefinition pd = d.getJavaClassPropertyDefinition();
- // Load the class and cast it to a connection handler.
- ConnectionHandler<?> connectionHandler = null;
- @SuppressWarnings("rawtypes")
- Class<? extends ConnectionHandler> theClass;
try {
- connectionHandler = connectionHandlers.get(config.dn());
- theClass = pd.loadClass(className, ConnectionHandler.class);
+ ConnectionHandler<?> connectionHandler = connectionHandlers.get(config.dn());
if (connectionHandler == null) {
+ @SuppressWarnings("rawtypes")
+ Class<? extends ConnectionHandler> theClass =
+ pd.loadClass(className, ConnectionHandler.class);
connectionHandler = theClass.newInstance();
}
- } catch (Exception e) {
- logger.traceException(e);
- unacceptableReasons.add(
- ERR_CONFIG_CONNHANDLER_CANNOT_INITIALIZE.get(
- className, config.dn(), stackTraceToSingleLineString(e)));
- return false;
- }
-
- // Perform the necessary initialization for the connection
- // handler.
- try {
- // Determine the initialization method to use: it must take a
- // single parameter which is the exact type of the configuration
- // object.
- Method method = theClass.getMethod("isConfigurationAcceptable",
- ConnectionHandlerCfg.class,
- List.class);
- Boolean acceptable = (Boolean) method.invoke(connectionHandler, config,
- unacceptableReasons);
-
- if (! acceptable)
- {
- return false;
- }
+ return connectionHandler.isConfigurationAcceptable(config, unacceptableReasons);
} catch (Exception e) {
logger.traceException(e);
@@ -477,8 +428,5 @@
className, config.dn(), stackTraceToSingleLineString(e)));
return false;
}
-
- // The class is valid as far as we can tell.
- return true;
}
}
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/EntryCacheConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/EntryCacheConfigManager.java
index 1f671a8..f3db338 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/EntryCacheConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/EntryCacheConfigManager.java
@@ -26,11 +26,11 @@
*/
package org.opends.server.core;
-import java.lang.reflect.Method;
import java.util.*;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.util.Utils;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
@@ -51,7 +51,6 @@
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
-import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.messages.ExtensionMessages.*;
@@ -71,12 +70,12 @@
private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
// The default entry cache.
- private DefaultEntryCache _defaultEntryCache = null;
+ private DefaultEntryCache _defaultEntryCache;
// The entry cache order map sorted by the cache level.
- private SortedMap<Integer, EntryCache<? extends
- EntryCacheCfg>> cacheOrderMap = new TreeMap<Integer,
- EntryCache<? extends EntryCacheCfg>>();
+ @SuppressWarnings("rawtypes")
+ private SortedMap<Integer, EntryCache> cacheOrderMap =
+ new TreeMap<Integer, EntryCache>();
// The entry cache name to level map.
private HashMap<String, Integer>
@@ -144,8 +143,7 @@
// Default entry cache should be already installed with
// <CODE>initializeDefaultEntryCache()</CODE> method so
- // that there will be one even if we encounter a problem
- // later.
+ // that there will be one even if we encounter a problem later.
// Register as an add and delete listener with the root configuration so we
// can be notified if any entry cache entry is added or removed.
@@ -233,6 +231,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationChangeAcceptable(
EntryCacheCfg configuration,
List<LocalizableMessage> unacceptableReasons
@@ -275,6 +274,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationChange(
EntryCacheCfg configuration
)
@@ -326,7 +326,7 @@
}
// Push any changes made to the cache order map.
- _defaultEntryCache.setCacheOrder(cacheOrderMap);
+ setCacheOrder(cacheOrderMap);
// At this point, new configuration is enabled...
// If the current entry cache is already enabled then we don't do
@@ -364,6 +364,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationAddAcceptable(
EntryCacheCfg configuration,
List<LocalizableMessage> unacceptableReasons
@@ -407,6 +408,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationAdd(
EntryCacheCfg configuration
)
@@ -443,6 +445,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationDeleteAcceptable(
EntryCacheCfg configuration,
List<LocalizableMessage> unacceptableReasons
@@ -458,6 +461,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationDelete(
EntryCacheCfg configuration
)
@@ -490,7 +494,7 @@
cacheNameToLevelMap.remove(configuration.dn().toNormalizedString());
// Push any changes made to the cache order map.
- _defaultEntryCache.setCacheOrder(cacheOrderMap);
+ setCacheOrder(cacheOrderMap);
entryCache = null;
}
@@ -537,7 +541,7 @@
configuration.getCacheLevel());
// Push any changes made to the cache order map.
- _defaultEntryCache.setCacheOrder(cacheOrderMap);
+ setCacheOrder(cacheOrderMap);
// Install and register the monitor for this cache.
EntryCacheMonitorProvider monitor =
@@ -557,6 +561,11 @@
DirectoryServer.registerMonitorProvider(monitor);
}
+ @SuppressWarnings({ "rawtypes", "unchecked" })
+ private void setCacheOrder(SortedMap<Integer, EntryCache> cacheOrderMap)
+ {
+ _defaultEntryCache.setCacheOrder((SortedMap) cacheOrderMap);
+ }
/**
* Loads the specified class, instantiates it as an entry cache, and
@@ -574,17 +583,16 @@
* @throws InitializationException If a problem occurred while attempting
* to initialize the entry cache.
*/
- private EntryCache<? extends EntryCacheCfg> loadEntryCache(
+ private <T extends EntryCacheCfg> EntryCache<T> loadEntryCache(
String className,
- EntryCacheCfg configuration,
+ T configuration,
boolean initialize
)
throws InitializationException
{
- EntryCache<?> entryCache = null;
-
// If we this entry cache is already installed and active it
// should be present in the current cache order map, use it.
+ EntryCache<T> entryCache = null;
if (!cacheOrderMap.isEmpty()) {
entryCache = cacheOrderMap.get(configuration.getCacheLevel());
}
@@ -595,13 +603,13 @@
ClassPropertyDefinition propertyDefinition = definition
.getJavaClassPropertyDefinition();
@SuppressWarnings("unchecked")
- Class<? extends EntryCache<?>> cacheClass =
- (Class<? extends EntryCache<?>>) propertyDefinition
+ Class<? extends EntryCache<T>> cacheClass =
+ (Class<? extends EntryCache<T>>) propertyDefinition
.loadClass(className, EntryCache.class);
// If there is some entry cache instance already initialized work with
// it instead of creating a new one unless explicit init is requested.
- EntryCache<? extends EntryCacheCfg> cache;
+ EntryCache<T> cache;
if (initialize || (entryCache == null)) {
cache = cacheClass.newInstance();
} else {
@@ -610,23 +618,15 @@
if (initialize)
{
- Method method = cache.getClass().getMethod("initializeEntryCache",
- configuration.configurationClass());
- method.invoke(cache, configuration);
+ cache.initializeEntryCache(configuration);
}
// This will check if configuration is acceptable on disabled
// and uninitialized cache instance that has no "acceptable"
// change listener registered to invoke and verify on its own.
else if (!configuration.isEnabled())
{
- Method method = cache.getClass().getMethod("isConfigurationAcceptable",
- EntryCacheCfg.class,
- List.class);
-
List<LocalizableMessage> unacceptableReasons = new ArrayList<LocalizableMessage>();
- Boolean acceptable = (Boolean) method.invoke(cache, configuration,
- unacceptableReasons);
- if (! acceptable)
+ if (!cache.isConfigurationAcceptable(configuration, unacceptableReasons))
{
String buffer = Utils.joinAsString(". ", unacceptableReasons);
throw new InitializationException(
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/ExtendedOperationConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/ExtendedOperationConfigManager.java
index b77f96c..8d38199 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/ExtendedOperationConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/ExtendedOperationConfigManager.java
@@ -25,36 +25,30 @@
* Portions Copyright 2014 ForgeRock AS
*/
package org.opends.server.core;
-import org.forgerock.i18n.LocalizableMessage;
-
-
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
-import java.lang.reflect.Method;
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.ClassPropertyDefinition;
-import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.server.ConfigurationAddListener;
+import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
import org.opends.server.admin.server.ServerManagementContext;
+import org.opends.server.admin.std.meta.ExtendedOperationHandlerCfgDefn;
import org.opends.server.admin.std.server.ExtendedOperationHandlerCfg;
import org.opends.server.admin.std.server.RootCfg;
-import org.opends.server.admin.std.meta.ExtendedOperationHandlerCfgDefn;
import org.opends.server.api.ExtendedOperationHandler;
import org.opends.server.config.ConfigException;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
-import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.ConfigMessages.*;
-
-import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
-
-
+import static org.opends.server.util.StaticUtils.*;
/**
* This class defines a utility that will be used to manage the set of extended
@@ -140,6 +134,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationDelete(
ExtendedOperationHandlerCfg configuration)
{
@@ -162,6 +157,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationChangeAcceptable(
ExtendedOperationHandlerCfg configuration,
List<LocalizableMessage> unacceptableReasons)
@@ -178,6 +174,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationChange(
ExtendedOperationHandlerCfg configuration)
{
@@ -243,6 +240,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationAddAcceptable(
ExtendedOperationHandlerCfg configuration,
List<LocalizableMessage> unacceptableReasons)
@@ -253,6 +251,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationAdd(
ExtendedOperationHandlerCfg configuration)
{
@@ -304,6 +303,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationDeleteAcceptable(
ExtendedOperationHandlerCfg configuration,
List<LocalizableMessage> unacceptableReasons)
@@ -318,35 +318,24 @@
{
String className = config.getJavaClass();
ExtendedOperationHandlerCfgDefn d =
- ExtendedOperationHandlerCfgDefn.getInstance();
- ClassPropertyDefinition pd = d
- .getJavaClassPropertyDefinition();
-
- // Load the class and cast it to an extended operation handler.
- Class<? extends ExtendedOperationHandler> theClass;
- ExtendedOperationHandler extendedOperationHandler;
+ ExtendedOperationHandlerCfgDefn.getInstance();
+ ClassPropertyDefinition pd = d.getJavaClassPropertyDefinition();
try
{
- theClass = pd.loadClass(className, ExtendedOperationHandler.class);
- extendedOperationHandler = theClass.newInstance();
+ Class<? extends ExtendedOperationHandler> theClass =
+ pd.loadClass(className, ExtendedOperationHandler.class);
+ ExtendedOperationHandler extendedOperationHandler = theClass.newInstance();
- // Determine the initialization method to use: it must take a
- // single parameter which is the exact type of the configuration
- // object.
- Method method = theClass.getMethod("initializeExtendedOperationHandler",
- config.configurationClass());
+ extendedOperationHandler.initializeExtendedOperationHandler(config);
- method.invoke(extendedOperationHandler, config);
+ return extendedOperationHandler;
}
catch (Exception e)
{
logger.traceException(e);
throw new ConfigException(ERR_CONFIG_EXTOP_INVALID_CLASS.get(className, config.dn(), e), e);
}
-
- // The handler has been successfully initialized.
- return extendedOperationHandler;
}
@@ -358,29 +347,15 @@
{
String className = config.getJavaClass();
ExtendedOperationHandlerCfgDefn d =
- ExtendedOperationHandlerCfgDefn.getInstance();
- ClassPropertyDefinition pd = d
- .getJavaClassPropertyDefinition();
+ ExtendedOperationHandlerCfgDefn.getInstance();
+ ClassPropertyDefinition pd = d.getJavaClassPropertyDefinition();
- // Load the class and cast it to an extended operation handler.
- Class<? extends ExtendedOperationHandler> theClass;
try {
- theClass = pd.loadClass(className, ExtendedOperationHandler.class);
+ Class<? extends ExtendedOperationHandler> theClass =
+ pd.loadClass(className, ExtendedOperationHandler.class);
ExtendedOperationHandler extOpHandler = theClass.newInstance();
- // Determine the initialization method to use: it must take a
- // single parameter which is the exact type of the configuration
- // object.
- Method method = theClass.getMethod("isConfigurationAcceptable",
- ExtendedOperationHandlerCfg.class,
- List.class);
- Boolean acceptable = (Boolean) method.invoke(extOpHandler, config,
- unacceptableReasons);
-
- if (! acceptable)
- {
- return false;
- }
+ return extOpHandler.isConfigurationAcceptable(config, unacceptableReasons);
}
catch (Exception e)
{
@@ -388,9 +363,6 @@
unacceptableReasons.add(ERR_CONFIG_EXTOP_INVALID_CLASS.get(className, config.dn(), e));
return false;
}
-
- // The class is valid as far as we can tell.
- return true;
}
}
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/ExtensionConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/ExtensionConfigManager.java
index fde666f..47c09be 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/ExtensionConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/ExtensionConfigManager.java
@@ -30,7 +30,6 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.util.Utils;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
@@ -395,21 +394,12 @@
if (initialize)
{
- Method method = extension.getClass().getMethod(
- "initializeExtension", configuration.configurationClass());
- method.invoke(extension, configuration);
+ extension.initializeExtension(configuration);
}
else
{
- Method method =
- extension.getClass().getMethod("isConfigurationAcceptable",
- ExtensionCfg.class,
- List.class);
-
List<LocalizableMessage> unacceptableReasons = new ArrayList<LocalizableMessage>();
- Boolean acceptable = (Boolean) method.invoke(extension, configuration,
- unacceptableReasons);
- if (! acceptable)
+ if (!extension.isConfigurationAcceptable(configuration, unacceptableReasons))
{
String reasons = Utils.joinAsString(". ", unacceptableReasons);
throw new InitializationException(
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/GroupManager.java b/opendj3-server-dev/src/server/org/opends/server/core/GroupManager.java
index 2e288f1..8abc45a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/GroupManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/GroupManager.java
@@ -26,7 +26,6 @@
*/
package org.opends.server.core;
-import java.lang.reflect.Method;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.locks.ReentrantReadWriteLock;
@@ -451,25 +450,16 @@
if (initialize)
{
- Method method = group.getClass().getMethod(
- "initializeGroupImplementation", configuration.configurationClass());
- method.invoke(group, configuration);
+ group.initializeGroupImplementation(configuration);
}
else
{
- Method method = group.getClass().getMethod("isConfigurationAcceptable",
- GroupImplementationCfg.class,
- List.class);
-
List<LocalizableMessage> unacceptableReasons = new ArrayList<LocalizableMessage>();
- Boolean acceptable = (Boolean) method.invoke(group, configuration,
- unacceptableReasons);
- if (! acceptable)
+ if (!group.isConfigurationAcceptable(configuration, unacceptableReasons))
{
String reason = Utils.joinAsString(". ", unacceptableReasons);
- LocalizableMessage message = ERR_CONFIG_GROUP_CONFIG_NOT_ACCEPTABLE.get(
- configuration.dn(), reason);
- throw new InitializationException(message);
+ throw new InitializationException(ERR_CONFIG_GROUP_CONFIG_NOT_ACCEPTABLE.get(
+ configuration.dn(), reason));
}
}
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/IdentityMapperConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/IdentityMapperConfigManager.java
index 55c110a..d92045b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/IdentityMapperConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/IdentityMapperConfigManager.java
@@ -30,7 +30,6 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.util.Utils;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
@@ -408,20 +407,12 @@
if (initialize)
{
- Method method = mapper.getClass().getMethod("initializeIdentityMapper",
- configuration.configurationClass());
- method.invoke(mapper, configuration);
+ mapper.initializeIdentityMapper(configuration);
}
else
{
- Method method = mapper.getClass().getMethod("isConfigurationAcceptable",
- IdentityMapperCfg.class,
- List.class);
-
List<LocalizableMessage> unacceptableReasons = new ArrayList<LocalizableMessage>();
- Boolean acceptable = (Boolean) method.invoke(mapper, configuration,
- unacceptableReasons);
- if (! acceptable)
+ if (!mapper.isConfigurationAcceptable(configuration, unacceptableReasons))
{
String reasons = Utils.joinAsString(". ", unacceptableReasons);
throw new InitializationException(
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/KeyManagerProviderConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/KeyManagerProviderConfigManager.java
index 624f2ae..cb6dd3e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/KeyManagerProviderConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/KeyManagerProviderConfigManager.java
@@ -30,7 +30,6 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.util.Utils;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
@@ -397,21 +396,12 @@
if (initialize)
{
- Method method = provider.getClass().getMethod(
- "initializeKeyManagerProvider", configuration.configurationClass());
- method.invoke(provider, configuration);
+ provider.initializeKeyManagerProvider(configuration);
}
else
{
- Method method =
- provider.getClass().getMethod("isConfigurationAcceptable",
- KeyManagerProviderCfg.class,
- List.class);
-
List<LocalizableMessage> unacceptableReasons = new ArrayList<LocalizableMessage>();
- Boolean acceptable = (Boolean) method.invoke(provider, configuration,
- unacceptableReasons);
- if (! acceptable)
+ if (!provider.isConfigurationAcceptable(configuration, unacceptableReasons))
{
String reasons = Utils.joinAsString(". ", unacceptableReasons);
throw new InitializationException(
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/LogRetentionPolicyConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/LogRetentionPolicyConfigManager.java
index 7d8d02d..8fd0ce7 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/LogRetentionPolicyConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/LogRetentionPolicyConfigManager.java
@@ -25,11 +25,16 @@
* Portions Copyright 2014 ForgeRock AS
*/
package org.opends.server.core;
-import org.forgerock.i18n.LocalizableMessage;
+
+import java.util.ArrayList;
+import java.util.List;
import org.opends.server.admin.std.server.LogRetentionPolicyCfg;
import org.opends.server.admin.std.server.RootCfg;
import org.opends.server.admin.std.meta.LogRetentionPolicyCfgDefn;
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ServerManagementContext;
import org.opends.server.admin.server.ConfigurationChangeListener;
@@ -37,20 +42,12 @@
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.types.InitializationException;
import org.opends.server.types.ConfigChangeResult;
-import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.loggers.RetentionPolicy;
import org.opends.server.config.ConfigException;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
import static org.opends.messages.ConfigMessages.*;
-
import static org.opends.server.util.StaticUtils.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.lang.reflect.Method;
-import java.lang.reflect.InvocationTargetException;
-
/**
* This class defines a utility that will be used to manage the set of
* log retention policies used in the Directory Server. It will perform the
@@ -98,6 +95,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationAddAcceptable(
LogRetentionPolicyCfg configuration,
List<LocalizableMessage> unacceptableReasons)
@@ -108,6 +106,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationDeleteAcceptable(
LogRetentionPolicyCfg configuration,
List<LocalizableMessage> unacceptableReasons)
@@ -119,6 +118,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationAdd(LogRetentionPolicyCfg config)
{
// Default result code.
@@ -150,6 +150,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationDelete(
LogRetentionPolicyCfg config)
{
@@ -175,6 +176,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationChangeAcceptable(
LogRetentionPolicyCfg configuration,
List<LocalizableMessage> unacceptableReasons)
@@ -185,6 +187,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationChange(
LogRetentionPolicyCfg configuration)
{
@@ -209,69 +212,40 @@
{
String className = config.getJavaClass();
LogRetentionPolicyCfgDefn d = LogRetentionPolicyCfgDefn.getInstance();
- ClassPropertyDefinition pd =
- d.getJavaClassPropertyDefinition();
- // Load the class and cast it to a RetentionPolicy.
- Class<? extends RetentionPolicy> theClass;
+ ClassPropertyDefinition pd = d.getJavaClassPropertyDefinition();
try {
- theClass = pd.loadClass(className, RetentionPolicy.class);
- theClass.newInstance();
+ Class<? extends RetentionPolicy> theClass =
+ pd.loadClass(className, RetentionPolicy.class);
+ // Explicitly cast to check that implementation implements the correct interface.
+ RetentionPolicy retentionPolicy = theClass.newInstance();
+ // next line is here to ensure that eclipse does not remove the cast in the line above
+ retentionPolicy.hashCode();
+ return true;
} catch (Exception e) {
unacceptableReasons.add(
ERR_CONFIG_RETENTION_POLICY_INVALID_CLASS.get(className, config.dn(), e));
return false;
}
- // Check that the implementation class implements the correct interface.
- try {
- // Determine the initialization method to use: it must take a
- // single parameter which is the exact type of the configuration
- // object.
- theClass.getMethod("initializeLogRetentionPolicy", config
- .configurationClass());
- } catch (Exception e) {
- unacceptableReasons.add(
- ERR_CONFIG_RETENTION_POLICY_INVALID_CLASS.get(className, config.dn(), e));
- return false;
- }
- // The class is valid as far as we can tell.
- return true;
}
private RetentionPolicy getRetentionPolicy(LogRetentionPolicyCfg config)
throws ConfigException {
String className = config.getJavaClass();
LogRetentionPolicyCfgDefn d = LogRetentionPolicyCfgDefn.getInstance();
- ClassPropertyDefinition pd =
- d.getJavaClassPropertyDefinition();
- // Load the class and cast it to a RetentionPolicy.
- Class<? extends RetentionPolicy> theClass;
- RetentionPolicy RetentionPolicy;
+ ClassPropertyDefinition pd = d.getJavaClassPropertyDefinition();
try {
- theClass = pd.loadClass(className, RetentionPolicy.class);
- RetentionPolicy = theClass.newInstance();
+ Class<? extends RetentionPolicy> theClass =
+ pd.loadClass(className, RetentionPolicy.class);
+ RetentionPolicy retentionPolicy = theClass.newInstance();
- // Determine the initialization method to use: it must take a
- // single parameter which is the exact type of the configuration
- // object.
- Method method = theClass.getMethod("initializeLogRetentionPolicy", config
- .configurationClass());
- method.invoke(RetentionPolicy, config);
- }
- catch (InvocationTargetException ite)
- {
- // Rethrow the exceptions thrown be the invoked method.
- Throwable e = ite.getTargetException();
- LocalizableMessage message = ERR_CONFIG_RETENTION_POLICY_INVALID_CLASS.get(
- className, config.dn(), stackTraceToSingleLineString(e));
- throw new ConfigException(message, e);
+ retentionPolicy.initializeLogRetentionPolicy(config);
+
+ return retentionPolicy;
} catch (Exception e) {
LocalizableMessage message = ERR_CONFIG_RETENTION_POLICY_INVALID_CLASS.get(
className, config.dn(), e);
throw new ConfigException(message, e);
}
-
- // The connection handler has been successfully initialized.
- return RetentionPolicy;
}
}
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/LogRotationPolicyConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/LogRotationPolicyConfigManager.java
index 45ca251..95a3b7e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/LogRotationPolicyConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/LogRotationPolicyConfigManager.java
@@ -25,8 +25,12 @@
* Portions Copyright 2014 ForgeRock AS
*/
package org.opends.server.core;
-import org.forgerock.i18n.LocalizableMessage;
+import java.util.ArrayList;
+import java.util.List;
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.loggers.RotationPolicy;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
@@ -38,19 +42,11 @@
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.types.InitializationException;
import org.opends.server.types.ConfigChangeResult;
-import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.config.ConfigException;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
import static org.opends.messages.ConfigMessages.*;
-
import static org.opends.server.util.StaticUtils.*;
-import java.util.List;
-import java.util.ArrayList;
-import java.lang.reflect.Method;
-import java.lang.reflect.InvocationTargetException;
-
/**
* This class defines a utility that will be used to manage the set of
* log rotation policies used in the Directory Server. It will perform the
@@ -98,6 +94,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationAddAcceptable(
LogRotationPolicyCfg configuration,
List<LocalizableMessage> unacceptableReasons)
@@ -108,6 +105,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationDeleteAcceptable(
LogRotationPolicyCfg configuration,
List<LocalizableMessage> unacceptableReasons)
@@ -119,6 +117,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationAdd(LogRotationPolicyCfg config)
{
// Default result code.
@@ -150,6 +149,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationDelete(
LogRotationPolicyCfg config)
{
@@ -175,6 +175,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationChangeAcceptable(
LogRotationPolicyCfg configuration,
List<LocalizableMessage> unacceptableReasons)
@@ -185,6 +186,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationChange(
LogRotationPolicyCfg configuration)
{
@@ -209,68 +211,39 @@
{
String className = config.getJavaClass();
LogRotationPolicyCfgDefn d = LogRotationPolicyCfgDefn.getInstance();
- ClassPropertyDefinition pd =
- d.getJavaClassPropertyDefinition();
- // Load the class and cast it to a RotationPolicy.
- Class<? extends RotationPolicy> theClass;
+ ClassPropertyDefinition pd = d.getJavaClassPropertyDefinition();
try {
- theClass = pd.loadClass(className, RotationPolicy.class);
- theClass.newInstance();
+ Class<? extends RotationPolicy> theClass =
+ pd.loadClass(className, RotationPolicy.class);
+ // Explicitly cast to check that implementation implements the correct interface.
+ RotationPolicy retentionPolicy = theClass.newInstance();
+ // next line is here to ensure that eclipse does not remove the cast in the line above
+ retentionPolicy.hashCode();
+ return true;
} catch (Exception e) {
unacceptableReasons.add(
ERR_CONFIG_ROTATION_POLICY_INVALID_CLASS.get(className, config.dn(), e));
return false;
}
- // Check that the implementation class implements the correct interface.
- try {
- // Determine the initialization method to use: it must take a
- // single parameter which is the exact type of the configuration
- // object.
- theClass.getMethod("initializeLogRotationPolicy", config
- .configurationClass());
- } catch (Exception e) {
- unacceptableReasons.add(
- ERR_CONFIG_ROTATION_POLICY_INVALID_CLASS.get(className, config.dn(), e));
- return false;
- }
- // The class is valid as far as we can tell.
- return true;
}
private RotationPolicy getRotationPolicy(LogRotationPolicyCfg config)
throws ConfigException {
String className = config.getJavaClass();
LogRotationPolicyCfgDefn d = LogRotationPolicyCfgDefn.getInstance();
- ClassPropertyDefinition pd =
- d.getJavaClassPropertyDefinition();
- // Load the class and cast it to a RotationPolicy.
- Class<? extends RotationPolicy> theClass;
- RotationPolicy rotationPolicy;
+ ClassPropertyDefinition pd = d.getJavaClassPropertyDefinition();
try {
- theClass = pd.loadClass(className, RotationPolicy.class);
- rotationPolicy = theClass.newInstance();
+ Class<? extends RotationPolicy> theClass =
+ pd.loadClass(className, RotationPolicy.class);
+ RotationPolicy rotationPolicy = theClass.newInstance();
- // Determine the initialization method to use: it must take a
- // single parameter which is the exact type of the configuration
- // object.
- Method method = theClass.getMethod("initializeLogRotationPolicy", config
- .configurationClass());
- method.invoke(rotationPolicy, config);
- }
- catch (InvocationTargetException ite)
- {
- // Rethrow the exceptions thrown be the invoked method.
- Throwable e = ite.getTargetException();
- LocalizableMessage message = ERR_CONFIG_ROTATION_POLICY_INVALID_CLASS.get(
- className, config.dn(), stackTraceToSingleLineString(e));
- throw new ConfigException(message, e);
+ rotationPolicy.initializeLogRotationPolicy(config);
+
+ return rotationPolicy;
} catch (Exception e) {
LocalizableMessage message = ERR_CONFIG_ROTATION_POLICY_INVALID_CLASS.get(
className, config.dn(), e);
throw new ConfigException(message, e);
}
-
- // The connection handler has been successfully initialized.
- return rotationPolicy;
}
}
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/MatchingRuleConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/MatchingRuleConfigManager.java
index 4ab2fc0..b846240 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/MatchingRuleConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/MatchingRuleConfigManager.java
@@ -30,7 +30,6 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.util.Utils;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
@@ -596,22 +595,12 @@
if (initialize)
{
- Method method = factory.getClass().getMethod(
- "initializeMatchingRule", configuration.configurationClass());
- method.invoke(factory, configuration);
+ factory.initializeMatchingRule(configuration);
}
else
{
- Method method =
- factory.getClass().getMethod("isConfigurationAcceptable",
- MatchingRuleCfg.class,
- List.class);
-
List<LocalizableMessage> unacceptableReasons = new ArrayList<LocalizableMessage>();
- Boolean acceptable = (Boolean) method.invoke(factory,
- configuration,
- unacceptableReasons);
- if (! acceptable)
+ if (!factory.isConfigurationAcceptable(configuration, unacceptableReasons))
{
String reasons = Utils.joinAsString(". ", unacceptableReasons);
throw new InitializationException(
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/MonitorConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/MonitorConfigManager.java
index b8de2c5..a4e96a6 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/MonitorConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/MonitorConfigManager.java
@@ -25,12 +25,10 @@
* Portions Copyright 2013-2014 ForgeRock AS.
*/
package org.opends.server.core;
+
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
-
-
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
@@ -370,30 +368,27 @@
* @throws InitializationException If a problem occurred while attempting to
* initialize the monitor provider.
*/
- private MonitorProvider<? extends MonitorProviderCfg>
- loadMonitor(String className, MonitorProviderCfg configuration)
+ private <T extends MonitorProviderCfg> MonitorProvider<T>
+ loadMonitor(String className, T configuration)
throws InitializationException
{
try
{
- MonitorProviderCfgDefn definition =
- MonitorProviderCfgDefn.getInstance();
+ MonitorProviderCfgDefn definition = MonitorProviderCfgDefn.getInstance();
ClassPropertyDefinition propertyDefinition =
definition.getJavaClassPropertyDefinition();
@SuppressWarnings("unchecked")
- Class<? extends MonitorProvider<?>> providerClass =
- (Class<? extends MonitorProvider<?>>) propertyDefinition
+ Class<? extends MonitorProvider<T>> providerClass =
+ (Class<? extends MonitorProvider<T>>) propertyDefinition
.loadClass(className, MonitorProvider.class);
- MonitorProvider<?> monitor = providerClass.newInstance();
+ MonitorProvider<T> monitor = providerClass.newInstance();
if (configuration != null)
{
- Method method = monitor.getClass().getMethod(
- "initializeMonitorProvider", configuration.configurationClass());
- method.invoke(monitor, configuration);
+ monitor.initializeMonitorProvider(configuration);
}
- return (MonitorProvider<? extends MonitorProviderCfg>) monitor;
+ return monitor;
}
catch (Exception e)
{
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/PasswordGeneratorConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/PasswordGeneratorConfigManager.java
index 2532e0b..ab743b9 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/PasswordGeneratorConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/PasswordGeneratorConfigManager.java
@@ -30,7 +30,6 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.util.Utils;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
@@ -371,9 +370,9 @@
* @throws InitializationException If a problem occurred while attempting to
* initialize the password generator.
*/
- private PasswordGenerator<? extends PasswordGeneratorCfg>
+ private <T extends PasswordGeneratorCfg> PasswordGenerator<T>
loadGenerator(String className,
- PasswordGeneratorCfg configuration,
+ T configuration,
boolean initialize)
throws InitializationException
{
@@ -385,27 +384,16 @@
definition.getJavaClassPropertyDefinition();
Class<? extends PasswordGenerator> generatorClass =
propertyDefinition.loadClass(className, PasswordGenerator.class);
- PasswordGenerator<? extends PasswordGeneratorCfg> generator =
- (PasswordGenerator<? extends PasswordGeneratorCfg>)
- generatorClass.newInstance();
+ PasswordGenerator<T> generator = generatorClass.newInstance();
if (initialize)
{
- Method method = generator.getClass().getMethod(
- "initializePasswordGenerator", configuration.configurationClass());
- method.invoke(generator, configuration);
+ generator.initializePasswordGenerator(configuration);
}
else
{
- Method method =
- generator.getClass().getMethod("isConfigurationAcceptable",
- PasswordGeneratorCfg.class,
- List.class);
-
List<LocalizableMessage> unacceptableReasons = new ArrayList<LocalizableMessage>();
- Boolean acceptable = (Boolean) method.invoke(generator, configuration,
- unacceptableReasons);
- if (! acceptable)
+ if (!generator.isConfigurationAcceptable(configuration, unacceptableReasons))
{
String reasons = Utils.joinAsString(". ", unacceptableReasons);
throw new InitializationException(
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyConfigManager.java
index b17fcc2..77a7052 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/PasswordPolicyConfigManager.java
@@ -26,17 +26,13 @@
*/
package org.opends.server.core;
-
-
-import static org.opends.messages.ConfigMessages.*;
-import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
-
import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
@@ -49,11 +45,10 @@
import org.opends.server.api.AuthenticationPolicyFactory;
import org.opends.server.api.SubentryChangeListener;
import org.opends.server.config.ConfigException;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.opends.server.types.*;
-import org.forgerock.opendj.ldap.ResultCode;
-
+import static org.opends.messages.ConfigMessages.*;
+import static org.opends.server.util.StaticUtils.*;
/**
* This class defines a utility that will be used to manage the set of password
@@ -194,6 +189,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationAddAcceptable(
AuthenticationPolicyCfg configuration, List<LocalizableMessage> unacceptableReason)
{
@@ -208,6 +204,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationAdd(
AuthenticationPolicyCfg configuration)
{
@@ -241,6 +238,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationDeleteAcceptable(
AuthenticationPolicyCfg configuration, List<LocalizableMessage> unacceptableReason)
{
@@ -265,6 +263,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationDelete(
AuthenticationPolicyCfg configuration)
{
@@ -291,6 +290,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void checkSubentryAddAcceptable(Entry entry) throws DirectoryException
{
if (entry.isPasswordPolicySubentry())
@@ -304,6 +304,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void checkSubentryDeleteAcceptable(Entry entry)
throws DirectoryException
{
@@ -317,6 +318,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void checkSubentryModifyAcceptable(Entry oldEntry, Entry newEntry)
throws DirectoryException
{
@@ -331,6 +333,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void checkSubentryModifyDNAcceptable(Entry oldEntry, Entry newEntry)
throws DirectoryException
{
@@ -344,6 +347,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void handleSubentryAdd(Entry entry)
{
if (entry.isPasswordPolicySubentry())
@@ -369,6 +373,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void handleSubentryDelete(Entry entry)
{
if (entry.isPasswordPolicySubentry())
@@ -382,6 +387,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void handleSubentryModify(Entry oldEntry, Entry newEntry)
{
if (oldEntry.isPasswordPolicySubentry())
@@ -414,6 +420,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public void handleSubentryModifyDN(Entry oldEntry, Entry newEntry)
{
if (oldEntry.isPasswordPolicySubentry())
@@ -445,9 +452,8 @@
// Creates and registers the provided authentication policy
// configuration.
- private void createAuthenticationPolicy(
- AuthenticationPolicyCfg policyConfiguration) throws ConfigException,
- InitializationException
+ private <T extends AuthenticationPolicyCfg> void createAuthenticationPolicy(
+ T policyConfiguration) throws ConfigException, InitializationException
{
// If this is going to be the default password policy then check the type is
// correct.
@@ -465,37 +471,17 @@
AuthenticationPolicyCfgDefn d = AuthenticationPolicyCfgDefn.getInstance();
ClassPropertyDefinition pd = d.getJavaClassPropertyDefinition();
- // Load the class and cast it to an authentication policy.
- Class<?> theClass;
- AuthenticationPolicyFactory<?> factory;
-
try
{
- theClass = pd.loadClass(className, AuthenticationPolicyFactory.class);
- factory = (AuthenticationPolicyFactory<?>) theClass.newInstance();
+ Class<AuthenticationPolicyFactory<T>> theClass =
+ (Class<AuthenticationPolicyFactory<T>>) pd.loadClass(className,
+ AuthenticationPolicyFactory.class);
+ AuthenticationPolicyFactory<T> factory = theClass.newInstance();
factory.setServerContext(serverContext);
- }
- catch (Exception e)
- {
- logger.traceException(e);
- LocalizableMessage message = ERR_CONFIG_PWPOLICY_INVALID_POLICY_CONFIG.get(
- policyConfiguration.dn(), stackTraceToSingleLineString(e));
- throw new InitializationException(message, e);
- }
+ AuthenticationPolicy policy = factory.createAuthenticationPolicy(policyConfiguration);
- // Perform the necessary initialization for the authentication policy.
- AuthenticationPolicy policy;
- try
- {
- // Determine the initialization method to use: it must take a
- // single parameter which is the exact type of the configuration
- // object.
- Method method = theClass.getMethod("createAuthenticationPolicy",
- policyConfiguration.configurationClass());
-
- policy = (AuthenticationPolicy) method.invoke(factory,
- policyConfiguration);
+ DirectoryServer.registerAuthenticationPolicy(policyConfiguration.dn(), policy);
}
catch (Exception e)
{
@@ -519,16 +505,14 @@
policyConfiguration.dn(), stackTraceToSingleLineString(e));
throw new InitializationException(message, e);
}
-
- DirectoryServer.registerAuthenticationPolicy(policyConfiguration.dn(), policy);
}
// Determines whether or not the new authentication policy configuration's
// implementation class is acceptable.
- private boolean isAuthenticationPolicyConfigurationAcceptable(
- AuthenticationPolicyCfg policyConfiguration,
+ private <T extends AuthenticationPolicyCfg> boolean isAuthenticationPolicyConfigurationAcceptable(
+ T policyConfiguration,
List<LocalizableMessage> unacceptableReasons)
{
// If this is going to be the default password policy then check the type is
@@ -551,21 +535,13 @@
// Validate the configuration.
try
{
- // Load the class and cast it to a authentication policy factory.
- Class<?> theClass;
- AuthenticationPolicyFactory<?> factory;
-
- theClass = pd.loadClass(className, AuthenticationPolicyFactory.class);
- factory = (AuthenticationPolicyFactory<?>) theClass.newInstance();
+ Class<?> theClass =
+ pd.loadClass(className, AuthenticationPolicyFactory.class);
+ AuthenticationPolicyFactory<T> factory =
+ (AuthenticationPolicyFactory<T>) theClass.newInstance();
factory.setServerContext(serverContext);
- // Determine the initialization method to use: it must take a
- // single parameter which is the exact type of the configuration
- // object.
- Method method = theClass.getMethod("isConfigurationAcceptable",
- AuthenticationPolicyCfg.class, List.class);
- return (Boolean) method.invoke(factory, policyConfiguration,
- unacceptableReasons);
+ return factory.isConfigurationAcceptable(policyConfiguration, unacceptableReasons);
}
catch (Exception e)
{
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/PasswordStorageSchemeConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/PasswordStorageSchemeConfigManager.java
index 3562e34..56f019d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/PasswordStorageSchemeConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/PasswordStorageSchemeConfigManager.java
@@ -32,7 +32,6 @@
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
@@ -388,49 +387,31 @@
* @throws InitializationException If a problem occurred while attempting
* to initialize the class.
*/
- private PasswordStorageScheme <? extends PasswordStorageSchemeCfg>
+ private <T extends PasswordStorageSchemeCfg> PasswordStorageScheme<T>
loadPasswordStorageScheme(
String className,
- PasswordStorageSchemeCfg configuration,
+ T configuration,
boolean initialize)
throws InitializationException
{
try
{
- PasswordStorageSchemeCfgDefn definition;
ClassPropertyDefinition propertyDefinition;
Class<? extends PasswordStorageScheme> schemeClass;
- PasswordStorageScheme<? extends PasswordStorageSchemeCfg>
- passwordStorageScheme;
- definition = PasswordStorageSchemeCfgDefn.getInstance();
+ PasswordStorageSchemeCfgDefn definition = PasswordStorageSchemeCfgDefn.getInstance();
propertyDefinition = definition.getJavaClassPropertyDefinition();
- schemeClass = propertyDefinition.loadClass(
- className,
- PasswordStorageScheme.class
- );
- passwordStorageScheme =
- (PasswordStorageScheme<? extends PasswordStorageSchemeCfg>)
- schemeClass.newInstance();
+ schemeClass = propertyDefinition.loadClass(className, PasswordStorageScheme.class);
+ PasswordStorageScheme<T> passwordStorageScheme = schemeClass.newInstance();
if (initialize)
{
- Method method = passwordStorageScheme.getClass().getMethod(
- "initializePasswordStorageScheme",
- configuration.configurationClass());
- method.invoke(passwordStorageScheme, configuration);
+ passwordStorageScheme.initializePasswordStorageScheme(configuration);
}
else
{
- Method method = passwordStorageScheme.getClass().getMethod(
- "isConfigurationAcceptable",
- PasswordStorageSchemeCfg.class, List.class);
-
List<LocalizableMessage> unacceptableReasons = new ArrayList<LocalizableMessage>();
- Boolean acceptable = (Boolean) method.invoke(passwordStorageScheme,
- configuration,
- unacceptableReasons);
- if (! acceptable)
+ if (!passwordStorageScheme.isConfigurationAcceptable(configuration, unacceptableReasons))
{
String reasons = Utils.joinAsString(". ", unacceptableReasons);
throw new InitializationException(
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/PasswordValidatorConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/PasswordValidatorConfigManager.java
index 365e31d..0d50dcd 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/PasswordValidatorConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/PasswordValidatorConfigManager.java
@@ -30,7 +30,6 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.util.Utils;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
@@ -384,9 +383,9 @@
* @throws InitializationException If a problem occurred while attempting to
* initialize the password validator.
*/
- private PasswordValidator<? extends PasswordValidatorCfg>
+ private <T extends PasswordValidatorCfg> PasswordValidator<T>
loadValidator(String className,
- PasswordValidatorCfg configuration,
+ T configuration,
boolean initialize)
throws InitializationException
{
@@ -398,27 +397,16 @@
definition.getJavaClassPropertyDefinition();
Class<? extends PasswordValidator> validatorClass =
propertyDefinition.loadClass(className, PasswordValidator.class);
- PasswordValidator<? extends PasswordValidatorCfg> validator =
- (PasswordValidator<? extends PasswordValidatorCfg>)
- validatorClass.newInstance();
+ PasswordValidator<T> validator = validatorClass.newInstance();
if (initialize)
{
- Method method = validator.getClass().getMethod(
- "initializePasswordValidator", configuration.configurationClass());
- method.invoke(validator, configuration);
+ validator.initializePasswordValidator(configuration);
}
else
{
- Method method =
- validator.getClass().getMethod("isConfigurationAcceptable",
- PasswordValidatorCfg.class,
- List.class);
-
List<LocalizableMessage> unacceptableReasons = new ArrayList<LocalizableMessage>();
- Boolean acceptable = (Boolean) method.invoke(validator, configuration,
- unacceptableReasons);
- if (! acceptable)
+ if (!validator.isConfigurationAcceptable(configuration, unacceptableReasons))
{
String reasons = Utils.joinAsString(". ", unacceptableReasons);
throw new InitializationException(
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/PluginConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/PluginConfigManager.java
index e0e2997..16500e4 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/PluginConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/PluginConfigManager.java
@@ -26,7 +26,6 @@
*/
package org.opends.server.core;
-import java.lang.reflect.Method;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.locks.ReentrantLock;
@@ -342,9 +341,9 @@
* @throws InitializationException If a problem occurred while attempting to
* initialize the plugin.
*/
- private DirectoryServerPlugin<? extends PluginCfg>
+ private <T extends PluginCfg> DirectoryServerPlugin<T>
loadPlugin(String className, Set<PluginType> pluginTypes,
- PluginCfg configuration, boolean initialize)
+ T configuration, boolean initialize)
throws InitializationException
{
try
@@ -355,29 +354,18 @@
definition.getJavaClassPropertyDefinition();
Class<? extends DirectoryServerPlugin> pluginClass =
propertyDefinition.loadClass(className, DirectoryServerPlugin.class);
- DirectoryServerPlugin<? extends PluginCfg> plugin =
- pluginClass.newInstance();
+ DirectoryServerPlugin<T> plugin = pluginClass.newInstance();
if (initialize)
{
plugin.initializeInternal(configuration.dn(), pluginTypes,
configuration.isInvokeForInternalOperations());
-
- Method method =
- plugin.getClass().getMethod("initializePlugin", Set.class,
- configuration.configurationClass());
- method.invoke(plugin, pluginTypes, configuration);
+ plugin.initializePlugin(pluginTypes, configuration);
}
else
{
- Method method = plugin.getClass().getMethod("isConfigurationAcceptable",
- PluginCfg.class,
- List.class);
-
List<LocalizableMessage> unacceptableReasons = new ArrayList<LocalizableMessage>();
- Boolean acceptable = (Boolean) method.invoke(plugin, configuration,
- unacceptableReasons);
- if (! acceptable)
+ if (!plugin.isConfigurationAcceptable(configuration, unacceptableReasons))
{
String buffer = Utils.joinAsString(". ", unacceptableReasons);
throw new InitializationException(
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/SASLConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/SASLConfigManager.java
index a6b5064..19e6456 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/SASLConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/SASLConfigManager.java
@@ -30,7 +30,6 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.util.Utils;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
@@ -389,22 +388,12 @@
if (initialize)
{
- Method method = handler.getClass().getMethod(
- "initializeSASLMechanismHandler",
- configuration.configurationClass());
- method.invoke(handler, configuration);
+ handler.initializeSASLMechanismHandler(configuration);
}
else
{
- Method method =
- handler.getClass().getMethod("isConfigurationAcceptable",
- SASLMechanismHandlerCfg.class,
- List.class);
-
List<LocalizableMessage> unacceptableReasons = new ArrayList<LocalizableMessage>();
- Boolean acceptable = (Boolean) method.invoke(handler, configuration,
- unacceptableReasons);
- if (! acceptable)
+ if (!handler.isConfigurationAcceptable(configuration, unacceptableReasons))
{
String reasons = Utils.joinAsString(". ", unacceptableReasons);
throw new InitializationException(
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/SynchronizationProviderConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/SynchronizationProviderConfigManager.java
index 74a8a99..03b4d29 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/SynchronizationProviderConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/SynchronizationProviderConfigManager.java
@@ -25,20 +25,14 @@
* Portions Copyright 2014 ForgeRock AS
*/
package org.opends.server.core;
-import org.forgerock.i18n.LocalizableMessage;
-
-
-import org.forgerock.i18n.slf4j.LocalizedLogger;
-import static org.opends.messages.ConfigMessages.*;
-
-import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
-
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
@@ -52,9 +46,9 @@
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
-import org.forgerock.opendj.ldap.ResultCode;
-
+import static org.opends.messages.ConfigMessages.*;
+import static org.opends.server.util.StaticUtils.*;
/**
* This class defines a utility that will be used to manage the configuration
@@ -155,6 +149,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationChange(
SynchronizationProviderCfg configuration)
{
@@ -244,6 +239,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationChangeAcceptable(
SynchronizationProviderCfg configuration,
List<LocalizableMessage> unacceptableReasons)
@@ -264,6 +260,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationAdd(
SynchronizationProviderCfg configuration)
{
@@ -322,6 +319,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationAddAcceptable(
SynchronizationProviderCfg configuration,
List<LocalizableMessage> unacceptableReasons)
@@ -421,40 +419,16 @@
String className = configuration.getJavaClass();
SynchronizationProviderCfgDefn d =
SynchronizationProviderCfgDefn.getInstance();
- ClassPropertyDefinition pd =
- d.getJavaClassPropertyDefinition();
+ ClassPropertyDefinition pd = d.getJavaClassPropertyDefinition();
- // Load the class and cast it to a synchronizationProvider.
- SynchronizationProvider provider = null;
- Class<? extends SynchronizationProvider> theClass;
try
{
- theClass = pd.loadClass(className, SynchronizationProvider.class);
- provider = theClass.newInstance();
- } catch (Exception e)
- {
- // Handle the exception: put a message in the unacceptable reasons.
- LocalizableMessage message = ERR_CONFIG_SYNCH_UNABLE_TO_LOAD_PROVIDER_CLASS.get(
- className, configuration.dn(), stackTraceToSingleLineString(e));
- unacceptableReasons.add(message);
- return false;
- }
- // Check that the implementation class implements the correct interface.
- try
- {
- // Determine the initialization method to use: it must take a
- // single parameter which is the exact type of the configuration
- // object.
- Method method = theClass.getMethod("isConfigurationAcceptable",
- SynchronizationProviderCfg.class,
- List.class);
- Boolean acceptable = (Boolean) method.invoke(provider, configuration,
- unacceptableReasons);
+ Class<? extends SynchronizationProvider> theClass =
+ pd.loadClass(className, SynchronizationProvider.class);
+ SynchronizationProvider provider = theClass.newInstance();
- if (! acceptable)
- {
- return false;
- }
+ return provider.isConfigurationAcceptable(configuration,
+ unacceptableReasons);
} catch (Exception e)
{
// Handle the exception: put a message in the unacceptable reasons.
@@ -463,14 +437,12 @@
unacceptableReasons.add(message);
return false;
}
-
- // The class is valid as far as we can tell.
- return true;
}
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationDelete(
SynchronizationProviderCfg configuration)
{
@@ -495,6 +467,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationDeleteAcceptable(
SynchronizationProviderCfg configuration,
List<LocalizableMessage> unacceptableReasons)
@@ -503,7 +476,3 @@
return true;
}
}
-
-
-
-
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/TrustManagerProviderConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/TrustManagerProviderConfigManager.java
index d4698aa..a94067a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/TrustManagerProviderConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/TrustManagerProviderConfigManager.java
@@ -30,7 +30,6 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.util.Utils;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
@@ -379,9 +378,9 @@
* @throws InitializationException If a problem occurred while attempting to
* initialize the trust manager provider.
*/
- private TrustManagerProvider loadProvider(
+ private <T extends TrustManagerProviderCfg> TrustManagerProvider<T> loadProvider(
String className,
- TrustManagerProviderCfg configuration,
+ T configuration,
boolean initialize)
throws InitializationException
{
@@ -393,26 +392,16 @@
definition.getJavaClassPropertyDefinition();
Class<? extends TrustManagerProvider> providerClass =
propertyDefinition.loadClass(className, TrustManagerProvider.class);
- TrustManagerProvider provider = providerClass.newInstance();
+ TrustManagerProvider<T> provider = providerClass.newInstance();
if (initialize)
{
- Method method = provider.getClass().getMethod(
- "initializeTrustManagerProvider",
- configuration.configurationClass());
- method.invoke(provider, configuration);
+ provider.initializeTrustManagerProvider(configuration);
}
else
{
- Method method =
- provider.getClass().getMethod("isConfigurationAcceptable",
- TrustManagerProviderCfg.class,
- List.class);
-
List<LocalizableMessage> unacceptableReasons = new ArrayList<LocalizableMessage>();
- Boolean acceptable = (Boolean) method.invoke(provider, configuration,
- unacceptableReasons);
- if (! acceptable)
+ if (!provider.isConfigurationAcceptable(configuration, unacceptableReasons))
{
String reasons = Utils.joinAsString(". ", unacceptableReasons);
throw new InitializationException(
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/WorkQueueConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/WorkQueueConfigManager.java
index 7ae6091..bd17d81 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/WorkQueueConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/WorkQueueConfigManager.java
@@ -25,23 +25,21 @@
* Portions Copyright 2014 ForgeRock AS
*/
package org.opends.server.core;
-import org.forgerock.i18n.LocalizableMessage;
-
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationChangeListener;
-import org.opends.server.admin.std.meta.WorkQueueCfgDefn;
-import org.opends.server.admin.std.server.WorkQueueCfg;
-import org.opends.server.admin.std.server.RootCfg;
import org.opends.server.admin.server.ServerManagementContext;
+import org.opends.server.admin.std.meta.WorkQueueCfgDefn;
+import org.opends.server.admin.std.server.RootCfg;
+import org.opends.server.admin.std.server.WorkQueueCfg;
import org.opends.server.api.WorkQueue;
import org.opends.server.config.ConfigException;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.InitializationException;
-import org.forgerock.opendj.ldap.ResultCode;
import static org.opends.messages.ConfigMessages.*;
import static org.opends.server.util.StaticUtils.*;
@@ -106,9 +104,7 @@
{
WorkQueue workQueue = workQueueClass.newInstance();
- Method method = workQueue.getClass().getMethod("initializeWorkQueue",
- workQueueConfig.configurationClass());
- method.invoke(workQueue, workQueueConfig);
+ workQueue.initializeWorkQueue(workQueueConfig);
return workQueue;
}
@@ -125,6 +121,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationChangeAcceptable(WorkQueueCfg configuration,
List<LocalizableMessage> unacceptableReasons)
{
@@ -138,6 +135,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationChange(WorkQueueCfg configuration)
{
ResultCode resultCode = ResultCode.SUCCESS;
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroup.java b/opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroup.java
index b6524fb..53fbc8f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroup.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroup.java
@@ -26,15 +26,12 @@
*/
package org.opends.server.core.networkgroups;
-
-
import static org.opends.messages.ConfigMessages.*;
import static org.opends.messages.CoreMessages.*;
import static org.opends.server.util.StaticUtils.*;
import static org.forgerock.util.Reject.*;
import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
@@ -47,6 +44,8 @@
import java.util.concurrent.ConcurrentHashMap;
import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.admin.ClassPropertyDefinition;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
@@ -63,19 +62,15 @@
import org.opends.server.core.Workflow;
import org.opends.server.core.WorkflowImpl;
import org.opends.server.core.WorkflowTopologyNode;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.opends.server.protocols.ldap.LDAPMessage;
import org.opends.server.types.AuthenticationType;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.InitializationException;
-import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.types.operation.PreParseOperation;
import org.opends.server.workflowelement.WorkflowElement;
-
-
/**
* This class defines the network group. A network group is used to
* categorize client connections. A network group is defined by a set of
@@ -98,6 +93,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationChange(
NetworkGroupCfg configuration)
{
@@ -163,6 +159,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationChangeAcceptable(
NetworkGroupCfg configuration, List<LocalizableMessage> unacceptableReasons)
{
@@ -183,6 +180,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationAdd(
QOSPolicyCfg configuration)
{
@@ -214,6 +212,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ConfigChangeResult applyConfigurationDelete(
QOSPolicyCfg configuration)
{
@@ -241,6 +240,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationAddAcceptable(
QOSPolicyCfg configuration, List<LocalizableMessage> unacceptableReasons)
{
@@ -253,6 +253,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public boolean isConfigurationDeleteAcceptable(
QOSPolicyCfg configuration, List<LocalizableMessage> unacceptableReasons)
{
@@ -728,27 +729,11 @@
// Validate the configuration.
try
{
- // Load the class and cast it to a network group policy factory.
- Class<? extends QOSPolicyFactory> theClass;
- QOSPolicyFactory factory;
+ Class<? extends QOSPolicyFactory> theClass =
+ pd.loadClass(className, QOSPolicyFactory.class);
+ QOSPolicyFactory factory = theClass.newInstance();
- theClass = pd.loadClass(className, QOSPolicyFactory.class);
- factory = theClass.newInstance();
-
- // Determine the initialization method to use: it must take a
- // single parameter which is the exact type of the configuration
- // object.
- Method method =
- theClass.getMethod("isConfigurationAcceptable",
- QOSPolicyCfg.class, List.class);
- Boolean acceptable =
- (Boolean) method.invoke(factory, policyConfiguration,
- unacceptableReasons);
-
- if (!acceptable)
- {
- return false;
- }
+ return factory.isConfigurationAcceptable(policyConfiguration, unacceptableReasons);
}
catch (Exception e)
{
@@ -759,9 +744,6 @@
className, policyConfiguration.dn(), stackTraceToSingleLineString(e)));
return false;
}
-
- // The configuration is valid as far as we can tell.
- return true;
}
@@ -1598,38 +1580,14 @@
QOSPolicyCfgDefn d = QOSPolicyCfgDefn.getInstance();
ClassPropertyDefinition pd = d.getJavaClassPropertyDefinition();
- // Load the class and cast it to a network group policy.
- Class<? extends QOSPolicyFactory> theClass;
- QOSPolicyFactory factory;
-
- try
- {
- theClass = pd.loadClass(className, QOSPolicyFactory.class);
- factory = theClass.newInstance();
- }
- catch (Exception e)
- {
- logger.traceException(e);
-
- LocalizableMessage message = ERR_CONFIG_NETWORK_GROUP_POLICY_CANNOT_INITIALIZE.get(
- className, policyConfiguration.dn(), stackTraceToSingleLineString(e));
- throw new InitializationException(message, e);
- }
-
- // Perform the necessary initialization for the network group
- // policy.
QOSPolicy policy;
-
try
{
- // Determine the initialization method to use: it must take a
- // single parameter which is the exact type of the configuration
- // object.
- Method method =
- theClass.getMethod("createQOSPolicy", policyConfiguration
- .configurationClass());
+ Class<? extends QOSPolicyFactory> theClass =
+ pd.loadClass(className, QOSPolicyFactory.class);
+ QOSPolicyFactory factory = theClass.newInstance();
- policy = (QOSPolicy) method.invoke(factory, policyConfiguration);
+ policy = factory.createQOSPolicy(policyConfiguration);
}
catch (Exception e)
{
@@ -1654,8 +1612,7 @@
throw new InitializationException(message, e);
}
- // The network group has been successfully initialized - so register
- // it.
+ // The network group has been successfully initialized - so register it.
QOSPolicy oldPolicy =
policies.put(policyConfiguration.dn(), policy);
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractLogger.java b/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractLogger.java
index 061beb1..65e878b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractLogger.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractLogger.java
@@ -388,9 +388,7 @@
String className = config.getJavaClass();
ClassPropertyDefinition pd = getJavaClassPropertyDefinition();
try {
- // Load the class and cast it to a LogPublisher.
P publisher = pd.loadClass(className, logPublisherClass).newInstance();
- // The class is valid as far as we can tell.
return publisher.isConfigurationAcceptable(config, unacceptableReasons);
} catch (Exception e) {
unacceptableReasons.add(invalidLoggerClassErrorMessage.get(className, config.dn(), e));
@@ -403,10 +401,8 @@
String className = config.getJavaClass();
ClassPropertyDefinition pd = getJavaClassPropertyDefinition();
try {
- // Load the class and cast it to a LogPublisher.
P logPublisher = pd.loadClass(className, logPublisherClass).newInstance();
logPublisher.initializeLogPublisher(config, serverContext);
- // The log publisher has been successfully initialized.
return logPublisher;
}
catch (Exception e)
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/tasks/TaskEntry.java b/opendj3-server-dev/src/server/org/opends/server/tools/tasks/TaskEntry.java
index 8e91897..a449bcb 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/tasks/TaskEntry.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/tasks/TaskEntry.java
@@ -24,20 +24,17 @@
* Copyright 2008-2009 Sun Microsystems, Inc.
* Portions Copyright 2014 ForgeRock AS
*/
-
package org.opends.server.tools.tasks;
import org.forgerock.i18n.LocalizableMessage;
-
+import org.opends.server.backends.task.FailedDependencyAction;
import org.opends.server.backends.task.Task;
import org.opends.server.backends.task.TaskState;
-import org.opends.server.backends.task.FailedDependencyAction;
import org.opends.server.types.Entry;
import org.opends.server.types.AttributeType;
import org.opends.server.types.Attribute;
import org.opends.server.types.AttributeValue;
import org.opends.server.types.DN;
-import static org.opends.server.util.ServerConstants.*;
import java.util.Map;
import java.util.HashMap;
@@ -53,6 +50,8 @@
import java.text.DateFormat;
import java.text.ParseException;
+import static org.opends.server.util.ServerConstants.*;
+
/**
* Processes information from a task entry from the directory and
* provides accessors for attribute information. In some cases the
@@ -369,16 +368,9 @@
if (type == null) {
Task task = getTask();
if (task != null) {
- try {
- Method m = Task.class.getMethod("getDisplayName");
- Object oName = m.invoke(task);
- if (oName instanceof LocalizableMessage) {
- mapClassToTypeName.put(className, (LocalizableMessage) oName);
- type = (LocalizableMessage) oName;
- }
- } catch (Exception e) {
- // ignore; this is best effort
- }
+ LocalizableMessage message = task.getDisplayName();
+ mapClassToTypeName.put(className, message);
+ type = message;
}
}
diff --git a/opendj3-server-dev/src/snmp/src/org/opends/server/snmp/SNMPConnectionHandler.java b/opendj3-server-dev/src/snmp/src/org/opends/server/snmp/SNMPConnectionHandler.java
index 9ec485e..9b3b424 100644
--- a/opendj3-server-dev/src/snmp/src/org/opends/server/snmp/SNMPConnectionHandler.java
+++ b/opendj3-server-dev/src/snmp/src/org/opends/server/snmp/SNMPConnectionHandler.java
@@ -256,10 +256,9 @@
URLClassLoader sysloader =
(URLClassLoader)ClassLoader.getSystemClassLoader();
Class sysclass = URLClassLoader.class;
- Method method =
- sysclass.getDeclaredMethod("addURL",new Class[]{URL.class});
+ Method method = sysclass.getDeclaredMethod("addURL", URL.class);
method.setAccessible(true);
- method.invoke(sysloader,new Object[]{ u });
+ method.invoke(sysloader, u);
}
catch (Throwable t) {
}
--
Gitblit v1.10.0