diff --git a/pom.xml b/pom.xml index d676cce..8260be3 100644 --- a/pom.xml +++ b/pom.xml @@ -42,10 +42,16 @@ UTF-8 1.8 1.8 - 3.6.3 + 3.9.0 + + + org.codehaus.plexus + plexus-utils + 3.5.0 + org.apache.maven maven-plugin-api @@ -66,6 +72,7 @@ org.apache.maven maven-core ${maven.version} + provided org.apache.maven.plugin-testing diff --git a/src/main/java/com/inteligr8/wildfly/maven/ModuleArtifactExtractor.java b/src/main/java/com/inteligr8/wildfly/maven/ModuleArtifactExtractor.java index 01102ce..02383db 100644 --- a/src/main/java/com/inteligr8/wildfly/maven/ModuleArtifactExtractor.java +++ b/src/main/java/com/inteligr8/wildfly/maven/ModuleArtifactExtractor.java @@ -18,6 +18,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Properties; +import org.apache.commons.lang3.StringUtils; import org.apache.maven.model.Model; import org.apache.maven.model.building.DefaultModelBuildingRequest; import org.apache.maven.model.building.ModelBuildingException; @@ -53,6 +54,7 @@ public class ModuleArtifactExtractor { if (artifact.getProperty("id", null) != null) { Module module = new Module(); module.id = artifact.getProperty("id", null); + module.version = artifact.getProperty("version", null); module.exportMetaInf = Boolean.parseBoolean(artifact.getProperty("exportMetaInf", Boolean.FALSE.toString())); module.exportServices = Boolean.parseBoolean(artifact.getProperty("exportServices", Boolean.FALSE.toString())); module.exportAnnotations = Boolean.parseBoolean(artifact.getProperty("exportAnnotations", Boolean.FALSE.toString())); @@ -81,8 +83,11 @@ public class ModuleArtifactExtractor { this.getLog().debug("No 'wildfly.module.id' property; not a Wildfly module project; adding as module resource: " + artifact); return null; } else { + String moduleVersion = StringUtils.trimToNull(modelProps.getProperty("wildfly.module.version")); + Module module = new Module(); module.id = moduleId; + module.version = moduleVersion; module.exportMetaInf = Boolean.parseBoolean(modelProps.getProperty("wildfly.module.meta")); module.exportServices = Boolean.parseBoolean(modelProps.getProperty("wildfly.module.services")); module.exportAnnotations = Boolean.parseBoolean(modelProps.getProperty("wildfly.module.annotations")); @@ -90,6 +95,7 @@ public class ModuleArtifactExtractor { Map props = new HashMap<>(); props.put("id", module.id); + props.put("version", module.version); props.put("exportMetaInf", String.valueOf(module.exportMetaInf)); props.put("exportServices", String.valueOf(module.exportServices)); props.put("exportAnnotations", String.valueOf(module.exportAnnotations)); diff --git a/src/main/java/com/inteligr8/wildfly/maven/goal/AbstractDeploymentGoal.java b/src/main/java/com/inteligr8/wildfly/maven/goal/AbstractDeploymentGoal.java index 1199c04..e4e34a0 100644 --- a/src/main/java/com/inteligr8/wildfly/maven/goal/AbstractDeploymentGoal.java +++ b/src/main/java/com/inteligr8/wildfly/maven/goal/AbstractDeploymentGoal.java @@ -34,8 +34,8 @@ import org.apache.maven.plugins.annotations.Parameter; */ public abstract class AbstractDeploymentGoal extends AbstractGoal { - @Parameter( property = "wildfly.deployment.version", required = true, defaultValue = "1.3" ) - protected String deploymentVersion; + @Parameter( required = true, defaultValue = "1.3" ) + protected String deploymentSchemaVersion; @Parameter( property = "wildfly.deployment.outputDirectory", required = true, defaultValue = "${project.build.directory}/${project.build.finalName}" ) protected File outputDirectory; diff --git a/src/main/java/com/inteligr8/wildfly/maven/goal/AbstractModuleGoal.java b/src/main/java/com/inteligr8/wildfly/maven/goal/AbstractModuleGoal.java index 2a42df7..9ddd265 100644 --- a/src/main/java/com/inteligr8/wildfly/maven/goal/AbstractModuleGoal.java +++ b/src/main/java/com/inteligr8/wildfly/maven/goal/AbstractModuleGoal.java @@ -26,7 +26,10 @@ public abstract class AbstractModuleGoal extends AbstractGoal { @Parameter( property = "wildfly.module.id", required = true ) protected String moduleId; - @Parameter( property = "wildfly.module.version", required = true, defaultValue = "1.9" ) + @Parameter( required = true, defaultValue = "1.9" ) + protected String moduleSchemaVersion; + + @Parameter( property = "wildfly.module.version", required = true, defaultValue = "main" ) protected String moduleVersion; @Parameter( property = "wildfly.module.outputDirectory", required = true, defaultValue = "${project.build.directory}/wildfly-module" ) @@ -41,12 +44,12 @@ public abstract class AbstractModuleGoal extends AbstractGoal { throw new IllegalStateException("The formulated directory contains a file: " + directory); } - File mainDirectory = new File(directory, "main"); - if (mainDirectory.exists() && !mainDirectory.isDirectory()) + File versionDirectory = new File(directory, this.moduleVersion); + if (versionDirectory.exists() && !versionDirectory.isDirectory()) throw new IllegalStateException("The formulated directory contains a file: " + directory); - mainDirectory.mkdirs(); - return mainDirectory; + versionDirectory.mkdirs(); + return versionDirectory; } } diff --git a/src/main/java/com/inteligr8/wildfly/maven/goal/EarGoal.java b/src/main/java/com/inteligr8/wildfly/maven/goal/EarGoal.java index e230949..1726a9b 100644 --- a/src/main/java/com/inteligr8/wildfly/maven/goal/EarGoal.java +++ b/src/main/java/com/inteligr8/wildfly/maven/goal/EarGoal.java @@ -49,7 +49,7 @@ public class EarGoal extends AbstractDeploymentGoal { @Override protected void executePre() throws MojoExecutionException { try { - this.deploymentXmlBuilder = new DeploymentXmlBuilder(this.deploymentVersion); + this.deploymentXmlBuilder = new DeploymentXmlBuilder(this.deploymentSchemaVersion); } catch (ParserConfigurationException pce) { throw new MojoExecutionException("This should never happen", pce); } diff --git a/src/main/java/com/inteligr8/wildfly/maven/goal/GenerateModuleXmlGoal.java b/src/main/java/com/inteligr8/wildfly/maven/goal/GenerateModuleXmlGoal.java index 30a59bb..af2fc71 100644 --- a/src/main/java/com/inteligr8/wildfly/maven/goal/GenerateModuleXmlGoal.java +++ b/src/main/java/com/inteligr8/wildfly/maven/goal/GenerateModuleXmlGoal.java @@ -47,7 +47,7 @@ public class GenerateModuleXmlGoal extends AbstractModuleGoal { @Override protected void executePre() throws MojoExecutionException { try { - this.moduleXmlBuilder = new ModuleXmlBuilder(this.moduleId, this.moduleVersion); + this.moduleXmlBuilder = new ModuleXmlBuilder(this.moduleId, this.moduleSchemaVersion); } catch (ParserConfigurationException pce) { throw new MojoExecutionException("This should never happen", pce); } diff --git a/src/main/java/com/inteligr8/wildfly/maven/goal/WarGoal.java b/src/main/java/com/inteligr8/wildfly/maven/goal/WarGoal.java index e7f78e1..ba5a9bf 100644 --- a/src/main/java/com/inteligr8/wildfly/maven/goal/WarGoal.java +++ b/src/main/java/com/inteligr8/wildfly/maven/goal/WarGoal.java @@ -67,7 +67,7 @@ public class WarGoal extends AbstractDeploymentGoal { @Override protected void executePre() throws MojoExecutionException { try { - this.deploymentXmlBuilder = new DeploymentXmlBuilder(this.deploymentVersion); + this.deploymentXmlBuilder = new DeploymentXmlBuilder(this.deploymentSchemaVersion); } catch (ParserConfigurationException pce) { throw new MojoExecutionException("This should never happen", pce); } diff --git a/src/main/java/com/inteligr8/wildfly/maven/model/Module.java b/src/main/java/com/inteligr8/wildfly/maven/model/Module.java index 2bd5d14..85eab22 100644 --- a/src/main/java/com/inteligr8/wildfly/maven/model/Module.java +++ b/src/main/java/com/inteligr8/wildfly/maven/model/Module.java @@ -17,6 +17,7 @@ package com.inteligr8.wildfly.maven.model; public class Module { public String id; + public String version; public boolean export; public boolean exportMetaInf; public boolean exportServices; diff --git a/src/main/java/com/inteligr8/wildfly/maven/xml/AbstractXmlBuilder.java b/src/main/java/com/inteligr8/wildfly/maven/xml/AbstractXmlBuilder.java index 8aa2c19..925c482 100644 --- a/src/main/java/com/inteligr8/wildfly/maven/xml/AbstractXmlBuilder.java +++ b/src/main/java/com/inteligr8/wildfly/maven/xml/AbstractXmlBuilder.java @@ -54,8 +54,12 @@ public abstract class AbstractXmlBuilder { public abstract String getXmlFilename(); public void addDependency(Module module, boolean isDeployment) { + String name = module.id; + if (module.version != null) + name += ":" + module.version; + Element moduleElement = this.xmldoc.createElementNS(this.ns, "module"); - moduleElement.setAttribute("name", module.id); + moduleElement.setAttribute("name", name); if (module.export) moduleElement.setAttribute("export", Boolean.TRUE.toString()); if (isDeployment && module.exportMetaInf)