From 09f3d42c36384ea6d48a518b41e84d87e093705b Mon Sep 17 00:00:00 2001
From: kenneth_suter <kenneth_suter@localhost>
Date: Thu, 16 Aug 2007 20:56:31 +0000
Subject: [PATCH] This commit gets the QuickSetup installer working again by specifying the server root during the directory configuration. This is addressed by adding a hidden arg to ConfigureDS for the server root that the installer uses for the specification of the directory.
---
opendj-sdk/opends/src/server/org/opends/server/core/SchemaConfigManager.java | 8 ++++++--
opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java | 2 +-
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java | 3 +++
opendj-sdk/opends/src/messages/messages/tools.properties | 2 ++
opendj-sdk/opends/src/server/org/opends/server/tools/ConfigureDS.java | 21 +++++++++++++++++++++
opendj-sdk/opends/src/server/org/opends/server/tools/ToolConstants.java | 9 +++++++++
6 files changed, 42 insertions(+), 3 deletions(-)
diff --git a/opendj-sdk/opends/src/messages/messages/tools.properties b/opendj-sdk/opends/src/messages/messages/tools.properties
index f10fef6..dbe76fa 100644
--- a/opendj-sdk/opends/src/messages/messages/tools.properties
+++ b/opendj-sdk/opends/src/messages/messages/tools.properties
@@ -2166,3 +2166,5 @@
semicolon is not followed by an integer. The semicolon will be assumed to be \
part of the value and not a delimiter to separate the value from its relative \
weight
+FATAL_ERR_INITIALIZE_SERVER_ROOT_1293=An unexpected error occured \
+ attempting to set the server's root directory to %s: %s
diff --git a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java
index dcc6a71..c59d04a 100644
--- a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java
+++ b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/installer/Installer.java
@@ -839,6 +839,9 @@
}
}
+ argList.add("-R");
+ argList.add(getInstallation().getRootDirectory().getAbsolutePath());
+
String[] args = new String[argList.size()];
argList.toArray(args);
try
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java b/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java
index 9831ff6..f44cf36 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java
@@ -791,7 +791,7 @@
* @throws InitializationException If the Directory Server is currently
* running.
*/
- private void setEnvironmentConfig(DirectoryEnvironmentConfig config)
+ public void setEnvironmentConfig(DirectoryEnvironmentConfig config)
throws InitializationException
{
if (isRunning)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/SchemaConfigManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/SchemaConfigManager.java
index f94317b..fcdd15d 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/SchemaConfigManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/SchemaConfigManager.java
@@ -117,7 +117,11 @@
{
File schemaDir =
DirectoryServer.getEnvironmentConfig().getSchemaDirectory();
- return schemaDir.getAbsolutePath();
+ if (schemaDir != null) {
+ return schemaDir.getAbsolutePath();
+ } else {
+ return null;
+ }
}
@@ -212,7 +216,7 @@
try
{
- if (! schemaDir.exists())
+ if (schemaDirPath == null || ! schemaDir.exists())
{
Message message = ERR_CONFIG_SCHEMA_NO_SCHEMA_DIR.get(schemaDirPath);
throw new InitializationException(message);
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/ConfigureDS.java b/opendj-sdk/opends/src/server/org/opends/server/tools/ConfigureDS.java
index 7bee3b8..8da384a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/ConfigureDS.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/ConfigureDS.java
@@ -32,6 +32,7 @@
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Set;
+import java.io.File;
import org.opends.server.api.ConfigHandler;
import org.opends.server.config.BooleanConfigAttribute;
@@ -46,6 +47,8 @@
import org.opends.server.protocols.ldap.LDAPResultCode;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.DN;
+import org.opends.server.types.DirectoryEnvironmentConfig;
+import org.opends.server.types.InitializationException;
import org.opends.server.util.SetupUtils;
import org.opends.server.util.args.ArgumentException;
import org.opends.server.util.args.ArgumentParser;
@@ -170,6 +173,7 @@
StringArgument trustManagerProviderDN;
StringArgument certNickName;
StringArgument keyManagerPath;
+ StringArgument serverRoot;
Message toolDescription = INFO_CONFIGDS_TOOL_DESCRIPTION.get();
ArgumentParser argParser = new ArgumentParser(CLASS_NAME, toolDescription,
@@ -290,6 +294,14 @@
INFO_DESCRIPTION_USAGE.get());
argParser.addArgument(showUsage);
argParser.setUsageArgument(showUsage);
+
+ serverRoot = new StringArgument("serverRoot",
+ ToolConstants.OPTION_SHORT_SERVER_ROOT,
+ ToolConstants.OPTION_LONG_SERVER_ROOT,
+ false, false, true, "{serverRootDir}", null, null,
+ null);
+ serverRoot.setHidden(true);
+ argParser.addArgument(serverRoot);
}
catch (ArgumentException ae)
{
@@ -377,6 +389,15 @@
return 1;
}
+ if (serverRoot.isPresent()) {
+ DirectoryEnvironmentConfig env = DirectoryServer.getEnvironmentConfig();
+ String root = serverRoot.getValue();
+ try {
+ env.setServerRoot(new File(serverRoot.getValue()));
+ } catch (InitializationException e) {
+ ERR_INITIALIZE_SERVER_ROOT.get(root, e.getMessageObject());
+ }
+ }
// Initialize the Directory Server configuration handler using the
// information that was provided.
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/ToolConstants.java b/opendj-sdk/opends/src/server/org/opends/server/tools/ToolConstants.java
index f4abe7a..187491c 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/ToolConstants.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/ToolConstants.java
@@ -636,5 +636,14 @@
*/
public static final String OPTION_VALUE_SET = "{PROP:VAL}";
+ /**
+ * Value for the server root option short form.
+ */
+ public static final Character OPTION_SHORT_SERVER_ROOT = 'R';
+
+ /**
+ * Value for the server root option long form.
+ */
+ public static final String OPTION_LONG_SERVER_ROOT = "serverRoot";
}
--
Gitblit v1.10.0