From f5ef017da469ddbc44d8cd4edce836a564f46ef2 Mon Sep 17 00:00:00 2001
From: lutoff <lutoff@localhost>
Date: Thu, 20 Sep 2007 14:35:30 +0000
Subject: [PATCH] Fix for issue #582 (Need Client-Side Configuration File)

---
 opends/src/server/org/opends/server/tools/dsconfig/DSConfig.java |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/opends/src/server/org/opends/server/tools/dsconfig/DSConfig.java b/opends/src/server/org/opends/server/tools/dsconfig/DSConfig.java
index 4d17710..a83a43a 100644
--- a/opends/src/server/org/opends/server/tools/dsconfig/DSConfig.java
+++ b/opends/src/server/org/opends/server/tools/dsconfig/DSConfig.java
@@ -63,6 +63,7 @@
 import org.opends.server.util.StaticUtils;
 import org.opends.server.util.args.ArgumentException;
 import org.opends.server.util.args.BooleanArgument;
+import org.opends.server.util.args.StringArgument;
 import org.opends.server.util.args.SubCommand;
 import org.opends.server.util.args.SubCommandArgumentParser;
 import org.opends.server.util.cli.CLIException;
@@ -364,7 +365,12 @@
   // The argument which should be used to request verbose output.
   private BooleanArgument verboseArgument;
 
+  // The argument which should be used to indicate the properties file.
+  private StringArgument propertiesFileArgument;
 
+  // The argument which should be used to indicate that we will not look for
+  // properties file.
+  private BooleanArgument noPropertiesFileArgument;
 
   /**
    * Creates a new dsconfig application instance.
@@ -515,6 +521,15 @@
           OPTION_LONG_HELP, INFO_DSCFG_DESCRIPTION_SHOW_GROUP_USAGE_SUMMARY
               .get());
 
+      propertiesFileArgument = new StringArgument("propertieFilePath",
+          null, OPTION_LONG_PROP_FILE_PATH,
+          false, false, true, OPTION_VALUE_PROP_FILE_PATH, null, null,
+          INFO_DESCRIPTION_PROP_FILE_PATH.get());
+
+      noPropertiesFileArgument = new BooleanArgument(
+          "noPropertiesFileArgument", null, OPTION_LONG_NO_PROP_FILE,
+          INFO_DESCRIPTION_NO_PROP_FILE.get());
+
       // Register the global arguments.
       parser.addGlobalArgument(showUsageArgument);
       parser.setUsageArgument(showUsageArgument, getOutputStream());
@@ -523,6 +538,10 @@
       parser.addGlobalArgument(scriptFriendlyArgument);
       parser.addGlobalArgument(noPromptArgument);
       parser.addGlobalArgument(advancedModeArgument);
+      parser.addGlobalArgument(propertiesFileArgument);
+      parser.setFilePropertiesArgument(propertiesFileArgument);
+      parser.addGlobalArgument(noPropertiesFileArgument);
+      parser.setNoPropertiesFileArgument(noPropertiesFileArgument);
 
       // Register any global arguments required by the management
       // context factory.
@@ -659,6 +678,16 @@
       return 1;
     }
 
+    if (noPropertiesFileArgument.isPresent()
+        && propertiesFileArgument.isPresent())
+    {
+      Message message = ERR_TOOL_CONFLICTING_ARGS.get(
+          noPropertiesFileArgument.getLongIdentifier(),
+          propertiesFileArgument.getLongIdentifier());
+      displayMessageAndUsageReference(message);
+      return 1;
+    }
+
     // Make sure that management context's arguments are valid.
     try {
       factory.validateGlobalArguments();

--
Gitblit v1.10.0