diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/AbstractModelloGeneratorMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/AbstractModelloGeneratorMojo.java index 2e1e107d4..49409c66f 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/AbstractModelloGeneratorMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/AbstractModelloGeneratorMojo.java @@ -32,12 +32,12 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; import org.apache.maven.model.Resource; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; import org.codehaus.modello.ModelloException; @@ -80,12 +80,6 @@ public abstract class AbstractModelloGeneratorMojo extends AbstractMojo { @Parameter(property = "packageWithVersion", defaultValue = "false", required = true) private boolean packageWithVersion; - /** - *

Note: This is passed by Maven and must not be configured by the user.

- */ - @Component - private ModelloCore modelloCore; - /** * The Maven project instance for the executing project. */ @@ -128,11 +122,14 @@ public abstract class AbstractModelloGeneratorMojo extends AbstractMojo { @Parameter private Map pluralExceptions; - /** - * @since 1.0.1 - */ - @Component - private BuildContext buildContext; + private final BuildContext buildContext; + + private final ModelloCore modelloCore; + + protected AbstractModelloGeneratorMojo(BuildContext buildContext, ModelloCore modelloCore) { + this.buildContext = Objects.requireNonNull(buildContext, "buildContext cannot be null"); + this.modelloCore = Objects.requireNonNull(modelloCore, "modelloCore cannot be null"); + } // ---------------------------------------------------------------------- // Overridables @@ -366,18 +363,6 @@ public void setPackageWithVersion(boolean packageWithVersion) { this.packageWithVersion = packageWithVersion; } - public ModelloCore getModelloCore() { - return modelloCore; - } - - public void setModelloCore(ModelloCore modelloCore) { - this.modelloCore = modelloCore; - } - - public void setBuildContext(BuildContext context) { - this.buildContext = context; - } - public MavenProject getProject() { return project; } diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/AbstractModelloSourceGeneratorMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/AbstractModelloSourceGeneratorMojo.java index 1d29ab19f..034bd012b 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/AbstractModelloSourceGeneratorMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/AbstractModelloSourceGeneratorMojo.java @@ -22,6 +22,8 @@ * SOFTWARE. */ +import javax.inject.Inject; + import java.io.File; import java.util.Map; import java.util.Optional; @@ -31,6 +33,8 @@ import org.apache.maven.plugins.annotations.Parameter; import org.codehaus.modello.ModelloParameterConstants; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * @author Hervé Boutemy @@ -74,6 +78,11 @@ public abstract class AbstractModelloSourceGeneratorMojo extends AbstractModello @Parameter(defaultValue = "true") private boolean domAsXpp3; + @Inject + public AbstractModelloSourceGeneratorMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + @Override protected boolean producesCompilableResult() { return true; diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloConvertersMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloConvertersMojo.java index 797f4daa1..fff6849dc 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloConvertersMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloConvertersMojo.java @@ -1,7 +1,11 @@ package org.codehaus.modello.maven; +import javax.inject.Inject; + import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates classes that can convert between different versions of the model. @@ -10,6 +14,12 @@ */ @Mojo(name = "converters", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true) public class ModelloConvertersMojo extends AbstractModelloSourceGeneratorMojo { + + @Inject + public ModelloConvertersMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + protected String getGeneratorType() { return "converters"; } diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloDom4jReaderMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloDom4jReaderMojo.java index 2a26018ed..a219fda23 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloDom4jReaderMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloDom4jReaderMojo.java @@ -1,13 +1,23 @@ package org.codehaus.modello.maven; +import javax.inject.Inject; + import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates a DOM4J reader from the model. */ @Mojo(name = "dom4j-reader", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true) public class ModelloDom4jReaderMojo extends AbstractModelloSourceGeneratorMojo { + + @Inject + public ModelloDom4jReaderMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + protected String getGeneratorType() { return "dom4j-reader"; } diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloDom4jWriterMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloDom4jWriterMojo.java index 26c8f83a5..f21d346ac 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloDom4jWriterMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloDom4jWriterMojo.java @@ -1,13 +1,23 @@ package org.codehaus.modello.maven; +import javax.inject.Inject; + import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates a DOM4J writer from the model. */ @Mojo(name = "dom4j-writer", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true) public class ModelloDom4jWriterMojo extends AbstractModelloSourceGeneratorMojo { + + @Inject + public ModelloDom4jWriterMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + protected String getGeneratorType() { return "dom4j-writer"; } diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloGenerateMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloGenerateMojo.java index c95222b23..648032249 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloGenerateMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloGenerateMojo.java @@ -22,14 +22,18 @@ * SOFTWARE. */ +import javax.inject.Inject; + import java.util.Map; +import java.util.Objects; import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; +import org.codehaus.modello.core.ModelloCore; import org.codehaus.modello.plugin.ModelloGenerator; +import org.codehaus.plexus.build.BuildContext; /** *

@@ -85,12 +89,18 @@ */ @Mojo(name = "generate", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true) public class ModelloGenerateMojo extends AbstractModelloSourceGeneratorMojo { - @Component(role = ModelloGenerator.class) - private Map generatorMap; + private final Map generatorMap; @Parameter(property = "modello.generator.id", defaultValue = "java") private String generatorId; + @Inject + public ModelloGenerateMojo( + BuildContext buildContext, ModelloCore modelloCore, Map generatorMap) { + super(buildContext, modelloCore); + this.generatorMap = Objects.requireNonNull(generatorMap, "generatorMap cannot be null"); + } + protected String getGeneratorType() { return generatorId; } diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJDOMWriterMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJDOMWriterMojo.java index a8bb718b1..0aafc7d3f 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJDOMWriterMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJDOMWriterMojo.java @@ -22,8 +22,12 @@ * SOFTWARE. */ +import javax.inject.Inject; + import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates a jdom writer from the model that is capable of preserving element ordering @@ -33,6 +37,12 @@ */ @Mojo(name = "jdom-writer", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true) public class ModelloJDOMWriterMojo extends AbstractModelloSourceGeneratorMojo { + + @Inject + public ModelloJDOMWriterMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + protected String getGeneratorType() { return "jdom-writer"; } diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJacksonExtendedReaderMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJacksonExtendedReaderMojo.java index a67518b4d..60724b693 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJacksonExtendedReaderMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJacksonExtendedReaderMojo.java @@ -22,8 +22,12 @@ * SOFTWARE. */ +import javax.inject.Inject; + import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates an Jackson extended reader from the model. An extended reader populates the parsed model with metadata about @@ -35,6 +39,11 @@ @Mojo(name = "jackson-extended-reader", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true) public class ModelloJacksonExtendedReaderMojo extends ModelloXpp3ReaderMojo { + @Inject + public ModelloJacksonExtendedReaderMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + @Override protected String getGeneratorType() { return "jackson-extended-reader"; diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJacksonReaderMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJacksonReaderMojo.java index 03ed311d3..11bca3a39 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJacksonReaderMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJacksonReaderMojo.java @@ -22,11 +22,15 @@ * SOFTWARE. */ +import javax.inject.Inject; + import java.util.Map; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.codehaus.modello.ModelloParameterConstants; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates an Jackson reader from the model. @@ -36,6 +40,12 @@ */ @Mojo(name = "jackson-reader", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true) public class ModelloJacksonReaderMojo extends AbstractModelloSourceGeneratorMojo { + + @Inject + public ModelloJacksonReaderMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + protected String getGeneratorType() { return "jackson-reader"; } diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJacksonWriterMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJacksonWriterMojo.java index e78880a50..7d927cfec 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJacksonWriterMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJacksonWriterMojo.java @@ -22,11 +22,15 @@ * SOFTWARE. */ +import javax.inject.Inject; + import java.util.Map; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.codehaus.modello.ModelloParameterConstants; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates an Jackson writer from the model. @@ -36,6 +40,12 @@ */ @Mojo(name = "jackson-writer", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true) public class ModelloJacksonWriterMojo extends AbstractModelloSourceGeneratorMojo { + + @Inject + public ModelloJacksonWriterMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + protected String getGeneratorType() { return "jackson-writer"; } diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJavaMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJavaMojo.java index e388d6f23..e3c08d5dd 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJavaMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJavaMojo.java @@ -22,8 +22,12 @@ * SOFTWARE. */ +import javax.inject.Inject; + import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates Java beans from the Modello model. @@ -32,6 +36,12 @@ */ @Mojo(name = "java", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true) public class ModelloJavaMojo extends AbstractModelloSourceGeneratorMojo { + + @Inject + public ModelloJavaMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + protected String getGeneratorType() { return "java"; } diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJsonSchemaGeneratorMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJsonSchemaGeneratorMojo.java index af1195a3a..1ac60ee01 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJsonSchemaGeneratorMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloJsonSchemaGeneratorMojo.java @@ -22,6 +22,8 @@ * SOFTWARE. */ +import javax.inject.Inject; + import java.io.File; import java.util.Map; @@ -29,6 +31,8 @@ import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.codehaus.modello.ModelloParameterConstants; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates a JSON Schema from the model. @@ -49,6 +53,11 @@ public final class ModelloJsonSchemaGeneratorMojo extends AbstractModelloGenerat @Parameter private String jsonSchemaFileName; + @Inject + public ModelloJsonSchemaGeneratorMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + @Override protected void customizeParameters(Map parameters) { super.customizeParameters(parameters); diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloSaxWriterMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloSaxWriterMojo.java index e22ddd01e..b06cbd399 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloSaxWriterMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloSaxWriterMojo.java @@ -22,8 +22,12 @@ * SOFTWARE. */ +import javax.inject.Inject; + import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates a SAX writer from the model. @@ -33,6 +37,12 @@ */ @Mojo(name = "sax-writer", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true) public class ModelloSaxWriterMojo extends AbstractModelloSourceGeneratorMojo { + + @Inject + public ModelloSaxWriterMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + protected String getGeneratorType() { return "sax-writer"; } diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloSnakeYamlExtendedReaderMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloSnakeYamlExtendedReaderMojo.java index 1bef20143..39a44e186 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloSnakeYamlExtendedReaderMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloSnakeYamlExtendedReaderMojo.java @@ -22,8 +22,12 @@ * SOFTWARE. */ +import javax.inject.Inject; + import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates an Snake Yaml extended reader from the model. An extended reader populates the parsed model with metadata about @@ -35,6 +39,11 @@ @Mojo(name = "snakeyaml-extended-reader", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true) public class ModelloSnakeYamlExtendedReaderMojo extends ModelloXpp3ReaderMojo { + @Inject + public ModelloSnakeYamlExtendedReaderMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + @Override protected String getGeneratorType() { return "snakeyaml-extended-reader"; diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloSnakeYamlReaderMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloSnakeYamlReaderMojo.java index 791381244..7b9607789 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloSnakeYamlReaderMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloSnakeYamlReaderMojo.java @@ -22,8 +22,12 @@ * SOFTWARE. */ +import javax.inject.Inject; + import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates an SnakeYaml reader from the model. @@ -33,6 +37,12 @@ */ @Mojo(name = "snakeyaml-reader", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true) public class ModelloSnakeYamlReaderMojo extends AbstractModelloSourceGeneratorMojo { + + @Inject + public ModelloSnakeYamlReaderMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + protected String getGeneratorType() { return "snakeyaml-reader"; } diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloSnakeYamlWriterMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloSnakeYamlWriterMojo.java index ebc020985..05d21ee4f 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloSnakeYamlWriterMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloSnakeYamlWriterMojo.java @@ -22,8 +22,12 @@ * SOFTWARE. */ +import javax.inject.Inject; + import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates an SnakeYaml writer from the model. @@ -33,6 +37,12 @@ */ @Mojo(name = "snakeyaml-writer", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true) public class ModelloSnakeYamlWriterMojo extends AbstractModelloSourceGeneratorMojo { + + @Inject + public ModelloSnakeYamlWriterMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + protected String getGeneratorType() { return "snakeyaml-writer"; } diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloStaxReaderMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloStaxReaderMojo.java index 29c51b1a8..d68238382 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloStaxReaderMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloStaxReaderMojo.java @@ -1,7 +1,11 @@ package org.codehaus.modello.maven; +import javax.inject.Inject; + import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates an StAX reader from the model. @@ -10,6 +14,12 @@ */ @Mojo(name = "stax-reader", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true) public class ModelloStaxReaderMojo extends AbstractModelloSourceGeneratorMojo { + + @Inject + public ModelloStaxReaderMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + protected String getGeneratorType() { return "stax-reader"; } diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloStaxWriterMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloStaxWriterMojo.java index ac1efc9d7..e3095967d 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloStaxWriterMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloStaxWriterMojo.java @@ -1,7 +1,11 @@ package org.codehaus.modello.maven; +import javax.inject.Inject; + import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates an StAX writer from the model. @@ -10,6 +14,12 @@ */ @Mojo(name = "stax-writer", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true) public class ModelloStaxWriterMojo extends AbstractModelloSourceGeneratorMojo { + + @Inject + public ModelloStaxWriterMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + protected String getGeneratorType() { return "stax-writer"; } diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloVelocityMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloVelocityMojo.java index b616f3c91..b737f9253 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloVelocityMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloVelocityMojo.java @@ -19,6 +19,8 @@ * under the License. */ +import javax.inject.Inject; + import java.io.File; import java.util.Collections; import java.util.List; @@ -28,7 +30,9 @@ import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; +import org.codehaus.modello.core.ModelloCore; import org.codehaus.modello.plugin.velocity.VelocityGenerator; +import org.codehaus.plexus.build.BuildContext; /** * Creates files from the model using Velocity templates. @@ -80,6 +84,11 @@ public class ModelloVelocityMojo extends AbstractModelloGeneratorMojo { @Parameter private List params; + @Inject + public ModelloVelocityMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + protected String getGeneratorType() { return "velocity"; } diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXdocMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXdocMojo.java index 5205c8684..a52b5c47d 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXdocMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXdocMojo.java @@ -22,12 +22,16 @@ * SOFTWARE. */ +import javax.inject.Inject; + import java.io.File; import java.util.Map; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.codehaus.modello.ModelloParameterConstants; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates documentation for the model in xdoc format. @@ -60,6 +64,11 @@ public class ModelloXdocMojo extends AbstractModelloGeneratorMojo { @Parameter private String firstVersion; + @Inject + public ModelloXdocMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + protected String getGeneratorType() { return "xdoc"; } diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXpp3ExtendedReaderMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXpp3ExtendedReaderMojo.java index 6c5943da8..f798bf5b7 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXpp3ExtendedReaderMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXpp3ExtendedReaderMojo.java @@ -1,7 +1,11 @@ package org.codehaus.modello.maven; +import javax.inject.Inject; + import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /* * Copyright (c) 2004, Codehaus.org @@ -35,6 +39,11 @@ @Mojo(name = "xpp3-extended-reader", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true) public class ModelloXpp3ExtendedReaderMojo extends ModelloXpp3ReaderMojo { + @Inject + public ModelloXpp3ExtendedReaderMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + @Override protected String getGeneratorType() { return "xpp3-extended-reader"; diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXpp3ExtendedWriterMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXpp3ExtendedWriterMojo.java index 9b80588fe..84dd3a5a7 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXpp3ExtendedWriterMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXpp3ExtendedWriterMojo.java @@ -22,12 +22,16 @@ * SOFTWARE. */ +import javax.inject.Inject; + import java.util.Map; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.codehaus.modello.ModelloParameterConstants; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates an XPP3 extended writer from the model. An extended writer renders the content with comments about the @@ -44,6 +48,11 @@ public class ModelloXpp3ExtendedWriterMojo extends ModelloXpp3WriterMojo { @Parameter(defaultValue = "Ex") private String extendedClassnameSuffix; + @Inject + public ModelloXpp3ExtendedWriterMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + @Override protected String getGeneratorType() { return "xpp3-extended-writer"; diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXpp3ReaderMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXpp3ReaderMojo.java index e59ba20cd..885de97c0 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXpp3ReaderMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXpp3ReaderMojo.java @@ -22,8 +22,12 @@ * SOFTWARE. */ +import javax.inject.Inject; + import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates an XPP3 reader from the model. @@ -32,6 +36,12 @@ */ @Mojo(name = "xpp3-reader", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true) public class ModelloXpp3ReaderMojo extends AbstractModelloSourceGeneratorMojo { + + @Inject + public ModelloXpp3ReaderMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + protected String getGeneratorType() { return "xpp3-reader"; } diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXpp3WriterMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXpp3WriterMojo.java index ec18c16f3..7ab68aaa0 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXpp3WriterMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXpp3WriterMojo.java @@ -22,8 +22,12 @@ * SOFTWARE. */ +import javax.inject.Inject; + import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates an XPP3 writer from the model. @@ -32,6 +36,12 @@ */ @Mojo(name = "xpp3-writer", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true) public class ModelloXpp3WriterMojo extends AbstractModelloSourceGeneratorMojo { + + @Inject + public ModelloXpp3WriterMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + protected String getGeneratorType() { return "xpp3-writer"; } diff --git a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXsdMojo.java b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXsdMojo.java index d4682006f..77748e059 100644 --- a/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXsdMojo.java +++ b/modello-maven-plugin/src/main/java/org/codehaus/modello/maven/ModelloXsdMojo.java @@ -22,6 +22,8 @@ * SOFTWARE. */ +import javax.inject.Inject; + import java.io.File; import java.util.Map; @@ -29,6 +31,8 @@ import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.codehaus.modello.ModelloParameterConstants; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.build.BuildContext; /** * Creates an XML schema from the model. @@ -59,6 +63,11 @@ public class ModelloXsdMojo extends AbstractModelloGeneratorMojo { @Parameter private String xsdFileName; + @Inject + public ModelloXsdMojo(BuildContext buildContext, ModelloCore modelloCore) { + super(buildContext, modelloCore); + } + protected String getGeneratorType() { return "xsd"; } diff --git a/modello-maven-plugin/src/test/java/org/codehaus/modello/maven/AbstractModelloSourceGeneratorMojoTest.java b/modello-maven-plugin/src/test/java/org/codehaus/modello/maven/AbstractModelloSourceGeneratorMojoTest.java index 44d1217c1..94439f924 100644 --- a/modello-maven-plugin/src/test/java/org/codehaus/modello/maven/AbstractModelloSourceGeneratorMojoTest.java +++ b/modello-maven-plugin/src/test/java/org/codehaus/modello/maven/AbstractModelloSourceGeneratorMojoTest.java @@ -1,5 +1,7 @@ package org.codehaus.modello.maven; +import javax.inject.Inject; + import java.util.HashMap; import java.util.Map; import java.util.Properties; @@ -7,17 +9,31 @@ import org.apache.maven.model.Model; import org.apache.maven.project.MavenProject; import org.codehaus.modello.ModelloParameterConstants; +import org.codehaus.modello.core.ModelloCore; +import org.codehaus.plexus.ContainerConfiguration; +import org.codehaus.plexus.build.BuildContext; +import org.codehaus.plexus.testing.PlexusTest; +import org.codehaus.plexus.testing.PlexusTestConfiguration; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; -public class AbstractModelloSourceGeneratorMojoTest { +@PlexusTest +public class AbstractModelloSourceGeneratorMojoTest implements PlexusTestConfiguration { + + @Inject + private BuildContext buildContext; + + @Inject + private ModelloCore modelloCore; - private class ModelloSourceGeneratorMojoTest extends AbstractModelloSourceGeneratorMojo { + private static class ModelloSourceGeneratorMojoTest extends AbstractModelloSourceGeneratorMojo { private final Properties projectProperties; - ModelloSourceGeneratorMojoTest(Properties projectProperties) { + ModelloSourceGeneratorMojoTest( + BuildContext buildContext, ModelloCore modelloCore, Properties projectProperties) { + super(buildContext, modelloCore); this.projectProperties = projectProperties; } @@ -36,9 +52,14 @@ public MavenProject getProject() { } } + @Override + public void customizeConfiguration(ContainerConfiguration containerConfiguration) { + containerConfiguration.setClassPathScanning("cache"); + } + private void executeJavaSourceTest(Properties projectProperties, String expexted) { ModelloSourceGeneratorMojoTest modelloSourceGeneratorMojoTest = - new ModelloSourceGeneratorMojoTest(projectProperties); + new ModelloSourceGeneratorMojoTest(buildContext, modelloCore, projectProperties); Map properties = new HashMap<>(); modelloSourceGeneratorMojoTest.customizeParameters(properties); diff --git a/modello-maven-plugin/src/test/java/org/codehaus/modello/maven/ModelloConvertersMojoTest.java b/modello-maven-plugin/src/test/java/org/codehaus/modello/maven/ModelloConvertersMojoTest.java index 1e51439f3..d04fbf396 100644 --- a/modello-maven-plugin/src/test/java/org/codehaus/modello/maven/ModelloConvertersMojoTest.java +++ b/modello-maven-plugin/src/test/java/org/codehaus/modello/maven/ModelloConvertersMojoTest.java @@ -60,7 +60,7 @@ public void customizeConfiguration(ContainerConfiguration containerConfiguration @Test public void testModelloConvertersMojo() throws Exception { - ModelloConvertersMojo mojo = new ModelloConvertersMojo(); + ModelloConvertersMojo mojo = new ModelloConvertersMojo(buildContext, modelloCore); File outputDirectory = getTestFile("target/converters-test"); @@ -82,10 +82,6 @@ public void testModelloConvertersMojo() throws Exception { mojo.setPackagedVersions(Arrays.asList(new String[] {"0.9.0", "1.0.0"})); - mojo.setModelloCore(modelloCore); - - mojo.setBuildContext(buildContext); - mojo.setProject(new MavenProject()); mojo.execute(); diff --git a/modello-maven-plugin/src/test/java/org/codehaus/modello/maven/ModelloJavaMojoTest.java b/modello-maven-plugin/src/test/java/org/codehaus/modello/maven/ModelloJavaMojoTest.java index b3ba2802c..ee5cc7aa4 100644 --- a/modello-maven-plugin/src/test/java/org/codehaus/modello/maven/ModelloJavaMojoTest.java +++ b/modello-maven-plugin/src/test/java/org/codehaus/modello/maven/ModelloJavaMojoTest.java @@ -55,7 +55,7 @@ public class ModelloJavaMojoTest implements PlexusTestConfiguration { @Test public void testModelloJavaMojo() throws Exception { - ModelloJavaMojo mojo = new ModelloJavaMojo(); + ModelloJavaMojo mojo = new ModelloJavaMojo(buildContext, modelloCore); File outputDirectory = getTestFile("target/java-test"); @@ -77,9 +77,6 @@ public void testModelloJavaMojo() throws Exception { mojo.setPackagedVersions(Arrays.asList(new String[] {"0.9.0", "1.0.0"})); - mojo.setModelloCore(modelloCore); - - mojo.setBuildContext(buildContext); mojo.setProject(new MavenProject()); mojo.execute();