Added -help option for commands. -help is similar to the unix' man command

git-svn-id: https://asterixdb.googlecode.com/svn/branches/asterix_stabilization_ioc_installer@1309 eaa15691-b419-025a-1212-ee371bd00084
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/AbstractCommand.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/AbstractCommand.java
index 8ebdea5..7329929 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/AbstractCommand.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/AbstractCommand.java
@@ -14,16 +14,17 @@
  */
 package edu.uci.ics.asterix.installer.command;
 
-
 import org.apache.log4j.Logger;
 import org.kohsuke.args4j.CmdLineParser;
 
+import edu.uci.ics.asterix.installer.driver.InstallerDriver;
+
 public abstract class AbstractCommand implements ICommand {
 
     protected static final Logger LOGGER = Logger.getLogger(AbstractCommand.class.getName());
 
     protected CommandConfig config;
-    
+
     protected String usageDescription;
 
     public void execute(String[] args) throws Exception {
@@ -32,7 +33,11 @@
         config = getCommandConfig();
         CmdLineParser parser = new CmdLineParser(config);
         parser.parseArgument(cmdArgs);
-        execCommand();
+        if (config.helpMode()) {
+            System.out.println(getUsageDescription());
+        } else {
+            execCommand();
+        }
     }
 
     abstract protected void execCommand() throws Exception;
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/AbstractCommandConfig.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/AbstractCommandConfig.java
new file mode 100644
index 0000000..f28dfd9
--- /dev/null
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/AbstractCommandConfig.java
@@ -0,0 +1,15 @@
+package edu.uci.ics.asterix.installer.command;
+
+import org.kohsuke.args4j.Option;
+
+public class AbstractCommandConfig implements CommandConfig {
+
+    @Option(name = "-help", required = false, usage = "Help")
+    public boolean help = false;
+
+    @Override
+    public boolean helpMode() {
+        return help;
+    }
+
+}
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/AlterCommand.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/AlterCommand.java
index 7cb15d9..8d6f051 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/AlterCommand.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/AlterCommand.java
@@ -19,6 +19,7 @@
 
 import org.kohsuke.args4j.Option;
 
+import edu.uci.ics.asterix.installer.driver.InstallerDriver;
 import edu.uci.ics.asterix.installer.driver.InstallerUtil;
 import edu.uci.ics.asterix.installer.model.AsterixInstance;
 import edu.uci.ics.asterix.installer.model.AsterixInstance.State;
@@ -29,6 +30,7 @@
 
     @Override
     protected void execCommand() throws Exception {
+        InstallerDriver.initConfig();
         String instanceName = ((AlterConfig) config).name;
         InstallerUtil.validateAsterixInstanceExists(instanceName, State.INACTIVE);
         ILookupService lookupService = ServiceProvider.INSTANCE.getLookupService();
@@ -48,18 +50,18 @@
 
     @Override
     protected String getUsageDescription() {
-        // TODO Auto-generated method stub
-        return null;
+        return "\nAlter the instance's configuration settings."
+                + "\nPrior to running this command, the instance is required to be INACTIVE state."
+                + "\n\nAvailable arguments/options" 
+                + "\n-n name of the ASTERIX instance"
+                + "\n-conf path to the ASTERIX configuration file.";
     }
 
 }
 
-class AlterConfig implements CommandConfig {
+class AlterConfig extends AbstractCommandConfig {
 
-    @Option(name = "-h", required = false, usage = "Help")
-    public boolean help = false;
-
-    @Option(name = "-n", required = true, usage = "Name of Asterix Instance")
+    @Option(name = "-n", required = false, usage = "Name of Asterix Instance")
     public String name;
 
     @Option(name = "-conf", required = false, usage = "Path to instance configuration")
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/BackupCommand.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/BackupCommand.java
index 58c309a..7ca400a 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/BackupCommand.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/BackupCommand.java
@@ -20,6 +20,7 @@
 import org.kohsuke.args4j.Option;
 
 import edu.uci.ics.asterix.event.schema.pattern.Patterns;
+import edu.uci.ics.asterix.installer.driver.InstallerDriver;
 import edu.uci.ics.asterix.installer.driver.InstallerUtil;
 import edu.uci.ics.asterix.installer.events.PatternCreator;
 import edu.uci.ics.asterix.installer.model.AsterixInstance;
@@ -31,6 +32,7 @@
 
     @Override
     protected void execCommand() throws Exception {
+        InstallerDriver.initConfig();
         String asterixInstanceName = ((BackupConfig) config).name;
         AsterixInstance instance = InstallerUtil.validateAsterixInstanceExists(asterixInstanceName, State.INACTIVE);
         List<BackupInfo> backupInfo = instance.getBackupInfo();
@@ -51,17 +53,21 @@
 
     @Override
     protected String getUsageDescription() {
-        return null;
+        return "\nIn an undesirable event of data loss either due to a disk/system"
+                + "\nfailure or accidental execution of a DDL statement (drop dataverse/dataset),"
+                + "\nyou may need to recover the lost data. The backup command allows you to take a"
+                + "\nbackup of the data stored with an ASTERIX instance. "
+                + "\nThe backed up snapshot is stored in HDFS." 
+                + "\n\nAvailable arguments/options:"
+                + "\n-n name of the Asterix instance";
+
     }
 
 }
 
-class BackupConfig implements CommandConfig {
+class BackupConfig extends AbstractCommandConfig {
 
-    @Option(name = "-h", required = false, usage = "Help")
-    public boolean help = false;
-
-    @Option(name = "-n", required = true, usage = "Name of the Asterix instance")
+    @Option(name = "-n", required = false, usage = "Name of the Asterix instance")
     public String name;
 
     @Option(name = "-local", required = false, usage = "Path on the local file system for backup")
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/CommandConfig.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/CommandConfig.java
index c0dd480..94aa935 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/CommandConfig.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/CommandConfig.java
@@ -16,4 +16,5 @@
 
 public interface CommandConfig {
 
+    public boolean helpMode();
 }
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/ConfigureCommand.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/ConfigureCommand.java
index 597824f..b1901b5 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/ConfigureCommand.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/ConfigureCommand.java
@@ -7,8 +7,6 @@
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
 
-import org.kohsuke.args4j.Option;
-
 import edu.uci.ics.asterix.event.schema.cluster.Cluster;
 import edu.uci.ics.asterix.event.schema.cluster.WorkingDir;
 import edu.uci.ics.asterix.installer.driver.InstallerDriver;
@@ -50,8 +48,8 @@
 
     @Override
     protected String getUsageDescription() {
-        // TODO Auto-generated method stub
-        return null;
+        return "\nAuto-generates the ASTERIX installer configruation settings and ASTERIX cluster "
+                + "\n configuration settings for a single node setup.";
     }
 
     @Override
@@ -61,9 +59,6 @@
 
 }
 
-class ConfigureConfig implements CommandConfig {
-
-    @Option(name = "-h", required = false, usage = "Help")
-    public boolean help = false;
+class ConfigureConfig extends AbstractCommandConfig {
 
 }
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/CreateCommand.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/CreateCommand.java
index 38c542f..e65848d 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/CreateCommand.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/CreateCommand.java
@@ -42,6 +42,7 @@
 
     @Override
     protected void execCommand() throws Exception {
+        InstallerDriver.initConfig();
         ValidateCommand validateCommand = new ValidateCommand();
         boolean valid = validateCommand.validateCluster(((CreateConfig) config).clusterPath);
         if (!valid) {
@@ -95,22 +96,23 @@
 
     @Override
     protected String getUsageDescription() {
-        return null;
+        return "\nCreates an ASTERIX instance with a specified name."
+                + "\n\nPost creation, the instance is in ACTIVE state, signifying its "
+                + "\navailability for executing statements/queries." + "\n\nUsage arguments/options:"
+                + "\n-n Name of the ASTERIX instance." + "\n-c Path to the cluster configuration file"
+                + "\n-a Path to the ASTERIX configuration file";
     }
 }
 
-class CreateConfig implements CommandConfig {
+class CreateConfig extends AbstractCommandConfig {
 
-    @Option(name = "-h", required = false, usage = "Help")
-    public boolean help = false;
-
-    @Option(name = "-n", required = true, usage = "Name of Asterix Instance")
+    @Option(name = "-n", required = false, usage = "Name of Asterix Instance")
     public String name;
 
-    @Option(name = "-c", required = true, usage = "Path to cluster configuration")
+    @Option(name = "-c", required = false, usage = "Path to cluster configuration")
     public String clusterPath;
 
-    @Option(name = "-a", required = true, usage = "Path to cluster configuration")
+    @Option(name = "-a", required = false, usage = "Path to cluster configuration")
     public String asterixConf;
 
 }
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/DeleteCommand.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/DeleteCommand.java
index dc4d53e..22ef630 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/DeleteCommand.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/DeleteCommand.java
@@ -17,6 +17,7 @@
 import org.kohsuke.args4j.Option;
 
 import edu.uci.ics.asterix.event.schema.pattern.Patterns;
+import edu.uci.ics.asterix.installer.driver.InstallerDriver;
 import edu.uci.ics.asterix.installer.driver.InstallerUtil;
 import edu.uci.ics.asterix.installer.events.PatternCreator;
 import edu.uci.ics.asterix.installer.model.AsterixInstance;
@@ -27,6 +28,7 @@
 
     @Override
     protected void execCommand() throws Exception {
+        InstallerDriver.initConfig();
         String asterixInstanceName = ((DeleteConfig) config).name;
         AsterixInstance instance = InstallerUtil.validateAsterixInstanceExists(asterixInstanceName, State.INACTIVE);
         PatternCreator pc = new PatternCreator();
@@ -43,16 +45,13 @@
 
     @Override
     protected String getUsageDescription() {
-        // TODO Auto-generated method stub
-        return null;
+        return "\nPermanently deletes an ASTERIX instance." + "\n" + "The instance must be in the INACTIVE state."
+                + "\n\nAvailable arguments/options" + "\n-n name of the ASTERIX instance.";
     }
 
 }
 
-class DeleteConfig implements CommandConfig {
-
-    @Option(name = "-h", required = false, usage = "Help")
-    public boolean help = false;
+class DeleteConfig extends AbstractCommandConfig {
 
     @Option(name = "-n", required = false, usage = "Name of Asterix Instance")
     public String name;
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/DescribeCommand.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/DescribeCommand.java
index 977acaf..63dcc30 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/DescribeCommand.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/DescribeCommand.java
@@ -18,6 +18,7 @@
 
 import org.kohsuke.args4j.Option;
 
+import edu.uci.ics.asterix.installer.driver.InstallerDriver;
 import edu.uci.ics.asterix.installer.driver.InstallerUtil;
 import edu.uci.ics.asterix.installer.error.InstallerException;
 import edu.uci.ics.asterix.installer.error.VerificationUtil;
@@ -30,6 +31,7 @@
 
     @Override
     protected void execCommand() throws Exception {
+        InstallerDriver.initConfig();
         String asterixInstanceName = ((DescribeConfig) config).name;
         boolean adminView = ((DescribeConfig) config).admin;
         if (asterixInstanceName != null) {
@@ -72,16 +74,13 @@
 
     @Override
     protected String getUsageDescription() {
-        // TODO Auto-generated method stub
-        return null;
+        return "\nProvides information about an ASTERIX instance." + "\n\nUsage arguments/options:-"
+                + "\n[-n] Name of the ASTERIX instance." + "\n[-admin] Provides a detailed description";
     }
 
 }
 
-class DescribeConfig implements CommandConfig {
-
-    @Option(name = "-h", required = false, usage = "Help")
-    public boolean help = false;
+class DescribeConfig extends AbstractCommandConfig {
 
     @Option(name = "-n", required = false, usage = "Name of Asterix Instance")
     public String name;
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/RestoreCommand.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/RestoreCommand.java
index 777d179..69d34e0 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/RestoreCommand.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/RestoreCommand.java
@@ -17,6 +17,7 @@
 import org.kohsuke.args4j.Option;
 
 import edu.uci.ics.asterix.event.schema.pattern.Patterns;
+import edu.uci.ics.asterix.installer.driver.InstallerDriver;
 import edu.uci.ics.asterix.installer.driver.InstallerUtil;
 import edu.uci.ics.asterix.installer.events.PatternCreator;
 import edu.uci.ics.asterix.installer.model.AsterixInstance;
@@ -26,6 +27,7 @@
 
     @Override
     protected void execCommand() throws Exception {
+        InstallerDriver.initConfig();
         String asterixInstanceName = ((RestoreConfig) config).name;
         AsterixInstance instance = InstallerUtil.validateAsterixInstanceExists(asterixInstanceName, State.INACTIVE);
         int backupId = ((RestoreConfig) config).backupId;
@@ -45,21 +47,19 @@
 
     @Override
     protected String getUsageDescription() {
-        // TODO Auto-generated method stub
-        return null;
+        return "\nRestores an ASTERIX instance's data from a previously taken backup snapshot."
+                + "\n\nAvailable arguments/options" + "\n-n name of the ASTERIX instance"
+                + "\n-b id of the backed up snapshot ";
     }
 
 }
 
-class RestoreConfig implements CommandConfig {
+class RestoreConfig extends AbstractCommandConfig {
 
-    @Option(name = "-h", required = false, usage = "Help")
-    public boolean help = false;
-
-    @Option(name = "-n", required = true, usage = "Name of the Asterix instance")
+    @Option(name = "-n", required = false, usage = "Name of the Asterix instance")
     public String name;
 
-    @Option(name = "-b", required = true, usage = "Id corresponding to the backed up version")
+    @Option(name = "-b", required = false, usage = "Id corresponding to the backed up version")
     public int backupId;
 
 }
\ No newline at end of file
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/ShutdownCommand.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/ShutdownCommand.java
index a897516..0224876 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/ShutdownCommand.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/ShutdownCommand.java
@@ -14,8 +14,6 @@
  */
 package edu.uci.ics.asterix.installer.command;
 
-import org.kohsuke.args4j.Option;
-
 import edu.uci.ics.asterix.installer.driver.InstallerDriver;
 import edu.uci.ics.asterix.installer.service.ILookupService;
 import edu.uci.ics.asterix.installer.service.ServiceProvider;
@@ -35,15 +33,11 @@
 
     @Override
     protected String getUsageDescription() {
-        // TODO Auto-generated method stub
-        return null;
+        return "\nShuts down the installer's backgrouund processes";
     }
 
 }
 
-class ShutdownConfig implements CommandConfig {
-
-    @Option(name = "-h", required = false, usage = "Help")
-    public boolean help = false;
+class ShutdownConfig extends AbstractCommandConfig {
 
 }
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/StartCommand.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/StartCommand.java
index 99dfaa5..818b8d9 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/StartCommand.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/StartCommand.java
@@ -32,6 +32,7 @@
 
     @Override
     protected void execCommand() throws Exception {
+        InstallerDriver.initConfig();
         String asterixInstanceName = ((StartConfig) config).name;
         AsterixInstance instance = InstallerUtil.validateAsterixInstanceExists(asterixInstanceName, State.INACTIVE);
         InstallerUtil.createAsterixZip(instance, false);
@@ -53,16 +54,14 @@
 
     @Override
     protected String getUsageDescription() {
-        // TODO Auto-generated method stub
-        return null;
+        return "\nStarts an ASTERIX instance that is in INACTIVE state."
+                + "\nAfter executing the start command, the ASTERIX instance transits to the ACTIVE state,"
+                + "\nindicating that it is now available for executing statements/queries."
+                + "\n\nAvailable arguments/options" + "\n-n name of the ASTERIX instance. ";
     }
-
 }
 
-class StartConfig implements CommandConfig {
-
-    @Option(name = "-h", required = false, usage = "Help")
-    public boolean help = false;
+class StartConfig extends AbstractCommandConfig {
 
     @Option(name = "-n", required = false, usage = "Name of Asterix Instance")
     public String name;
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/StopCommand.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/StopCommand.java
index 81b147a..cab6065 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/StopCommand.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/StopCommand.java
@@ -24,6 +24,7 @@
 import edu.uci.ics.asterix.event.schema.cluster.Node;
 import edu.uci.ics.asterix.event.schema.pattern.Pattern;
 import edu.uci.ics.asterix.event.schema.pattern.Patterns;
+import edu.uci.ics.asterix.installer.driver.InstallerDriver;
 import edu.uci.ics.asterix.installer.driver.InstallerUtil;
 import edu.uci.ics.asterix.installer.events.PatternCreator;
 import edu.uci.ics.asterix.installer.model.AsterixInstance;
@@ -34,6 +35,7 @@
 
     @Override
     protected void execCommand() throws Exception {
+        InstallerDriver.initConfig();
         String asterixInstanceName = ((StopConfig) config).name;
         AsterixInstance asterixInstance = InstallerUtil.validateAsterixInstanceExists(asterixInstanceName,
                 State.ACTIVE, State.UNUSABLE);
@@ -68,18 +70,19 @@
 
     @Override
     protected String getUsageDescription() {
-        // TODO Auto-generated method stub
-        return null;
+        return "\nShuts an ASTERIX instance that is in ACTIVE/UNUSABLE state."
+                + "\nAfter executing the stop command, the ASTERIX instance transits"
+                + "\nto the INACTIVE state, indicating that it is no longer available"
+                + "\nfor executing statements/queries." + "\n\nAvailable arguments/options"
+                + "\n-n name of the ASTERIX instance.";
+
     }
 
 }
 
-class StopConfig implements CommandConfig {
+class StopConfig extends AbstractCommandConfig {
 
-    @Option(name = "-h", required = false, usage = "Help")
-    public boolean help = false;
-
-    @Option(name = "-n", required = true, usage = "Name of Asterix Instance")
+    @Option(name = "-n", required = false, usage = "Name of Asterix Instance")
     public String name;
 
 }
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/ValidateCommand.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/ValidateCommand.java
index 426e1b2..9638ac6 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/ValidateCommand.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/command/ValidateCommand.java
@@ -32,8 +32,6 @@
 import edu.uci.ics.asterix.installer.driver.InstallerDriver;
 import edu.uci.ics.asterix.installer.schema.conf.Configuration;
 import edu.uci.ics.asterix.installer.schema.conf.Zookeeper;
-import edu.uci.ics.asterix.installer.service.ILookupService;
-import edu.uci.ics.asterix.installer.service.ServiceProvider;
 
 public class ValidateCommand extends AbstractCommand {
 
@@ -67,7 +65,10 @@
 
     @Override
     protected String getUsageDescription() {
-        return null;
+        return "\nValidate the installer's configuration or a cluster configuration" + "\nUsage"
+                + "\nFor validating the installer configuration" + "\n use $ managix validate"
+                + "\n\nFor validating a cluster configuration"
+                + "\n$ use managix validate -c <path to the cluster configuration file>";
     }
 
     public boolean validateEnvironment() throws Exception {
@@ -233,10 +234,7 @@
 
 }
 
-class ValidateConfig implements CommandConfig {
-
-    @Option(name = "-h", required = false, usage = "Help")
-    public boolean help = false;
+class ValidateConfig extends AbstractCommandConfig {
 
     @Option(name = "-c", required = false, usage = "Path to the cluster configuration xml")
     public String cluster;
diff --git a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/driver/InstallerDriver.java b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/driver/InstallerDriver.java
index d22e9b2..b6add8f 100644
--- a/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/driver/InstallerDriver.java
+++ b/asterix-installer/src/main/java/edu/uci/ics/asterix/installer/driver/InstallerDriver.java
@@ -54,7 +54,7 @@
         return conf;
     }
 
-    private static void initConfig() throws Exception {
+    public static void initConfig() throws Exception {
         File configFile = new File(managixHome + File.separator + MANAGIX_CONF_XML);
         JAXBContext configCtx = JAXBContext.newInstance(Configuration.class);
         Unmarshaller unmarshaller = configCtx.createUnmarshaller();
@@ -101,10 +101,6 @@
         try {
             if (args.length != 0) {
                 managixHome = System.getenv(ENV_MANAGIX_HOME);
-                CommandType cmdType = CommandType.valueOf(args[0].toUpperCase());
-                if (!cmdType.equals(CommandType.VALIDATE) && !cmdType.equals(CommandType.CONFIGURE)) {
-                    initConfig();
-                }
                 CommandHandler cmdHandler = new CommandHandler();
                 cmdHandler.processCommand(args);
             } else {