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 a1438491f55dc21c1ceef3577ea896fcee52af62 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Sep 10 11:48:36 2016 +0200 Add new property modelExtensionFile on generate mojo + use it to load extension model --- .../org/nuiton/eugene/plugin/GenerateMojo.java | 13 +++++++++++++ .../writer/BaseChainedFileWriterToMemoryModel.java | 22 +++++++++++++++++++--- .../writer/ChainedFileWriterConfiguration.java | 2 ++ 3 files changed, 34 insertions(+), 3 deletions(-) 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 e5981de..a76908c 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 @@ -295,6 +295,14 @@ public class GenerateMojo extends AbstractPlugin implements ChainedFileWriterCon protected boolean failIfUnsafe; /** + * To use a new object model extension file. + * + * @since 3.0 + */ + @Parameter(property = "eugene.modelExtensionFile") + protected File modelExtensionFile; + + /** * Maven project. * * @since 2.0.0 @@ -745,6 +753,11 @@ public class GenerateMojo extends AbstractPlugin implements ChainedFileWriterCon return getProject().getBasedir(); } + @Override + public File getModelExtensionFile() { + return modelExtensionFile; + } + /** * @return the string representation of excludesTemplates * (separated by comma) 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 47b6a29..b714592 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 @@ -24,7 +24,11 @@ package org.nuiton.eugene.plugin.writer; import org.nuiton.eugene.ModelReader; import org.nuiton.eugene.models.Model; +import org.nuiton.eugene.models.object.ObjectModel; +import org.nuiton.eugene.models.object.reader.extension.LoadModelExtension; +import org.nuiton.eugene.models.stereotype.InvalidStereotypeSyntaxException; import org.nuiton.eugene.models.stereotype.StereotypeDefinitionProvider; +import org.nuiton.eugene.models.tagvalue.InvalidTagValueSyntaxException; import org.nuiton.eugene.models.tagvalue.TagValueDefinitionProvider; import org.nuiton.eugene.writer.ChainedFileWriterConfiguration; import org.nuiton.eugene.writer.ChainedFileWriterToMemoryModel; @@ -155,7 +159,7 @@ public abstract class BaseChainedFileWriterToMemoryModel extends BaseChainedFile throw eee; } catch (Exception eee) { throw new IllegalStateException("could not obtain reader " - + reader, eee); + + reader, eee); } } else { @@ -165,8 +169,8 @@ public abstract class BaseChainedFileWriterToMemoryModel extends BaseChainedFile if (modelReader == null) { throw new IllegalStateException( "could not find a model reader for modelType: " + - modelType + ", and input type: " + inputType + ", availables readers : " + - configuration.getModelHelper().getModelReaders().values() + modelType + ", and input type: " + inputType + ", availables readers : " + + configuration.getModelHelper().getModelReaders().values() ); } @@ -209,6 +213,18 @@ public abstract class BaseChainedFileWriterToMemoryModel extends BaseChainedFile // read memory model from all files models model = getModelReader().read(filesToRead); + if (model instanceof ObjectModel && configuration.getModelExtensionFile() != null) { + + LoadModelExtension<ObjectModel> loadModelExtension = new LoadModelExtension<>(configuration.isVerbose(), isFailIfUnsafe(), (ObjectModel) model); + + try { + loadModelExtension.load(configuration.getModelExtensionFile()); + } catch (InvalidTagValueSyntaxException | InvalidStereotypeSyntaxException e) { + //FIXME + throw new IllegalStateException(e); + } + } + if (configuration.isVerbose()) { getLog().info("Last modified file: " + lastModifiedFile + " - " + new Date(getLastModifiedSource())); diff --git a/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java b/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java index 614af5d..def562c 100644 --- a/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java +++ b/eugene/src/main/java/org/nuiton/eugene/writer/ChainedFileWriterConfiguration.java @@ -85,4 +85,6 @@ public interface ChainedFileWriterConfiguration { /** @return the classloader to use to seek for resources */ ClassLoader getClassLoader(); + File getModelExtensionFile(); + } -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.