From 3752a60efd0bca06aac919a8b13f013711abc985 Mon Sep 17 00:00:00 2001 From: "Brian M. Long" Date: Sun, 19 Feb 2023 11:47:11 -0500 Subject: [PATCH] final fix for module slotting --- .../wildfly/maven/xml/AbstractXmlBuilder.java | 8 ++++++-- .../wildfly/maven/xml/DeploymentXmlBuilder.java | 2 +- .../inteligr8/wildfly/maven/xml/ModuleXmlBuilder.java | 10 +++++++--- 3 files changed, 14 insertions(+), 6 deletions(-) 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 925c482..80b0970 100644 --- a/src/main/java/com/inteligr8/wildfly/maven/xml/AbstractXmlBuilder.java +++ b/src/main/java/com/inteligr8/wildfly/maven/xml/AbstractXmlBuilder.java @@ -42,24 +42,28 @@ public abstract class AbstractXmlBuilder { protected final String ns; protected final Document xmldoc; protected final Element dependenciesElement; + protected final boolean enableSlotAttribute; - public AbstractXmlBuilder(String ns) throws ParserConfigurationException { + public AbstractXmlBuilder(String ns, boolean enableSlotAttribute) throws ParserConfigurationException { DocumentBuilder docbuilder = this.dbfactory.newDocumentBuilder(); this.ns = ns; this.xmldoc = docbuilder.newDocument(); this.dependenciesElement = this.xmldoc.createElementNS(this.ns, "dependencies"); + this.enableSlotAttribute = enableSlotAttribute; } public abstract String getXmlFilename(); public void addDependency(Module module, boolean isDeployment) { String name = module.id; - if (module.version != null) + if (!this.enableSlotAttribute && module.version != null && !module.version.equals("main")) name += ":" + module.version; Element moduleElement = this.xmldoc.createElementNS(this.ns, "module"); moduleElement.setAttribute("name", name); + if (this.enableSlotAttribute && module.version != null && !module.version.equals("main")) + moduleElement.setAttribute("slot", module.version); if (module.export) moduleElement.setAttribute("export", Boolean.TRUE.toString()); if (isDeployment && module.exportMetaInf) diff --git a/src/main/java/com/inteligr8/wildfly/maven/xml/DeploymentXmlBuilder.java b/src/main/java/com/inteligr8/wildfly/maven/xml/DeploymentXmlBuilder.java index 81ae671..02fb973 100644 --- a/src/main/java/com/inteligr8/wildfly/maven/xml/DeploymentXmlBuilder.java +++ b/src/main/java/com/inteligr8/wildfly/maven/xml/DeploymentXmlBuilder.java @@ -25,7 +25,7 @@ import org.w3c.dom.Element; public class DeploymentXmlBuilder extends AbstractXmlBuilder { public DeploymentXmlBuilder(String schemaVersion) throws ParserConfigurationException { - super("urn:jboss:deployment-structure:" + schemaVersion); + super("urn:jboss:deployment-structure:" + schemaVersion, true); Element deploymentElement = this.xmldoc.createElementNS(this.ns, "deployment"); deploymentElement.appendChild(this.dependenciesElement); diff --git a/src/main/java/com/inteligr8/wildfly/maven/xml/ModuleXmlBuilder.java b/src/main/java/com/inteligr8/wildfly/maven/xml/ModuleXmlBuilder.java index 0520913..e7420ec 100644 --- a/src/main/java/com/inteligr8/wildfly/maven/xml/ModuleXmlBuilder.java +++ b/src/main/java/com/inteligr8/wildfly/maven/xml/ModuleXmlBuilder.java @@ -33,13 +33,17 @@ public class ModuleXmlBuilder extends AbstractXmlBuilder { } public ModuleXmlBuilder(String id, String schemaVersion, String moduleVersion) throws ParserConfigurationException { - super("urn:jboss:module:" + schemaVersion); + super("urn:jboss:module:" + schemaVersion, schemaVersion.equals("1.0") ? true : false); this.resourcesElement = this.xmldoc.createElementNS(this.ns, "resources"); + + String name = id; + if (!this.enableSlotAttribute && moduleVersion != null && !moduleVersion.equals("main")) + name += ":" + moduleVersion; Element moduleElement = this.xmldoc.createElementNS(this.ns, "module"); - moduleElement.setAttribute("name", id); - if (moduleVersion != null) + moduleElement.setAttribute("name", name); + if (this.enableSlotAttribute && moduleVersion != null && !moduleVersion.equals("main")) moduleElement.setAttribute("slot", moduleVersion); moduleElement.appendChild(this.resourcesElement); moduleElement.appendChild(this.dependenciesElement);