branch develop updated (f58b550 -> 302629b)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository nuiton-config. See https://gitlab.nuiton.org/nuiton/nuiton-config.git from f58b550 Update librairies (Fixes #4048) new 302629b Generate also config provider by convention The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 302629bdf2e90f5deb2486adccadcf524d2f785e Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Sep 30 17:13:38 2016 +0200 Generate also config provider by convention Summary of changes: nuiton-config-example/pom.xml | 32 +++++- .../example/MyApplicationConfigProvider.java | 56 ---------- ...MyApplication.java => NuitonConfigExample.java} | 9 +- .../example/NuitonConfigExampleConfigAction.java | 49 +++++++++ ...n.java => NuitonConfigExampleConfigOption.java} | 14 +-- .../org.nuiton.config.ApplicationConfigProvider | 1 - .../i18n/nuiton-config-example_en_GB.properties | 1 + .../i18n/nuiton-config-example_fr_FR.properties | 1 + .../org/nuiton/config/plugin/GenerateMojo.java | 56 +++++++--- .../templates/ApplicationConfigTransformer.java | 113 ++++++++++++++++++--- pom.xml | 8 +- 11 files changed, 242 insertions(+), 98 deletions(-) delete mode 100644 nuiton-config-example/src/main/java/org/nuiton/config/example/MyApplicationConfigProvider.java rename nuiton-config-example/src/main/java/org/nuiton/config/example/{MyApplication.java => NuitonConfigExample.java} (88%) create mode 100644 nuiton-config-example/src/main/java/org/nuiton/config/example/NuitonConfigExampleConfigAction.java rename nuiton-config-example/src/main/java/org/nuiton/config/example/{MyApplicationConfigOption.java => NuitonConfigExampleConfigOption.java} (89%) delete mode 100644 nuiton-config-example/src/main/resources/META-INF/services/org.nuiton.config.ApplicationConfigProvider create mode 100644 nuiton-config-example/src/main/resources/i18n/nuiton-config-example_en_GB.properties create mode 100644 nuiton-config-example/src/main/resources/i18n/nuiton-config-example_fr_FR.properties -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository nuiton-config. See https://gitlab.nuiton.org/nuiton/nuiton-config.git commit 302629bdf2e90f5deb2486adccadcf524d2f785e Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Sep 30 17:13:38 2016 +0200 Generate also config provider by convention --- nuiton-config-example/pom.xml | 32 +++++- .../example/MyApplicationConfigProvider.java | 56 ---------- ...MyApplication.java => NuitonConfigExample.java} | 9 +- .../example/NuitonConfigExampleConfigAction.java | 49 +++++++++ ...n.java => NuitonConfigExampleConfigOption.java} | 14 +-- .../org.nuiton.config.ApplicationConfigProvider | 1 - .../i18n/nuiton-config-example_en_GB.properties | 1 + .../i18n/nuiton-config-example_fr_FR.properties | 1 + .../org/nuiton/config/plugin/GenerateMojo.java | 56 +++++++--- .../templates/ApplicationConfigTransformer.java | 113 ++++++++++++++++++--- pom.xml | 8 +- 11 files changed, 242 insertions(+), 98 deletions(-) diff --git a/nuiton-config-example/pom.xml b/nuiton-config-example/pom.xml index a307b73..1a3ed52 100644 --- a/nuiton-config-example/pom.xml +++ b/nuiton-config-example/pom.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> @@ -28,6 +29,10 @@ <artifactId>nuiton-config</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <groupId>org.nuiton.i18n</groupId> + <artifactId>nuiton-i18n</artifactId> + </dependency> </dependencies> @@ -42,10 +47,6 @@ <executions> <execution> <phase>generate-sources</phase> - <id>generate-config</id> - <configuration> - <modelName>MyApplication</modelName> - </configuration> <goals> <goal>generate</goal> </goals> @@ -53,6 +54,27 @@ </executions> </plugin> + <plugin> + <groupId>org.nuiton.i18n</groupId> + <artifactId>i18n-maven-plugin</artifactId> + <executions> + <execution> + <phase>generate-sources</phase> + <goals> + <goal>parserJava</goal> + <goal>gen</goal> + </goals> + <configuration> + <entries> + <entry> + <basedir>${project.build.directory}/generated-sources/java</basedir> + </entry> + </entries> + </configuration> + </execution> + </executions> + </plugin> + </plugins> </build> diff --git a/nuiton-config-example/src/main/java/org/nuiton/config/example/MyApplicationConfigProvider.java b/nuiton-config-example/src/main/java/org/nuiton/config/example/MyApplicationConfigProvider.java deleted file mode 100644 index dc08a02..0000000 --- a/nuiton-config-example/src/main/java/org/nuiton/config/example/MyApplicationConfigProvider.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.nuiton.config.example; - -/*- - * #%L - * Nuiton Config :: Example - * %% - * Copyright (C) 2016 Code Lutin, Tony Chemit - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -import org.nuiton.config.ApplicationConfigProvider; -import org.nuiton.config.ConfigActionDef; - -import java.util.Locale; - -/** - * Created on 30/09/16. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class MyApplicationConfigProvider implements ApplicationConfigProvider { - - @Override - public String getName() { - return "application"; - } - - @Override - public String getDescription(Locale locale) { - return "Configuration"; - } - - @Override - public MyApplicationConfigOption[] getOptions() { - return MyApplicationConfigOption.values(); - } - - @Override - public ConfigActionDef[] getActions() { - return new ConfigActionDef[0]; - } -} diff --git a/nuiton-config-example/src/main/java/org/nuiton/config/example/MyApplication.java b/nuiton-config-example/src/main/java/org/nuiton/config/example/NuitonConfigExample.java similarity index 88% rename from nuiton-config-example/src/main/java/org/nuiton/config/example/MyApplication.java rename to nuiton-config-example/src/main/java/org/nuiton/config/example/NuitonConfigExample.java index ca3bcfc..a1daa3e 100644 --- a/nuiton-config-example/src/main/java/org/nuiton/config/example/MyApplication.java +++ b/nuiton-config-example/src/main/java/org/nuiton/config/example/NuitonConfigExample.java @@ -29,11 +29,12 @@ import org.nuiton.config.ArgumentsParserException; * * @author Tony Chemit - chemit@codelutin.com */ -public class MyApplication { +public class NuitonConfigExample { public static void main(String... args) throws ArgumentsParserException { - MyApplicationConfig config = new MyApplicationConfig(); + NuitonConfigExampleConfig config = new NuitonConfigExampleConfig(); + config.get().parse(args); System.out.println("Configuration file name : " + config.getConfigFile()); @@ -42,4 +43,8 @@ public class MyApplication { } + public void help() { + System.out.println("Aide."); + } + } diff --git a/nuiton-config-example/src/main/java/org/nuiton/config/example/NuitonConfigExampleConfigAction.java b/nuiton-config-example/src/main/java/org/nuiton/config/example/NuitonConfigExampleConfigAction.java new file mode 100644 index 0000000..935823e --- /dev/null +++ b/nuiton-config-example/src/main/java/org/nuiton/config/example/NuitonConfigExampleConfigAction.java @@ -0,0 +1,49 @@ +package org.nuiton.config.example; + +import org.nuiton.config.ConfigActionDef; + +import static org.nuiton.i18n.I18n.n; +import static org.nuiton.i18n.I18n.t; + +/** + * Les actions appellables en ligne de commande. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public enum NuitonConfigExampleConfigAction implements ConfigActionDef { + + /** + * Afficher l'aide dans la console. + * + * @since 1.0 + */ + HELP( + "Aide", + "org.nuiton.config.example.NuitonConfigExample#help", "-h", "--help"); + + + public final String description; + + public final String action; + + public final String[] aliases; + + NuitonConfigExampleConfigAction(String description, String action, String... aliases) { + this.description = description; + this.action = action; + this.aliases = aliases; + } + + public String getDescription() { + return description; + } + + public String getAction() { + return action; + } + + public String[] getAliases() { + return aliases; + } + +} diff --git a/nuiton-config-example/src/main/java/org/nuiton/config/example/MyApplicationConfigOption.java b/nuiton-config-example/src/main/java/org/nuiton/config/example/NuitonConfigExampleConfigOption.java similarity index 89% rename from nuiton-config-example/src/main/java/org/nuiton/config/example/MyApplicationConfigOption.java rename to nuiton-config-example/src/main/java/org/nuiton/config/example/NuitonConfigExampleConfigOption.java index f69f9b2..19d4620 100644 --- a/nuiton-config-example/src/main/java/org/nuiton/config/example/MyApplicationConfigOption.java +++ b/nuiton-config-example/src/main/java/org/nuiton/config/example/NuitonConfigExampleConfigOption.java @@ -27,7 +27,7 @@ import org.nuiton.config.ConfigOptionDef; import java.io.File; -public enum MyApplicationConfigOption implements ConfigOptionDef { +public enum NuitonConfigExampleConfigOption implements ConfigOptionDef { /** * le nom du fichier de configuration (sans le prefix .) @@ -95,12 +95,12 @@ public enum MyApplicationConfigOption implements ConfigOptionDef { */ protected boolean _final; - MyApplicationConfigOption(Class<?> type, - String key, - String description, - String defaultValue, - boolean _transient, - boolean _final) { + NuitonConfigExampleConfigOption(Class<?> type, + String key, + String description, + String defaultValue, + boolean _transient, + boolean _final) { this.key = key; this.description = description; this.defaultValue = defaultValue; diff --git a/nuiton-config-example/src/main/resources/META-INF/services/org.nuiton.config.ApplicationConfigProvider b/nuiton-config-example/src/main/resources/META-INF/services/org.nuiton.config.ApplicationConfigProvider deleted file mode 100644 index 499f119..0000000 --- a/nuiton-config-example/src/main/resources/META-INF/services/org.nuiton.config.ApplicationConfigProvider +++ /dev/null @@ -1 +0,0 @@ -org.nuiton.config.example.MyApplicationConfigProvider \ No newline at end of file diff --git a/nuiton-config-example/src/main/resources/i18n/nuiton-config-example_en_GB.properties b/nuiton-config-example/src/main/resources/i18n/nuiton-config-example_en_GB.properties new file mode 100644 index 0000000..874cc75 --- /dev/null +++ b/nuiton-config-example/src/main/resources/i18n/nuiton-config-example_en_GB.properties @@ -0,0 +1 @@ +NuitonConfigExampleConfig.description=Example configuration diff --git a/nuiton-config-example/src/main/resources/i18n/nuiton-config-example_fr_FR.properties b/nuiton-config-example/src/main/resources/i18n/nuiton-config-example_fr_FR.properties new file mode 100644 index 0000000..a7eb816 --- /dev/null +++ b/nuiton-config-example/src/main/resources/i18n/nuiton-config-example_fr_FR.properties @@ -0,0 +1 @@ +NuitonConfigExampleConfig.description=Configuration d'exemple diff --git a/nuiton-config-maven-plugin/src/main/java/org/nuiton/config/plugin/GenerateMojo.java b/nuiton-config-maven-plugin/src/main/java/org/nuiton/config/plugin/GenerateMojo.java index 0dbf67a..d74663c 100644 --- a/nuiton-config-maven-plugin/src/main/java/org/nuiton/config/plugin/GenerateMojo.java +++ b/nuiton-config-maven-plugin/src/main/java/org/nuiton/config/plugin/GenerateMojo.java @@ -24,6 +24,7 @@ package org.nuiton.config.plugin; import com.google.common.base.Joiner; import com.google.common.collect.Iterables; +import com.google.common.io.Files; import org.antlr.v4.runtime.ANTLRInputStream; import org.antlr.v4.runtime.CommonTokenStream; import org.antlr.v4.runtime.TokenStream; @@ -35,6 +36,7 @@ import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; import org.apache.maven.project.MavenProject; +import org.nuiton.config.ApplicationConfigProvider; import org.nuiton.config.plugin.parser.java.Java8BaseVisitor; import org.nuiton.config.plugin.parser.java.Java8Lexer; import org.nuiton.config.plugin.parser.java.Java8Parser; @@ -88,23 +90,28 @@ public class GenerateMojo extends AbstractPlugin implements PluginWithEncoding { * example with gav * <pre>org.nuiton:nuiton-config</pre> * <p> - * the package name will be {@code org.nuiton.config} and not {@code org.nuiton.nuiton.config}. + * the package name will be {@code org.nuiton.config} and not {@code org.nuiton.nuiton.config}. * </p> - * */ @Parameter(property = "config.packageName") private String packageName; /** * Model name (will prefix the generated files names with it). + * <p> + * By default, will use artifactId in camelCase format ( example: Model name for artifact id + * {@code nuiton-config-example} is {@code NuitonConfigExample} ). + * </p> */ - @Parameter(property = "config.modelName", required = true) + @Parameter(property = "config.modelName") private String modelName; /** * The fully qualified name of the enum class of options to scan to generate the configuration java files. * <p> - * By default, will use groupId.artifactId (with {@code -} replaced by {@code .}) plus {@code .config.modelNameOption}. + * By default, will use groupId.artifactId (with {@code -} replaced by {@code .}) plus {@code .modelNameConfigOption}. + * </p> + * Example: {@code org.nuiton:nuiton-config-example} gives {@code org.nuiton.config.example.NuitonConfigExampleConfigOption} */ @Parameter(property = "config.optionsClassName") private String optionsClassName; @@ -113,6 +120,8 @@ public class GenerateMojo extends AbstractPlugin implements PluginWithEncoding { * The fully qualified name of the enum class of actions to scan to generate the configuration java files. * <p> * By default, will use groupId.artifactId (with {@code -} replaced by {@code .}) plus {@code .config.modelNameAction}. + * </p> + * Example: {@code org.nuiton:nuiton-config-example} gives {@code org.nuiton.config.example.NuitonConfigExampleConfigAction} */ @Parameter(property = "config.actionsClassName") private String actionsClassName; @@ -130,6 +139,12 @@ public class GenerateMojo extends AbstractPlugin implements PluginWithEncoding { private File outputdirectory; /** + * Pour générer le provider de configuration. + */ + @Parameter(property = "config.generateProvider", defaultValue = "true") + private boolean generateProvider; + + /** * Pour activer le mode verbeux. */ @Parameter(property = "config.verbose", defaultValue = "${maven.verbose}") @@ -145,12 +160,6 @@ public class GenerateMojo extends AbstractPlugin implements PluginWithEncoding { private String encoding; /** - * - */ - @Parameter(property = "config.prefix", defaultValue = "Config") - private String prefix; - - /** * Maven project. */ @Parameter(defaultValue = "${project}", readonly = true) @@ -159,6 +168,7 @@ public class GenerateMojo extends AbstractPlugin implements PluginWithEncoding { private ObjectModelImpl model; private ApplicationConfigTransformer template; + private String configClassName; @Override protected void init() throws Exception { @@ -177,6 +187,17 @@ public class GenerateMojo extends AbstractPlugin implements PluginWithEncoding { getLog().info("Use package name: " + packageName); } + if (modelName == null) { + List<String> artifactIdPaths = new ArrayList<>(); + for (String artifactIdPath : Arrays.asList(getProject().getArtifactId().replaceAll("-", ".").split("\\."))) { + artifactIdPaths.add(StringUtils.capitalize(artifactIdPath)); + } + modelName = Joiner.on("").join(artifactIdPaths); + getLog().info("Use model name: " + modelName); + + } + String prefix = "Config"; + if (optionsClassName == null) { optionsClassName = packageName + "." + modelName + prefix + "Option"; @@ -227,8 +248,8 @@ public class GenerateMojo extends AbstractPlugin implements PluginWithEncoding { model.setName(modelName); - String className = modelName + prefix; - getLog().info("Config class name: " + className); + configClassName = modelName + prefix; + getLog().info("Config class name: " + configClassName); File file = PluginHelper.getFile(sourceDirectory, optionsClassName.split("\\.")); File javaFile = new File(file.getParentFile(), file.getName() + ".java"); @@ -250,7 +271,7 @@ public class GenerateMojo extends AbstractPlugin implements PluginWithEncoding { Map<String, String> names = visitor.getNames(); ObjectModelClassImpl aClass = new ObjectModelClassImpl(); - aClass.setName(className); + aClass.setName(configClassName); aClass.setPackage(packageName); model.addClass(aClass); @@ -267,6 +288,7 @@ public class GenerateMojo extends AbstractPlugin implements PluginWithEncoding { templateProperties.put(Template.PROP_VERBOSE, verbose); templateProperties.put(Template.PROP_OVERWRITE, true); templateProperties.put(Template.PROP_CLASS_LOADER, loader); + templateProperties.put(ApplicationConfigTransformer.PROP_GENERATE_PROVIDER, generateProvider + ""); templateProperties.put(ApplicationConfigTransformer.PROP_OPTION_CLASS_NAME, optionsClassName); if (actionsClassName != null) { templateProperties.put(ApplicationConfigTransformer.PROP_ACTION_CLASS_NAME, actionsClassName); @@ -290,6 +312,14 @@ public class GenerateMojo extends AbstractPlugin implements PluginWithEncoding { template.applyTemplate(model, outputdirectory); + if (generateProvider) { + + String content = packageName + "." + configClassName + "Provider"; + File serviceLoaderFile = PluginHelper.getFile(outputdirectory, "META-INF", "services", ApplicationConfigProvider.class.getName()); + Files.createParentDirs(serviceLoaderFile); + Files.write(content.getBytes(), serviceLoaderFile); + getLog().info("Generate serviceLoader provider file: " + serviceLoaderFile); + } } @Override diff --git a/nuiton-config-maven-plugin/src/main/java/org/nuiton/config/plugin/templates/ApplicationConfigTransformer.java b/nuiton-config-maven-plugin/src/main/java/org/nuiton/config/plugin/templates/ApplicationConfigTransformer.java index 7960111..9315ccf 100644 --- a/nuiton-config-maven-plugin/src/main/java/org/nuiton/config/plugin/templates/ApplicationConfigTransformer.java +++ b/nuiton-config-maven-plugin/src/main/java/org/nuiton/config/plugin/templates/ApplicationConfigTransformer.java @@ -27,6 +27,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.codehaus.plexus.util.StringUtils; import org.nuiton.config.ApplicationConfig; +import org.nuiton.config.ApplicationConfigProvider; +import org.nuiton.config.ConfigActionDef; import org.nuiton.eugene.GeneratorUtil; import org.nuiton.eugene.java.JavaGeneratorUtil; import org.nuiton.eugene.java.ObjectModelTransformerToJava; @@ -34,7 +36,9 @@ import org.nuiton.eugene.models.object.ObjectModelAttribute; import org.nuiton.eugene.models.object.ObjectModelClass; import org.nuiton.eugene.models.object.ObjectModelJavaModifier; import org.nuiton.eugene.models.object.ObjectModelOperation; +import org.nuiton.i18n.I18n; +import java.util.Locale; import java.util.Set; /*{generator option: parentheses = false}*/ @@ -53,6 +57,7 @@ public class ApplicationConfigTransformer extends ObjectModelTransformerToJava { private static final Log log = LogFactory.getLog(ApplicationConfigTransformer.class); public static final String PROP_OPTION_CLASS_NAME = "optionClassName"; public static final String PROP_ACTION_CLASS_NAME = "actionClassName"; + public static final String PROP_GENERATE_PROVIDER = "generateProvider"; @Override public void transformFromClass(ObjectModelClass clazz) { @@ -60,17 +65,10 @@ public class ApplicationConfigTransformer extends ObjectModelTransformerToJava { String packageName = clazz.getPackageName(); String abstractClassName = "Generated" + clazz.getName(); - if (canGenerate(packageName + "." + abstractClassName)) { - - generateAbstractClass(packageName, abstractClassName, clazz); - - } else { + String optionClassName = getProperty(PROP_OPTION_CLASS_NAME); + String actionClassName = getProperty(PROP_ACTION_CLASS_NAME); - if (log.isDebugEnabled()) { - log.debug("Skip generation for " + abstractClassName); - } - - } + generateAbstractClass(packageName, abstractClassName, clazz, optionClassName, actionClassName); String className = clazz.getName(); if (canGenerate(packageName + "." + className)) { @@ -84,14 +82,103 @@ public class ApplicationConfigTransformer extends ObjectModelTransformerToJava { } } + + String generateProvider = getProperty(PROP_GENERATE_PROVIDER); + if (generateProvider != null && Boolean.TRUE.equals(Boolean.valueOf(generateProvider))) { + + String abstractProviderClassName = "Generated" + className + "Provider"; + generateAbstractProvider(packageName, abstractProviderClassName, optionClassName, actionClassName); + + String providerClassName = className + "Provider"; + if (canGenerate(providerClassName)) { + + generateProvider(packageName, abstractProviderClassName, providerClassName, className); + + } + } } - private void generateAbstractClass(String packageName, String abstractClassName, ObjectModelClass input) { + private void generateAbstractProvider(String packageName, String providerClassName, String optionClassName, String actionClassName) { + + ObjectModelClass output = createAbstractClass(providerClassName, packageName); + addInterface(output, ApplicationConfigProvider.class); + + if (log.isInfoEnabled()) { + log.info("Generate " + output.getQualifiedName()); + } - String optionClassName = getProperty(PROP_OPTION_CLASS_NAME); String optionClassSimpleName = GeneratorUtil.getSimpleName(optionClassName); - String actionClassName = getProperty(PROP_ACTION_CLASS_NAME); + ObjectModelOperation getOptions = addOperation( + output, "getOptions", optionClassName + "[]", ObjectModelJavaModifier.PUBLIC); + addAnnotation(output, getOptions, Override.class); + setOperationBody(getOptions, "" + /*{ + return <%=optionClassSimpleName%>.values(); + }*/ + ); + + if (actionClassName == null) { + + addImport(output, ConfigActionDef.class); + ObjectModelOperation getActions = addOperation( + output, "getActions", "ConfigActionDef[]", ObjectModelJavaModifier.PUBLIC); + addAnnotation(output, getActions, Override.class); + setOperationBody(getActions, "" + /*{ + return new ConfigActionDef[0]; + }*/ + ); + } else { + + String actionClassSimpleName = GeneratorUtil.getSimpleName(actionClassName); + + ObjectModelOperation getActions = addOperation( + output, "getActions", actionClassName + "[]", ObjectModelJavaModifier.PUBLIC); + addAnnotation(output, getActions, Override.class); + setOperationBody(getActions, "" + /*{ + return <%=actionClassSimpleName%>.values(); + }*/ + ); + } + + } + + private void generateProvider(String packageName, String abstractProviderClassName, String providerClassName, String className) { + + ObjectModelClass output = createClass(providerClassName, packageName); + setSuperClass(output, abstractProviderClassName); + addImport(output, I18n.class); + + if (log.isInfoEnabled()) { + log.info("Generate " + output.getQualifiedName()); + } + + ObjectModelOperation getName = addOperation( + output, "getName", String.class, ObjectModelJavaModifier.PUBLIC); + addAnnotation(output, getName, Override.class); + setOperationBody(getName, "" + /*{ + return "<%=className%>"; + }*/ + ); + + ObjectModelOperation getDescription = addOperation( + output, "getDescription", String.class, ObjectModelJavaModifier.PUBLIC); + addParameter(getDescription, Locale.class, "locale"); + addAnnotation(output, getDescription, Override.class); + setOperationBody(getDescription, "" + /*{ + return I18n.l(locale, "<%=className%>.description"); + }*/ + ); + + } + + private void generateAbstractClass(String packageName, String abstractClassName, ObjectModelClass input, String optionClassName, String actionClassName) { + + String optionClassSimpleName = GeneratorUtil.getSimpleName(optionClassName); ObjectModelClass output = createAbstractClass(abstractClassName, packageName); diff --git a/pom.xml b/pom.xml index d971623..d83df1a 100644 --- a/pom.xml +++ b/pom.xml @@ -69,6 +69,7 @@ <mavenVersion>3.3.9</mavenVersion> <doxiaVersion>1.7</doxiaVersion> + <nuitonI18nVersion>3.6.2</nuitonI18nVersion> <!-- Documentation is in apt format --> <siteSourcesType>apt</siteSourcesType> @@ -98,7 +99,7 @@ <dependency> <groupId>org.nuiton.i18n</groupId> <artifactId>nuiton-i18n</artifactId> - <version>3.6.2</version> + <version>${nuitonI18nVersion}</version> </dependency> <dependency> @@ -296,6 +297,11 @@ <artifactId>processor-maven-plugin</artifactId> <version>1.3</version> </plugin> + <plugin> + <groupId>org.nuiton.i18n</groupId> + <artifactId>i18n-maven-plugin</artifactId> + <version>${nuitonI18nVersion}</version> + </plugin> </plugins> </pluginManagement> -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm