Sync Integ to Master
[sdc.git] / asdctool / src / main / java / org / openecomp / sdc / asdctool / migration / main / MigrationMenu.java
index dc2114d..de6c66d 100644 (file)
@@ -1,34 +1,27 @@
 package org.openecomp.sdc.asdctool.migration.main;
 
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.CommandLineParser;
-import org.apache.commons.cli.DefaultParser;
-import org.apache.commons.cli.HelpFormatter;
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
-import org.openecomp.sdc.asdctool.configuration.ConfigurationUploader;
+import org.openecomp.sdc.asdctool.cli.CLIToolData;
+import org.openecomp.sdc.asdctool.cli.SpringCLITool;
 import org.openecomp.sdc.asdctool.migration.config.MigrationSpringConfig;
 import org.openecomp.sdc.asdctool.migration.core.SdcMigrationTool;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.context.support.AbstractApplicationContext;
 
-public class MigrationMenu {
+public class MigrationMenu extends SpringCLITool {
 
-    private final static Logger LOGGER = LoggerFactory.getLogger(MigrationMenu.class);
+    private static final Logger LOGGER = LoggerFactory.getLogger(MigrationMenu.class);
 
     public static void main(String[] args) {
-        CommandLine commandLine = initCmdLineOptions(args);
-        String appConfigDir = commandLine.getOptionValue("c");
-        boolean enforceAll = commandLine.hasOption("e");
-        ConfigurationUploader.uploadConfigurationFiles(appConfigDir);
-        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MigrationSpringConfig.class);
-        doMigrate(enforceAll, context);
-
+        MigrationMenu migrationMenu = new MigrationMenu();
+        CLIToolData cliToolData = migrationMenu.init(args);
+        boolean enforceAll = cliToolData.getCommandLine().hasOption("e");
+        migrationMenu.doMigrate(enforceAll, cliToolData.getSpringApplicationContext());
     }
 
-    private static void doMigrate(boolean enforceAll, AnnotationConfigApplicationContext context) {
+    private void doMigrate(boolean enforceAll, AbstractApplicationContext context) {
         SdcMigrationTool migrationTool = context.getBean(SdcMigrationTool.class);
         boolean migrate = migrationTool.migrate(enforceAll);
         if (migrate) {
@@ -40,38 +33,19 @@ public class MigrationMenu {
         }
     }
 
-    private static CommandLine initCmdLineOptions(String[] args) {
-        Options options = buildCmdLineOptions();
-        CommandLineParser parser = new DefaultParser();
-        try {
-            // parse the command line arguments
-            return parser.parse( options, args );
-        }
-        catch( ParseException exp ) {
-            // oops, something went wrong
-            System.err.println( "Parsing failed.  Reason: " + exp.getMessage() );
-            usageAndExit(options);
-        }
-        return null;
-    }
-
-    private static void usageAndExit(Options options) {
-        HelpFormatter formatter = new HelpFormatter();
-        formatter.printHelp( "yy", options );
-        System.exit(1);
-    }
-
-    private static Options buildCmdLineOptions() {
-        Option configPath = buildConfigPathOption();
-
+    @Override
+    protected Options buildCmdLineOptions() {
+        Options options = super.buildCmdLineOptions();
         Option enforceAll = buildEnforceAllOption();
-
-        Options options = new Options();
-        options.addOption(configPath);
         options.addOption(enforceAll);
         return options;
     }
 
+    @Override
+    protected String commandName() {
+        return "sdc-migration";
+    }
+
     private static Option buildEnforceAllOption() {
         return Option.builder("e")
                 .longOpt("enforceAll")
@@ -79,13 +53,8 @@ public class MigrationMenu {
                 .build();
     }
 
-    private static Option buildConfigPathOption() {
-        return Option.builder("c")
-                    .longOpt("configFolderPath")
-                    .required()
-                    .hasArg()
-                    .desc("path to sdc configuration folder - required")
-                    .build();
+    @Override
+    protected Class<?> getSpringConfigurationClass() {
+        return MigrationSpringConfig.class;
     }
-
 }