CLI: Modify cli-config 98/13598/2
authorhyeongseok.heo <hyeongseok.heo@samsung.com>
Tue, 10 Dec 2013 10:33:08 +0000 (19:33 +0900)
committerhyeongseok.heo <hyeongseok.heo@samsung.com>
Wed, 11 Dec 2013 04:45:35 +0000 (13:45 +0900)
Modify key list to print  by alphabetical order.
Refine output message .
Modify printing elapsed time as optional.
Add log4j config file for testing local env.

Change-Id: I3e7cec8052513517c1d0fbc2e5a0fa9797869abe
Signed-off-by: hyeongseok.heo <hyeongseok.heo@samsung.com>
org.tizen.ncli.ide/resources/log4j-progress-dev.xml [new file with mode: 0644]
org.tizen.ncli.ide/src/org/tizen/ncli/ide/config/Configuration.java
org.tizen.ncli.ide/src/org/tizen/ncli/ide/shell/AbstractCLI.java
org.tizen.ncli.ide/src/org/tizen/ncli/ide/shell/BuildWebCLI.java
org.tizen.ncli.ide/src/org/tizen/ncli/ide/shell/ConfigCLI.java
org.tizen.ncli.ide/src/org/tizen/ncli/ide/shell/Main.java
org.tizen.ncli.ide/test/src/org/tizen/ncli/ide/shell/ConfigCLITest.java

diff --git a/org.tizen.ncli.ide/resources/log4j-progress-dev.xml b/org.tizen.ncli.ide/resources/log4j-progress-dev.xml
new file mode 100644 (file)
index 0000000..4d85bb9
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+       <appender name="console" class="org.apache.log4j.ConsoleAppender">
+               <param name="Target" value="System.out" />
+               <layout class="org.apache.log4j.PatternLayout">
+                       <param name="ConversionPattern" value="[%p] %F(%L) - %m%n" />
+               </layout>
+       </appender>
+       <appender name="progress-console" class="org.apache.log4j.ConsoleAppender">
+        <param name="Target" value="System.out" />
+        <layout class="org.apache.log4j.PatternLayout">
+            <param name="ConversionPattern" value="%m%n" />
+        </layout>
+    </appender>
+    
+    <appender name="null" class="org.apache.log4j.varia.NullAppender">
+    </appender>
+       
+       <logger name="NCLI_PROGRESS">
+          <level value="info"/>
+          <appender-ref ref="progress-console" />
+       </logger>
+       
+       <logger name="org.tizen.ncli.ide">
+          <level value="trace"/>
+       <appender-ref ref="console" />
+       </logger>
+       
+       <logger name="org.tizen.core.ide">
+       <level value="off"/>
+       <appender-ref ref="console" />
+    </logger>
+       
+       
+       <root>
+               <priority value="off" />
+               <appender-ref ref="null" />
+       </root>
+</log4j:configuration>
index 4e450e5..72d6546 100644 (file)
  */\r
 package org.tizen.ncli.ide.config;\r
 \r
+import java.util.ArrayList;\r
 import java.util.Collection;\r
 import java.util.Collections;\r
+import java.util.HashSet;\r
+import java.util.SortedSet;\r
+import java.util.TreeSet;\r
 \r
 import org.tizen.common.config.Preference;\r
 import org.tizen.common.util.CollectionUtil;\r
@@ -50,8 +54,8 @@ public class Configuration {
      * \r
      */\r
     private void setConfigValues() {\r
-        globalKeys = Preference.list(CLIConstant.TIZEN_CLI_GLOBAL_KEY);\r
-        localKeys = Preference.list(CLIConstant.TIZEN_CLI_LOCAL_KEY);\r
+        globalKeys = Preference.sortedList(CLIConstant.TIZEN_CLI_GLOBAL_KEY);\r
+        localKeys = Preference.sortedList(CLIConstant.TIZEN_CLI_LOCAL_KEY);\r
     }\r
 \r
     \r
@@ -63,6 +67,17 @@ public class Configuration {
         return localKeys;\r
     }\r
     \r
+    /**\r
+     * Get all keys by natural order.  \r
+     * @return allKeys\r
+     */\r
+    public Collection<String> getAllKeys(){\r
+        TreeSet<String> allKeys = new TreeSet<String>();\r
+        allKeys.addAll(globalKeys);\r
+        allKeys.addAll(localKeys);\r
+        return allKeys;\r
+    }\r
+    \r
     public String getValue(String key) {\r
         if( null != localKeys && localKeys.contains(key)) {\r
             return Preference.get(CLIConstant.TIZEN_CLI_LOCAL_KEY, key);\r
index 0b401a8..a0cc824 100644 (file)
@@ -76,11 +76,19 @@ public abstract class AbstractCLI {
     }
 
     /**
-     * Print execution time as form of <code>"Total time: {hours}:{minutes}:{seconds}.{miliseconds}"</code>
+     * Print execution time as form of <code>"Total time: {hours}:{minutes}:{seconds}.{milliseconds}"</code>
      */
     protected void printElapsedTime() {
         long elapsedTime = stopWatch.getTime();
         String duration = DurationFormatUtils.formatDuration(elapsedTime, "HH:mm:ss.S");
         progressLog.info("Total time: {}",duration);
     }
+
+    /**
+     * If any sub classes need to print elapsed time , override  this as return true.
+     * @return boolean Default is false. 
+     */
+    public boolean needPrintTime() {
+        return false;
+    }
 }
index 861d165..072fc53 100644 (file)
@@ -82,4 +82,9 @@ public class BuildWebCLI extends AbstractCLI {
         BuildWebParameter commandData = command.runCommand();\r
     }\r
 \r
+    @Override\r
+    public boolean needPrintTime() {\r
+        return true;\r
+    }\r
+\r
 }\r
index 78bd5c3..dbc0a28 100644 (file)
@@ -27,9 +27,12 @@ package org.tizen.ncli.ide.shell;
 import java.io.PrintWriter;\r
 import java.util.ArrayList;\r
 import java.util.Collection;\r
+import java.util.Collections;\r
 import java.util.HashMap;\r
 import java.util.List;\r
 import java.util.Map;\r
+import java.util.SortedSet;\r
+import java.util.TreeSet;\r
 \r
 import org.kohsuke.args4j.Argument;\r
 import org.kohsuke.args4j.ClassParser;\r
@@ -38,6 +41,7 @@ import org.kohsuke.args4j.CmdLineParser;
 import org.kohsuke.args4j.Option;\r
 import org.slf4j.Logger;\r
 import org.slf4j.LoggerFactory;\r
+import org.tizen.common.util.CollectionUtil;\r
 import org.tizen.ncli.core.CommandInfo;\r
 import org.tizen.ncli.core.CommandLineParser;\r
 import org.tizen.ncli.core.SubCommandData;\r
@@ -92,31 +96,22 @@ public class ConfigCLI extends AbstractCLI{
             return;\r
         }\r
         if(list) {\r
-               //TODO print message should be refined \r
-               output.format("list config key values....\n");\r
-               Collection<String> globalKeys = tizenCLIConfig.getGlobalKeys();\r
-               Collection<String> localKeys = tizenCLIConfig.getLocalKeys();\r
-               output.format("Global configurations ====\n");\r
-               for (String globalKey : globalKeys) {\r
-                       output.format("%1$s=%2$s\n",globalKey,tizenCLIConfig.getGlobalValue(globalKey) );\r
-               }\r
-               output.format("Local configurations ====\n");\r
-               for (String localKey : localKeys) {\r
-                               output.format("%1$s=%2$s\n", localKey,tizenCLIConfig.getLocalValue(localKey));\r
-                       }               \r
+               Collection<String> allKeys = tizenCLIConfig.getAllKeys();\r
+               for (String key : allKeys) {\r
+                   output.format("%1$s=%2$s\n", key,tizenCLIConfig.getValue(key));\r
+               }           \r
+               \r
         }else if(global){\r
-            output.format("Setting global configuration is succeeded....\n");\r
+            progressLog.info("Setting global configuration is succeeded....\n");\r
         }else {\r
-            output.format("Setting configuration is succeeded....\n");\r
+            progressLog.info("Setting configuration is succeeded....\n");\r
         }\r
-        \r
         output.flush();\r
-        \r
-        \r
-        \r
     }\r
 \r
 \r
+\r
+\r
     /**\r
      * Print usage of this command.\r
      * This is specific case of printUsage in the CLI due to just showing information without throwing CmdLineException , \r
index cd5781b..568277f 100644 (file)
@@ -23,7 +23,6 @@ import org.tizen.ncli.core.TizenSubCommandHandler;
 import org.tizen.ncli.core.collection.TreeNode;
 import org.tizen.ncli.ide.messages.TizenCLIMessages;
 import org.tizen.ncli.ide.util.TargetUtil;
-import org.tizen.sdblib.SmartDevelopmentBridge;
 
 /**
  * This class is entry point of Tizen New Command Line Interface. All the command line argument would be parsed and then
@@ -118,7 +117,9 @@ public class Main {
         }
 
         errorWriter.flush();
-        tizenCLI.printElapsedTime();
+        if( tizenCLI.needPrintTime()) {
+            tizenCLI.printElapsedTime();
+        }
         IOUtil.tryClose(errorWriter);
         System.exit(0);
 
index 5f81ddd..5faa6b2 100644 (file)
@@ -81,7 +81,6 @@ public class ConfigCLITest extends Args4JTestBase<ConfigCLI>{
      */\r
     @Override\r
     public ConfigCLI getTestObject() {\r
-        // TODO Auto-generated method stub\r
         return new ConfigCLI();\r
     }\r
 \r