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)