Index: maven-commandline-plugin/src/java/org/codelutin/option/generate/RstGeneratorGoal.java diff -u maven-commandline-plugin/src/java/org/codelutin/option/generate/RstGeneratorGoal.java:1.13 maven-commandline-plugin/src/java/org/codelutin/option/generate/RstGeneratorGoal.java:1.14 --- maven-commandline-plugin/src/java/org/codelutin/option/generate/RstGeneratorGoal.java:1.13 Sat Mar 22 01:36:20 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/generate/RstGeneratorGoal.java Sun Mar 23 00:23:01 2008 @@ -21,7 +21,7 @@ import org.codelutin.i18n.I18n; import static org.codelutin.i18n.I18n._; import org.codelutin.i18n.LanguageManager; -import org.codelutin.i18n.LocaleEnum; +import org.codelutin.i18n.I18nLoader; import org.codelutin.i18n.bundle.I18nBundleManager; import org.codelutin.option.ConfigKey; import org.codelutin.option.ConfigPropertyKey; @@ -39,6 +39,7 @@ import java.io.Writer; import java.net.URL; import java.util.List; +import java.util.Locale; /** * Permet de générer les fichiers d'usages de l'application à partir de la classe de context.. @@ -85,7 +86,7 @@ List optionKeys = ReflectUtil.getConstants(getContext().getParserClass(), OptionKey.class); List configKeys = ReflectUtil.getConstants(getContext().getContextClass(), ConfigKey.class); - // find bundle for the project + // find bundles for the project URL[] urls = Resource.getURLs(I18nBundleManager.SEARCH_BUNDLE_PATTERN, getI18nCP().toURI().toURL()).toArray(new URL[2]); // reset i18n manager @@ -102,7 +103,7 @@ Writer w = null; try { - LocaleEnum langue = LocaleEnum.valueOf(bundle); + Locale langue = I18nLoader.newLocale(bundle); w = new BufferedWriter(new FileWriter(rstFilePath)); @@ -116,10 +117,10 @@ } } - private void generateForBundle(Writer w, File rstFilePath, String prefix, List optionKeys, List configKeys, LocaleEnum langue, URL[] urls) throws IOException { + private void generateForBundle(Writer w, File rstFilePath, String prefix, List optionKeys, List configKeys, Locale langue, URL[] urls) throws IOException { // init i18n with this - I18n.initISO88591(langue, urls); + I18n.init(langue,getEncoding(), urls); toString(w, _("commandline.generateRstFile.head", prefix), Index: maven-commandline-plugin/src/java/org/codelutin/option/generate/JavaGeneratorGoal.java diff -u maven-commandline-plugin/src/java/org/codelutin/option/generate/JavaGeneratorGoal.java:1.23 maven-commandline-plugin/src/java/org/codelutin/option/generate/JavaGeneratorGoal.java:1.24 --- maven-commandline-plugin/src/java/org/codelutin/option/generate/JavaGeneratorGoal.java:1.23 Sat Mar 22 06:07:59 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/generate/JavaGeneratorGoal.java Sun Mar 23 00:23:01 2008 @@ -21,6 +21,7 @@ import org.apache.commons.lang.StringUtils; import org.codelutin.option.Config; import org.codelutin.option.OptionAction; +import org.codelutin.option.def.DefinitionParser; import org.codelutin.option.def.DefinitionParserContexts.ConfigContext; import org.codelutin.option.def.DefinitionParserContexts.OptionContext; import org.codelutin.option.generate.java.AbstractConfigJavaGenerator; @@ -62,10 +63,10 @@ protected File out; /** - * @description type de source à  utiliser par le parser - * @parameter expression="${commandline.typeSource}" default-value="properties" + * @description le parser a utiliser + * @parameter expression="${commandline.parserFQN}" default-value="org.codelutin.option.def.DefinitionParserFromProperties" */ - protected String typeSource; + protected Class parserFQN; /** * @description flag to show errors of parsing. @@ -134,12 +135,12 @@ } boolean isConcreteConfig = getContext().isConcreteConfig(); - + getContext().setConfigSimpleName(getContext().getPrefix() + (isConcreteConfig ? "" : "Abstract") + "Config"); // generate specialized abstract SimpleConfigImpl for this parser if (needSpecializedAbstractConfig()) { - AbstractConfigJavaGenerator.doGenerate(getContext(),getPrefix() + "AbstractConfig"); + AbstractConfigJavaGenerator.doGenerate(getContext(), getPrefix() + "AbstractConfig"); // the super classes of generatred configs is the one generated here setConfigSuperClass(getContext().getPrefix() + "AbstractConfig"); @@ -157,7 +158,7 @@ // generate Config implementations for (ConfigContext context : getContext().getConfigContexts()) { String suffix = StringUtils.capitalize(context.getCategory()); - ConfigJavaGenerator.doGenerate(getContext(),context, + ConfigJavaGenerator.doGenerate(getContext(), context, getContext().getConfigSimpleName() + suffix, isConcreteConfig ); @@ -165,18 +166,18 @@ // generate Option implementations for (OptionContext context : getContext().getOptionContexts()) { - OptionJavaGenerator.doGenerate(getContext(), context,map.get(context.getKey())); + OptionJavaGenerator.doGenerate(getContext(), context, map.get(context.getKey())); } // generate OptionAction implementations for (OptionContext context : getContext().getOptionContexts()) { String suffix = StringUtils.capitalize(context.getKey()); String optionClassName = map.get(context.getKey()); - OptionActionJavaGenerator.doGenerate(getContext(),context, + OptionActionJavaGenerator.doGenerate(getContext(), context, getContext().getActionSimpleName() + suffix, getContext().getActionSuperClass() + "<" + optionClassName + ">", - optionClassName - ); + optionClassName + ); } map.clear(); } @@ -225,8 +226,8 @@ return source; } - public String getTypeSource() { - return typeSource; + public Class getParserFQN() { + return parserFQN; } public void setConfigSuperClass(String configSuperClass) { @@ -261,11 +262,11 @@ this.source = source; } - public void setTypeSource(String typeSource) { - this.typeSource = typeSource; + public void setOut(File out) { + this.out = out; } - public void setOut(File out) { - this.out=out; + public void setParserFQN(Class parserFQN) { + this.parserFQN = parserFQN; } } \ No newline at end of file Index: maven-commandline-plugin/src/java/org/codelutin/option/generate/JavaGeneratorContext.java diff -u maven-commandline-plugin/src/java/org/codelutin/option/generate/JavaGeneratorContext.java:1.3 maven-commandline-plugin/src/java/org/codelutin/option/generate/JavaGeneratorContext.java:1.4 --- maven-commandline-plugin/src/java/org/codelutin/option/generate/JavaGeneratorContext.java:1.3 Sat Mar 22 06:07:59 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/generate/JavaGeneratorContext.java Sun Mar 23 00:23:01 2008 @@ -21,7 +21,6 @@ import org.codelutin.option.def.DefinitionParser; import org.codelutin.option.def.DefinitionParserContexts.ConfigContext; import org.codelutin.option.def.DefinitionParserContexts.OptionContext; -import org.codelutin.option.def.DefinitionParserUtil.TypeSource; import org.codelutin.option.generate.util.AbstractGeneratorContext; import java.io.File; @@ -167,11 +166,10 @@ return goal.getSource(); } - public String getTypeSource() { - return goal.getTypeSource(); + public Class getParserFQN() { + return goal.getParserFQN(); } - public DefinitionParser getParser() { return parser; } @@ -188,7 +186,7 @@ return optionKeySimpleName; } - public void init(JavaGeneratorGoal goal) throws IOException, ClassNotFoundException { + public void init(JavaGeneratorGoal goal) throws IOException, ClassNotFoundException, IllegalAccessException, InstantiationException { super.init(goal); @@ -234,22 +232,14 @@ // get source (make sure to be on a absolute path) File source = new File(getSource().getAbsolutePath()); - // get type of source for parser - TypeSource typeP = null; - try { - typeP = TypeSource.valueOf(getTypeSource()); - } catch (Exception e) { - // ignore here (will be treate by parser) - } - // get source (make sure to be on a absolute path) source = new File(source.getAbsolutePath()); // init i18n for error explicit messages - I18n.initISO88591(); + I18n.init(); // do parse definitions and return parser - parser = DefinitionParser.doParse(typeP, source); + parser = DefinitionParser.doParse(getParserFQN(), source); getLog().info(_("commandline.parser.result.info", parser.getClass().getSimpleName(), parser.getOptions().length, parser.getConfigs().length)); Index: maven-commandline-plugin/src/java/org/codelutin/option/generate/RstGeneratorContext.java diff -u maven-commandline-plugin/src/java/org/codelutin/option/generate/RstGeneratorContext.java:1.3 maven-commandline-plugin/src/java/org/codelutin/option/generate/RstGeneratorContext.java:1.4 --- maven-commandline-plugin/src/java/org/codelutin/option/generate/RstGeneratorContext.java:1.3 Sat Mar 22 01:36:20 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/generate/RstGeneratorContext.java Sun Mar 23 00:23:01 2008 @@ -63,7 +63,7 @@ } @SuppressWarnings({"unchecked"}) - public void init(RstGeneratorGoal goal) throws IOException, ClassNotFoundException { + public void init(RstGeneratorGoal goal) throws IOException, ClassNotFoundException, IllegalAccessException, InstantiationException { super.init(goal); @@ -74,13 +74,12 @@ loader = initClassLoader(goal.getProject(), getLog()); // init i18n - I18n.initISO88591(System.getProperty("user.language"), System.getProperty("user.country")); + I18n.init(); parserClass = (Class) Class.forName(parserFQN, true, loader); contextClass = (Class) Class.forName(contextFQN, true, loader); - if (goal.getBundles() == null) { goal.setBundles(new String[]{"fr", "en"});