From 4360813f55b5493cbf814f3675947398c9ed9eb9 Mon Sep 17 00:00:00 2001
From: Violette Roche-Montane <violette.roche-montane@forgerock.com>
Date: Fri, 21 Mar 2014 13:02:05 +0000
Subject: [PATCH] Checkpoint OPENDJ-1343 Migrate dsconfig - Replaced current config by SDK config. - Removed JNDI and replaced it by the SDK connection. - DSConfig : - Removed unused argument InitializeServer. - Replaced initializeClientEnvironment(). (Replaced by ConfigurationFramework).
---
opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/CLIProfile.java | 8
opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/CreateSubCommandHandler.java | 71 +--
opendj3-server-dev/src/server/org/opends/server/tools/status/StatusCli.java | 8
opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/ArgumentExceptionFactory.java | 20
opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/GetPropSubCommandHandler.java | 44 +-
opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/LDAPManagementContextFactory.java | 263 ++++++++------
opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/ListSubCommandHandler.java | 37 +-
opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/SubCommandHandlerFactory.java | 22
opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/PropertyValueEditor.java | 74 ++--
opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java | 2
opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandlerTestCase.java | 36 +
opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DeleteSubCommandHandler.java | 32 +
opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/ManagementContextFactory.java | 2
opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tools/dsconfig/DsconfigLdapConnectionTestCase.java | 49 +-
opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/InternalManagementContextFactory.java | 3
opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/HelpSubCommandHandler.java | 36 +-
opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/PropertyValuePrinter.java | 14
opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/SubCommandHandler.java | 91 +++-
opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tools/dsconfig/DsconfigOptionsTestCase.java | 107 +++++
opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java | 53 +-
opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DSConfig.java | 94 +---
opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/PropertyEditorModification.java | 2
22 files changed, 590 insertions(+), 478 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/ArgumentExceptionFactory.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/ArgumentExceptionFactory.java
index df9e8bb..7aa41d6 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/ArgumentExceptionFactory.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/ArgumentExceptionFactory.java
@@ -31,16 +31,16 @@
import static org.opends.messages.DSConfigMessages.*;
import org.forgerock.i18n.LocalizableMessage;
-import org.opends.server.admin.AbstractManagedObjectDefinition;
-import org.opends.server.admin.ManagedObjectDefinition;
-import org.opends.server.admin.PropertyDefinition;
-import org.opends.server.admin.PropertyDefinitionUsageBuilder;
-import org.opends.server.admin.PropertyException;
-import org.opends.server.admin.RelationDefinition;
-import org.opends.server.admin.client.IllegalManagedObjectNameException;
-import org.opends.server.admin.client.ManagedObjectDecodingException;
-import org.opends.server.admin.client.MissingMandatoryPropertiesException;
-import org.opends.server.admin.client.OperationRejectedException;
+import org.forgerock.opendj.config.AbstractManagedObjectDefinition;
+import org.forgerock.opendj.config.ManagedObjectDefinition;
+import org.forgerock.opendj.config.PropertyDefinition;
+import org.forgerock.opendj.config.PropertyDefinitionUsageBuilder;
+import org.forgerock.opendj.config.PropertyException;
+import org.forgerock.opendj.config.RelationDefinition;
+import org.forgerock.opendj.config.client.IllegalManagedObjectNameException;
+import org.forgerock.opendj.config.client.ManagedObjectDecodingException;
+import org.forgerock.opendj.config.client.MissingMandatoryPropertiesException;
+import org.forgerock.opendj.config.client.OperationRejectedException;
import com.forgerock.opendj.cli.Argument;
import com.forgerock.opendj.cli.ArgumentException;
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/CLIProfile.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/CLIProfile.java
index abfc203..ca9ff18 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/CLIProfile.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/CLIProfile.java
@@ -34,10 +34,10 @@
import java.util.LinkedHashSet;
import java.util.Set;
-import org.opends.server.admin.AbstractManagedObjectDefinition;
-import org.opends.server.admin.ManagedObjectDefinitionResource;
-import org.opends.server.admin.RelationDefinition;
-import org.opends.server.admin.SetRelationDefinition;
+import org.forgerock.opendj.config.AbstractManagedObjectDefinition;
+import org.forgerock.opendj.config.ManagedObjectDefinitionResource;
+import org.forgerock.opendj.config.RelationDefinition;
+import org.forgerock.opendj.config.SetRelationDefinition;
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/CreateSubCommandHandler.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/CreateSubCommandHandler.java
index 5553376..666dea0 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/CreateSubCommandHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/CreateSubCommandHandler.java
@@ -34,8 +34,6 @@
import static org.opends.messages.ToolMessages.INFO_PROPERTY_PLACEHOLDER;
import static org.opends.messages.ToolMessages.INFO_TYPE_PLACEHOLDER;
import static org.opends.messages.ToolMessages.INFO_VALUE_SET_PLACEHOLDER;
-import static org.opends.server.admin.PropertyException.
-propertyIsSingleValuedException;
import static org.opends.server.tools.dsconfig.ArgumentExceptionFactory.
displayMissingMandatoryPropertyException;
import static org.opends.server.tools.dsconfig.ArgumentExceptionFactory.
@@ -55,36 +53,37 @@
import java.util.TreeSet;
import org.forgerock.i18n.LocalizableMessage;
-import org.opends.server.admin.AbstractManagedObjectDefinition;
-import org.opends.server.admin.AggregationPropertyDefinition;
-import org.opends.server.admin.Configuration;
-import org.opends.server.admin.ConfigurationClient;
-import org.opends.server.admin.DefinitionDecodingException;
-import org.opends.server.admin.InstantiableRelationDefinition;
-import org.opends.server.admin.ManagedObjectAlreadyExistsException;
-import org.opends.server.admin.ManagedObjectDefinition;
-import org.opends.server.admin.ManagedObjectNotFoundException;
-import org.opends.server.admin.ManagedObjectOption;
-import org.opends.server.admin.ManagedObjectPath;
-import org.opends.server.admin.OptionalRelationDefinition;
-import org.opends.server.admin.PropertyDefinition;
-import org.opends.server.admin.PropertyDefinitionUsageBuilder;
-import org.opends.server.admin.PropertyException;
-import org.opends.server.admin.PropertyOption;
-import org.opends.server.admin.PropertyProvider;
-import org.opends.server.admin.RelationDefinition;
-import org.opends.server.admin.SetRelationDefinition;
-import org.opends.server.admin.client.AuthorizationException;
+import org.forgerock.opendj.config.AbstractManagedObjectDefinition;
+import org.forgerock.opendj.config.AggregationPropertyDefinition;
+import org.forgerock.opendj.config.Configuration;
+import org.forgerock.opendj.config.ConfigurationClient;
+import org.forgerock.opendj.config.DefinitionDecodingException;
+import org.forgerock.opendj.config.InstantiableRelationDefinition;
+import org.forgerock.opendj.config.ManagedObjectAlreadyExistsException;
+import org.forgerock.opendj.config.ManagedObjectDefinition;
+import org.forgerock.opendj.config.ManagedObjectNotFoundException;
+import org.forgerock.opendj.config.ManagedObjectOption;
+import org.forgerock.opendj.config.ManagedObjectPath;
+import org.forgerock.opendj.config.OptionalRelationDefinition;
+import org.forgerock.opendj.config.PropertyDefinition;
+import org.forgerock.opendj.config.PropertyDefinitionUsageBuilder;
+import org.forgerock.opendj.config.PropertyException;
+import org.forgerock.opendj.config.PropertyOption;
+import org.forgerock.opendj.config.PropertyProvider;
+import org.forgerock.opendj.config.RelationDefinition;
+import org.forgerock.opendj.config.SetRelationDefinition;
+import org.forgerock.opendj.config.client.ConcurrentModificationException;
+import org.forgerock.opendj.config.client.IllegalManagedObjectNameException;
+import org.forgerock.opendj.config.client.ManagedObject;
+import org.forgerock.opendj.config.client.ManagedObjectDecodingException;
+import org.forgerock.opendj.config.client.ManagementContext;
+import org.forgerock.opendj.config.client.MissingMandatoryPropertiesException;
+import org.forgerock.opendj.config.client.OperationRejectedException;
+import org.forgerock.opendj.config.conditions.Condition;
+import org.forgerock.opendj.config.conditions.ContainsCondition;
+import org.forgerock.opendj.ldap.AuthorizationException;
+import org.forgerock.opendj.ldap.ErrorResultException;
import org.opends.server.admin.client.CommunicationException;
-import org.opends.server.admin.client.ConcurrentModificationException;
-import org.opends.server.admin.client.IllegalManagedObjectNameException;
-import org.opends.server.admin.client.ManagedObject;
-import org.opends.server.admin.client.ManagedObjectDecodingException;
-import org.opends.server.admin.client.ManagementContext;
-import org.opends.server.admin.client.MissingMandatoryPropertiesException;
-import org.opends.server.admin.client.OperationRejectedException;
-import org.opends.server.admin.condition.Condition;
-import org.opends.server.admin.condition.ContainsCondition;
import com.forgerock.opendj.cli.Argument;
import com.forgerock.opendj.cli.ArgumentException;
@@ -227,7 +226,7 @@
values.add(value);
if (values.size() > 1 && !pd.hasOption(PropertyOption.MULTI_VALUED)) {
- PropertyException e = propertyIsSingleValuedException(pd);
+ PropertyException e = PropertyException.propertyIsSingleValuedException(pd);
throw ArgumentExceptionFactory.adaptPropertyException(e, d);
}
@@ -697,7 +696,7 @@
} catch (AuthorizationException e) {
LocalizableMessage msg = ERR_DSCFG_ERROR_CREATE_AUTHZ.get(ufn);
throw new ClientException(ReturnCode.INSUFFICIENT_ACCESS_RIGHTS, msg);
- } catch (CommunicationException e) {
+ } catch (ErrorResultException e) {
LocalizableMessage msg = ERR_DSCFG_ERROR_CREATE_CE.get(ufn, e.getMessage());
throw new ClientException(ReturnCode.OTHER, msg);
}
@@ -814,7 +813,7 @@
throw new ClientException(ReturnCode.CONSTRAINT_VIOLATION, e
.getMessageObject(), e);
}
- } catch (CommunicationException e) {
+ } catch (ErrorResultException e) {
LocalizableMessage msg = ERR_DSCFG_ERROR_CREATE_CE.get(ufn, e.getMessage());
if (app.isInteractive()) {
app.println();
@@ -878,7 +877,7 @@
LocalizableMessage msg = ERR_DSCFG_ERROR_CREATE_CME.get(irelation
.getUserFriendlyName());
throw new ClientException(ReturnCode.TODO, msg);
- } catch (CommunicationException e) {
+ } catch (ErrorResultException e) {
LocalizableMessage msg = ERR_DSCFG_ERROR_CREATE_CE.get(irelation
.getUserFriendlyName(), e.getMessage());
throw new ClientException(ReturnCode.TODO, msg);
@@ -1238,7 +1237,7 @@
LocalizableMessage msg = ERR_DSCFG_ERROR_CREATE_CME.get(ufn);
throw new ClientException(ReturnCode.CONSTRAINT_VIOLATION, msg);
}
- catch (CommunicationException e)
+ catch (ErrorResultException e)
{
LocalizableMessage msg = ERR_DSCFG_ERROR_CREATE_CE.get(ufn, e
.getMessage());
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DSConfig.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DSConfig.java
index c0d8889..9a87e90 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DSConfig.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DSConfig.java
@@ -69,20 +69,19 @@
import java.util.TreeSet;
import org.forgerock.i18n.LocalizableMessage;
-import org.opends.server.admin.AttributeTypePropertyDefinition;
-import org.opends.server.admin.ClassLoaderProvider;
-import org.opends.server.admin.ClassPropertyDefinition;
-import org.opends.server.admin.InstantiableRelationDefinition;
-import org.opends.server.admin.RelationDefinition;
-import org.opends.server.admin.SetRelationDefinition;
-import org.opends.server.admin.Tag;
-import org.opends.server.admin.client.ManagedObjectDecodingException;
-import org.opends.server.admin.client.MissingMandatoryPropertiesException;
-import org.opends.server.admin.client.OperationRejectedException;
+import org.forgerock.opendj.config.ConfigurationFramework;
+import org.forgerock.opendj.config.InstantiableRelationDefinition;
+import org.forgerock.opendj.config.RelationDefinition;
+import org.forgerock.opendj.config.SetRelationDefinition;
+import org.forgerock.opendj.config.Tag;
+import org.forgerock.opendj.config.client.ManagedObjectDecodingException;
+import org.forgerock.opendj.config.client.MissingMandatoryPropertiesException;
+import org.forgerock.opendj.config.client.OperationRejectedException;
+import org.forgerock.opendj.config.server.ConfigException;
+import org.opends.server.core.DirectoryServer;
import org.opends.server.loggers.JDKLogging;
import org.opends.server.types.InitializationException;
import org.opends.server.util.BuildVersion;
-import org.opends.server.util.EmbeddedUtils;
import com.forgerock.opendj.cli.ArgumentException;
import com.forgerock.opendj.cli.ArgumentGroup;
@@ -315,7 +314,7 @@
* program.
*/
public static void main(String[] args) {
- int exitCode = main(args, true, System.out, System.err);
+ int exitCode = main(args, System.out, System.err);
if (exitCode != 0) {
System.exit(filterExitCode(exitCode));
}
@@ -330,10 +329,6 @@
* @param args
* The set of command-line arguments provided to this
* program.
- * @param initializeServer
- * Indicates whether to perform basic initialization (which
- * should not be done if the tool is running in the same
- * JVM as the server).
* @param outStream
* The output stream for standard output.
* @param errStream
@@ -341,19 +336,26 @@
* @return Zero to indicate that the program completed successfully,
* or non-zero to indicate that an error occurred.
*/
- public static int main(String[] args, boolean initializeServer,
- OutputStream outStream, OutputStream errStream) {
+ public static int main(String[] args, OutputStream outStream,
+ OutputStream errStream)
+ {
JDKLogging.disableLogging();
- DSConfig app = new DSConfig(System.in, outStream, errStream,
- new LDAPManagementContextFactory(alwaysSSL));
+ DSConfig app =
+ new DSConfig(System.in, outStream, errStream,
+ new LDAPManagementContextFactory(alwaysSSL));
app.sessionStartTime = System.currentTimeMillis();
- // Only initialize the client environment when run as a standalone
- // application.
- if (initializeServer) {
- try {
- app.initializeClientEnvironment();
- } catch (InitializationException e) {
- // TODO: is this ok as an error message?
+ /*
+ * FIXME: obtain path info from system properties.
+ */
+ if (!ConfigurationFramework.getInstance().isInitialized())
+ {
+ try
+ {
+ ConfigurationFramework.getInstance().initialize(
+ DirectoryServer.getServerRoot(), DirectoryServer.getInstanceRoot());
+ }
+ catch (ConfigException e)
+ {
app.println(e.getMessageObject());
return 1;
}
@@ -367,12 +369,6 @@
private BooleanArgument advancedModeArgument;
/**
- * Flag indicating whether or not the application environment has already been
- * initialized.
- */
- private boolean environmentInitialized = false;
-
- /**
* The factory which the application should use to retrieve its management
* context.
*/
@@ -465,32 +461,6 @@
- /**
- * Initializes core APIs for use when dsconfig will be run as a
- * standalone application.
- *
- * @throws InitializationException
- * If the core APIs could not be initialized.
- */
- private void initializeClientEnvironment() throws InitializationException {
- if (!environmentInitialized) {
- EmbeddedUtils.initializeForClientUse();
-
- // Bootstrap definition classes.
- ClassLoaderProvider.getInstance().enable();
-
- // Switch off class name validation in client.
- ClassPropertyDefinition.setAllowClassValidation(false);
-
- // Switch off attribute type name validation in client.
- AttributeTypePropertyDefinition.setCheckSchema(false);
-
- environmentInitialized = true;
- }
- }
-
-
-
/** {@inheritDoc} */
@Override
public boolean isAdvancedMode() {
@@ -1208,9 +1178,9 @@
allArguments.addAll(initialArgs);
String[] allArgsArray = allArguments.toArray(new String[]{});
- int exitCode =
- main(allArgsArray, false, getOutputStream(), getErrorStream());
- if (exitCode != 0) {
+ int exitCode = main(allArgsArray, getOutputStream(), getErrorStream());
+ if (exitCode != 0)
+ {
System.exit(filterExitCode(exitCode));
}
errPrintln();
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DeleteSubCommandHandler.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DeleteSubCommandHandler.java
index 0e4a7f7..0cb9f11 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DeleteSubCommandHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/DeleteSubCommandHandler.java
@@ -34,21 +34,22 @@
import java.util.SortedMap;
import org.forgerock.i18n.LocalizableMessage;
-import org.opends.server.admin.DefinitionDecodingException;
-import org.opends.server.admin.InstantiableRelationDefinition;
-import org.opends.server.admin.ManagedObjectDefinition;
-import org.opends.server.admin.ManagedObjectNotFoundException;
-import org.opends.server.admin.ManagedObjectPath;
-import org.opends.server.admin.OptionalRelationDefinition;
-import org.opends.server.admin.RelationDefinition;
-import org.opends.server.admin.SetRelationDefinition;
-import org.opends.server.admin.client.AuthorizationException;
+import org.forgerock.opendj.config.DefinitionDecodingException;
+import org.forgerock.opendj.config.InstantiableRelationDefinition;
+import org.forgerock.opendj.config.ManagedObjectDefinition;
+import org.forgerock.opendj.config.ManagedObjectNotFoundException;
+import org.forgerock.opendj.config.ManagedObjectPath;
+import org.forgerock.opendj.config.OptionalRelationDefinition;
+import org.forgerock.opendj.config.RelationDefinition;
+import org.forgerock.opendj.config.SetRelationDefinition;
+import org.forgerock.opendj.config.client.ConcurrentModificationException;
+import org.forgerock.opendj.config.client.ManagedObject;
+import org.forgerock.opendj.config.client.ManagedObjectDecodingException;
+import org.forgerock.opendj.config.client.ManagementContext;
+import org.forgerock.opendj.config.client.OperationRejectedException;
+import org.forgerock.opendj.ldap.AuthorizationException;
+import org.forgerock.opendj.ldap.ErrorResultException;
import org.opends.server.admin.client.CommunicationException;
-import org.opends.server.admin.client.ConcurrentModificationException;
-import org.opends.server.admin.client.ManagedObject;
-import org.opends.server.admin.client.ManagedObjectDecodingException;
-import org.opends.server.admin.client.ManagementContext;
-import org.opends.server.admin.client.OperationRejectedException;
import com.forgerock.opendj.cli.ArgumentException;
import com.forgerock.opendj.cli.BooleanArgument;
@@ -390,6 +391,9 @@
} catch (CommunicationException e) {
LocalizableMessage msg = ERR_DSCFG_ERROR_DELETE_CE.get(ufn, e.getMessage());
throw new ClientException(ReturnCode.CLIENT_SIDE_SERVER_DOWN, msg);
+ } catch (ErrorResultException e) {
+ LocalizableMessage msg = ERR_DSCFG_ERROR_DELETE_CE.get(ufn, e.getMessage());
+ throw new ClientException(ReturnCode.CLIENT_SIDE_SERVER_DOWN, msg);
}
// Add the naming arguments if they were provided.
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/GetPropSubCommandHandler.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/GetPropSubCommandHandler.java
index f7cf306..75fb03d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/GetPropSubCommandHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/GetPropSubCommandHandler.java
@@ -39,29 +39,29 @@
import java.util.SortedSet;
import org.forgerock.i18n.LocalizableMessage;
-import org.opends.server.admin.AbsoluteInheritedDefaultBehaviorProvider;
-import org.opends.server.admin.AliasDefaultBehaviorProvider;
-import org.opends.server.admin.DefaultBehaviorProviderVisitor;
-import org.opends.server.admin.DefinedDefaultBehaviorProvider;
-import org.opends.server.admin.DefinitionDecodingException;
-import org.opends.server.admin.InstantiableRelationDefinition;
-import org.opends.server.admin.ManagedObjectDefinition;
-import org.opends.server.admin.ManagedObjectNotFoundException;
-import org.opends.server.admin.ManagedObjectPath;
-import org.opends.server.admin.OptionalRelationDefinition;
-import org.opends.server.admin.PropertyDefinition;
-import org.opends.server.admin.PropertyOption;
-import org.opends.server.admin.RelationDefinition;
-import org.opends.server.admin.RelativeInheritedDefaultBehaviorProvider;
-import org.opends.server.admin.SetRelationDefinition;
-import org.opends.server.admin.SingletonRelationDefinition;
-import org.opends.server.admin.UndefinedDefaultBehaviorProvider;
-import org.opends.server.admin.client.AuthorizationException;
+import org.forgerock.opendj.config.AbsoluteInheritedDefaultBehaviorProvider;
+import org.forgerock.opendj.config.AliasDefaultBehaviorProvider;
+import org.forgerock.opendj.config.DefaultBehaviorProviderVisitor;
+import org.forgerock.opendj.config.DefinedDefaultBehaviorProvider;
+import org.forgerock.opendj.config.DefinitionDecodingException;
+import org.forgerock.opendj.config.InstantiableRelationDefinition;
+import org.forgerock.opendj.config.ManagedObjectDefinition;
+import org.forgerock.opendj.config.ManagedObjectNotFoundException;
+import org.forgerock.opendj.config.ManagedObjectPath;
+import org.forgerock.opendj.config.OptionalRelationDefinition;
+import org.forgerock.opendj.config.PropertyDefinition;
+import org.forgerock.opendj.config.PropertyOption;
+import org.forgerock.opendj.config.RelationDefinition;
+import org.forgerock.opendj.config.RelativeInheritedDefaultBehaviorProvider;
+import org.forgerock.opendj.config.SetRelationDefinition;
+import org.forgerock.opendj.config.SingletonRelationDefinition;
+import org.forgerock.opendj.config.UndefinedDefaultBehaviorProvider;
+import org.forgerock.opendj.config.client.ConcurrentModificationException;
+import org.forgerock.opendj.config.client.ManagedObject;
+import org.forgerock.opendj.config.client.ManagedObjectDecodingException;
+import org.forgerock.opendj.config.client.ManagementContext;
+import org.forgerock.opendj.ldap.AuthorizationException;
import org.opends.server.admin.client.CommunicationException;
-import org.opends.server.admin.client.ConcurrentModificationException;
-import org.opends.server.admin.client.ManagedObject;
-import org.opends.server.admin.client.ManagedObjectDecodingException;
-import org.opends.server.admin.client.ManagementContext;
import com.forgerock.opendj.cli.ArgumentException;
import com.forgerock.opendj.cli.ReturnCode;
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/HelpSubCommandHandler.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/HelpSubCommandHandler.java
index 5f3de9e..0f908d4 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/HelpSubCommandHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/HelpSubCommandHandler.java
@@ -46,24 +46,24 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageBuilder;
-import org.opends.server.admin.AbsoluteInheritedDefaultBehaviorProvider;
-import org.opends.server.admin.AbstractManagedObjectDefinition;
-import org.opends.server.admin.AdministratorAction;
-import org.opends.server.admin.AggregationPropertyDefinition;
-import org.opends.server.admin.AliasDefaultBehaviorProvider;
-import org.opends.server.admin.DefaultBehaviorProviderVisitor;
-import org.opends.server.admin.DefinedDefaultBehaviorProvider;
-import org.opends.server.admin.EnumPropertyDefinition;
-import org.opends.server.admin.ManagedObjectOption;
-import org.opends.server.admin.PropertyDefinition;
-import org.opends.server.admin.PropertyDefinitionUsageBuilder;
-import org.opends.server.admin.PropertyDefinitionVisitor;
-import org.opends.server.admin.PropertyOption;
-import org.opends.server.admin.RelativeInheritedDefaultBehaviorProvider;
-import org.opends.server.admin.StringPropertyDefinition;
-import org.opends.server.admin.Tag;
-import org.opends.server.admin.UndefinedDefaultBehaviorProvider;
-import org.opends.server.admin.PropertyException;
+import org.forgerock.opendj.config.AbsoluteInheritedDefaultBehaviorProvider;
+import org.forgerock.opendj.config.AbstractManagedObjectDefinition;
+import org.forgerock.opendj.config.AdministratorAction;
+import org.forgerock.opendj.config.AggregationPropertyDefinition;
+import org.forgerock.opendj.config.AliasDefaultBehaviorProvider;
+import org.forgerock.opendj.config.DefaultBehaviorProviderVisitor;
+import org.forgerock.opendj.config.DefinedDefaultBehaviorProvider;
+import org.forgerock.opendj.config.EnumPropertyDefinition;
+import org.forgerock.opendj.config.ManagedObjectOption;
+import org.forgerock.opendj.config.PropertyDefinition;
+import org.forgerock.opendj.config.PropertyDefinitionUsageBuilder;
+import org.forgerock.opendj.config.PropertyDefinitionVisitor;
+import org.forgerock.opendj.config.PropertyException;
+import org.forgerock.opendj.config.PropertyOption;
+import org.forgerock.opendj.config.RelativeInheritedDefaultBehaviorProvider;
+import org.forgerock.opendj.config.StringPropertyDefinition;
+import org.forgerock.opendj.config.Tag;
+import org.forgerock.opendj.config.UndefinedDefaultBehaviorProvider;
import com.forgerock.opendj.cli.ArgumentException;
import com.forgerock.opendj.cli.BooleanArgument;
import com.forgerock.opendj.cli.StringArgument;
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/InternalManagementContextFactory.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/InternalManagementContextFactory.java
index ed28b27..ac32ecd 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/InternalManagementContextFactory.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/InternalManagementContextFactory.java
@@ -26,7 +26,8 @@
*/
package org.opends.server.tools.dsconfig;
-import org.opends.server.admin.client.ManagementContext;
+import org.forgerock.opendj.config.client.ManagementContext;
+
import com.forgerock.opendj.cli.ClientException;
import com.forgerock.opendj.cli.ArgumentException;
import com.forgerock.opendj.cli.SubCommandArgumentParser;
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/LDAPManagementContextFactory.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/LDAPManagementContextFactory.java
index 276de23..5a11d86 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/LDAPManagementContextFactory.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/LDAPManagementContextFactory.java
@@ -31,30 +31,35 @@
import static com.forgerock.opendj.cli.ArgumentConstants.OPTION_LONG_HELP;
import static com.forgerock.opendj.cli.ArgumentConstants.OPTION_SHORT_HELP;
import static org.opends.messages.DSConfigMessages.*;
+import static org.forgerock.util.Utils.closeSilently;
+import java.security.GeneralSecurityException;
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
import java.util.LinkedHashSet;
+import java.util.concurrent.TimeUnit;
-import javax.naming.NamingException;
-import javax.naming.ldap.InitialLdapContext;
+import javax.naming.AuthenticationException;
import javax.net.ssl.KeyManager;
import javax.net.ssl.SSLException;
-import javax.net.ssl.SSLHandshakeException;
import javax.net.ssl.TrustManager;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageBuilder;
+import org.forgerock.opendj.config.client.ManagementContext;
+import org.forgerock.opendj.config.server.ConfigException;
+import org.forgerock.opendj.ldap.ErrorResultException;
+import org.forgerock.opendj.config.client.ldap.LDAPManagementContext;
+import org.forgerock.opendj.config.LDAPProfile;
+import org.forgerock.opendj.ldap.AuthorizationException;
+import org.forgerock.opendj.ldap.Connection;
+import org.forgerock.opendj.ldap.LDAPConnectionFactory;
+import org.forgerock.opendj.ldap.LDAPOptions;
+import org.forgerock.opendj.ldap.SSLContextBuilder;
+import org.forgerock.opendj.ldap.TrustManagers;
import org.opends.admin.ads.util.ApplicationTrustManager;
import org.opends.admin.ads.util.ConnectionUtils;
-import org.opends.admin.ads.util.OpendsCertificateException;
-import org.opends.server.admin.client.AuthenticationException;
-import org.opends.server.admin.client.AuthenticationNotSupportedException;
-import org.opends.server.admin.client.CommunicationException;
-import org.opends.server.admin.client.ManagementContext;
import org.opends.server.admin.client.cli.SecureConnectionCliArgs;
-import org.opends.server.admin.client.ldap.JNDIDirContextAdaptor;
-import org.opends.server.admin.client.ldap.LDAPConnection;
-import org.opends.server.admin.client.ldap.LDAPManagementContext;
-import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.tools.JavaPropertiesTool.ErrorReturnCode;
import org.opends.server.util.cli.LDAPConnectionConsoleInteraction;
@@ -119,10 +124,7 @@
@Override
public void close()
{
- if (context != null)
- {
- context.close();
- }
+ closeSilently(context);
}
/** {@inheritDoc} */
@@ -166,157 +168,182 @@
KeyManager keyManager = ci.getKeyManager();
// Do we have a secure connection ?
- LDAPConnection conn ;
+ Connection connection;
+ final LDAPOptions options = new LDAPOptions();
+ options.setConnectTimeout(ci.getConnectTimeout(), TimeUnit.MILLISECONDS);
+ LDAPConnectionFactory factory = null;
if (ci.useSSL())
{
- InitialLdapContext ctx;
- String ldapsUrl = "ldaps://" + hostName + ":" + portNumber;
while (true)
{
try
{
- ctx = ConnectionUtils.createLdapsContext(ldapsUrl, bindDN,
- bindPassword, ci.getConnectTimeout(), null,
- trustManager, keyManager);
- ctx.reconnect(null);
- conn = JNDIDirContextAdaptor.adapt(ctx);
+ final SSLContextBuilder sslBuilder = new SSLContextBuilder();
+ sslBuilder.setTrustManager((trustManager==null?TrustManagers.trustAll():trustManager));
+ sslBuilder.setKeyManager(keyManager);
+ sslBuilder.setProtocol(SSLContextBuilder.PROTOCOL_SSL);
+ options.setUseStartTLS(false);
+ options.setSSLContext(sslBuilder.getSSLContext());
+
+ factory = new LDAPConnectionFactory(hostName, portNumber, options);
+ connection = factory.getConnection();
+ connection.bind(bindDN, bindPassword.toCharArray());
break;
}
- catch (NamingException e)
+ catch (ErrorResultException e)
{
if (app.isInteractive()
&& ci.isTrustStoreInMemory()
- && e.getRootCause() != null
- && e.getRootCause().getCause() instanceof OpendsCertificateException)
+ && e.getCause() != null
+ && e.getCause() instanceof SSLException
+ && e.getCause().getCause() instanceof CertificateException)
{
- OpendsCertificateException oce =
- (OpendsCertificateException) e.getRootCause().getCause();
String authType = null;
if (trustManager instanceof ApplicationTrustManager)
- {
+ { // FIXME use PromptingTrustManager
ApplicationTrustManager appTrustManager =
(ApplicationTrustManager) trustManager;
authType = appTrustManager.getLastRefusedAuthType();
- }
- if (ci.checkServerCertificate(oce.getChain(), authType, hostName))
- {
- // If the certificate is trusted, update the trust manager.
- trustManager = ci.getTrustManager();
- // Try to connect again.
- continue;
+ X509Certificate[] cert = appTrustManager.getLastRefusedChain();
+
+ if (ci.checkServerCertificate(cert, authType, hostName))
+ {
+ // If the certificate is trusted, update the trust manager.
+ trustManager = ci.getTrustManager();
+ // Try to connect again.
+ continue;
+ }
}
}
- if (e.getRootCause() != null) {
- if (e.getRootCause().getCause() != null
- && (e.getRootCause().getCause() instanceof OpendsCertificateException
- || e.getRootCause() instanceof SSLHandshakeException))
- {
- final LocalizableMessage message =
- ERR_DSCFG_ERROR_LDAP_FAILED_TO_CONNECT_NOT_TRUSTED.get(
- hostName, portNumber);
- throw new ClientException(ReturnCode.CLIENT_SIDE_CONNECT_ERROR,
- message);
- }
- if (e.getRootCause() instanceof SSLException) {
- final LocalizableMessage message =
- ERR_DSCFG_ERROR_LDAP_FAILED_TO_CONNECT_WRONG_PORT.get(hostName, portNumber);
- throw new ClientException(
- ReturnCode.CLIENT_SIDE_CONNECT_ERROR, message);
- }
+ if (e.getCause() != null && e.getCause() instanceof SSLException)
+ {
+ LocalizableMessage message =
+ ERR_DSCFG_ERROR_LDAP_FAILED_TO_CONNECT_NOT_TRUSTED.get(
+ hostName, portNumber);
+ throw new ClientException(ReturnCode.CLIENT_SIDE_CONNECT_ERROR,
+ message);
}
- final LocalizableMessage message = ERR_DSCFG_ERROR_LDAP_FAILED_TO_CONNECT.get(hostName, portNumber);
- throw new ClientException(
- ReturnCode.CLIENT_SIDE_CONNECT_ERROR, message);
+ LocalizableMessage message =
+ ERR_DSCFG_ERROR_LDAP_FAILED_TO_CONNECT
+ .get(hostName, portNumber);
+ throw new ClientException(ReturnCode.CLIENT_SIDE_CONNECT_ERROR,
+ message);
+ }
+ catch (GeneralSecurityException e)
+ {
+ LocalizableMessage message =
+ ERR_DSCFG_ERROR_LDAP_FAILED_TO_CONNECT
+ .get(hostName, portNumber);
+ throw new ClientException(ReturnCode.CLIENT_SIDE_CONNECT_ERROR,
+ message);
}
}
}
else if (ci.useStartTLS())
{
- InitialLdapContext ctx;
- String ldapUrl = "ldap://" + hostName + ":" + portNumber;
while (true)
{
try
{
- ctx = ConnectionUtils.createStartTLSContext(ldapUrl, bindDN,
- bindPassword, ConnectionUtils.getDefaultLDAPTimeout(), null,
- trustManager, keyManager, null);
- ctx.reconnect(null);
- conn = JNDIDirContextAdaptor.adapt(ctx);
+ final SSLContextBuilder sslBuilder = new SSLContextBuilder();
+ sslBuilder.setTrustManager((trustManager == null ? TrustManagers
+ .trustAll() : trustManager));
+ sslBuilder.setKeyManager(keyManager);
+ sslBuilder.setProtocol(SSLContextBuilder.PROTOCOL_SSL);
+ options.setUseStartTLS(true);
+ options.setSSLContext(sslBuilder.getSSLContext());
+
+ factory = new LDAPConnectionFactory(hostName, portNumber, options);
+ connection = factory.getConnection();
+ connection.bind(bindDN, bindPassword.toCharArray());
break;
}
- catch (NamingException e)
+ catch (ErrorResultException e)
{
- if ( app.isInteractive() && ci.isTrustStoreInMemory())
+ if (app.isInteractive()
+ && ci.isTrustStoreInMemory()
+ && e.getCause() != null
+ && e.getCause() instanceof SSLException
+ && e.getCause().getCause() instanceof CertificateException)
{
- if (e.getRootCause() != null
- && e.getRootCause().getCause() instanceof OpendsCertificateException)
- {
- String authType = null;
- if (trustManager instanceof ApplicationTrustManager)
- {
- ApplicationTrustManager appTrustManager =
- (ApplicationTrustManager)trustManager;
- authType = appTrustManager.getLastRefusedAuthType();
- }
- OpendsCertificateException oce =
- (OpendsCertificateException) e.getRootCause().getCause();
- if (ci.checkServerCertificate(oce.getChain(), authType,
- hostName))
- {
- // If the certificate is trusted, update the trust manager.
- trustManager = ci.getTrustManager();
+ String authType = null;
+ if (trustManager instanceof ApplicationTrustManager)
+ { // FIXME use PromptingTrustManager
+ ApplicationTrustManager appTrustManager =
+ (ApplicationTrustManager) trustManager;
+ authType = appTrustManager.getLastRefusedAuthType();
+ X509Certificate[] cert = appTrustManager.getLastRefusedChain();
- // Try to connect again.
- continue ;
- }
- }
- else
- {
- LocalizableMessage message = ERR_DSCFG_ERROR_LDAP_FAILED_TO_CONNECT.get(
- hostName, portNumber);
- throw new ClientException(
- ReturnCode.CLIENT_SIDE_CONNECT_ERROR, message);
+ if (ci.checkServerCertificate(cert, authType, hostName))
+ {
+ // If the certificate is trusted, update the trust manager.
+ trustManager = ci.getTrustManager();
+ // Try to connect again.
+ continue;
+ }
}
}
- LocalizableMessage message = ERR_DSCFG_ERROR_LDAP_FAILED_TO_CONNECT.get(
- hostName, portNumber);
- throw new ClientException(
- ReturnCode.CLIENT_SIDE_CONNECT_ERROR, message);
+ if (e.getCause() != null && e.getCause() instanceof SSLException)
+ {
+ LocalizableMessage message =
+ ERR_DSCFG_ERROR_LDAP_FAILED_TO_CONNECT_NOT_TRUSTED.get(
+ hostName, portNumber);
+ throw new ClientException(ReturnCode.CLIENT_SIDE_CONNECT_ERROR,
+ message);
+ }
+ LocalizableMessage message =
+ ERR_DSCFG_ERROR_LDAP_FAILED_TO_CONNECT
+ .get(hostName, portNumber);
+ throw new ClientException(ReturnCode.CLIENT_SIDE_CONNECT_ERROR,
+ message);
+ }
+ catch (GeneralSecurityException e)
+ {
+ LocalizableMessage message =
+ ERR_DSCFG_ERROR_LDAP_FAILED_TO_CONNECT
+ .get(hostName, portNumber);
+ throw new ClientException(ReturnCode.CLIENT_SIDE_CONNECT_ERROR,
+ message);
}
}
}
else
- {
+ { // FIXME The dsconfig is always using secure connection. This code can be
+ // removed in this case but statusCli and uninstall are also using it. Cleanup needed.
// Create the management context.
try
{
- conn = JNDIDirContextAdaptor.simpleBind(hostName, portNumber,
- bindDN, bindPassword);
+ factory = new LDAPConnectionFactory(hostName, portNumber, options);
+ connection = factory.getConnection();
+ connection.bind(bindDN, bindPassword.toCharArray());
}
- catch (AuthenticationNotSupportedException e)
+ catch (ErrorResultException e)
{
- LocalizableMessage message = ERR_DSCFG_ERROR_LDAP_SIMPLE_BIND_NOT_SUPPORTED
- .get();
- throw new ClientException(ReturnCode.AUTH_METHOD_NOT_SUPPORTED,
- message);
- }
- catch (AuthenticationException e)
- {
- LocalizableMessage message = ERR_DSCFG_ERROR_LDAP_SIMPLE_BIND_FAILED
- .get(bindDN);
- throw new ClientException(ReturnCode.INVALID_CREDENTIALS,
- message);
- }
- catch (CommunicationException e)
- {
- LocalizableMessage message = ERR_DSCFG_ERROR_LDAP_FAILED_TO_CONNECT.get(
- hostName, portNumber);
+ if (e.getCause() instanceof AuthorizationException)
+ {
+ LocalizableMessage message =
+ ERR_DSCFG_ERROR_LDAP_SIMPLE_BIND_NOT_SUPPORTED.get();
+ throw new ClientException(ReturnCode.AUTH_METHOD_NOT_SUPPORTED,
+ message);
+ }
+ else if (e.getCause() instanceof AuthenticationException)
+ {
+ LocalizableMessage message =
+ ERR_DSCFG_ERROR_LDAP_SIMPLE_BIND_FAILED.get(bindDN);
+ throw new ClientException(ReturnCode.INVALID_CREDENTIALS, message);
+ }
+ LocalizableMessage message =
+ ERR_DSCFG_ERROR_LDAP_FAILED_TO_CONNECT.get(hostName, portNumber);
throw new ClientException(ReturnCode.CLIENT_SIDE_CONNECT_ERROR,
message);
}
+ finally
+ {
+ factory.close();
+ }
}
- context = LDAPManagementContext.createFromContext(conn);
+ context =
+ LDAPManagementContext.newManagementContext(connection, LDAPProfile.getInstance());
}
return context;
}
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/ListSubCommandHandler.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/ListSubCommandHandler.java
index 656f65c..22c3f84 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/ListSubCommandHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/ListSubCommandHandler.java
@@ -38,22 +38,23 @@
import java.util.TreeMap;
import org.forgerock.i18n.LocalizableMessage;
-import org.opends.server.admin.DefinitionDecodingException;
-import org.opends.server.admin.InstantiableRelationDefinition;
-import org.opends.server.admin.ManagedObjectDefinition;
-import org.opends.server.admin.ManagedObjectNotFoundException;
-import org.opends.server.admin.ManagedObjectOption;
-import org.opends.server.admin.ManagedObjectPath;
-import org.opends.server.admin.OptionalRelationDefinition;
-import org.opends.server.admin.PropertyDefinition;
-import org.opends.server.admin.RelationDefinition;
-import org.opends.server.admin.SetRelationDefinition;
-import org.opends.server.admin.client.AuthorizationException;
+import org.forgerock.opendj.config.DefinitionDecodingException;
+import org.forgerock.opendj.config.InstantiableRelationDefinition;
+import org.forgerock.opendj.config.ManagedObjectDefinition;
+import org.forgerock.opendj.config.ManagedObjectNotFoundException;
+import org.forgerock.opendj.config.ManagedObjectOption;
+import org.forgerock.opendj.config.ManagedObjectPath;
+import org.forgerock.opendj.config.OptionalRelationDefinition;
+import org.forgerock.opendj.config.PropertyDefinition;
+import org.forgerock.opendj.config.RelationDefinition;
+import org.forgerock.opendj.config.SetRelationDefinition;
+import org.forgerock.opendj.config.client.ConcurrentModificationException;
+import org.forgerock.opendj.config.client.ManagedObject;
+import org.forgerock.opendj.config.client.ManagedObjectDecodingException;
+import org.forgerock.opendj.config.client.ManagementContext;
+import org.forgerock.opendj.ldap.AuthorizationException;
+import org.forgerock.opendj.ldap.ErrorResultException;
import org.opends.server.admin.client.CommunicationException;
-import org.opends.server.admin.client.ConcurrentModificationException;
-import org.opends.server.admin.client.ManagedObject;
-import org.opends.server.admin.client.ManagedObjectDecodingException;
-import org.opends.server.admin.client.ManagementContext;
import com.forgerock.opendj.cli.ArgumentException;
import com.forgerock.opendj.cli.ClientException;
@@ -314,7 +315,7 @@
} catch (ConcurrentModificationException e) {
LocalizableMessage msg = ERR_DSCFG_ERROR_LIST_CME.get(ufn);
throw new ClientException(ReturnCode.CONSTRAINT_VIOLATION, msg);
- } catch (CommunicationException e) {
+ } catch (ErrorResultException e) {
LocalizableMessage msg = ERR_DSCFG_ERROR_LIST_CE.get(ufn, e.getMessage());
throw new ClientException(ReturnCode.CLIENT_SIDE_SERVER_DOWN,
msg);
@@ -347,7 +348,7 @@
} catch (ConcurrentModificationException e) {
LocalizableMessage msg = ERR_DSCFG_ERROR_LIST_CME.get(ufn);
throw new ClientException(ReturnCode.CONSTRAINT_VIOLATION, msg);
- } catch (CommunicationException e) {
+ } catch (ErrorResultException e) {
LocalizableMessage msg = ERR_DSCFG_ERROR_LIST_CE.get(ufn, e.getMessage());
throw new ClientException(ReturnCode.CLIENT_SIDE_SERVER_DOWN,
msg);
@@ -383,7 +384,7 @@
} catch (ConcurrentModificationException e) {
LocalizableMessage msg = ERR_DSCFG_ERROR_LIST_CME.get(ufn);
throw new ClientException(ReturnCode.CONSTRAINT_VIOLATION, msg);
- } catch (CommunicationException e) {
+ } catch (ErrorResultException e) {
LocalizableMessage msg = ERR_DSCFG_ERROR_LIST_CE.get(ufn, e.getMessage());
throw new ClientException(ReturnCode.CLIENT_SIDE_SERVER_DOWN,
msg);
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/ManagementContextFactory.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/ManagementContextFactory.java
index 0fe4585..48c74e3 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/ManagementContextFactory.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/ManagementContextFactory.java
@@ -26,7 +26,7 @@
*/
package org.opends.server.tools.dsconfig;
-import org.opends.server.admin.client.ManagementContext;
+import org.forgerock.opendj.config.client.ManagementContext;
import com.forgerock.opendj.cli.ArgumentException;
import com.forgerock.opendj.cli.ClientException;
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/PropertyEditorModification.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/PropertyEditorModification.java
index ac96b53..5dc0c04 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/PropertyEditorModification.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/PropertyEditorModification.java
@@ -30,7 +30,7 @@
import java.util.SortedSet;
import java.util.TreeSet;
-import org.opends.server.admin.PropertyDefinition;
+import org.forgerock.opendj.config.PropertyDefinition;
/**
* This class is a data structure that can be used as an interface between
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/PropertyValueEditor.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/PropertyValueEditor.java
index d403b51..f959a92 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/PropertyValueEditor.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/PropertyValueEditor.java
@@ -42,34 +42,34 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageBuilder;
+import org.forgerock.opendj.config.AbsoluteInheritedDefaultBehaviorProvider;
+import org.forgerock.opendj.config.AbstractManagedObjectDefinition;
+import org.forgerock.opendj.config.AggregationPropertyDefinition;
+import org.forgerock.opendj.config.AliasDefaultBehaviorProvider;
+import org.forgerock.opendj.config.BooleanPropertyDefinition;
+import org.forgerock.opendj.config.Configuration;
+import org.forgerock.opendj.config.ConfigurationClient;
+import org.forgerock.opendj.config.DefaultBehaviorProviderVisitor;
+import org.forgerock.opendj.config.DefinedDefaultBehaviorProvider;
+import org.forgerock.opendj.config.DefinitionDecodingException;
+import org.forgerock.opendj.config.EnumPropertyDefinition;
+import org.forgerock.opendj.config.InstantiableRelationDefinition;
+import org.forgerock.opendj.config.ManagedObjectDefinition;
+import org.forgerock.opendj.config.ManagedObjectNotFoundException;
+import org.forgerock.opendj.config.ManagedObjectPath;
+import org.forgerock.opendj.config.PropertyDefinition;
+import org.forgerock.opendj.config.PropertyDefinitionUsageBuilder;
+import org.forgerock.opendj.config.PropertyDefinitionVisitor;
+import org.forgerock.opendj.config.PropertyException;
+import org.forgerock.opendj.config.PropertyOption;
+import org.forgerock.opendj.config.RelativeInheritedDefaultBehaviorProvider;
+import org.forgerock.opendj.config.UndefinedDefaultBehaviorProvider;
+import org.forgerock.opendj.config.client.ManagedObject;
+import org.forgerock.opendj.config.client.ManagedObjectDecodingException;
+import org.forgerock.opendj.config.client.ManagementContext;
+import org.forgerock.opendj.ldap.AuthorizationException;
+import org.forgerock.opendj.ldap.ErrorResultException;
import org.forgerock.util.Reject;
-import org.opends.server.admin.AbsoluteInheritedDefaultBehaviorProvider;
-import org.opends.server.admin.AbstractManagedObjectDefinition;
-import org.opends.server.admin.AggregationPropertyDefinition;
-import org.opends.server.admin.AliasDefaultBehaviorProvider;
-import org.opends.server.admin.BooleanPropertyDefinition;
-import org.opends.server.admin.Configuration;
-import org.opends.server.admin.ConfigurationClient;
-import org.opends.server.admin.DefaultBehaviorProviderVisitor;
-import org.opends.server.admin.DefinedDefaultBehaviorProvider;
-import org.opends.server.admin.DefinitionDecodingException;
-import org.opends.server.admin.EnumPropertyDefinition;
-import org.opends.server.admin.InstantiableRelationDefinition;
-import org.opends.server.admin.ManagedObjectDefinition;
-import org.opends.server.admin.ManagedObjectNotFoundException;
-import org.opends.server.admin.ManagedObjectPath;
-import org.opends.server.admin.PropertyDefinition;
-import org.opends.server.admin.PropertyDefinitionUsageBuilder;
-import org.opends.server.admin.PropertyDefinitionVisitor;
-import org.opends.server.admin.PropertyException;
-import org.opends.server.admin.PropertyOption;
-import org.opends.server.admin.RelativeInheritedDefaultBehaviorProvider;
-import org.opends.server.admin.UndefinedDefaultBehaviorProvider;
-import org.opends.server.admin.client.AuthorizationException;
-import org.opends.server.admin.client.CommunicationException;
-import org.opends.server.admin.client.ManagedObject;
-import org.opends.server.admin.client.ManagedObjectDecodingException;
-import org.opends.server.admin.client.ManagementContext;
import com.forgerock.opendj.cli.ClientException;
import com.forgerock.opendj.cli.ConsoleApplication;
@@ -139,7 +139,7 @@
.getUserFriendlyName();
LocalizableMessage msg = ERR_DSCFG_ERROR_GET_PARENT_MODE.get(pufn);
throw new ClientException(ReturnCode.OTHER, msg, e);
- } catch (CommunicationException e) {
+ } catch (ErrorResultException e) {
LocalizableMessage msg = ERR_DSCFG_ERROR_CREATE_CE.get(ufn, e.getMessage());
throw new ClientException(ReturnCode.CLIENT_SIDE_SERVER_DOWN,
msg);
@@ -476,13 +476,13 @@
try {
values.addAll(Arrays.asList(context.listManagedObjects(path, rd)));
} catch (AuthorizationException e) {
- this.e = new ClientException(ReturnCode.TODO, e.getMessageObject());
+ this.e = new ClientException(ReturnCode.TODO, LocalizableMessage.raw(e.getMessage()));
return MenuResult.quit();
} catch (ManagedObjectNotFoundException e) {
this.e = new ClientException(ReturnCode.TODO, e.getMessageObject());
return MenuResult.cancel();
- } catch (CommunicationException e) {
- this.e = new ClientException(ReturnCode.TODO, e.getMessageObject());
+ } catch (ErrorResultException e) {
+ this.e = new ClientException(ReturnCode.TODO, LocalizableMessage.raw(e.getMessage()));
return MenuResult.quit();
}
@@ -737,13 +737,13 @@
try {
values.addAll(Arrays.asList(context.listManagedObjects(path, rd)));
} catch (AuthorizationException e) {
- this.e = new ClientException(ReturnCode.TODO, e.getMessageObject());
+ this.e = new ClientException(ReturnCode.TODO, LocalizableMessage.raw(e.getMessage()));
return MenuResult.quit();
} catch (ManagedObjectNotFoundException e) {
this.e = new ClientException(ReturnCode.TODO, e.getMessageObject());
return MenuResult.cancel();
- } catch (CommunicationException e) {
- this.e = new ClientException(ReturnCode.TODO, e.getMessageObject());
+ } catch (ErrorResultException e) {
+ this.e = new ClientException(ReturnCode.TODO, LocalizableMessage.raw(e.getMessage()));
return MenuResult.quit();
}
@@ -1630,13 +1630,13 @@
try {
values.addAll(Arrays.asList(context.listManagedObjects(path, rd)));
} catch (AuthorizationException e) {
- this.e = new ClientException(ReturnCode.TODO, e.getMessageObject());
+ this.e = new ClientException(ReturnCode.TODO, LocalizableMessage.raw(e.getMessage()));
return MenuResult.quit();
} catch (ManagedObjectNotFoundException e) {
this.e = new ClientException(ReturnCode.TODO, e.getMessageObject());
return MenuResult.cancel();
- } catch (CommunicationException e) {
- this.e = new ClientException(ReturnCode.TODO, e.getMessageObject());
+ } catch (ErrorResultException e) {
+ this.e = new ClientException(ReturnCode.TODO, LocalizableMessage.raw(e.getMessage()));
return MenuResult.quit();
}
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/PropertyValuePrinter.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/PropertyValuePrinter.java
index 714f575..359a86b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/PropertyValuePrinter.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/PropertyValuePrinter.java
@@ -32,13 +32,13 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageBuilder;
-import org.opends.server.admin.BooleanPropertyDefinition;
-import org.opends.server.admin.DurationPropertyDefinition;
-import org.opends.server.admin.DurationUnit;
-import org.opends.server.admin.PropertyDefinition;
-import org.opends.server.admin.PropertyValueVisitor;
-import org.opends.server.admin.SizePropertyDefinition;
-import org.opends.server.admin.SizeUnit;
+import org.forgerock.opendj.config.BooleanPropertyDefinition;
+import org.forgerock.opendj.config.DurationPropertyDefinition;
+import org.forgerock.opendj.config.DurationUnit;
+import org.forgerock.opendj.config.PropertyDefinition;
+import org.forgerock.opendj.config.PropertyValueVisitor;
+import org.forgerock.opendj.config.SizePropertyDefinition;
+import org.forgerock.opendj.config.SizeUnit;
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java
index 4413c3c..9eaa8d0 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java
@@ -44,31 +44,32 @@
import java.util.TreeSet;
import org.forgerock.i18n.LocalizableMessage;
-import org.opends.server.admin.AggregationPropertyDefinition;
-import org.opends.server.admin.DefinitionDecodingException;
-import org.opends.server.admin.InstantiableRelationDefinition;
-import org.opends.server.admin.ManagedObjectAlreadyExistsException;
-import org.opends.server.admin.ManagedObjectDefinition;
-import org.opends.server.admin.ManagedObjectNotFoundException;
-import org.opends.server.admin.ManagedObjectPath;
-import org.opends.server.admin.OptionalRelationDefinition;
-import org.opends.server.admin.PropertyDefinition;
-import org.opends.server.admin.PropertyException;
-import org.opends.server.admin.PropertyOption;
-import org.opends.server.admin.RelationDefinition;
-import org.opends.server.admin.SetRelationDefinition;
-import org.opends.server.admin.SingletonRelationDefinition;
-import org.opends.server.admin.UndefinedDefaultBehaviorProvider;
-import org.opends.server.admin.client.AuthorizationException;
+import org.forgerock.opendj.config.AggregationPropertyDefinition;
+import org.forgerock.opendj.config.DefinitionDecodingException;
+import org.forgerock.opendj.config.InstantiableRelationDefinition;
+import org.forgerock.opendj.config.ManagedObjectAlreadyExistsException;
+import org.forgerock.opendj.config.ManagedObjectDefinition;
+import org.forgerock.opendj.config.ManagedObjectNotFoundException;
+import org.forgerock.opendj.config.ManagedObjectPath;
+import org.forgerock.opendj.config.OptionalRelationDefinition;
+import org.forgerock.opendj.config.PropertyDefinition;
+import org.forgerock.opendj.config.PropertyException;
+import org.forgerock.opendj.config.PropertyOption;
+import org.forgerock.opendj.config.RelationDefinition;
+import org.forgerock.opendj.config.SetRelationDefinition;
+import org.forgerock.opendj.config.SingletonRelationDefinition;
+import org.forgerock.opendj.config.UndefinedDefaultBehaviorProvider;
+import org.forgerock.opendj.config.client.ConcurrentModificationException;
+import org.forgerock.opendj.config.client.ManagedObject;
+import org.forgerock.opendj.config.client.ManagedObjectDecodingException;
+import org.forgerock.opendj.config.client.ManagementContext;
+import org.forgerock.opendj.config.client.MissingMandatoryPropertiesException;
+import org.forgerock.opendj.config.client.OperationRejectedException;
+import org.forgerock.opendj.config.conditions.Condition;
+import org.forgerock.opendj.config.conditions.ContainsCondition;
+import org.forgerock.opendj.ldap.AuthorizationException;
+import org.forgerock.opendj.ldap.ErrorResultException;
import org.opends.server.admin.client.CommunicationException;
-import org.opends.server.admin.client.ConcurrentModificationException;
-import org.opends.server.admin.client.ManagedObject;
-import org.opends.server.admin.client.ManagedObjectDecodingException;
-import org.opends.server.admin.client.ManagementContext;
-import org.opends.server.admin.client.MissingMandatoryPropertiesException;
-import org.opends.server.admin.client.OperationRejectedException;
-import org.opends.server.admin.condition.Condition;
-import org.opends.server.admin.condition.ContainsCondition;
import com.forgerock.opendj.cli.Argument;
import com.forgerock.opendj.cli.ArgumentException;
@@ -370,7 +371,7 @@
throw new ClientException(ReturnCode.CONSTRAINT_VIOLATION, e
.getMessageObject(), e);
}
- } catch (CommunicationException e) {
+ } catch (ErrorResultException e) {
LocalizableMessage msg = ERR_DSCFG_ERROR_MODIFY_CE.get(ufn, e.getMessage());
throw new ClientException(ReturnCode.OTHER, msg);
} catch (ManagedObjectAlreadyExistsException e) {
@@ -577,7 +578,7 @@
} catch (AuthorizationException e) {
LocalizableMessage msg = ERR_DSCFG_ERROR_MODIFY_AUTHZ.get(ufn);
throw new ClientException(ReturnCode.INSUFFICIENT_ACCESS_RIGHTS, msg);
- } catch (CommunicationException e) {
+ } catch (ErrorResultException e) {
LocalizableMessage msg = ERR_DSCFG_ERROR_MODIFY_CE.get(ufn, e.getMessage());
throw new ClientException(ReturnCode.OTHER, msg);
}
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/SubCommandHandler.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/SubCommandHandler.java
index e01d6e6..d00a7c2 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/SubCommandHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/SubCommandHandler.java
@@ -48,32 +48,33 @@
import java.util.TreeMap;
import org.forgerock.i18n.LocalizableMessage;
-import org.opends.server.admin.AbstractManagedObjectDefinition;
-import org.opends.server.admin.Configuration;
-import org.opends.server.admin.ConfigurationClient;
-import org.opends.server.admin.DefinitionDecodingException;
-import org.opends.server.admin.DurationUnit;
-import org.opends.server.admin.InstantiableRelationDefinition;
-import org.opends.server.admin.ManagedObjectDefinition;
-import org.opends.server.admin.ManagedObjectNotFoundException;
-import org.opends.server.admin.ManagedObjectOption;
-import org.opends.server.admin.ManagedObjectPath;
-import org.opends.server.admin.ManagedObjectPathSerializer;
-import org.opends.server.admin.OptionalRelationDefinition;
-import org.opends.server.admin.PropertyDefinition;
-import org.opends.server.admin.PropertyDefinitionUsageBuilder;
-import org.opends.server.admin.RelationDefinition;
-import org.opends.server.admin.SetRelationDefinition;
-import org.opends.server.admin.SingletonRelationDefinition;
-import org.opends.server.admin.SizeUnit;
-import org.opends.server.admin.Tag;
-import org.opends.server.admin.client.AuthorizationException;
+import org.forgerock.opendj.config.AbstractManagedObjectDefinition;
+import org.forgerock.opendj.config.Configuration;
+import org.forgerock.opendj.config.ConfigurationClient;
+import org.forgerock.opendj.config.DefinitionDecodingException;
+import org.forgerock.opendj.config.DurationUnit;
+import org.forgerock.opendj.config.InstantiableRelationDefinition;
+import org.forgerock.opendj.config.ManagedObjectDefinition;
+import org.forgerock.opendj.config.ManagedObjectNotFoundException;
+import org.forgerock.opendj.config.ManagedObjectOption;
+import org.forgerock.opendj.config.ManagedObjectPath;
+import org.forgerock.opendj.config.ManagedObjectPathSerializer;
+import org.forgerock.opendj.config.OptionalRelationDefinition;
+import org.forgerock.opendj.config.PropertyDefinition;
+import org.forgerock.opendj.config.PropertyDefinitionUsageBuilder;
+import org.forgerock.opendj.config.RelationDefinition;
+import org.forgerock.opendj.config.SetRelationDefinition;
+import org.forgerock.opendj.config.SingletonRelationDefinition;
+import org.forgerock.opendj.config.SizeUnit;
+import org.forgerock.opendj.config.Tag;
+import org.forgerock.opendj.config.client.ConcurrentModificationException;
+import org.forgerock.opendj.config.client.IllegalManagedObjectNameException;
+import org.forgerock.opendj.config.client.ManagedObject;
+import org.forgerock.opendj.config.client.ManagedObjectDecodingException;
+import org.forgerock.opendj.config.client.ManagementContext;
+import org.forgerock.opendj.ldap.AuthorizationException;
+import org.forgerock.opendj.ldap.ErrorResultException;
import org.opends.server.admin.client.CommunicationException;
-import org.opends.server.admin.client.ConcurrentModificationException;
-import org.opends.server.admin.client.IllegalManagedObjectNameException;
-import org.opends.server.admin.client.ManagedObject;
-import org.opends.server.admin.client.ManagedObjectDecodingException;
-import org.opends.server.admin.client.ManagementContext;
import org.opends.server.util.ServerConstants;
import com.forgerock.opendj.cli.Argument;
@@ -117,6 +118,8 @@
private CommunicationException ce;
+ private ErrorResultException ere;
+
/**
* Any CLI exception that was caught when attempting to find the managed
* object.
@@ -205,6 +208,9 @@
} catch (ConcurrentModificationException e) {
cme = e;
result = MenuResult.quit();
+ } catch (ErrorResultException e) {
+ ere = e;
+ result = MenuResult.quit();
} catch (CommunicationException e) {
ce = e;
result = MenuResult.quit();
@@ -247,8 +253,8 @@
} catch (ConcurrentModificationException e) {
cme = e;
result = MenuResult.quit();
- } catch (CommunicationException e) {
- ce = e;
+ } catch (ErrorResultException e) {
+ ere = e;
result = MenuResult.quit();
}
}
@@ -339,6 +345,9 @@
} catch (ConcurrentModificationException e) {
cme = e;
result = MenuResult.quit();
+ } catch (ErrorResultException e) {
+ ere = e;
+ result = MenuResult.quit();
} catch (CommunicationException e) {
ce = e;
result = MenuResult.quit();
@@ -381,8 +390,8 @@
} catch (ConcurrentModificationException e) {
cme = e;
result = MenuResult.quit();
- } catch (CommunicationException e) {
- ce = e;
+ } catch (ErrorResultException e) {
+ ere = e;
result = MenuResult.quit();
}
}
@@ -1148,13 +1157,22 @@
app.println();
// Filter out advanced and hidden types if required.
- String[] childNames;
- if (r instanceof InstantiableRelationDefinition) {
- childNames =
- parent.listChildren((InstantiableRelationDefinition<C,S>)r, d);
- } else {
- childNames = parent.listChildren((SetRelationDefinition<C,S>)r, d);
+ String[] childNames = null;
+ try {
+ if (r instanceof InstantiableRelationDefinition)
+ {
+ childNames =
+ parent.listChildren((InstantiableRelationDefinition<C, S>) r, d);
+ }
+ else
+ {
+ childNames = parent.listChildren((SetRelationDefinition<C, S>) r, d);
+ }
+ } catch (ErrorResultException e) {
+ // FIXME check exceptions
+ System.out.println(String.format("An error occured %s", e.getMessage()));
}
+
SortedMap<String, String> children = new TreeMap<String, String>(
String.CASE_INSENSITIVE_ORDER);
@@ -1193,6 +1211,9 @@
children.put(childName, childName);
} catch (ManagedObjectNotFoundException e) {
// Skip it - the managed object has been concurrently removed.
+ } catch (ErrorResultException e) {
+ // Add it anyway: maybe the user is trying to fix the problem.
+ children.put(childName, childName);
}
}
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/SubCommandHandlerFactory.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/SubCommandHandlerFactory.java
index a94b245..4887f16 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/SubCommandHandlerFactory.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsconfig/SubCommandHandlerFactory.java
@@ -31,17 +31,17 @@
import java.util.SortedSet;
import java.util.TreeSet;
-import org.opends.server.admin.AbstractManagedObjectDefinition;
-import org.opends.server.admin.Configuration;
-import org.opends.server.admin.ConfigurationClient;
-import org.opends.server.admin.InstantiableRelationDefinition;
-import org.opends.server.admin.ManagedObjectPath;
-import org.opends.server.admin.OptionalRelationDefinition;
-import org.opends.server.admin.RelationDefinition;
-import org.opends.server.admin.RelationDefinitionVisitor;
-import org.opends.server.admin.RelationOption;
-import org.opends.server.admin.SetRelationDefinition;
-import org.opends.server.admin.SingletonRelationDefinition;
+import org.forgerock.opendj.config.AbstractManagedObjectDefinition;
+import org.forgerock.opendj.config.Configuration;
+import org.forgerock.opendj.config.ConfigurationClient;
+import org.forgerock.opendj.config.InstantiableRelationDefinition;
+import org.forgerock.opendj.config.ManagedObjectPath;
+import org.forgerock.opendj.config.OptionalRelationDefinition;
+import org.forgerock.opendj.config.RelationDefinition;
+import org.forgerock.opendj.config.RelationDefinitionVisitor;
+import org.forgerock.opendj.config.RelationOption;
+import org.forgerock.opendj.config.SetRelationDefinition;
+import org.forgerock.opendj.config.SingletonRelationDefinition;
import com.forgerock.opendj.cli.ArgumentException;
import com.forgerock.opendj.cli.SubCommandArgumentParser;
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/status/StatusCli.java b/opendj3-server-dev/src/server/org/opends/server/tools/status/StatusCli.java
index 7eda8fd..78d1dc0 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/status/StatusCli.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/status/StatusCli.java
@@ -56,10 +56,12 @@
import org.opends.guitools.controlpanel.util.ControlPanelLog;
import org.opends.guitools.controlpanel.util.Utilities;
import org.opends.server.admin.AdministrationConnector;
-import org.opends.server.admin.client.ManagementContext;
import org.opends.server.admin.client.cli.SecureConnectionCliArgs;
+import org.forgerock.opendj.config.client.ManagementContext;
import org.forgerock.opendj.config.server.ConfigException;
+
import com.forgerock.opendj.cli.ClientException;
+
import org.opends.server.tools.dsconfig.LDAPManagementContextFactory;
import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
@@ -67,11 +69,13 @@
import org.opends.server.types.OpenDsException;
import org.opends.server.util.BuildVersion;
import org.opends.server.util.StaticUtils;
+
import com.forgerock.opendj.cli.ConsoleApplication;
+
import org.opends.server.util.cli.LDAPConnectionConsoleInteraction;
+
import com.forgerock.opendj.cli.TableBuilder;
import com.forgerock.opendj.cli.TextTablePrinter;
-
import com.forgerock.opendj.cli.ArgumentException;
import static org.opends.messages.AdminToolMessages.*;
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java
index 21b18be..4513e13 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java
@@ -1798,7 +1798,7 @@
System.arraycopy(args, 0, fullArgs, 11, args.length);
- assertEquals(DSConfig.main(fullArgs, false, System.out, System.err), 0);
+ assertEquals(DSConfig.main(fullArgs, System.out, System.err), 0);
}
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandlerTestCase.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandlerTestCase.java
index dcde994..9d22702 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandlerTestCase.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandlerTestCase.java
@@ -28,32 +28,34 @@
+import static org.opends.server.util.ServerConstants.SASL_MECHANISM_DIGEST_MD5;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
import java.util.List;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
+import org.forgerock.opendj.config.server.ConfigException;
+import org.forgerock.opendj.ldap.ByteString;
+import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.TestCaseUtils;
import org.opends.server.admin.server.AdminTestCaseUtils;
-import org.opends.server.admin.std.meta.
- DigestMD5SASLMechanismHandlerCfgDefn;
-import org.opends.server.admin.std.server.
- DigestMD5SASLMechanismHandlerCfg;
-import org.forgerock.opendj.config.server.ConfigException;
+import org.opends.server.admin.std.meta.DigestMD5SASLMechanismHandlerCfgDefn;
+import org.opends.server.admin.std.server.DigestMD5SASLMechanismHandlerCfg;
import org.opends.server.core.AddOperation;
import org.opends.server.core.BindOperation;
import org.opends.server.core.DeleteOperation;
import org.opends.server.core.DirectoryServer;
import org.opends.server.protocols.internal.InternalClientConnection;
import org.opends.server.tools.LDAPSearch;
-import org.opends.server.types.*;
-import org.forgerock.opendj.ldap.ResultCode;
-import org.forgerock.opendj.ldap.ByteString;
-import static org.testng.Assert.*;
-
-import static org.opends.server.util.ServerConstants.*;
+import org.opends.server.types.AuthenticationInfo;
+import org.opends.server.types.DN;
+import org.opends.server.types.Entry;
+import org.opends.server.types.InitializationException;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
@@ -81,7 +83,7 @@
}
- @AfterClass
+ @AfterClass(alwaysRun = true)
public void tearDown() throws Exception {
TestCaseUtils.dsconfig(
"set-sasl-mechanism-handler-prop",
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tools/dsconfig/DsconfigLdapConnectionTestCase.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tools/dsconfig/DsconfigLdapConnectionTestCase.java
index d5a8779..db50c38 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tools/dsconfig/DsconfigLdapConnectionTestCase.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tools/dsconfig/DsconfigLdapConnectionTestCase.java
@@ -106,8 +106,7 @@
"-X"
};
- assertFalse(DSConfig.main(args, false, System.out, System.err)
- == SUCCESS.get());
+ assertFalse(DSConfig.main(args, System.out, System.err) == SUCCESS.get());
}
/**
@@ -128,8 +127,7 @@
"-X"
};
- assertFalse(DSConfig.main(args, false, System.out, System.err)
- == SUCCESS.get());
+ assertFalse(DSConfig.main(args, System.out, System.err) == SUCCESS.get());
}
/**
@@ -150,11 +148,29 @@
"-X"
};
- assertFalse(DSConfig.main(args, false, System.out, System.err)
- == SUCCESS.get());
+ assertFalse(DSConfig.main(args, System.out, System.err) == SUCCESS.get());
}
+ /**
+ * Tests list-connection-handlers with an valid password.
+ */
+ @Test()
+ public void testValidBindPassword()
+ {
+ String[] args =
+ {
+ "-n",
+ "--noPropertiesFile",
+ "-Q",
+ "list-connection-handlers",
+ "-p", String.valueOf(TestCaseUtils.getServerAdminPort()),
+ "-D", "cn=Directory Manager",
+ "-w", "password",
+ "-X"
+ };
+ assertTrue(DSConfig.main(args, System.out, System.err) == SUCCESS.get());
+ }
/**
@@ -178,8 +194,7 @@
"-X"
};
- assertEquals(DSConfig.main(args, false, System.out,
- System.err), SUCCESS.get());
+ assertEquals(DSConfig.main(args, System.out, System.err), SUCCESS.get());
}
/**
@@ -203,11 +218,9 @@
"-X"
};
- assertFalse(DSConfig.main(args, false, System.out, System.err)
- == SUCCESS.get());
+ assertFalse(DSConfig.main(args, System.out, System.err) == SUCCESS.get());
}
-
-
+
/**
* Tests list-connection-handlers over SSL using a trust store.
*/
@@ -228,8 +241,7 @@
"-P", trustStorePath
};
- assertEquals(DSConfig.main(args, false, System.out,
- System.err), SUCCESS.get());
+ assertEquals(DSConfig.main(args, System.out, System.err), SUCCESS.get());
}
@@ -240,16 +252,13 @@
public void testHelp()
{
String[] args = { "--noPropertiesFile", "--help" };
- assertEquals(DSConfig.main(args, false, System.out, System.err),
- SUCCESS.get());
+ assertEquals(DSConfig.main(args, System.out, System.err), SUCCESS.get());
args = new String[] { "--noPropertiesFile", "-H" };
- assertEquals(DSConfig.main(args, false, System.out, System.err),
- SUCCESS.get());
+ assertEquals(DSConfig.main(args, System.out, System.err), SUCCESS.get());
args = new String[] { "--noPropertiesFile", "-?" };
- assertEquals(DSConfig.main(args, false, System.out, System.err),
- SUCCESS.get());
+ assertEquals(DSConfig.main(args, System.out, System.err), SUCCESS.get());
}
}
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tools/dsconfig/DsconfigOptionsTestCase.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tools/dsconfig/DsconfigOptionsTestCase.java
index cd61fd1..5287fe8 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tools/dsconfig/DsconfigOptionsTestCase.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/tools/dsconfig/DsconfigOptionsTestCase.java
@@ -48,26 +48,99 @@
{
TestCaseUtils.startServer();
}
-
- /**
- * Ensures ADS is removed.
- */
- @AfterClass()
- public void afterClass() throws Exception
- {
+
+ @AfterClass(alwaysRun = true)
+ public void tearDown() throws Exception {
+
+ TestCaseUtils.dsconfig(
+ "delete-connection-handler",
+ "--handler-name", "HTTP Connection Handler",
+ "-f");
+ }
+
+ @Test()
+ public void testSetEnableHTTPConnectionHandler() {
+
+ final String[] args =
+ {
+ "set-connection-handler-prop",
+ "-p", String.valueOf(TestCaseUtils.getServerAdminPort()),
+ "--trustAll",
+ "--bindDN","cn=Directory Manager",
+ "--bindPassword" , "password",
+ "--no-prompt",
+ "--handler-name", "HTTP Connection Handler",
+ "--set", "authentication-required:false"
+ };
+ assertTrue(dsconfigMain(args) == SUCCESSFUL.getReturnCode());
+ }
+
+ @Test()
+ public void testSetSASLHandler() {
+ final String[] args =
+ {
+ "set-sasl-mechanism-handler-prop",
+ "-p", String.valueOf(TestCaseUtils.getServerAdminPort()),
+ "--trustAll",
+ "--bindDN","cn=Directory Manager",
+ "--bindPassword" , "password",
+ "--no-prompt",
+ "--handler-name", "DIGEST-MD5",
+ "--set", "server-fqdn:" + "127.0.0.1"
+ };
+ assertTrue(dsconfigMain(args) == SUCCESSFUL.getReturnCode());
+
+ TestCaseUtils.dsconfig(
+ "set-sasl-mechanism-handler-prop",
+ "--handler-name", "DIGEST-MD5",
+ "--reset", "server-fqdn",
+ "--reset", "quality-of-protection");
}
+
+ @Test()
+ public void testSetMaxAllowedClientConnections() {
+ final String[] args =
+ {
+ "set-global-configuration-prop",
+ "-p", String.valueOf(TestCaseUtils.getServerAdminPort()),
+ "--trustAll",
+ "--bindDN","cn=Directory Manager",
+ "--bindPassword" , "password",
+ "--no-prompt",
+ "--set", "max-allowed-client-connections:32768"
+ };
+ assertTrue(dsconfigMain(args) == SUCCESSFUL.getReturnCode());
+ }
+
+ @Test()
+ public void testSetReturnBindPassword() throws Exception
+ {
+ final String[] args =
+ {
+ "set-global-configuration-prop",
+ "-p", String.valueOf(TestCaseUtils.getServerAdminPort()),
+ "--trustAll",
+ "--bindDN","cn=Directory Manager",
+ "--bindPassword" , "password",
+ "--no-prompt",
+ "--set", "return-bind-error-messages:true"
+ };
+ assertTrue(dsconfigMain(args) == SUCCESSFUL.getReturnCode());
+ }
+
+
/**
- * Tests that multiple "--set" option cannot be used with a singlevalued
+ * Tests that multiple "--set" option cannot be used with a single valued
* property
*/
@Test()
public void testMultipleSetSingleValuedProperty() throws Exception
{
- String[] args =
+ final String[] args =
{
"set-global-configuration-prop",
- "-p",String.valueOf(TestCaseUtils.getServerAdminPort()),
+ "-p", String.valueOf(TestCaseUtils.getServerAdminPort()),
"--trustAll",
"--bindDN","cn=Directory Manager",
"--bindPassword" , "password",
@@ -77,7 +150,7 @@
};
assertTrue(dsconfigMain(args) != SUCCESSFUL.getReturnCode());
}
-
+
/**
* Tests that multiple "--set" option are allowed to be used with a multivalued
* property (see OPENDJ-255)
@@ -85,11 +158,11 @@
@Test()
public void testMultipleSetMultiValuedProperty() throws Exception
{
- String[] args =
+ final String[] args =
{
"set-connection-handler-prop",
"--handler-name", "LDAP Connection Handler",
- "-p",String.valueOf(TestCaseUtils.getServerAdminPort()),
+ "-p", String.valueOf(TestCaseUtils.getServerAdminPort()),
"--trustAll",
"--bindDN","cn=Directory Manager",
"--bindPassword" , "password",
@@ -99,12 +172,12 @@
};
assertEquals(dsconfigMain(args), SUCCESSFUL.getReturnCode());
}
-
- @Test
+
+ @Test()
public void testGenerateDoc() throws Exception
{
System.setProperty("org.forgerock.opendj.gendoc", "true");
- String[] args = {
+ final String[] args = {
"--no-prompt",
"-?",
};
@@ -120,7 +193,7 @@
private int dsconfigMain(String[] args)
{
- return DSConfig.main(args, false, System.out, System.err);
+ return DSConfig.main(args, System.out, System.err);
}
}
--
Gitblit v1.10.0