branch develop updated (c9a4a3b -> 493012d)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository eugene. See https://gitlab.nuiton.org/nuiton/eugene.git from c9a4a3b tidy poms new 8dccc55 Use ini format to describe extension model (Fixes #4065) + review the model extension package new 493012d Replace commons-collections by commons-collections4 (fixes #4066) The 2 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 493012d4f8c58be788514d33fc379d504513b408 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Oct 9 13:22:16 2016 +0200 Replace commons-collections by commons-collections4 (fixes #4066) commit 8dccc55d9a88196f7c089e6524d2eecaf9368902 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Oct 9 13:12:09 2016 +0200 Use ini format to describe extension model (Fixes #4065) + review the model extension package Summary of changes: eugene-java-templates/pom.xml | 4 +- .../nuiton/eugene/java/JavaBeanTransformer.java | 2 +- .../eugene/java/SimpleJavaBeanTransformer.java | 2 +- .../SimpleJavaBeanWithNoInterfaceTransformer.java | 2 +- eugene-maven-plugin/pom.xml | 8 +- .../org/nuiton/eugene/plugin/GenerateMojo.java | 2 +- .../TransformCompactToFlatPropertiesMojo.java | 241 -------------------- .../eugene/plugin/TransformExtensionModelMojo.java | 228 +++++++++++++++++++ .../TransformFlatPropertiesToCompactMojo.java | 243 --------------------- .../plugin/writer/BaseChainedFileWriter.java | 2 +- .../writer/BaseChainedFileWriterToMemoryModel.java | 6 +- eugene/pom.xml | 9 +- .../java/org/nuiton/eugene/java/JavaGenerator.java | 2 +- .../eugene/java/ObjectModelTransformerToJava.java | 2 +- .../extension/io/ModelExtensionFileParser.java | 65 ++++++ .../io}/ModelExtensionFileParserCallback.java | 3 +- .../io/ModelExtensionFileParserIniImpl.java | 148 +++++++++++++ .../ModelExtensionFileParserPropertiesImpl.java} | 15 +- .../models/extension/io/ModelExtensionFormat.java | 37 ++++ .../io/ModelExtensionReader.java} | 39 +--- .../models/extension/io/ModelExtensionWriter.java | 31 +++ .../extension/io/ModelExtensionWriterIniImpl.java | 137 ++++++++++++ .../io/ModelExtensionWriterPropertiesImpl.java | 127 +++++++++++ .../models/extension/model/ModelExtension.java | 41 ++-- .../extension/model/ModelExtensionAttribute.java | 7 +- .../extension/model/ModelExtensionBuilder.java | 42 ++-- .../extension/model/ModelExtensionClass.java | 35 +-- .../extension/model/ModelExtensionElement.java | 9 +- .../extension/model/ModelExtensionPackage.java | 7 +- .../object/reader/AbstractObjectModelReader.java | 6 +- .../extension/CompactModelExtensionFileParser.java | 193 ---------------- .../reader/extension/ModelExtensionFileParser.java | 54 ----- .../extension/ModelExtensionFileParserFactory.java | 55 ----- .../eugene/writer/FileGrabberFromClassPath.java | 2 +- .../eugene/writer/FileGrabberFromDirectory.java | 2 +- pom.xml | 5 + 36 files changed, 897 insertions(+), 916 deletions(-) delete mode 100644 eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/TransformCompactToFlatPropertiesMojo.java create mode 100644 eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/TransformExtensionModelMojo.java delete mode 100644 eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/TransformFlatPropertiesToCompactMojo.java create mode 100644 eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFileParser.java rename eugene/src/main/java/org/nuiton/eugene/models/{object/reader/extension => extension/io}/ModelExtensionFileParserCallback.java (96%) create mode 100644 eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFileParserIniImpl.java rename eugene/src/main/java/org/nuiton/eugene/models/{object/reader/extension/FlatModelExtensionFileParser.java => extension/io/ModelExtensionFileParserPropertiesImpl.java} (93%) create mode 100644 eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFormat.java rename eugene/src/main/java/org/nuiton/eugene/models/{object/reader/extension/LoadModelExtension.java => extension/io/ModelExtensionReader.java} (92%) create mode 100644 eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriter.java create mode 100644 eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriterIniImpl.java create mode 100644 eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriterPropertiesImpl.java rename eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ModelBean.java => eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtension.java (57%) rename eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/AttributeBean.java => eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionAttribute.java (83%) rename eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ModelBeanBuilder.java => eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionBuilder.java (74%) rename eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ClassBean.java => eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionClass.java (57%) rename eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ElementBean.java => eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionElement.java (86%) rename eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/PackageBean.java => eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionPackage.java (83%) delete mode 100644 eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/CompactModelExtensionFileParser.java delete mode 100644 eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/ModelExtensionFileParser.java delete mode 100644 eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/ModelExtensionFileParserFactory.java -- 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 eugene. See https://gitlab.nuiton.org/nuiton/eugene.git commit 8dccc55d9a88196f7c089e6524d2eecaf9368902 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Oct 9 13:12:09 2016 +0200 Use ini format to describe extension model (Fixes #4065) + review the model extension package --- eugene-maven-plugin/pom.xml | 5 + .../org/nuiton/eugene/plugin/GenerateMojo.java | 2 +- .../TransformCompactToFlatPropertiesMojo.java | 241 -------------------- .../eugene/plugin/TransformExtensionModelMojo.java | 228 +++++++++++++++++++ .../TransformFlatPropertiesToCompactMojo.java | 243 --------------------- .../writer/BaseChainedFileWriterToMemoryModel.java | 6 +- eugene/pom.xml | 5 + .../extension/io/ModelExtensionFileParser.java | 65 ++++++ .../io}/ModelExtensionFileParserCallback.java | 3 +- .../io/ModelExtensionFileParserIniImpl.java | 148 +++++++++++++ .../ModelExtensionFileParserPropertiesImpl.java} | 11 +- .../models/extension/io/ModelExtensionFormat.java | 37 ++++ .../io/ModelExtensionReader.java} | 39 +--- .../models/extension/io/ModelExtensionWriter.java | 31 +++ .../extension/io/ModelExtensionWriterIniImpl.java | 137 ++++++++++++ .../io/ModelExtensionWriterPropertiesImpl.java | 127 +++++++++++ .../models/extension/model/ModelExtension.java | 41 ++-- .../extension/model/ModelExtensionAttribute.java | 7 +- .../extension/model/ModelExtensionBuilder.java | 42 ++-- .../extension/model/ModelExtensionClass.java | 35 +-- .../extension/model/ModelExtensionElement.java | 9 +- .../extension/model/ModelExtensionPackage.java | 7 +- .../object/reader/AbstractObjectModelReader.java | 6 +- .../extension/CompactModelExtensionFileParser.java | 193 ---------------- .../reader/extension/ModelExtensionFileParser.java | 54 ----- .../extension/ModelExtensionFileParserFactory.java | 55 ----- pom.xml | 5 + 27 files changed, 884 insertions(+), 898 deletions(-) diff --git a/eugene-maven-plugin/pom.xml b/eugene-maven-plugin/pom.xml index 733f1b0..637c9c9 100644 --- a/eugene-maven-plugin/pom.xml +++ b/eugene-maven-plugin/pom.xml @@ -112,6 +112,11 @@ </dependency> <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + </dependency> + + <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </dependency> diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java index 4f410be..42aef3b 100644 --- a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java +++ b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java @@ -946,7 +946,7 @@ public class GenerateMojo extends AbstractPlugin implements ChainedFileWriterCon if (template == null) { getLog().warn("template [" + templateName + "] is not " + - "registred via plexus, try to load it directly"); + "registred via plexus, try to read it directly"); try { template = (Template<Model>) Class.forName( templateName, true, loader).newInstance(); diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/TransformCompactToFlatPropertiesMojo.java b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/TransformCompactToFlatPropertiesMojo.java deleted file mode 100644 index ae72e57..0000000 --- a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/TransformCompactToFlatPropertiesMojo.java +++ /dev/null @@ -1,241 +0,0 @@ -package org.nuiton.eugene.plugin; - -/*- - * #%L - * EUGene :: Maven plugin - * %% - * Copyright (C) 2006 - 2016 CodeLutin - * %% - * 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 com.google.common.base.Joiner; -import com.google.common.io.Files; -import org.apache.commons.lang3.SystemUtils; -import org.apache.maven.plugins.annotations.Mojo; -import org.apache.maven.plugins.annotations.Parameter; -import org.apache.maven.project.MavenProject; -import org.nuiton.eugene.plugin.modelextension.AttributeBean; -import org.nuiton.eugene.plugin.modelextension.ClassBean; -import org.nuiton.eugene.plugin.modelextension.ModelBean; -import org.nuiton.eugene.plugin.modelextension.ModelBeanBuilder; -import org.nuiton.eugene.plugin.modelextension.PackageBean; -import org.nuiton.plugin.AbstractPlugin; - -import java.io.File; -import java.io.FilenameFilter; -import java.nio.charset.Charset; -import java.util.Map; -import java.util.Set; - -/** - * To a transform some object model extension files in compact format to a single flat properties format. - * - * <h3>Example of compact format</h3> - * <pre> - * - * [model] - * modeTagValue value - * modelStereotype - * - * [package] - * fr.ird.observe.entities - * packageTagValue value - * packageStereotype - * [class] - * fr.ird.observe.entities.CommentableEntity - * classTagValue value - * classStereotype - * attribute.attributeTagValue value - * attribute.attributeStereotype - * </pre> - * - * <h3>Example of flat properties format</h3> - * <pre> - * model.tagValue.modeTagValue=value - * model.stereotype.modelStereotype - * package.fr.ird.observe.entities.tagValue.packageTagValue=value - * package.fr.ird.observe.entities.stereotype=packageStereotype - * fr.ird.observe.entities.CommentableEntity.class.tagValue.classTagValue=value - * fr.ird.observe.entities.CommentableEntity.class.stereotype=classStereotype - * fr.ird.observe.entities.CommentableEntity.attribute.attribute.tagValue.attributeTagValue=value - * fr.ird.observe.entities.CommentableEntity.attribute.attribute.stereotype=attributeStereotype* - * </pre> - * Created on 09/09/16. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 3.0 - */ -@Mojo(name = "transform-compact-to-flat-properties") -public class TransformCompactToFlatPropertiesMojo extends AbstractPlugin { - - /** - * Name of model (the generated file name is {@code modelName.properties}). - */ - @Parameter(property = "eugene.modelName", required = true) - protected String modelName; - - /** - * Where to find and generate files. - */ - @Parameter(property = "eugene.directory", defaultValue = "${project.basedir}/src/main/xmi", required = true) - protected File directory; - - /** - * Maven project. - */ - @Parameter(defaultValue = "${project}", readonly = true) - protected MavenProject project; - - /** - * Display transformation result, but do not generate file. - */ - @Parameter(property = "eugene.dryRun") - protected boolean dryRun; - - /** - * Verbose mode. - */ - @Parameter(property = "eugene.verbose", defaultValue = "${maven.verbose}") - protected boolean verbose; - - /** - * Encoding to be used for generation of files. - * - * <b>Note:</b> If nothing is filled here, we will use the system property {@code file.encoding}. - */ - @Parameter(property = "eugene.encoding", defaultValue = "${project.build.sourceEncoding}") - protected String encoding; - - protected File[] inputFiles; - protected File outputFile; - protected String eol; - - @Override - protected void init() throws Exception { - - eol = SystemUtils.LINE_SEPARATOR; - - inputFiles = directory.listFiles(new FilenameFilter() { - @Override - public boolean accept(File dir, String name) { - return name.endsWith(".objectmodel-ext"); - } - }); - - getLog().info("Found " + inputFiles.length + " model extension file(s)."); - - outputFile = new File(directory, modelName + ".properties"); - - } - - @Override - protected void doAction() throws Exception { - - ModelBeanBuilder modelBeanBuilder = new ModelBeanBuilder(false, modelName); - - for (File inputFile : inputFiles) { - - modelBeanBuilder.addFile(inputFile); - } - - ModelBean modelBean = modelBeanBuilder.build(); - - getLog().info(modelBeanBuilder.getStereotypeHits() + " stereotype(s) detected."); - getLog().info(modelBeanBuilder.getTagValueHits() + " tag value(s) detected."); - - StringBuilder result = new StringBuilder(); - - appendMap(modelBean.getTagValues(), "model", result); - appendSet(modelBean.getStereotypes(), "model", result); - - if (modelBean.withPackages()) { - - for (PackageBean packageBean : modelBean.getPackages()) { - - appendMap(packageBean.getTagValues(), "package." + packageBean.getName(), result); - appendSet(packageBean.getStereotypes(), "package." + packageBean.getName(), result); - - } - - } - - if (modelBean.withClasses()) { - - for (ClassBean classBean : modelBean.getClasses()) { - - appendMap(classBean.getTagValues(), classBean.getName() + ".class", result); - appendSet(classBean.getStereotypes(), classBean.getName() + ".class", result); - - String prefix = classBean.getName() + ".attribute."; - for (AttributeBean attributeBean : classBean.getAttributes()) { - - appendMap(attributeBean.getTagValues(), prefix + attributeBean.getName(), result); - appendSet(attributeBean.getStereotypes(), prefix + attributeBean.getName(), result); - } - - } - - } - - if (dryRun) { - - getLog().info("\n\nDryRun mode\ncontent:\n\n" + result.toString() + "\n\n"); - - } else { - - getLog().info("Generate to: " + outputFile); - Files.write(result.toString(), outputFile, Charset.forName(encoding)); - - } - - } - - @Override - public MavenProject getProject() { - return project; - } - - @Override - public void setProject(MavenProject project) { - this.project = project; - } - - @Override - public boolean isVerbose() { - return verbose; - } - - @Override - public void setVerbose(boolean verbose) { - this.verbose = verbose; - } - - protected void appendMap(Map<String, String> map, String prefix, StringBuilder result) { - if (!map.isEmpty()) { - for (Map.Entry<String, String> entry : map.entrySet()) { - result.append(prefix).append(".tagValue.").append(entry.getKey()).append("=").append(entry.getValue()).append(eol); - } - } - } - - protected void appendSet(Set<String> set, String prefix, StringBuilder result) { - if (!set.isEmpty()) { - result.append(prefix).append(".stereotype=").append(Joiner.on(',').join(set)).append(eol); - } - } - -} diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/TransformExtensionModelMojo.java b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/TransformExtensionModelMojo.java new file mode 100644 index 0000000..10bc4f7 --- /dev/null +++ b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/TransformExtensionModelMojo.java @@ -0,0 +1,228 @@ +package org.nuiton.eugene.plugin; + +/*- + * #%L + * EUGene :: Maven plugin + * %% + * Copyright (C) 2006 - 2016 CodeLutin + * %% + * 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 com.google.common.io.Files; +import org.apache.commons.io.output.ByteArrayOutputStream; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; +import org.apache.maven.project.MavenProject; +import org.nuiton.eugene.models.extension.io.ModelExtensionFormat; +import org.nuiton.eugene.models.extension.io.ModelExtensionWriter; +import org.nuiton.eugene.models.extension.model.ModelExtension; +import org.nuiton.eugene.models.extension.model.ModelExtensionBuilder; +import org.nuiton.plugin.AbstractPlugin; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.FilenameFilter; +import java.io.OutputStreamWriter; +import java.nio.charset.Charset; +import java.util.Arrays; + +/** + * To a transform some object model extension files from an input format to an output format. + * + * Available formats are + * <ul> + * <li>ini</li> + * <li>properties</li> + * </ul> + * <h3>Example of ini format</h3> + * <pre> + * [model] + * modeTagValue=value + * modelStereotype=true + * + * [package fr.ird.observe.entities] + * packageTagValue=value + * packageStereotype=true + * + * [class fr.ird.observe.entities.CommentableEntity] + * classTagValue=value + * classStereotype=true + * attribute.attributeTagValue=value + * attribute.attributeStereotype=true + * </pre> + * <h3>Example of properties format</h3> + * <pre> + * model.tagValue.modeTagValue=value + * model.stereotype.modelStereotype + * package.fr.ird.observe.entities.tagValue.packageTagValue=value + * package.fr.ird.observe.entities.stereotype=packageStereotype + * fr.ird.observe.entities.CommentableEntity.class.tagValue.classTagValue=value + * fr.ird.observe.entities.CommentableEntity.class.stereotype=classStereotype + * fr.ird.observe.entities.CommentableEntity.attribute.attribute.tagValue.attributeTagValue=value + * fr.ird.observe.entities.CommentableEntity.attribute.attribute.stereotype=attributeStereotype* + * </pre> + * Created on 09/09/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +@Mojo(name = "transform-extension-model") +public class TransformExtensionModelMojo extends AbstractPlugin { + + /** + * Name of model (the generated file name is {@code modelName.properties}). + */ + @Parameter(property = "modelName", required = true) + protected String modelName; + + /** + * The input format to read extension model. + */ + @Parameter(property = "inputFormat", required = true) + protected String inputFormat; + + /** + * The output format to write extension model. + */ + @Parameter(property = "outputFormat", required = true) + protected String outputFormat; + + /** + * Display transformation result, but do not generate file. + */ + @Parameter(property = "dryRun") + protected boolean dryRun; + + /** + * Verbose mode. + */ + @Parameter(defaultValue = "${maven.verbose}") + protected boolean verbose; + + /** + * Where to find and generate files. + */ + @Parameter(property = "eugene.directory", defaultValue = "${project.basedir}/src/main/xmi", required = true) + protected File directory; + + /** + * Maven project. + */ + @Parameter(defaultValue = "${project}", readonly = true) + protected MavenProject project; + + /** + * Encoding to be used for generation of files. + * + * <b>Note:</b> If nothing is filled here, we will use the system property {@code file.encoding}. + */ + @Parameter(property = "eugene.encoding", defaultValue = "${project.build.sourceEncoding}") + protected String encoding; + + private File[] inputFiles; + private File outputFile; + + @Override + protected void init() throws Exception { + + try { + ModelExtensionFormat.valueOf(inputFormat); + } catch (IllegalArgumentException e) { + throw new MojoExecutionException("Unknown input format: " + inputFormat + ", must be one of " + Arrays.toString(ModelExtensionFormat.values())); + } + + try { + ModelExtensionFormat.valueOf(outputFormat); + } catch (IllegalArgumentException e) { + throw new MojoExecutionException("Unknown output format: " + outputFormat + ", must be one of " + Arrays.toString(ModelExtensionFormat.values())); + } + + inputFiles = directory.listFiles(new FilenameFilter() { + @Override + public boolean accept(File dir, String name) { + return name.endsWith("." + inputFormat); + } + }); + + getLog().info("Found " + inputFiles.length + " model extension file(s)."); + + outputFile = new File(directory, modelName + "." + outputFormat); + + } + + @Override + protected void doAction() throws Exception { + + ModelExtensionBuilder modelExtensionBuilder = new ModelExtensionBuilder(false, modelName); + + for (File inputFile : inputFiles) { + + modelExtensionBuilder.addFile(inputFile); + } + + ModelExtension modelExtension = modelExtensionBuilder.build(); + + getLog().info(modelExtensionBuilder.getStereotypeHits() + " stereotype(s) detected."); + getLog().info(modelExtensionBuilder.getTagValueHits() + " tag value(s) detected."); + + ModelExtensionWriter modelExtensionWriter = ModelExtensionWriter.newWriter(outputFile); + + if (dryRun) { + + String content; + + try (ByteArrayOutputStream out = new ByteArrayOutputStream()) { + try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out, Charset.forName(encoding)))) { + modelExtensionWriter.write(modelExtension, writer); + } + content = out.toString(encoding); + } + + getLog().info("\n\nDryRun mode\ncontent:\n\n" + content + "\n\n"); + + } else { + + try (BufferedWriter writer = Files.newWriter(outputFile, Charset.forName(encoding))) { + modelExtensionWriter.write(modelExtension, writer); + } + + } + + } + + @Override + public MavenProject getProject() { + return project; + } + + @Override + public void setProject(MavenProject project) { + this.project = project; + } + + @Override + public boolean isVerbose() { + return verbose; + } + + @Override + public void setVerbose(boolean verbose) { + this.verbose = verbose; + } + +} diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/TransformFlatPropertiesToCompactMojo.java b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/TransformFlatPropertiesToCompactMojo.java deleted file mode 100644 index 4747ba9..0000000 --- a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/TransformFlatPropertiesToCompactMojo.java +++ /dev/null @@ -1,243 +0,0 @@ -package org.nuiton.eugene.plugin; - -/*- - * #%L - * EUGene :: Maven plugin - * %% - * Copyright (C) 2006 - 2016 CodeLutin - * %% - * 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 com.google.common.io.Files; -import org.apache.commons.lang3.SystemUtils; -import org.apache.maven.plugins.annotations.Mojo; -import org.apache.maven.plugins.annotations.Parameter; -import org.apache.maven.project.MavenProject; -import org.nuiton.eugene.plugin.modelextension.ClassBean; -import org.nuiton.eugene.plugin.modelextension.ModelBean; -import org.nuiton.eugene.plugin.modelextension.ModelBeanBuilder; -import org.nuiton.eugene.plugin.modelextension.PackageBean; -import org.nuiton.plugin.AbstractPlugin; - -import java.io.File; -import java.io.FilenameFilter; -import java.nio.charset.Charset; -import java.util.Map; -import java.util.Set; - -/** - * To a transform some object model extension files in flat properties format to a single file in compact format. - * - * <h3>Example of compact format</h3> - * <pre> - * - * [model] - * modeTagValue value - * modelStereotype - * - * [package] - * fr.ird.observe.entities - * packageTagValue value - * packageStereotype - * [class] - * fr.ird.observe.entities.CommentableEntity - * classTagValue value - * classStereotype - * attribute.attributeTagValue value - * attribute.attributeStereotype - * </pre> - * - * <h3>Example of flat properties format</h3> - * <pre> - * model.tagValue.modeTagValue=value - * model.stereotype.modelStereotype - * package.fr.ird.observe.entities.tagValue.packageTagValue=value - * package.fr.ird.observe.entities.stereotype=packageStereotype - * fr.ird.observe.entities.CommentableEntity.class.tagValue.classTagValue=value - * fr.ird.observe.entities.CommentableEntity.class.stereotype=classStereotype - * fr.ird.observe.entities.CommentableEntity.attribute.attribute.tagValue.attributeTagValue=value - * fr.ird.observe.entities.CommentableEntity.attribute.attribute.stereotype=attributeStereotype* - * </pre> - * Created on 09/09/16. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 3.0 - */ -@Mojo(name = "transform-flat-properties-to-compact") -public class TransformFlatPropertiesToCompactMojo extends AbstractPlugin { - - /** - * Name of model (the generated file name is {@code modelName.objectmodel-ext}). - */ - @Parameter(property = "eugene.modelName", required = true) - protected String modelName; - - /** - * Where to find and generate files. - */ - @Parameter(property = "eugene.directory", defaultValue = "${project.basedir}/src/main/xmi", required = true) - protected File directory; - - /** - * Maven project. - */ - @Parameter(defaultValue = "${project}", readonly = true) - protected MavenProject project; - - /** - * Display transformation result, but do not generate file. - */ - @Parameter(property = "eugene.dryRun") - protected boolean dryRun; - - /** - * Verbose mode. - */ - @Parameter(property = "eugene.verbose", defaultValue = "${maven.verbose}") - protected boolean verbose; - - /** - * Encoding to be used for generation of files. - * - * <b>Note:</b> If nothing is filled here, we will use the system property {@code file.encoding}. - */ - @Parameter(property = "eugene.encoding", defaultValue = "${project.build.sourceEncoding}") - protected String encoding; - - protected File[] inputFiles; - protected File outputFile; - protected String eol; - - @Override - protected void init() throws Exception { - - eol = SystemUtils.LINE_SEPARATOR; - - inputFiles = directory.listFiles(new FilenameFilter() { - @Override - public boolean accept(File dir, String name) { - return name.endsWith(".properties"); - } - }); - - getLog().info("Found " + inputFiles.length + " model extension properties file(s)."); - - outputFile = new File(directory, modelName + ".objectmodel-ext"); - - } - - @Override - protected void doAction() throws Exception { - - ModelBeanBuilder modelBeanBuilder = new ModelBeanBuilder(false, modelName); - - for (File inputFile : inputFiles) { - - modelBeanBuilder.addFile(inputFile); - } - - ModelBean modelBean = modelBeanBuilder.build(); - - getLog().info(modelBeanBuilder.getStereotypeHits() + " stereotype(s) detected."); - getLog().info(modelBeanBuilder.getTagValueHits() + " tag value(s) detected."); - - StringBuilder result = new StringBuilder(); - - result.append("[model]").append(eol); - appendMap(modelBean.getTagValues(), "", "tagvalues", result); - appendSet(modelBean.getStereotypes(), "", "stereotypes", result); - - result.append(eol).append("[package]").append(eol); - - if (modelBean.withPackages()) { - - for (PackageBean packageBean : modelBean.getPackages()) { - - result.append(packageBean.getName()).append(eol); - appendMap(packageBean.getTagValues(), " ", "tagvalues", result); - appendSet(packageBean.getStereotypes(), " ", "stereotypes", result); - - } - - } - - result.append(eol).append("[class]").append(eol); - - if (modelBean.withClasses()) { - - for (ClassBean classBean : modelBean.getClasses()) { - - result.append(classBean.getName()).append(eol); - appendMap(classBean.getTagValues(), " ", "tagvalues", result); - appendSet(classBean.getStereotypes(), " ", "stereotypes", result); - appendMap(classBean.getAttributesTagValues(), " ", "attributes.tagvalues", result); - appendSet(classBean.getAttributesStereotypes(), " ", "attributes.stereotypes", result); - - } - - } - - if (dryRun) { - - getLog().info("\n\nDryRun mode\ncontent:\n\n" + result.toString() + "\n\n"); - - } else { - - getLog().info("Generate to: " + outputFile); - Files.write(result.toString(), outputFile, Charset.forName(encoding)); - - } - - } - - @Override - public MavenProject getProject() { - return project; - } - - @Override - public void setProject(MavenProject project) { - this.project = project; - } - - @Override - public boolean isVerbose() { - return verbose; - } - - @Override - public void setVerbose(boolean verbose) { - this.verbose = verbose; - } - - protected void appendMap(Map<String, String> map, String prefix, String name, StringBuilder result) { - if (!map.isEmpty()) { - for (Map.Entry<String, String> entry : map.entrySet()) { - result.append(prefix).append(entry.getKey()).append(" ").append(entry.getValue()).append(eol); - } - } - } - - protected void appendSet(Set<String> set, String prefix, String name, StringBuilder result) { - if (!set.isEmpty()) { - for (String stereotype : set) { - result.append(prefix).append(stereotype).append(eol); - } - } - } - -} diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriterToMemoryModel.java b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriterToMemoryModel.java index 06e8fd8..4c54ba2 100644 --- a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriterToMemoryModel.java +++ b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriterToMemoryModel.java @@ -27,7 +27,7 @@ import org.nuiton.eugene.models.Model; import org.nuiton.eugene.models.extension.tagvalue.InvalidStereotypeSyntaxException; import org.nuiton.eugene.models.extension.tagvalue.InvalidTagValueSyntaxException; import org.nuiton.eugene.models.object.ObjectModel; -import org.nuiton.eugene.models.object.reader.extension.LoadModelExtension; +import org.nuiton.eugene.models.extension.io.ModelExtensionReader; import org.nuiton.eugene.writer.ChainedFileWriterConfiguration; import org.nuiton.eugene.writer.ChainedFileWriterToMemoryModel; @@ -192,10 +192,10 @@ public abstract class BaseChainedFileWriterToMemoryModel extends BaseChainedFile if (model instanceof ObjectModel && configuration.getModelExtensionFile() != null) { - LoadModelExtension<ObjectModel> loadModelExtension = new LoadModelExtension<>(configuration.isVerbose(), isFailIfUnsafe(), (ObjectModel) model); + ModelExtensionReader<ObjectModel> modelExtensionReader = new ModelExtensionReader<>(configuration.isVerbose(), isFailIfUnsafe(), (ObjectModel) model); try { - loadModelExtension.load(configuration.getModelExtensionFile()); + modelExtensionReader.read(configuration.getModelExtensionFile()); } catch (InvalidTagValueSyntaxException | InvalidStereotypeSyntaxException e) { //FIXME throw new IllegalStateException(e); diff --git a/eugene/pom.xml b/eugene/pom.xml index 9c67f7d..fad51e6 100644 --- a/eugene/pom.xml +++ b/eugene/pom.xml @@ -96,6 +96,11 @@ <artifactId>commons-io</artifactId> </dependency> + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-configuration2</artifactId> + </dependency> + <!-- jaxen dep --> <dependency> <groupId>jaxen</groupId> diff --git a/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFileParser.java b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFileParser.java new file mode 100644 index 0000000..975b1ce --- /dev/null +++ b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFileParser.java @@ -0,0 +1,65 @@ +package org.nuiton.eugene.models.extension.io; + +/*- + * #%L + * EUGene :: EUGene + * %% + * Copyright (C) 2004 - 2016 CodeLutin + * %% + * 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.apache.commons.lang3.NotImplementedException; +import org.nuiton.eugene.models.extension.tagvalue.InvalidStereotypeSyntaxException; +import org.nuiton.eugene.models.extension.tagvalue.InvalidTagValueSyntaxException; + +import java.io.File; +import java.io.IOException; + +/** + * Created on 09/09/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public abstract class ModelExtensionFileParser { + + public static ModelExtensionFileParser newParser(boolean strictLoading, File file) { + for (ModelExtensionFormat modelExtensionFormat : ModelExtensionFormat.values()) { + if (file.getName().endsWith("." + modelExtensionFormat.name())) { + return modelExtensionFormat.newParser(strictLoading); + } + } + throw new NotImplementedException("can't find parser for file: " + file); + } + + static final String TAGVALUE = "tagvalue"; + + static final String TAG_VALUE = "tagValue"; + + static final String STEREOTYPE = "stereotype"; + + static final String ATTRIBUTE = "attribute"; + + static final String CLASS = "class"; + + static final String MODEL = "model"; + + static final String PACKAGE = "package"; + + public abstract void parse(File file, ModelExtensionFileParserCallback callback) throws IOException, InvalidStereotypeSyntaxException, InvalidTagValueSyntaxException; +} diff --git a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/ModelExtensionFileParserCallback.java b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFileParserCallback.java similarity index 96% rename from eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/ModelExtensionFileParserCallback.java rename to eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFileParserCallback.java index 982a019..4547c1a 100644 --- a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/ModelExtensionFileParserCallback.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFileParserCallback.java @@ -1,4 +1,4 @@ -package org.nuiton.eugene.models.object.reader.extension; +package org.nuiton.eugene.models.extension.io; /*- * #%L @@ -28,6 +28,7 @@ import org.nuiton.eugene.models.object.ObjectModel; * Created on 09/09/16. * * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 */ public interface ModelExtensionFileParserCallback<M extends ObjectModel> { diff --git a/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFileParserIniImpl.java b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFileParserIniImpl.java new file mode 100644 index 0000000..af3cb2e --- /dev/null +++ b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFileParserIniImpl.java @@ -0,0 +1,148 @@ +package org.nuiton.eugene.models.extension.io; + +/*- + * #%L + * EUGene :: EUGene + * %% + * Copyright (C) 2004 - 2016 CodeLutin + * %% + * 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.apache.commons.configuration2.INIConfiguration; +import org.apache.commons.configuration2.SubnodeConfiguration; +import org.apache.commons.configuration2.ex.ConfigurationException; +import org.apache.commons.lang3.StringUtils; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.util.Iterator; + +/** + * Created on 09/09/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +class ModelExtensionFileParserIniImpl extends ModelExtensionFileParser { + + public ModelExtensionFileParserIniImpl(boolean strictLoading) { + this.strictLoading = strictLoading; + } + + protected final boolean strictLoading; + + @Override + public void parse(File file, ModelExtensionFileParserCallback callback) throws IOException { + + INIConfiguration iniConfiguration = new INIConfiguration(); + + try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8))) { + iniConfiguration.read(reader); + } catch (ConfigurationException e) { + throw new IOException("Could not read ini configuration from file: " + file, e); + } + + SubnodeConfiguration modelSection = iniConfiguration.getSection("model"); + + Iterator<String> modelSectionKeys = modelSection.getKeys(); + while (modelSectionKeys.hasNext()) { + String key = modelSectionKeys.next(); + String value = modelSection.getString(key); + if ("true".equals(value)) { + + // stereotype de package + callback.onModelStereotypeFound(key); + } else { + + // tag value de package + callback.onModelTagValueFound(key, value); + } + } + + for (String sectionName : iniConfiguration.getSections()) { + if (sectionName == null) { + continue; + } + + SubnodeConfiguration section = iniConfiguration.getSection(sectionName); + + if (sectionName.startsWith("package ")) { + String packageName = StringUtils.removeStart(sectionName, "package "); + Iterator<String> keys = section.getKeys(); + while (keys.hasNext()) { + String key = keys.next(); + String value = section.getString(key); + if ("true".equals(value)) { + + // stereotype de package + callback.onPackageStereotypeFound(packageName, key); + } else { + + // tag value de package + callback.onPackageTagValueFound(packageName, key, value); + } + } + + } else if (sectionName.startsWith("class ")) { + + String className = StringUtils.removeStart(sectionName, "class "); + Iterator<String> keys = section.getKeys(); + while (keys.hasNext()) { + + String key = keys.next(); + String value = section.getString(key); + if ("true".equals(value)) { + + // stereotype de package + int attributeIndex = key.indexOf('.'); + if (attributeIndex == -1) { + + // stereotype de classe + callback.onClassStereotypeFound(className, key); + } else { + + // stereotype d'attribut + callback.onAttributeStereotypeFound(className, key.substring(0, attributeIndex), key.substring(attributeIndex + 2)); + } + + } else { + + // tag value de package + int attributeIndex = key.indexOf('.'); + if (attributeIndex == -1) { + + // tag value de classe + callback.onClassTagValueFound(className, key, value); + } else { + // tag value d'attribut + callback.onAttributeTagValueFound(className, key.substring(0, attributeIndex), key.substring(attributeIndex + 2), value); + } + } + + } + + } + + } + + } + +} diff --git a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/FlatModelExtensionFileParser.java b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFileParserPropertiesImpl.java similarity index 95% rename from eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/FlatModelExtensionFileParser.java rename to eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFileParserPropertiesImpl.java index 176f18d..d91a502 100644 --- a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/FlatModelExtensionFileParser.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFileParserPropertiesImpl.java @@ -1,4 +1,4 @@ -package org.nuiton.eugene.models.object.reader.extension; +package org.nuiton.eugene.models.extension.io; /*- * #%L @@ -49,15 +49,16 @@ import java.util.regex.Matcher; * Created on 09/09/16. * * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 */ -public class FlatModelExtensionFileParser implements ModelExtensionFileParser { +class ModelExtensionFileParserPropertiesImpl extends ModelExtensionFileParser { /** Logger. */ - private static final Log log = LogFactory.getLog(FlatModelExtensionFileParser.class); + private static final Log log = LogFactory.getLog(ModelExtensionFileParserPropertiesImpl.class); protected final boolean strictLoading; - public FlatModelExtensionFileParser(boolean strictLoading) { + public ModelExtensionFileParserPropertiesImpl(boolean strictLoading) { this.strictLoading = strictLoading; } @@ -70,7 +71,7 @@ public class FlatModelExtensionFileParser implements ModelExtensionFileParser { prop.load(inStream); } - // get all the tagvalues keys and sort them + // get all the tagValues keys and sort them List<String> keys = new ArrayList<>(); CollectionUtils.addAll(keys, prop.keys()); Collections.sort(keys); diff --git a/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFormat.java b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFormat.java new file mode 100644 index 0000000..bae6c12 --- /dev/null +++ b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFormat.java @@ -0,0 +1,37 @@ +package org.nuiton.eugene.models.extension.io; + +/** + * Created on 09/10/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public enum ModelExtensionFormat { + + ini { + @Override + public ModelExtensionFileParser newParser(boolean strictLoading) { + return new ModelExtensionFileParserIniImpl(strictLoading); + } + + @Override + public ModelExtensionWriter newWriter() { + return new ModelExtensionWriterIniImpl(); + } + }, + properties { + @Override + public ModelExtensionFileParser newParser(boolean strictLoading) { + return new ModelExtensionFileParserPropertiesImpl(strictLoading); + } + + @Override + public ModelExtensionWriter newWriter() { + return new ModelExtensionWriterPropertiesImpl(); + } + }; + + public abstract ModelExtensionFileParser newParser(boolean strictLoading); + + public abstract ModelExtensionWriter newWriter(); +} diff --git a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/LoadModelExtension.java b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionReader.java similarity index 92% rename from eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/LoadModelExtension.java rename to eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionReader.java index aa639a4..c605968 100644 --- a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/LoadModelExtension.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionReader.java @@ -1,4 +1,4 @@ -package org.nuiton.eugene.models.object.reader.extension; +package org.nuiton.eugene.models.extension.io; /*- * #%L @@ -50,49 +50,28 @@ import java.io.IOException; * Created on 09/09/16. * * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 */ -public class LoadModelExtension<M extends ObjectModel> implements ModelExtensionFileParserCallback<M> { +public class ModelExtensionReader<M extends ObjectModel> implements ModelExtensionFileParserCallback<M> { /** Logger. */ - private static final Log log = LogFactory.getLog(LoadModelExtension.class); + private static final Log log = LogFactory.getLog(ModelExtensionReader.class); protected final boolean verbose; protected final boolean strictLoading; protected final M model; protected final TagValueMetadatasProvider tagValueMetadatasProvider; - public static <M extends ObjectModel> void loadForFlatModel(boolean verbose, boolean strictLoading, M model, File modelExtension) throws IOException { - FlatModelExtensionFileParser parser = new FlatModelExtensionFileParser(strictLoading); - try { - new LoadModelExtension<>(verbose, strictLoading, model).load(modelExtension); - } catch (InvalidTagValueSyntaxException | InvalidStereotypeSyntaxException e) { - // FIXME - throw new IllegalStateException(e); - } - - } - - public static <M extends ObjectModel> void loadForCompactModel(boolean verbose, boolean strictLoading, M model, File modelExtension) throws IOException { - CompactModelExtensionFileParser parser = new CompactModelExtensionFileParser(strictLoading); - try { - new LoadModelExtension<>(verbose, strictLoading, model).load(modelExtension); - } catch (InvalidTagValueSyntaxException | InvalidStereotypeSyntaxException e) { - // FIXME - throw new IllegalStateException(e); - } - - } - - public LoadModelExtension(boolean verbose, boolean strictLoading, M model) { + public ModelExtensionReader(boolean verbose, boolean strictLoading, M model) { this.verbose = verbose; this.strictLoading = strictLoading; this.model = model; this.tagValueMetadatasProvider = new AggregateTagValueMetadatasProvider(getClass().getClassLoader()); } - public void load(File modelExtension) throws IOException, InvalidTagValueSyntaxException, InvalidStereotypeSyntaxException { + public void read(File modelExtension) throws IOException, InvalidTagValueSyntaxException, InvalidStereotypeSyntaxException { - ModelExtensionFileParser parser = ModelExtensionFileParserFactory.newParser(strictLoading, modelExtension); + ModelExtensionFileParser parser = ModelExtensionFileParser.newParser(strictLoading, modelExtension); parser.parse(modelExtension, this); } @@ -587,9 +566,7 @@ public class LoadModelExtension<M extends ObjectModel> implements ModelExtension // check on participant attributes if (result == null && clazz instanceof ObjectModelAssociationClassImpl) { if (log.isDebugEnabled()) { - log.debug("Attribute " + name + " not found from " + - clazz.getQualifiedName() + " association class. " + - "Will check participants..."); + log.debug("Attribute " + name + " not found from " + clazz.getQualifiedName() + " association class. Will check participants..."); } ObjectModelAssociationClass assoc = (ObjectModelAssociationClass) clazz; for (ObjectModelAttribute participant : assoc.getParticipantsAttributes()) { diff --git a/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriter.java b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriter.java new file mode 100644 index 0000000..6eac596 --- /dev/null +++ b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriter.java @@ -0,0 +1,31 @@ +package org.nuiton.eugene.models.extension.io; + +import org.apache.commons.lang3.NotImplementedException; +import org.nuiton.eugene.models.extension.model.ModelExtension; +import org.nuiton.eugene.models.object.ObjectModel; + +import java.io.File; +import java.io.IOException; +import java.io.Writer; + +/** + * Created on 08/10/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public abstract class ModelExtensionWriter { + + public static ModelExtensionWriter newWriter(File file) { + for (ModelExtensionFormat modelExtensionFormat : ModelExtensionFormat.values()) { + if (file.getName().endsWith("." + modelExtensionFormat.name())) { + return modelExtensionFormat.newWriter(); + } + } + throw new NotImplementedException("can't find writer for file: " + file); + } + + public abstract void write(ObjectModel model, Writer writer) throws IOException; + + public abstract void write(ModelExtension model, Writer writer) throws IOException; +} diff --git a/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriterIniImpl.java b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriterIniImpl.java new file mode 100644 index 0000000..8e6ef1e --- /dev/null +++ b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriterIniImpl.java @@ -0,0 +1,137 @@ +package org.nuiton.eugene.models.extension.io; + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.SystemUtils; +import org.nuiton.eugene.models.extension.model.ModelExtension; +import org.nuiton.eugene.models.extension.model.ModelExtensionAttribute; +import org.nuiton.eugene.models.extension.model.ModelExtensionClass; +import org.nuiton.eugene.models.extension.model.ModelExtensionPackage; +import org.nuiton.eugene.models.object.ObjectModel; +import org.nuiton.eugene.models.object.ObjectModelAttribute; +import org.nuiton.eugene.models.object.ObjectModelClass; +import org.nuiton.eugene.models.object.ObjectModelPackage; + +import java.io.IOException; +import java.io.Writer; +import java.util.Map; +import java.util.Set; + +/** + * Created on 08/10/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +class ModelExtensionWriterIniImpl extends ModelExtensionWriter { + + private final String eol = SystemUtils.LINE_SEPARATOR; + + @Override + public void write(ObjectModel model, Writer writer) throws IOException { + + if (model.getStereotypes().size() > 0 || model.getTagValues().size() > 0) { + writer.append("[model]").append(eol); + appendMap(model.getTagValues(), "", writer); + appendSet(model.getStereotypes(), "", writer); + } + + if (CollectionUtils.isNotEmpty(model.getPackages())) { + + for (ObjectModelPackage packageBean : model.getPackages()) { + + if (packageBean.getStereotypes().size() > 0 || packageBean.getTagValues().size() > 0) { + writer.append(eol).append("[package ").append(packageBean.getName()).append("]").append(eol); + appendMap(packageBean.getTagValues(), "", writer); + appendSet(packageBean.getStereotypes(), "", writer); + } + } + + } + + if (CollectionUtils.isNotEmpty(model.getClasses())) { + + for (ObjectModelClass classBean : model.getClasses()) { + + boolean addSection = classBean.getStereotypes().size() > 0 || classBean.getTagValues().size() > 0; + + if (!addSection) { + + + for (ObjectModelAttribute attributeBean : classBean.getAttributes()) { + + addSection = attributeBean.getStereotypes().size() > 0 || attributeBean.getTagValues().size() > 0; + + if (addSection) { + break; + } + } + + } + + if (addSection) { + + writer.append(eol).append("[class ").append(classBean.getName()).append("]").append(eol); + appendMap(classBean.getTagValues(), "", writer); + appendSet(classBean.getStereotypes(), "", writer); + + for (ObjectModelAttribute attributeBean : classBean.getAttributes()) { + appendMap(attributeBean.getTagValues(), attributeBean.getName() + ".", writer); + appendSet(attributeBean.getStereotypes(), attributeBean.getName() + ".", writer); + } + + } + + } + + } + + } + + @Override + public void write(ModelExtension model, Writer writer) throws IOException { + + writer.append("[model]").append(eol); + appendMap(model.getTagValues(), "", writer); + + if (model.withPackages()) { + + for (ModelExtensionPackage modelExtensionPackage : model.getPackages()) { + writer.append(eol).append("[package ").append(modelExtensionPackage.getName()).append("]").append(eol); + appendMap(modelExtensionPackage.getTagValues(), "", writer); + } + + } + + if (model.withClasses()) { + + for (ModelExtensionClass modelExtensionClass : model.getClasses()) { + + writer.append(eol).append("[class ").append(modelExtensionClass.getName()).append("]").append(eol); + appendMap(modelExtensionClass.getTagValues(), "", writer); + + for (ModelExtensionAttribute modelExtensionAttribute : modelExtensionClass.getAttributes()) { + appendMap(modelExtensionAttribute.getTagValues(), modelExtensionAttribute.getName() + ".", writer); + } + + } + + } + + } + + private void appendMap(Map<String, String> map, String prefix, Writer writer) throws IOException { + if (!map.isEmpty()) { + for (Map.Entry<String, String> entry : map.entrySet()) { + writer.append(prefix).append(entry.getKey()).append(" = ").append(entry.getValue()).append(eol); + } + } + } + + private void appendSet(Set<String> set, String prefix, Writer writer) throws IOException { + if (!set.isEmpty()) { + for (String s : set) { + writer.append(prefix).append(s).append(" = true").append(eol); + } + } + } +} diff --git a/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriterPropertiesImpl.java b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriterPropertiesImpl.java new file mode 100644 index 0000000..5b9b138 --- /dev/null +++ b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriterPropertiesImpl.java @@ -0,0 +1,127 @@ +package org.nuiton.eugene.models.extension.io; + +import com.google.common.base.Joiner; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.SystemUtils; +import org.nuiton.eugene.models.extension.model.ModelExtension; +import org.nuiton.eugene.models.extension.model.ModelExtensionAttribute; +import org.nuiton.eugene.models.extension.model.ModelExtensionClass; +import org.nuiton.eugene.models.extension.model.ModelExtensionPackage; +import org.nuiton.eugene.models.object.ObjectModel; +import org.nuiton.eugene.models.object.ObjectModelAttribute; +import org.nuiton.eugene.models.object.ObjectModelClass; +import org.nuiton.eugene.models.object.ObjectModelPackage; + +import java.io.IOException; +import java.io.Writer; +import java.util.Date; +import java.util.Map; +import java.util.Set; + +/** + * Created on 08/10/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +class ModelExtensionWriterPropertiesImpl extends ModelExtensionWriter { + + private final String eol = SystemUtils.LINE_SEPARATOR; + + @Override + public void write(ObjectModel modelBean, Writer writer) throws IOException { + + writer.append("# Generated by ").append(this.getClass().getName()).append(" at ").append(new Date().toString()).append(eol); + + appendMap(modelBean.getTagValues(), "model.tagValue.", writer); + appendSet(modelBean.getStereotypes(), "model.stereotype", writer); + + if (CollectionUtils.isNotEmpty(modelBean.getPackages())) { + + for (ObjectModelPackage packageBean : modelBean.getPackages()) { + + appendMap(packageBean.getTagValues(), "package.tagValue.", writer); + appendSet(packageBean.getStereotypes(), "package.stereotype", writer); + + } + + } + + if (CollectionUtils.isNotEmpty(modelBean.getClasses())) { + + for (ObjectModelClass classBean : modelBean.getClasses()) { + + String prefix = classBean.getQualifiedName() + ".class."; + appendMap(classBean.getTagValues(), prefix + "tagValue.", writer); + appendSet(classBean.getStereotypes(), prefix + "stereotype", writer); + + for (ObjectModelAttribute attributeBean : classBean.getAttributes()) { + + prefix = classBean.getQualifiedName() + ".attribute." + attributeBean.getName() + "."; + appendMap(attributeBean.getTagValues(), prefix + "tagValue.", writer); + appendSet(attributeBean.getStereotypes(), prefix + "stereotype", writer); + } + + } + + } + + } + + @Override + public void write(ModelExtension model, Writer writer) throws IOException { + + + writer.append("# Generated by ").append(this.getClass().getName()).append(" at ").append(new Date().toString()).append(eol); + + appendMap(model.getTagValues(), "model.tagValue.", writer); + appendSet(model.getStereotypes(), "model.stereotype", writer); + + if (CollectionUtils.isNotEmpty(model.getPackages())) { + + for (ModelExtensionPackage packageBean : model.getPackages()) { + String prefix = "package." + packageBean.getName() + "."; + + appendMap(packageBean.getTagValues(), prefix + "tagValue.", writer); + appendSet(packageBean.getStereotypes(), prefix + "stereotype", writer); + + } + + } + + if (CollectionUtils.isNotEmpty(model.getClasses())) { + + for (ModelExtensionClass classBean : model.getClasses()) { + + String prefix = classBean.getName() + ".class."; + appendMap(classBean.getTagValues(), prefix + "tagValue.", writer); + appendSet(classBean.getStereotypes(), prefix + "stereotype", writer); + + for (ModelExtensionAttribute attributeBean : classBean.getAttributes()) { + prefix = classBean.getName() + ".attribute." + attributeBean.getName() + "."; + appendMap(attributeBean.getTagValues(), prefix + "tagValue.", writer); + appendSet(attributeBean.getStereotypes(), prefix + "stereotype", writer); + } + + } + + } + + } + + private void appendMap(Map<String, String> map, String prefix, Writer writer) throws IOException { + if (!map.isEmpty()) { + for (Map.Entry<String, String> entry : map.entrySet()) { + if (!"true".equals(entry.getValue())) { + writer.append(prefix).append(entry.getKey()).append("=").append(entry.getValue()).append(eol); + } + } + } + } + + private void appendSet(Set<String> set, String prefix, Writer writer) throws IOException { + if (!set.isEmpty()) { + writer.append(prefix).append("=").append(Joiner.on(",").join(set)).append(eol); + } + } +} diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ModelBean.java b/eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtension.java similarity index 57% rename from eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ModelBean.java rename to eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtension.java index 108f73e..e42c7af 100644 --- a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ModelBean.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtension.java @@ -1,4 +1,4 @@ -package org.nuiton.eugene.plugin.modelextension; +package org.nuiton.eugene.models.extension.model; /*- * #%L @@ -29,61 +29,62 @@ import java.util.TreeSet; * Created on 10/09/16. * * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 */ -public class ModelBean extends ElementBean { +public class ModelExtension extends ModelExtensionElement { - protected final Set<PackageBean> packages; - protected final Set<ClassBean> classes; + protected final Set<ModelExtensionPackage> packages; + protected final Set<ModelExtensionClass> classes; - public ModelBean(String name) { + public ModelExtension(String name) { super(name); this.packages = new TreeSet<>(); this.classes = new TreeSet<>(); } - public Set<PackageBean> getPackages() { + public Set<ModelExtensionPackage> getPackages() { return packages; } - public Set<ClassBean> getClasses() { + public Set<ModelExtensionClass> getClasses() { return classes; } - public PackageBean getOrCreatePackage(final String packageName) { + public ModelExtensionPackage getOrCreatePackage(final String packageName) { - PackageBean result = null; - for (PackageBean packageBean : packages) { - if (packageName.equals(packageBean.name)) { - result = packageBean; + ModelExtensionPackage result = null; + for (ModelExtensionPackage modelExtensionPackage : packages) { + if (packageName.equals(modelExtensionPackage.name)) { + result = modelExtensionPackage; break; } } if (result == null) { - result = new PackageBean(packageName); + result = new ModelExtensionPackage(packageName); packages.add(result); } return result; } - public ClassBean getOrCreateClass(final String className) { + public ModelExtensionClass getOrCreateClass(final String className) { - ClassBean result = null; - for (ClassBean packageBean : classes) { + ModelExtensionClass result = null; + for (ModelExtensionClass packageBean : classes) { if (className.equals(packageBean.name)) { result = packageBean; break; } } if (result == null) { - result = new ClassBean(className); + result = new ModelExtensionClass(className); classes.add(result); } return result; } - public AttributeBean getOrCreateClassAttribute(String className, String attributeName) { - ClassBean classBean = getOrCreateClass(className); - return classBean.getOrCreateAttribute(attributeName); + public ModelExtensionAttribute getOrCreateClassAttribute(String className, String attributeName) { + ModelExtensionClass modelExtensionClass = getOrCreateClass(className); + return modelExtensionClass.getOrCreateAttribute(attributeName); } public boolean withClasses() { diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/AttributeBean.java b/eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionAttribute.java similarity index 83% rename from eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/AttributeBean.java rename to eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionAttribute.java index b853257..d6e04c8 100644 --- a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/AttributeBean.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionAttribute.java @@ -1,4 +1,4 @@ -package org.nuiton.eugene.plugin.modelextension; +package org.nuiton.eugene.models.extension.model; /*- * #%L @@ -26,10 +26,11 @@ package org.nuiton.eugene.plugin.modelextension; * Created on 10/09/16. * * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 */ -public class AttributeBean extends ElementBean { +public class ModelExtensionAttribute extends ModelExtensionElement { - public AttributeBean(String name) { + public ModelExtensionAttribute(String name) { super(name); } } diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ModelBeanBuilder.java b/eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionBuilder.java similarity index 74% rename from eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ModelBeanBuilder.java rename to eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionBuilder.java index fa9d5b6..a430c52 100644 --- a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ModelBeanBuilder.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionBuilder.java @@ -1,4 +1,4 @@ -package org.nuiton.eugene.plugin.modelextension; +package org.nuiton.eugene.models.extension.model; /*- * #%L @@ -22,11 +22,10 @@ package org.nuiton.eugene.plugin.modelextension; * #L% */ +import org.nuiton.eugene.models.extension.io.ModelExtensionFileParser; +import org.nuiton.eugene.models.extension.io.ModelExtensionFileParserCallback; import org.nuiton.eugene.models.extension.tagvalue.InvalidStereotypeSyntaxException; import org.nuiton.eugene.models.extension.tagvalue.InvalidTagValueSyntaxException; -import org.nuiton.eugene.models.object.reader.extension.ModelExtensionFileParser; -import org.nuiton.eugene.models.object.reader.extension.ModelExtensionFileParserCallback; -import org.nuiton.eugene.models.object.reader.extension.ModelExtensionFileParserFactory; import java.io.File; import java.io.IOException; @@ -35,10 +34,11 @@ import java.io.IOException; * Created on 10/09/16. * * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 */ -public class ModelBeanBuilder implements ModelExtensionFileParserCallback { +public class ModelExtensionBuilder implements ModelExtensionFileParserCallback { - protected final ModelBean modelBean; + protected final ModelExtension modelExtension; protected int modelStereotypeHits; protected int modelTagValueHits; protected int packageStereotypeHits; @@ -49,12 +49,12 @@ public class ModelBeanBuilder implements ModelExtensionFileParserCallback { protected int classAttributeTagValueHits; protected boolean strictLoading; - public ModelBeanBuilder(boolean strictLoading, String modelName) { - this.modelBean = new ModelBean(modelName); + public ModelExtensionBuilder(boolean strictLoading, String modelName) { + this.modelExtension = new ModelExtension(modelName); } - public ModelBean build() { - return modelBean; + public ModelExtension build() { + return modelExtension; } public int getStereotypeHits() { @@ -99,69 +99,69 @@ public class ModelBeanBuilder implements ModelExtensionFileParserCallback { @Override public boolean onModelTagValueFound(String tag, String value) { - addTagValue(modelBean, tag, value); + addTagValue(modelExtension, tag, value); modelTagValueHits++; return true; } @Override public boolean onModelStereotypeFound(String stereotype) { - addTagValue(modelBean, stereotype, "true"); + addTagValue(modelExtension, stereotype, "true"); modelStereotypeHits++; return true; } @Override public boolean onPackageTagValueFound(String packageName, String tag, String value) { - addTagValue(modelBean.getOrCreatePackage(packageName), tag, value); + addTagValue(modelExtension.getOrCreatePackage(packageName), tag, value); packageTagValueHits++; return true; } @Override public boolean onPackageStereotypeFound(String packageName, String stereotype) { - addTagValue(modelBean.getOrCreatePackage(packageName), stereotype, "true"); + addTagValue(modelExtension.getOrCreatePackage(packageName), stereotype, "true"); packageStereotypeHits++; return true; } @Override public boolean onClassTagValueFound(String className, String tag, String value) { - addTagValue(modelBean.getOrCreateClass(className), tag, value); + addTagValue(modelExtension.getOrCreateClass(className), tag, value); classTagValueHits++; return true; } @Override public boolean onClassStereotypeFound(String className, String stereotype) { - addTagValue(modelBean.getOrCreateClass(className), stereotype, "true"); + addTagValue(modelExtension.getOrCreateClass(className), stereotype, "true"); classStereotypeHits++; return true; } @Override public boolean onAttributeTagValueFound(String className, String attributeName, String tag, String value) { - addTagValue(modelBean.getOrCreateClassAttribute(className, attributeName), tag, value); + addTagValue(modelExtension.getOrCreateClassAttribute(className, attributeName), tag, value); classAttributeTagValueHits++; return true; } @Override public boolean onAttributeStereotypeFound(String className, String attributeName, String stereotype) { - addTagValue(modelBean.getOrCreateClassAttribute(className, attributeName), stereotype, "true"); + addTagValue(modelExtension.getOrCreateClassAttribute(className, attributeName), stereotype, "true"); classAttributeStereotypeHits++; return true; } public void addFile(File inputFile) throws InvalidTagValueSyntaxException, InvalidStereotypeSyntaxException, IOException { - ModelExtensionFileParser parser = ModelExtensionFileParserFactory.newParser(strictLoading, inputFile); + ModelExtensionFileParser parser = ModelExtensionFileParser.newParser(strictLoading, inputFile); parser.parse(inputFile, this); } - protected void addTagValue(ElementBean elementBean, String tag, String value) { - elementBean.getTagValues().put(tag, value); + protected void addTagValue(ModelExtensionElement modelExtensionElement, String tag, String value) { + modelExtensionElement.getTagValues().put(tag, value); } } diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ClassBean.java b/eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionClass.java similarity index 57% rename from eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ClassBean.java rename to eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionClass.java index 7fec0ea..1f7264e 100644 --- a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ClassBean.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionClass.java @@ -1,4 +1,4 @@ -package org.nuiton.eugene.plugin.modelextension; +package org.nuiton.eugene.models.extension.model; /*- * #%L @@ -31,27 +31,28 @@ import java.util.TreeSet; * Created on 10/09/16. * * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 */ -public class ClassBean extends ElementBean { +public class ModelExtensionClass extends ModelExtensionElement { - protected final Set<AttributeBean> attributes; + protected final Set<ModelExtensionAttribute> attributes; - public ClassBean(String name) { + public ModelExtensionClass(String name) { super(name); this.attributes = new TreeSet<>(); } - public Set<AttributeBean> getAttributes() { + public Set<ModelExtensionAttribute> getAttributes() { return attributes; } public Map<String, String> getAttributesTagValues() { Map<String, String> attributesTagValues = new TreeMap<>(); - for (AttributeBean attributeBean : attributes) { + for (ModelExtensionAttribute modelExtensionAttribute : attributes) { - for (Map.Entry<String, String> entry : attributeBean.tagValues.entrySet()) { + for (Map.Entry<String, String> entry : modelExtensionAttribute.tagValues.entrySet()) { if (!"true".equals(entry.getValue())) { - attributesTagValues.put(attributeBean.name + "." + entry.getKey(), entry.getValue()); + attributesTagValues.put(modelExtensionAttribute.name + "." + entry.getKey(), entry.getValue()); } } } @@ -60,25 +61,25 @@ public class ClassBean extends ElementBean { public Set<String> getAttributesStereotypes() { Set<String> attributesStereotypes = new TreeSet<>(); - for (AttributeBean attributeBean : attributes) { + for (ModelExtensionAttribute modelExtensionAttribute : attributes) { - for (String entry : attributeBean.getStereotypes()) { - attributesStereotypes.add(attributeBean.name + "." + entry); + for (String entry : modelExtensionAttribute.getStereotypes()) { + attributesStereotypes.add(modelExtensionAttribute.name + "." + entry); } } return attributesStereotypes; } - public AttributeBean getOrCreateAttribute(String attributeName) { - AttributeBean result = null; - for (AttributeBean attributeBean : attributes) { - if (attributeName.equals(attributeBean.name)) { - result = attributeBean; + public ModelExtensionAttribute getOrCreateAttribute(String attributeName) { + ModelExtensionAttribute result = null; + for (ModelExtensionAttribute modelExtensionAttribute : attributes) { + if (attributeName.equals(modelExtensionAttribute.name)) { + result = modelExtensionAttribute; break; } } if (result == null) { - result = new AttributeBean(attributeName); + result = new ModelExtensionAttribute(attributeName); attributes.add(result); } return result; diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ElementBean.java b/eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionElement.java similarity index 86% rename from eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ElementBean.java rename to eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionElement.java index 7791ae2..cffae4f 100644 --- a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ElementBean.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionElement.java @@ -1,4 +1,4 @@ -package org.nuiton.eugene.plugin.modelextension; +package org.nuiton.eugene.models.extension.model; /*- * #%L @@ -31,13 +31,14 @@ import java.util.TreeMap; * Created on 10/09/16. * * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 */ -public class ElementBean implements Comparable<ElementBean> { +public class ModelExtensionElement implements Comparable<ModelExtensionElement> { protected final String name; protected final Map<String, String> tagValues; - public ElementBean(String name) { + public ModelExtensionElement(String name) { this.name = name; this.tagValues = new TreeMap<>(); } @@ -61,7 +62,7 @@ public class ElementBean implements Comparable<ElementBean> { } @Override - public int compareTo(ElementBean o) { + public int compareTo(ModelExtensionElement o) { return name.compareTo(o.name); } diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/PackageBean.java b/eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionPackage.java similarity index 83% rename from eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/PackageBean.java rename to eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionPackage.java index 1564de9..8744ee1 100644 --- a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/PackageBean.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/extension/model/ModelExtensionPackage.java @@ -1,4 +1,4 @@ -package org.nuiton.eugene.plugin.modelextension; +package org.nuiton.eugene.models.extension.model; /*- * #%L @@ -26,10 +26,11 @@ package org.nuiton.eugene.plugin.modelextension; * Created on 10/09/16. * * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 */ -public class PackageBean extends ElementBean { +public class ModelExtensionPackage extends ModelExtensionElement { - public PackageBean(String name) { + public ModelExtensionPackage(String name) { super(name); } diff --git a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java b/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java index 95ccb29..2efa0a5 100644 --- a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java @@ -32,7 +32,7 @@ import org.nuiton.eugene.models.extension.tagvalue.InvalidTagValueSyntaxExceptio import org.nuiton.eugene.models.object.ObjectModel; import org.nuiton.eugene.models.object.ObjectModelClass; import org.nuiton.eugene.models.object.ObjectModelPackage; -import org.nuiton.eugene.models.object.reader.extension.LoadModelExtension; +import org.nuiton.eugene.models.extension.io.ModelExtensionReader; import org.nuiton.eugene.models.object.xml.ObjectModelImpl; import org.nuiton.eugene.models.object.xml.ObjectModelPackageImpl; import org.nuiton.util.FileUtil; @@ -70,7 +70,7 @@ public abstract class AbstractObjectModelReader extends ModelReader<ObjectModel> ObjectModel model = new ObjectModelImpl(); - LoadModelExtension<ObjectModel> loadModelExtension = new LoadModelExtension<>(isVerbose(), strictLoading, model); + ModelExtensionReader<ObjectModel> modelExtensionReader = new ModelExtensionReader<>(isVerbose(), strictLoading, model); for (File file : files) { @@ -92,7 +92,7 @@ public abstract class AbstractObjectModelReader extends ModelReader<ObjectModel> log.info("Lecture du fichier de propriétés " + propFile + " associé au model"); } try { - loadModelExtension.load(propFile); + modelExtensionReader.read(propFile); } catch (InvalidTagValueSyntaxException | InvalidStereotypeSyntaxException e) { // FIXME throw new IllegalStateException(e); diff --git a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/CompactModelExtensionFileParser.java b/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/CompactModelExtensionFileParser.java deleted file mode 100644 index b3b8990..0000000 --- a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/CompactModelExtensionFileParser.java +++ /dev/null @@ -1,193 +0,0 @@ -package org.nuiton.eugene.models.object.reader.extension; - -/*- - * #%L - * EUGene :: EUGene - * %% - * Copyright (C) 2004 - 2016 CodeLutin - * %% - * 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 com.google.common.base.Preconditions; -import org.apache.commons.lang3.StringUtils; - -import java.io.File; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.util.List; - -/** - * Created on 09/09/16. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class CompactModelExtensionFileParser implements ModelExtensionFileParser { - - public CompactModelExtensionFileParser(boolean strictLoading) { - this.strictLoading = strictLoading; - } - - enum Scope { - MODEL, - PACKAGE, - CLASS - } - - protected final boolean strictLoading; - - protected Scope scope; - protected String name; - - @Override - public void parse(File file, ModelExtensionFileParserCallback callback) throws IOException { - - scope = null; - name = null; - - List<String> lines = Files.readAllLines(file.toPath(), StandardCharsets.UTF_8); - - for (String line : lines) { - consumeLine(line, callback); - } - - } - - protected void consumeLine(String line, ModelExtensionFileParserCallback callback) { - if (StringUtils.isBlank(line)) { - - // ligne vide - return; - } - if (line.startsWith("#")) { - - // commentaire - return; - } - Scope newScope = getScope(line); - if (newScope != null) { - - // changement de scope - this.scope = newScope; - this.name = null; - return; - } - - Preconditions.checkState(scope != null); - - switch (scope) { - - case MODEL: { - - // la ligne est une tag value ou un stereotype - int index = line.indexOf(' '); - if (index == -1) { - - // stereotype de package - callback.onModelStereotypeFound(line); - } else { - - // tag value de package - callback.onModelTagValueFound(line.substring(0, index), line.substring(index + 1)); - } - } - break; - case PACKAGE: { - if (line.startsWith(" ")) { - - Preconditions.checkState(name != null, "No package name defined"); - - line = line.trim(); - - // la ligne est une tag value ou un stereotype - int index = line.indexOf(' '); - if (index == -1) { - - // stereotype de package - callback.onPackageStereotypeFound(name, line); - } else { - - // tag value de package - callback.onPackageTagValueFound(name, line.substring(0, index), line.substring(index + 1)); - } - - break; - - } - - name = line; - - } - break; - case CLASS: - - if (line.startsWith(" ")) { - - Preconditions.checkState(name != null, "No class name defined"); - - line = line.trim(); - - // la ligne est une tag value ou un stereotype - int index = line.indexOf(' '); - if (index == -1) { - - int attributeIndex = line.indexOf('.'); - if (attributeIndex == -1) { - - // stereotype de classe - callback.onClassStereotypeFound(name, line); - } else { - - // stereotype d'attribut - callback.onAttributeStereotypeFound(name, line.substring(0, attributeIndex), line.substring(attributeIndex + 1)); - } - - } else { - - String attributeOrTagValue = line.substring(0, index); - - int attributeIndex = attributeOrTagValue.indexOf('.'); - if (attributeIndex == -1) { - - // tag value de classe - callback.onClassTagValueFound(name, attributeOrTagValue, line.substring(index + 1)); - } else { - // tag value d'attribut - callback.onAttributeTagValueFound(name, attributeOrTagValue.substring(0, attributeIndex), attributeOrTagValue.substring(attributeIndex + 1), line.substring(index + 1)); - } - - } - - break; - } - - name = line; - - break; - } - } - - protected Scope getScope(String line) { - for (Scope scope : Scope.values()) { - String scopeStr = "[" + scope.name().toLowerCase() + "]"; - if (line.equals(scopeStr)) { - return scope; - } - } - return null; - } -} diff --git a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/ModelExtensionFileParser.java b/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/ModelExtensionFileParser.java deleted file mode 100644 index 71e35c5..0000000 --- a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/ModelExtensionFileParser.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.nuiton.eugene.models.object.reader.extension; - -/*- - * #%L - * EUGene :: EUGene - * %% - * Copyright (C) 2004 - 2016 CodeLutin - * %% - * 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.eugene.models.extension.tagvalue.InvalidStereotypeSyntaxException; -import org.nuiton.eugene.models.extension.tagvalue.InvalidTagValueSyntaxException; - -import java.io.File; -import java.io.IOException; - -/** - * Created on 09/09/16. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public interface ModelExtensionFileParser { - - String TAGVALUE = "tagvalue"; - - String TAG_VALUE = "tagValue"; - - String STEREOTYPE = "stereotype"; - - String ATTRIBUTE = "attribute"; - - String CLASS = "class"; - - String MODEL = "model"; - - String PACKAGE = "package"; - - void parse(File file, ModelExtensionFileParserCallback callback) throws IOException, InvalidStereotypeSyntaxException, InvalidTagValueSyntaxException; -} diff --git a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/ModelExtensionFileParserFactory.java b/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/ModelExtensionFileParserFactory.java deleted file mode 100644 index 00b2473..0000000 --- a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/ModelExtensionFileParserFactory.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.nuiton.eugene.models.object.reader.extension; - -/*- - * #%L - * EUGene :: EUGene - * %% - * Copyright (C) 2004 - 2016 CodeLutin - * %% - * 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.apache.commons.lang3.NotImplementedException; - -import java.io.File; - -/** - * Created on 10/09/16. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ModelExtensionFileParserFactory { - - public static FlatModelExtensionFileParser newFlatPaser(boolean strictLoading) { - return new FlatModelExtensionFileParser(strictLoading); - } - - public static CompactModelExtensionFileParser newCompactPaser(boolean strictLoading) { - return new CompactModelExtensionFileParser(strictLoading); - } - - public static ModelExtensionFileParser newParser(boolean strictLoading, File file) { - ModelExtensionFileParser parser; - if (file.getName().endsWith(".properties")) { - parser = new FlatModelExtensionFileParser(strictLoading); - } else if (file.getName().endsWith(".objectmodel-ext")) { - parser = new CompactModelExtensionFileParser(strictLoading); - } else { - throw new NotImplementedException("can't find parser for file: " + file); - } - return parser; - } -} diff --git a/pom.xml b/pom.xml index b71745d..324c165 100644 --- a/pom.xml +++ b/pom.xml @@ -194,6 +194,11 @@ <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-configuration2</artifactId> + <version>2.1</version> + </dependency> <!-- Guava --> <dependency> -- 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 eugene. See https://gitlab.nuiton.org/nuiton/eugene.git commit 493012d4f8c58be788514d33fc379d504513b408 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Oct 9 13:22:16 2016 +0200 Replace commons-collections by commons-collections4 (fixes #4066) --- eugene-java-templates/pom.xml | 4 ++-- .../src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java | 2 +- .../main/java/org/nuiton/eugene/java/SimpleJavaBeanTransformer.java | 2 +- .../nuiton/eugene/java/SimpleJavaBeanWithNoInterfaceTransformer.java | 2 +- eugene-maven-plugin/pom.xml | 5 ----- .../java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriter.java | 2 +- eugene/pom.xml | 4 ++-- eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java | 2 +- .../java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java | 2 +- .../models/extension/io/ModelExtensionFileParserPropertiesImpl.java | 4 ++-- .../eugene/models/extension/io/ModelExtensionWriterIniImpl.java | 2 +- .../models/extension/io/ModelExtensionWriterPropertiesImpl.java | 2 +- .../main/java/org/nuiton/eugene/writer/FileGrabberFromClassPath.java | 2 +- .../main/java/org/nuiton/eugene/writer/FileGrabberFromDirectory.java | 2 +- 14 files changed, 16 insertions(+), 21 deletions(-) diff --git a/eugene-java-templates/pom.xml b/eugene-java-templates/pom.xml index 631f67e..e28a49c 100644 --- a/eugene-java-templates/pom.xml +++ b/eugene-java-templates/pom.xml @@ -66,8 +66,8 @@ </dependency> <dependency> - <groupId>commons-collections</groupId> - <artifactId>commons-collections</artifactId> + <groupId>org.apache.commons</groupId> + <artifactId>commons-collections4</artifactId> </dependency> <dependency> diff --git a/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java b/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java index ff7e967..c47e3b7 100644 --- a/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java +++ b/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java @@ -21,7 +21,7 @@ */ package org.nuiton.eugene.java; -import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.eugene.models.object.ObjectModelAttribute; diff --git a/eugene-java-templates/src/main/java/org/nuiton/eugene/java/SimpleJavaBeanTransformer.java b/eugene-java-templates/src/main/java/org/nuiton/eugene/java/SimpleJavaBeanTransformer.java index 0bc33b4..7bc676e 100644 --- a/eugene-java-templates/src/main/java/org/nuiton/eugene/java/SimpleJavaBeanTransformer.java +++ b/eugene-java-templates/src/main/java/org/nuiton/eugene/java/SimpleJavaBeanTransformer.java @@ -25,7 +25,7 @@ package org.nuiton.eugene.java; /*{generator option: parentheses = false}*/ /*{generator option: writeString = +}*/ -import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/eugene-java-templates/src/main/java/org/nuiton/eugene/java/SimpleJavaBeanWithNoInterfaceTransformer.java b/eugene-java-templates/src/main/java/org/nuiton/eugene/java/SimpleJavaBeanWithNoInterfaceTransformer.java index ca783ca..a143d3c 100644 --- a/eugene-java-templates/src/main/java/org/nuiton/eugene/java/SimpleJavaBeanWithNoInterfaceTransformer.java +++ b/eugene-java-templates/src/main/java/org/nuiton/eugene/java/SimpleJavaBeanWithNoInterfaceTransformer.java @@ -29,7 +29,7 @@ import com.google.common.base.Function; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Maps; -import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/eugene-maven-plugin/pom.xml b/eugene-maven-plugin/pom.xml index 637c9c9..935961b 100644 --- a/eugene-maven-plugin/pom.xml +++ b/eugene-maven-plugin/pom.xml @@ -102,11 +102,6 @@ </dependency> <dependency> - <groupId>commons-collections</groupId> - <artifactId>commons-collections</artifactId> - </dependency> - - <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> </dependency> diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriter.java b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriter.java index ac1d9a8..adffc45 100644 --- a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriter.java +++ b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/writer/BaseChainedFileWriter.java @@ -22,7 +22,7 @@ package org.nuiton.eugene.plugin.writer; -import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections4.CollectionUtils; import org.apache.maven.plugin.logging.Log; import org.apache.maven.plugin.logging.SystemStreamLog; import org.codehaus.plexus.util.FileUtils; diff --git a/eugene/pom.xml b/eugene/pom.xml index fad51e6..29036e0 100644 --- a/eugene/pom.xml +++ b/eugene/pom.xml @@ -87,8 +87,8 @@ </dependency> <dependency> - <groupId>commons-collections</groupId> - <artifactId>commons-collections</artifactId> + <groupId>org.apache.commons</groupId> + <artifactId>commons-collections4</artifactId> </dependency> <dependency> diff --git a/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java b/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java index cc46b1e..e17587a 100644 --- a/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java +++ b/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java @@ -24,7 +24,7 @@ package org.nuiton.eugene.java; import com.google.common.base.Joiner; import com.google.common.collect.Lists; -import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java b/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java index baa3750..dd127c2 100644 --- a/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java +++ b/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java @@ -22,7 +22,7 @@ package org.nuiton.eugene.java; -import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.eugene.EugeneCoreTagValues; diff --git a/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFileParserPropertiesImpl.java b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFileParserPropertiesImpl.java index d91a502..7027af5 100644 --- a/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFileParserPropertiesImpl.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionFileParserPropertiesImpl.java @@ -22,7 +22,7 @@ package org.nuiton.eugene.models.extension.io; * #L% */ -import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.eugene.models.extension.tagvalue.InvalidStereotypeSyntaxException; @@ -73,7 +73,7 @@ class ModelExtensionFileParserPropertiesImpl extends ModelExtensionFileParser { // get all the tagValues keys and sort them List<String> keys = new ArrayList<>(); - CollectionUtils.addAll(keys, prop.keys()); + CollectionUtils.addAll(keys, prop.stringPropertyNames()); Collections.sort(keys); boolean safe = true; diff --git a/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriterIniImpl.java b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriterIniImpl.java index 8e6ef1e..5521e2d 100644 --- a/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriterIniImpl.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriterIniImpl.java @@ -1,6 +1,6 @@ package org.nuiton.eugene.models.extension.io; -import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.SystemUtils; import org.nuiton.eugene.models.extension.model.ModelExtension; import org.nuiton.eugene.models.extension.model.ModelExtensionAttribute; diff --git a/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriterPropertiesImpl.java b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriterPropertiesImpl.java index 5b9b138..2d35ad6 100644 --- a/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriterPropertiesImpl.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/extension/io/ModelExtensionWriterPropertiesImpl.java @@ -1,7 +1,7 @@ package org.nuiton.eugene.models.extension.io; import com.google.common.base.Joiner; -import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.SystemUtils; import org.nuiton.eugene.models.extension.model.ModelExtension; import org.nuiton.eugene.models.extension.model.ModelExtensionAttribute; diff --git a/eugene/src/main/java/org/nuiton/eugene/writer/FileGrabberFromClassPath.java b/eugene/src/main/java/org/nuiton/eugene/writer/FileGrabberFromClassPath.java index 4b7a446..6db5f15 100644 --- a/eugene/src/main/java/org/nuiton/eugene/writer/FileGrabberFromClassPath.java +++ b/eugene/src/main/java/org/nuiton/eugene/writer/FileGrabberFromClassPath.java @@ -22,7 +22,7 @@ package org.nuiton.eugene.writer; * #L% */ -import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/eugene/src/main/java/org/nuiton/eugene/writer/FileGrabberFromDirectory.java b/eugene/src/main/java/org/nuiton/eugene/writer/FileGrabberFromDirectory.java index dbfcf64..17aec59 100644 --- a/eugene/src/main/java/org/nuiton/eugene/writer/FileGrabberFromDirectory.java +++ b/eugene/src/main/java/org/nuiton/eugene/writer/FileGrabberFromDirectory.java @@ -22,7 +22,7 @@ package org.nuiton.eugene.writer; * #L% */ -import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.codehaus.plexus.util.DirectoryScanner; -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm