<dependency>
<groupId>jp.sourceforge.talisman</groupId>
<artifactId>xmlcli</artifactId>
- <version>1.2.1</version>
+ <version>1.2.2</version>
<scope>compile</scope>
</dependency>
<dependency>
import java.util.ArrayList;\r
import java.util.Iterator;\r
import java.util.List;\r
+import java.util.ResourceBundle;\r
\r
import jp.naist.se.stigmata.event.BirthmarkEngineAdapter;\r
import jp.naist.se.stigmata.event.BirthmarkEngineEvent;\r
import jp.naist.se.stigmata.utils.ConfigFileExporter;\r
import jp.sourceforge.talisman.xmlcli.CommandLinePlus;\r
import jp.sourceforge.talisman.xmlcli.OptionsBuilder;\r
+import jp.sourceforge.talisman.xmlcli.ResourceHelpFormatter;\r
import jp.sourceforge.talisman.xmlcli.builder.OptionsBuilderFactory;\r
\r
import org.apache.commons.cli.CommandLineParser;\r
\r
public void printHelp(BirthmarkEnvironment env, Options options){\r
Package p = getClass().getPackage();\r
- HelpFormatter formatter = new HelpFormatter();\r
+ ResourceBundle helpResource = ResourceBundle.getBundle("resources.options");\r
+ HelpFormatter formatter = new ResourceHelpFormatter(helpResource);\r
formatter.printHelp(\r
String.format(\r
- "java -jar stigmata-%s.jar <OPTIONS> <TARGETS>%n" + \r
- "TARGETS is allowed as jar files, war files, class files, and classpath directory.",\r
+ helpResource.getString("cli.interface"),\r
p.getImplementationVersion()\r
),\r
options\r
);\r
System.out.println();\r
- System.out.println("Available birthmarks:");\r
+ System.out.println(helpResource.getString("cli.interface.birthmarks"));\r
for(BirthmarkSpi service: env.getServices()){\r
if(!service.isExpert()){\r
System.out.printf(" %-5s (%s): %s%n", service.getType(),\r
}\r
}\r
System.out.println();\r
- System.out.println("Available filers:");\r
- for(ComparisonPairFilterSet filterset: env.getFilterManager()\r
- .getFilterSets()){\r
- System.out.printf(" %s (%s)%n", filterset.getName(), filterset.isMatchAll()? "match all": "match any");\r
+ System.out.println(helpResource.getString("cli.interface.filters"));\r
+ for(ComparisonPairFilterSet filterset: env.getFilterManager().getFilterSets()){\r
+ String matchString = helpResource.getString("cli.interface.filter.matchall");\r
+ if(filterset.isMatchAny()) matchString = helpResource.getString("cli.interface.filter.matchany");\r
+ System.out.printf(" %s (%s)%n", filterset.getName(), matchString);\r
for(ComparisonPairFilter filter: filterset){\r
System.out.printf(" %s%n", filter);\r
}\r
}\r
System.out.println();\r
- System.out.println("Copyright (C) by Haruaki Tamada, Ph.D.");\r
- System.out.println("Please notify us some bugs and requests to <stigmata-info[ at ]lists.sourceforge.jp>");\r
+ System.out.println(helpResource.getString("cli.interface.copyright"));\r
+ System.out.println(helpResource.getString("cli.interface.mailto"));\r
}\r
\r
public void printLicense(){\r
}\r
\r
public void printVersion(){\r
+ ResourceBundle helpResource = ResourceBundle.getBundle("resources.options");\r
Package p = getClass().getPackage();\r
- System.out.println("stigmata version " + p.getImplementationVersion());\r
+ System.out.printf("%s %s%n", helpResource.getString("cli.version.header"), p.getImplementationVersion());\r
}\r
\r
public static void main(String[] args) throws Exception{\r
\r
target.TARGET_1=target 1\r
target.TARGET_2=target 2\r
-target.BOTH_TARGET=target 1 and target 2\r
-target.ONE_OF_TARGET=target 1 or target 2\r
+target.BOTH_TARGETS=target 1 and target 2\r
+target.ONE_OF_TARGETS=target 1 or target 2\r
\r
warning.dialog.title=Warnings\r
error.dialog.title=Error\r
--- /dev/null
+cli.option.classpath=Append classpath. Separated with comma.
+cli.option.birthmark=Set target birthmarks separated with comma. If this option is not specified, following available birthmarks are specified.
+cli.option.mode=Set running mode. Available values are `gui,' `list,' `extract,' `compare,' and `gui.' Default is `gui.'
+cli.option.format=Set output report format. Available value is `csv' and `xml.' Default is `csv.'
+cli.option.filter=Filtering round robin result. This option is ignored when mode is not `compare.'
+cli.option.config-file=Set configuration xml file. If you do not specified this option and you have `$HOME/.stimgata/birthmarks.xml,' this tool read it.
+cli.option.reset-config=Reset configuration file.
+cli.option.export-config=Export configuration file to specified file or standard output.
+cli.option.help=Print this message.
+cli.option.license=Print license agreement.
+cli.option.version=Print version information.
+cli.option.extraction-unit=Extract birthmark from EXTRACT_UNIT. Available values are CLASS, PACKAGE, and ARCHIVE. Default is CLASS
+cli.option.store-target=This option represents how to store extracted birthmarks. Available values are MEMORY, and XMLFILE.
+cli.interface=java -jar stigmata-%s.jar <OPTIONS> <TARGETS>%nTARGETS is allowed as jar files, war files, class files, and classpath directory.
+cli.interface.birthmarks=Available birthmarks:
+cli.interface.filters=Available filters:
+cli.interface.copyright=Copyright (C) by Haruaki Tamada, Ph.D. (SE Lab., NAIST)
+cli.interface.mailto=Please notify us some bugs and requests to <stigmata-info[ at ]list.sourceforge.jp>
+cli.interface.filter.matchall=Match all
+cli.interface.filter.matchany=Match any
+cli.version.header=Stigmata version
<definition name="classpath">
<short-option>c</short-option>
<long-option>classpath</long-option>
- <description>Append classpath. Separated with comma.</description>
+ <description>$(cli.option.classpath)</description>
<argument>REQUIRED</argument>
<argument-name>CLASSPATH</argument-name>
<value-separator>,</value-separator>
<definition name="birthmark">
<short-option>b</short-option>
<long-option>birthmark</long-option>
- <description>
- Set target birthmarks separated with comma. If this option is
- not specified, following available birthmarks are specified.
- </description>
+ <description>$(cli.option.birthmark)</description>
<argument>REQUIRED</argument>
<argument-name>BIRTHMARKS</argument-name>
<value-separator>,</value-separator>
<definition name="mode">
<short-option>m</short-option>
<long-option>mode</long-option>
- <description>Set running mode. Available values are `gui,' `list,' `extract,' `compare,' and `gui.' Default is `gui.'</description>
+ <description>$(cli.option.mode)</description>
<argument>REQUIRED</argument>
<argument-name>MODE</argument-name>
</definition>
<definition name="format">
<short-option>f</short-option>
<long-option>format</long-option>
- <description>Set output report format. Available value is `csv' and `xml.' Default is `csv.'</description>
+ <description>$(cli.option.format)</description>
<argument>REQUIRED</argument>
<argument-name>FORMAT</argument-name>
</definition>
<definition name="filter">
<short-option>F</short-option>
<long-option>filter</long-option>
- <description>Filtering round robin result. This option is ignored when mode is not `compare.'</description>
+ <description>$(cli.option.filter)</description>
<argument>REQUIRED</argument>
<argument-name>FILTER_NAME</argument-name>
</definition>
<definition name="config-file">
<long-option>config-file</long-option>
- <description>
- Set configuration xml file. If you do not specified this option and you have
- `.birthmarks.xml' on your home directory, or `birthmark.xml' on current directory,
- this tool read it.
- </description>
+ <description>$(cli.option.config-file)</description>
<argument>REQUIRED</argument>
<argument-name>CONFIG-FILE</argument-name>
</definition>
<definition name="reset-config">
<long-option>reset-config</long-option>
- <description>Reset config file.</description>
+ <description>$(cli.option.reset-config)</description>
<argument>NONE</argument>
</definition>
<definition name="export-config">
<long-option>export-config</long-option>
- <description>export configuration file to specified file or standard output.</description>
+ <description>$(cli.option.export-config)</description>
<argument>OPTIONAL</argument>
<argument-name>FILE</argument-name>
</definition>
<definition name="help">
<short-option>h</short-option>
<long-option>help</long-option>
- <description>print this message</description>
+ <description>$(cli.option.help)</description>
<argument>NONE</argument>
</definition>
<definition name="license">
<short-option>l</short-option>
<long-option>license</long-option>
- <description>print license</description>
+ <description>$(cli.option.license)</description>
<argument>NONE</argument>
</definition>
<definition name="version">
<short-option>v</short-option>
<long-option>version</long-option>
- <description>print version</description>
+ <description>$(cli.option.version)</description>
<argument>NONE</argument>
</definition>
<long-option>extraction-unit</long-option>
<argument>REQUIRED</argument>
<argument-name>EXTRACT_UNIT</argument-name>
- <description>extract birthmark from EXTRACT_UNIT. Available values are CLASS, PACKAGE, and ARCHIVE. Default is CLASS</description>
+ <description>$(cli.option.extraction-unit)</description>
</definition>
<definition name="store-target">
<long-option>store-target</long-option>
<argument>REQUIRED</argument>
<argument-name>STORE_TARGET</argument-name>
- <description>This option represents how to store extracted birthmarks. Available values are MEMORY, and XMLFILE.</description>
+ <description>$(cli.option.store-target)</description>
</definition>
</definitions>
<available-options>
+ <option>mode</option>
<option>classpath</option>
<option>birthmark</option>
- <option>format</option>
<option>filter</option>
- <option>mode</option>
+ <option>format</option>
+ <option>extraction-unit</option>
+
+ <option>store-target</option>
<option>config-file</option>
+ <option>export-config</option>
+ <option>reset-config</option>
+
<option>help</option>
<option>license</option>
<option>version</option>
- <option>export-config</option>
- <option>extraction-unit</option>
- <option>store-target</option>
- <option>reset-config</option>
</available-options>
</command-line>
--- /dev/null
+cli.option.classpath=\82±\82Ì\83I\83v\83V\83\87\83\93\82Ì\88ø\90\94\82ð\83N\83\89\83X\83p\83X\82É\92Ç\89Á\82µ\82Ü\82·\81D \88ø\90\94\82Í\83R\83\93\83}\82Å\8bæ\90Ø\82è\82Ü\82·\81D\r
+cli.option.birthmark=\92\8a\8fo\82·\82é\83o\81[\83X\83}\81[\83N\82ð\8ew\92è\82µ\82Ü\82·\81D\r
+cli.option.mode=\8eÀ\8ds\83\82\81[\83h\82ð\8ew\92è\82µ\82Ü\82·\81D\88ø\90\94\82É\89½\82à\8ew\92è\82µ\82È\82¯\82ê\82Î `gui' \82ª\8ew\92è\82³\82ê\82½\82Æ\82Ý\82È\82µ\81C GUI\83\82\81[\83h\82Å\97§\82¿\8fã\82ª\82è\82Ü\82·\81D \97L\8cø\82È\92l\82Í `gui,' `list,' `extract,' `compare,' \82Å\82·\81D\r
+cli.option.format=\83\8c\83|\81[\83g\82Ì\8fo\97Í\8c`\8e®\82ð\8ew\92è\82µ\82Ü\82·\81D `csv' \82à\82µ\82\82Í `xml' \82Ì\82Ý\82ª\97L\8cø\82Å\82·\81D \82±\82Ì\83I\83v\83V\83\87\83\93\82ª\8ew\92è\82³\82ê\82È\82¢\8fê\8d\87\82Í `csv' \82ª\8ew\92è\82³\82ê\82½\82Æ\82Ý\82È\82µ\82Ü\82·\81D\r
+cli.option.filter=\91\8d\93\96\82½\82è\94ä\8ar\8c\8b\89Ê\82É\82©\82¯\82é\83t\83B\83\8b\83^\82ð\8ew\92è\82µ\82Ü\82·\81D \82±\82Ì\83I\83v\83V\83\87\83\93\82Í\8eÀ\8ds\83\82\81[\83h\82ª `compare' \88È\8aO\82Ì\82Æ\82«\82Í\96³\8e\8b\82³\82ê\82Ü\82·\81D\r
+cli.option.config-file=\8f\89\8aú\90Ý\92è\83t\83@\83C\83\8b\82ð\8ew\92è\82µ\82Ü\82·\81D \82±\82Ì\83I\83v\83V\83\87\83\93\82ª\8ew\92è\82³\82ê\82È\82¢\8fê\8d\87\82Í\83z\81[\83\80\83f\83B\83\8c\83N\83g\83\8a\8fã\82Ì `.stigmata/stigmata.xml' \82ª\8ew\92è\82³\82ê\82½\82Æ\82Ý\82È\82µ\82Ü\82·\81D\r
+cli.option.reset-config=\8c»\8dÝ\82Ì\90Ý\92è\83t\83@\83C\83\8b\82ð\94j\8aü\82µ\81C \8f\89\8aú\90Ý\92è\82É\96ß\82µ\82Ü\82·\81D\r
+cli.option.export-config=\8c»\8dÝ\82Ì\90Ý\92è\82ð\95W\8f\80\8fo\97Í\82É\8f\91\82«\8fo\82µ\82Ü\82·\81D\r
+cli.option.help=\82±\82Ì\83\81\83b\83Z\81[\83W\82ð\95\\8e¦\82µ\82Ü\82·\81D\r
+cli.option.license=Stigmata\82Ì\83\89\83C\83Z\83\93\83X\82ð\95\\8e¦\82µ\82Ü\82·\81D\r
+cli.option.version=Stigmata\82Ì\83o\81[\83W\83\87\83\93\8fî\95ñ\82ð\95\\8e¦\82µ\82Ü\82·\81D\r
+cli.option.extraction-unit=\83o\81[\83X\83}\81[\83N\92\8a\8fo\82Ì\92P\88Ê\82ð\8ew\92è\82µ\82Ü\82·\81D \82±\82Ì\83I\83v\83V\83\87\83\93\82ª\8ew\92è\82³\82ê\82È\82¢\8fê\8d\87\81C `CLASS' \82ª\8ew\92è\82³\82ê\82½\82Æ\82Ý\82È\82µ\82Ü\82·\81D \97L\8cø\82È\92l\82Í`CLASS,' `PACKAGE,' `ARCHIVE'\82Å\82·\81D\r
+cli.option.store-target=\83o\81[\83X\83}\81[\83N\82Ì\8ai\94[\95û\96@\82ð\8ew\92è\82µ\82Ü\82·\81D \97L\8cø\82È\92l\82Í `MEMORY,' `XMLFILE'\82Å\82·\81D \82±\82Ì\83I\83v\83V\83\87\83\93\82Í\90Ý\92è\83t\83@\83C\83\8b\82Å\82à\8ew\92è\82·\82é\82±\82Æ\82ª\89Â\94\\82Å\82·\81D\r
+cli.interface=java -jar stigmata-%s.jar <OPTIONS> <TARGETS>%nTARGETS\82É\82Íjar\83t\83@\83C\83\8b\81Cwar\83t\83@\83C\83\8b\81C\83N\83\89\83X\83t\83@\83C\83\8b\82â\83f\83B\83\8c\83N\83g\83\8a\82ª\8ew\92è\89Â\94\\82Å\82·\81D\r
+cli.interface.birthmarks=\8ew\92è\89Â\94\\82È\83o\81[\83X\83}\81[\83N:\r
+cli.interface.filters=\8ew\92è\89Â\94\\82È\83t\83B\83\8b\83^:\r
+cli.interface.copyright=Copyright (C) by Haruaki Tamada, Ph.D. (SE Lab., NAIST)\r
+cli.interface.mailto=\83\8a\83N\83G\83X\83g\82â\83o\83O\95ñ\8d\90\82Í <stigmata-info[ at ]list.sourceforge.jp> \82Ü\82Å\82¨\8aè\82¢\82µ\82Ü\82·\81D\r
+cli.interface.filter.matchall=\91S\82Ä\82Ì\8fð\8c\8f\82É\83}\83b\83`\r
+cli.interface.filter.matchany=\82¢\82¸\82ê\82©\82Ì\8fð\8c\8f\82É\83}\83b\83`\r