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>
--- /dev/null
+<?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>
*/\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
* \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
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
}
/**
- * 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;
+ }
}
BuildWebParameter commandData = command.runCommand();\r
}\r
\r
+ @Override\r
+ public boolean needPrintTime() {\r
+ return true;\r
+ }\r
+\r
}\r
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
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
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
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
}
errorWriter.flush();
- tizenCLI.printElapsedTime();
+ if( tizenCLI.needPrintTime()) {
+ tizenCLI.printElapsedTime();
+ }
IOUtil.tryClose(errorWriter);
System.exit(0);
*/\r
@Override\r
public ConfigCLI getTestObject() {\r
- // TODO Auto-generated method stub\r
return new ConfigCLI();\r
}\r
\r