Merge pull request #30 from mabrarov/MEAR-293
[MEAR-293] skinnyModules to work even if skinnyWars is false
diff --git a/pom.xml b/pom.xml
index 8607f9c..1c16273 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,7 @@
<mavenCompilerPluginVersion>2.5.1</mavenCompilerPluginVersion>
<mavenEjbPluginVersion>2.3</mavenEjbPluginVersion>
<mavenRarPluginVersion>2.4</mavenRarPluginVersion>
+ <mavenJarPluginVersion>3.2.0</mavenJarPluginVersion>
<jbossPackagingPluginVersion>2.2</jbossPackagingPluginVersion>
<invoker.skip>false</invoker.skip>
<invoker.install.skip>${invoker.skip}</invoker.install.skip>
@@ -290,6 +291,7 @@
<extraArtifact>org.apache.maven.plugins:maven-compiler-plugin:${mavenCompilerPluginVersion}:jar</extraArtifact>
<extraArtifact>org.apache.maven.plugins:maven-ejb-plugin:${mavenEjbPluginVersion}:jar</extraArtifact>
<extraArtifact>org.apache.maven.plugins:maven-rar-plugin:${mavenRarPluginVersion}:jar</extraArtifact>
+ <extraArtifact>org.apache.maven.plugins:maven-jar-plugin:${mavenJarPluginVersion}:jar</extraArtifact>
<extraArtifact>org.codehaus.mojo:jboss-packaging-maven-plugin:${jbossPackagingPluginVersion}:jar</extraArtifact>
</extraArtifacts>
<skipInstallation>${invoker.install.skip}</skipInstallation>
diff --git a/src/main/java/org/apache/maven/plugins/ear/AbstractEarModule.java b/src/main/java/org/apache/maven/plugins/ear/AbstractEarModule.java
index 2af06fb..bb64744 100644
--- a/src/main/java/org/apache/maven/plugins/ear/AbstractEarModule.java
+++ b/src/main/java/org/apache/maven/plugins/ear/AbstractEarModule.java
@@ -60,6 +60,8 @@
private String artifactId;
+ protected String type;
+
private String classifier;
/**
@@ -123,6 +125,7 @@
this.artifact = a;
this.groupId = a.getGroupId();
this.artifactId = a.getArtifactId();
+ this.type = a.getType();
this.classifier = a.getClassifier();
this.bundleDir = null;
}
@@ -203,6 +206,14 @@
}
/**
+ * {@inheritDoc}
+ */
+ public String getType()
+ {
+ return type;
+ }
+
+ /**
* Returns the artifact's groupId.
*
* @return {@link #groupId}
diff --git a/src/main/java/org/apache/maven/plugins/ear/AcrModule.java b/src/main/java/org/apache/maven/plugins/ear/AcrModule.java
deleted file mode 100644
index 3342126..0000000
--- a/src/main/java/org/apache/maven/plugins/ear/AcrModule.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package org.apache.maven.plugins.ear;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.plugin.MojoFailureException;
-import org.codehaus.plexus.util.xml.XMLWriter;
-
-import java.util.Set;
-
-/**
- * The {@link EarModule} implementation for an Acr Module.
- *
- * @author <a href="mailto:khmarbaise@apache.org">Karl Heinz Marbaise</a>
- * @since 3.0.0
- */
-public class AcrModule
- extends AbstractEarModule
-{
- private Boolean includeInApplicationXml = Boolean.FALSE;
-
- private static final String APP_CLIENT = "app-client";
-
- /**
- * Create an instance.
- */
- public AcrModule()
- {
- super();
- }
-
- /**
- * @param a {@link Artifact}
- * @param defaultLibBundleDir The default library bundle directory.
- * @param includeInApplicationXml Include the application xml or not.
- */
- public AcrModule( Artifact a, String defaultLibBundleDir, Boolean includeInApplicationXml )
- {
- super( a );
- setLibBundleDir( defaultLibBundleDir );
- this.includeInApplicationXml = includeInApplicationXml;
-
- }
-
- /**
- * {@inheritDoc}
- */
- public void appendModule( XMLWriter writer, String version, Boolean generateId )
- {
- // Generates an entry in the application.xml only if
- // includeInApplicationXml is set
- if ( includeInApplicationXml )
- {
- startModuleElement( writer, generateId );
- writer.startElement( APP_CLIENT );
- writer.writeText( getUri() );
- writer.endElement();
-
- writeAltDeploymentDescriptor( writer, version );
-
- writer.endElement();
- }
- }
-
- /**
- * {@inheritDoc}
- */
- public void resolveArtifact( Set<Artifact> artifacts )
- throws EarPluginException, MojoFailureException
- {
- // Let's resolve the artifact
- super.resolveArtifact( artifacts );
-
- // If the defaultLibBundleDir is set and no bundle dir is
- // set, set the default as bundle dir
- setLibBundleDir( earExecutionContext.getDefaultLibBundleDir() );
- }
-
- /**
- * {@inheritDoc}
- */
- public String getType()
- {
- return APP_CLIENT;
- }
-
- private void setLibBundleDir( String defaultLibBundleDir )
- {
- if ( defaultLibBundleDir != null && bundleDir == null )
- {
- this.bundleDir = defaultLibBundleDir;
- }
- }
-
- /**
- * {@inheritDoc}
- */
- public boolean changeManifestClasspath()
- {
- return false;
- }
-}
diff --git a/src/main/java/org/apache/maven/plugins/ear/AppClientModule.java b/src/main/java/org/apache/maven/plugins/ear/AppClientModule.java
index 5c537b7..6ff9994 100644
--- a/src/main/java/org/apache/maven/plugins/ear/AppClientModule.java
+++ b/src/main/java/org/apache/maven/plugins/ear/AppClientModule.java
@@ -30,12 +30,17 @@
public class AppClientModule
extends AbstractEarModule
{
+ /**
+ * Default type of the artifact of an application client module.
+ */
+ public static final String DEFAULT_ARTIFACT_TYPE = "app-client";
/**
* Create an instance.
*/
public AppClientModule()
{
+ this.type = DEFAULT_ARTIFACT_TYPE;
}
/**
@@ -60,12 +65,4 @@
writer.endElement();
}
-
- /**
- * @return The type of the module.
- */
- public String getType()
- {
- return "app-client";
- }
}
diff --git a/src/main/java/org/apache/maven/plugins/ear/EarModuleFactory.java b/src/main/java/org/apache/maven/plugins/ear/EarModuleFactory.java
index 161e6bc..f8a1ba9 100644
--- a/src/main/java/org/apache/maven/plugins/ear/EarModuleFactory.java
+++ b/src/main/java/org/apache/maven/plugins/ear/EarModuleFactory.java
@@ -34,12 +34,30 @@
*/
public final class EarModuleFactory
{
+ private static final String TEST_JAR_ARTIFACT_TYPE = "test-jar";
+ private static final String JBOSS_PAR_ARTIFACT_TYPE = "jboss-par";
+ private static final String JBOSS_SAR_ARTIFACT_TYPE = "jboss-sar";
+ private static final String JBOSS_HAR_ARTIFACT_TYPE = "jboss-har";
+
/**
* The list of artifact types.
*/
- public static final List<String> STANDARD_ARTIFACT_TYPE =
- Collections.unmodifiableList( Arrays.asList( "jar", "ejb", "par", "ejb-client", "app-client", "rar", "war",
- "sar", "wsr", "har" ) );
+ private static final List<String> STANDARD_ARTIFACT_TYPES =
+ Collections.unmodifiableList( Arrays.asList(
+ JarModule.DEFAULT_ARTIFACT_TYPE,
+ EjbModule.DEFAULT_ARTIFACT_TYPE,
+ ParModule.DEFAULT_ARTIFACT_TYPE,
+ EjbClientModule.DEFAULT_ARTIFACT_TYPE,
+ AppClientModule.DEFAULT_ARTIFACT_TYPE,
+ RarModule.DEFAULT_ARTIFACT_TYPE,
+ WebModule.DEFAULT_ARTIFACT_TYPE,
+ SarModule.DEFAULT_ARTIFACT_TYPE,
+ WsrModule.DEFAULT_ARTIFACT_TYPE,
+ HarModule.DEFAULT_ARTIFACT_TYPE,
+ TEST_JAR_ARTIFACT_TYPE,
+ JBOSS_PAR_ARTIFACT_TYPE,
+ JBOSS_SAR_ARTIFACT_TYPE,
+ JBOSS_HAR_ARTIFACT_TYPE ) );
/**
* Creates a new {@link EarModule} based on the specified {@link Artifact} and the specified execution
@@ -70,19 +88,20 @@
throw new UnknownArtifactTypeException( e.getMessage() + " for " + artifact.getArtifactId() );
}
- if ( "jar".equals( artifactType ) )
+ if ( JarModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType ) || TEST_JAR_ARTIFACT_TYPE.equals( artifactType ) )
{
return new JarModule( artifact, defaultLibBundleDir, includeInApplicationXml );
}
- else if ( "ejb".equals( artifactType ) )
+ else if ( EjbModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType ) )
{
return new EjbModule( artifact );
}
- else if ( "par".equals( artifactType ) )
+ else if ( ParModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType )
+ || JBOSS_PAR_ARTIFACT_TYPE.equals( artifactType ) )
{
return new ParModule( artifact );
}
- else if ( "ejb-client".equals( artifactType ) )
+ else if ( EjbClientModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType ) )
{
// Somewhat weird way to tackle the problem described in MEAR-85
if ( javaEEVersion.le( JavaEEVersion.ONE_DOT_FOUR ) )
@@ -94,27 +113,29 @@
return new EjbClientModule( artifact, defaultLibBundleDir );
}
}
- else if ( "app-client".equals( artifactType ) )
+ else if ( AppClientModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType ) )
{
return new AppClientModule( artifact );
}
- else if ( "rar".equals( artifactType ) )
+ else if ( RarModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType ) )
{
return new RarModule( artifact );
}
- else if ( "war".equals( artifactType ) )
+ else if ( WebModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType ) )
{
return new WebModule( artifact );
}
- else if ( "sar".equals( artifactType ) )
+ else if ( SarModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType )
+ || JBOSS_SAR_ARTIFACT_TYPE.equals( artifactType ) )
{
return new SarModule( artifact );
}
- else if ( "wsr".equals( artifactType ) )
+ else if ( WsrModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType ) )
{
return new WsrModule( artifact );
}
- else if ( "har".equals( artifactType ) )
+ else if ( HarModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType )
+ || JBOSS_HAR_ARTIFACT_TYPE.equals( artifactType ) )
{
return new HarModule( artifact );
}
@@ -131,7 +152,7 @@
*/
public static List<String> getStandardArtifactTypes()
{
- return STANDARD_ARTIFACT_TYPE;
+ return STANDARD_ARTIFACT_TYPES;
}
/**
@@ -142,7 +163,7 @@
*/
public static boolean isStandardArtifactType( final String type )
{
- return STANDARD_ARTIFACT_TYPE.contains( type );
+ return STANDARD_ARTIFACT_TYPES.contains( type );
}
}
diff --git a/src/main/java/org/apache/maven/plugins/ear/EarMojo.java b/src/main/java/org/apache/maven/plugins/ear/EarMojo.java
index 5a50db3..e0dc675 100644
--- a/src/main/java/org/apache/maven/plugins/ear/EarMojo.java
+++ b/src/main/java/org/apache/maven/plugins/ear/EarMojo.java
@@ -522,10 +522,10 @@
unpackTypesList = Arrays.asList( unpackTypes.split( "," ) );
for ( String type : unpackTypesList )
{
- if ( !EarModuleFactory.STANDARD_ARTIFACT_TYPE.contains( type ) )
+ if ( !EarModuleFactory.isStandardArtifactType( type ) )
{
throw new MojoExecutionException( "Invalid type [" + type + "] supported types are "
- + EarModuleFactory.STANDARD_ARTIFACT_TYPE );
+ + EarModuleFactory.getStandardArtifactTypes() );
}
}
getLog().debug( "Initialized unpack types " + unpackTypesList );
diff --git a/src/main/java/org/apache/maven/plugins/ear/EjbClientModule.java b/src/main/java/org/apache/maven/plugins/ear/EjbClientModule.java
index 186f893..bd16ebc 100644
--- a/src/main/java/org/apache/maven/plugins/ear/EjbClientModule.java
+++ b/src/main/java/org/apache/maven/plugins/ear/EjbClientModule.java
@@ -29,13 +29,17 @@
public class EjbClientModule
extends JarModule
{
+ /**
+ * Default type of the artifact of an ejb client module.
+ */
+ public static final String DEFAULT_ARTIFACT_TYPE = "ejb-client";
/**
* Create an instance.
*/
public EjbClientModule()
{
- super();
+ this.type = DEFAULT_ARTIFACT_TYPE;
}
/**
@@ -46,12 +50,4 @@
{
super( a, defaultLibBundleDir, Boolean.FALSE );
}
-
- /**
- * {@inheritDoc}
- */
- public String getType()
- {
- return "ejb-client";
- }
}
diff --git a/src/main/java/org/apache/maven/plugins/ear/EjbModule.java b/src/main/java/org/apache/maven/plugins/ear/EjbModule.java
index d74b62d..f9adb3c 100644
--- a/src/main/java/org/apache/maven/plugins/ear/EjbModule.java
+++ b/src/main/java/org/apache/maven/plugins/ear/EjbModule.java
@@ -30,6 +30,11 @@
public class EjbModule
extends AbstractEarModule
{
+ /**
+ * Default type of the artifact of an EJB module.
+ */
+ public static final String DEFAULT_ARTIFACT_TYPE = "ejb";
+
private static final String EJB_MODULE = "ejb";
/**
@@ -37,6 +42,7 @@
*/
public EjbModule()
{
+ this.type = DEFAULT_ARTIFACT_TYPE;
}
/**
@@ -61,12 +67,4 @@
writer.endElement();
}
-
- /**
- * {@inheritDoc}
- */
- public String getType()
- {
- return EJB_MODULE;
- }
}
diff --git a/src/main/java/org/apache/maven/plugins/ear/HarModule.java b/src/main/java/org/apache/maven/plugins/ear/HarModule.java
index 0124e54..1d2198d 100644
--- a/src/main/java/org/apache/maven/plugins/ear/HarModule.java
+++ b/src/main/java/org/apache/maven/plugins/ear/HarModule.java
@@ -31,6 +31,11 @@
extends AbstractEarModule
implements JbossEarModule
{
+ /**
+ * Default type of the artifact of a JBoss Hibernate archive.
+ */
+ public static final String DEFAULT_ARTIFACT_TYPE = "har";
+
private static final String DEFAULT_LIB_DIRECTORY = "lib";
/**
@@ -38,6 +43,7 @@
*/
public HarModule()
{
+ this.type = DEFAULT_ARTIFACT_TYPE;
this.libDirectory = DEFAULT_LIB_DIRECTORY;
}
@@ -71,12 +77,4 @@
writer.endElement();
writer.endElement();
}
-
- /**
- * {@inheritDoc}
- */
- public String getType()
- {
- return "har";
- }
}
diff --git a/src/main/java/org/apache/maven/plugins/ear/JarModule.java b/src/main/java/org/apache/maven/plugins/ear/JarModule.java
index baf30ff..9f9f318 100644
--- a/src/main/java/org/apache/maven/plugins/ear/JarModule.java
+++ b/src/main/java/org/apache/maven/plugins/ear/JarModule.java
@@ -38,6 +38,11 @@
public class JarModule
extends AbstractEarModule
{
+ /**
+ * Default type of the artifact of a non Java EE module such as third party library.
+ */
+ public static final String DEFAULT_ARTIFACT_TYPE = "jar";
+
private Boolean includeInApplicationXml = Boolean.FALSE;
/**
@@ -45,7 +50,7 @@
*/
public JarModule()
{
- super();
+ this.type = DEFAULT_ARTIFACT_TYPE;
}
/**
@@ -95,14 +100,6 @@
setLibBundleDir( earExecutionContext.getDefaultLibBundleDir() );
}
- /**
- * {@inheritDoc}
- */
- public String getType()
- {
- return "jar";
- }
-
private void setLibBundleDir( String defaultLibBundleDir )
{
if ( defaultLibBundleDir != null && bundleDir == null )
diff --git a/src/main/java/org/apache/maven/plugins/ear/ParModule.java b/src/main/java/org/apache/maven/plugins/ear/ParModule.java
index f88b479..53fbcc9 100644
--- a/src/main/java/org/apache/maven/plugins/ear/ParModule.java
+++ b/src/main/java/org/apache/maven/plugins/ear/ParModule.java
@@ -29,13 +29,17 @@
public class ParModule
extends EjbModule
{
+ /**
+ * Default type of the artifact of a Par module.
+ */
+ public static final String DEFAULT_ARTIFACT_TYPE = "par";
/**
* Create an instance.
*/
public ParModule()
{
- super();
+ this.type = DEFAULT_ARTIFACT_TYPE;
}
/**
@@ -45,12 +49,4 @@
{
super( a );
}
-
- /**
- * {@inheritDoc}
- */
- public String getType()
- {
- return "par";
- }
}
diff --git a/src/main/java/org/apache/maven/plugins/ear/RarModule.java b/src/main/java/org/apache/maven/plugins/ear/RarModule.java
index 6083eb7..0b3ec8b 100644
--- a/src/main/java/org/apache/maven/plugins/ear/RarModule.java
+++ b/src/main/java/org/apache/maven/plugins/ear/RarModule.java
@@ -30,6 +30,11 @@
public class RarModule
extends AbstractEarModule
{
+ /**
+ * Default type of the artifact of an Java EE connector module.
+ */
+ public static final String DEFAULT_ARTIFACT_TYPE = "rar";
+
private static final String RAR_MODULE = "connector";
private static final String DEFAULT_LIB_DIRECTORY = "/";
@@ -39,6 +44,7 @@
*/
public RarModule()
{
+ this.type = DEFAULT_ARTIFACT_TYPE;
this.libDirectory = DEFAULT_LIB_DIRECTORY;
}
@@ -65,12 +71,4 @@
writer.endElement();
}
-
- /**
- * {@inheritDoc}
- */
- public String getType()
- {
- return "rar";
- }
}
diff --git a/src/main/java/org/apache/maven/plugins/ear/SarModule.java b/src/main/java/org/apache/maven/plugins/ear/SarModule.java
index b18566e..deb9944 100644
--- a/src/main/java/org/apache/maven/plugins/ear/SarModule.java
+++ b/src/main/java/org/apache/maven/plugins/ear/SarModule.java
@@ -37,6 +37,11 @@
extends AbstractEarModule
implements JbossEarModule
{
+ /**
+ * Default type of the artifact of a JBoss sar module.
+ */
+ public static final String DEFAULT_ARTIFACT_TYPE = "sar";
+
private static final String SAR_MODULE = "connector";
private static final String DEFAULT_LIB_DIRECTORY = "lib";
@@ -46,6 +51,7 @@
*/
public SarModule()
{
+ this.type = DEFAULT_ARTIFACT_TYPE;
this.libDirectory = DEFAULT_LIB_DIRECTORY;
}
@@ -85,12 +91,4 @@
writer.endElement();
writer.endElement();
}
-
- /**
- * {@inheritDoc}
- */
- public String getType()
- {
- return "sar";
- }
}
diff --git a/src/main/java/org/apache/maven/plugins/ear/WebModule.java b/src/main/java/org/apache/maven/plugins/ear/WebModule.java
index f8aada7..89f1ae2 100644
--- a/src/main/java/org/apache/maven/plugins/ear/WebModule.java
+++ b/src/main/java/org/apache/maven/plugins/ear/WebModule.java
@@ -33,6 +33,11 @@
public class WebModule
extends AbstractEarModule
{
+ /**
+ * Default type of the artifact of a Web application module.
+ */
+ public static final String DEFAULT_ARTIFACT_TYPE = "war";
+
private static final String WEB_MODULE = "web";
private static final String WEB_URI_FIELD = "web-uri";
@@ -48,6 +53,7 @@
*/
public WebModule()
{
+ this.type = DEFAULT_ARTIFACT_TYPE;
this.libDirectory = DEFAULT_LIB_DIRECTORY;
}
@@ -112,14 +118,6 @@
}
/**
- * {@inheritDoc}
- */
- public String getType()
- {
- return "war";
- }
-
- /**
* Generates a default context root for the given artifact, based on the <tt>artifactId</tt>.
*
* @param a the artifact
diff --git a/src/main/java/org/apache/maven/plugins/ear/WsrModule.java b/src/main/java/org/apache/maven/plugins/ear/WsrModule.java
index b1844a1..e2456e6 100644
--- a/src/main/java/org/apache/maven/plugins/ear/WsrModule.java
+++ b/src/main/java/org/apache/maven/plugins/ear/WsrModule.java
@@ -30,10 +30,16 @@
extends RarModule
{
/**
+ * Default type of the artifact of a JBoss wsr module.
+ */
+ public static final String DEFAULT_ARTIFACT_TYPE = "wsr";
+
+ /**
* Create an instance.
*/
public WsrModule()
{
+ this.type = DEFAULT_ARTIFACT_TYPE;
}
/**
@@ -43,12 +49,4 @@
{
super( a );
}
-
- /**
- * {@inheritDoc}
- */
- public String getType()
- {
- return "wsr";
- }
}
\ No newline at end of file
diff --git a/src/site/apt/modules.apt.vm b/src/site/apt/modules.apt.vm
index 5d722a0..e0f8362 100644
--- a/src/site/apt/modules.apt.vm
+++ b/src/site/apt/modules.apt.vm
@@ -85,16 +85,17 @@
The following configuration options are available for EjbClientModule:
- * <<groupId>> - sets the groupId of the ejb-client artifact you want to
- configure.
+ * <<groupId>> - sets the groupId of the artifact you want to configure.
- * <<artifactId>> - sets the artifactId of the ejb-client artifact you want to
- configure.
+ * <<artifactId>> - sets the artifactId of the artifact you want to configure.
- * <<classifier>> - sets the classifier of the ejb-client artifact you want to
- configure if multiple ejb-client artifacts matches the groupId/artifact. Use
+ * <<type>> - sets the type of the artifact you want to configure.
+ Default is 'ejb-client'.
+
+ * <<classifier>> - sets the classifier of the artifact you want to
+ configure if multiple artifacts matches the groupId/artifactId/type. Use
the mainArtifactId ('none' by default) to define the main artifact (e.g.
- the artifact without a classifier)
+ the artifact without a classifier).
* <<bundleDir>> - sets the location of this artifact inside the ear archive.
If not set, this artifact will be packaged in the root of the archive.
@@ -145,16 +146,17 @@
The following configuration options are available for EjbModule:
- * <<groupId>> - sets the groupId of the ejb artifact you want to
- configure.
+ * <<groupId>> - sets the groupId of the artifact you want to configure.
- * <<artifactId>> - sets the artifactId of the ejb artifact you want to
- configure.
+ * <<artifactId>> - sets the artifactId of the artifact you want to configure.
- * <<classifier>> - sets the classifier of the ejb artifact you want to
- configure if multiple ejb artifacts matches the groupId/artifact. Use
+ * <<type>> - sets the type of the artifact you want to configure.
+ Default is 'ejb'.
+
+ * <<classifier>> - sets the classifier of the artifact you want to
+ configure if multiple artifacts matches the groupId/artifactId/type. Use
the mainArtifactId ('none' by default) to define the main artifact (e.g.
- the artifact without a classifier)
+ the artifact without a classifier).
* <<bundleDir>> - sets the location of this artifact inside the ear archive.
If not set, this artifact will be packaged in the root of the archive.
@@ -183,16 +185,17 @@
The following configuration options are available for JarModule:
- * <<groupId>> - sets the groupId of the jar artifact you want to
- configure.
+ * <<groupId>> - sets the groupId of the artifact you want to configure.
- * <<artifactId>> - sets the artifactId of the jar artifact you want to
- configure.
+ * <<artifactId>> - sets the artifactId of the artifact you want to configure.
- * <<classifier>> - sets the classifier of the jar artifact you want to
- configure if multiple jar artifacts matches the groupId/artifact. Use
+ * <<type>> - sets the type of the artifact you want to configure.
+ Default is 'jar'. Use 'test-jar' if the artifact of the module is test JAR.
+
+ * <<classifier>> - sets the classifier of the artifact you want to
+ configure if multiple artifacts matches the groupId/artifactId/type. Use
the mainArtifactId ('none' by default) to define the main artifact (e.g.
- the artifact without a classifier)
+ the artifact without a classifier).
* <<bundleDir>> - sets the location of this artifact inside the ear archive.
If not set, this artifact will be packaged in the root of the archive.
@@ -222,16 +225,19 @@
The following configuration options are available for ParModule:
- * <<groupId>> - sets the groupId of the par artifact you want to
- configure.
+ * <<groupId>> - sets the groupId of the artifact you want to configure.
- * <<artifactId>> - sets the artifactId of the par artifact you want to
- configure.
+ * <<artifactId>> - sets the artifactId of the artifact you want to configure.
- * <<classifier>> - sets the classifier of the par artifact you want to
- configure if multiple par artifacts matches the groupId/artifact. Use
+ * <<type>> - sets the type of the artifact you want to configure.
+ Default is 'par'. If the artifact you want to configure is built with
+ {{{https://github.com/mojohaus/jboss-packaging-maven-plugin}JBoss Packaging Maven Plugin}}
+ and has 'jboss-par' type, then that type should be specified explicitly.
+
+ * <<classifier>> - sets the classifier of the artifact you want to
+ configure if multiple artifacts matches the groupId/artifactId/type. Use
the mainArtifactId ('none' by default) to define the main artifact (e.g.
- the artifact without a classifier)
+ the artifact without a classifier).
* <<bundleDir>> - sets the location of this artifact inside the ear archive.
If not set, this artifact will be packaged in the root of the archive.
@@ -260,16 +266,17 @@
The following configuration options are available for RarModule:
- * <<groupId>> - sets the groupId of the rar artifact you want to
- configure.
+ * <<groupId>> - sets the groupId of the artifact you want to configure.
- * <<artifactId>> - sets the artifactId of the rar artifact you want to
- configure.
+ * <<artifactId>> - sets the artifactId of the artifact you want to configure.
- * <<classifier>> - sets the classifier of the rar artifact you want to
- configure if multiple rar artifacts matches the groupId/artifact. Use
+ * <<type>> - sets the type of the artifact you want to configure.
+ Default is 'rar'.
+
+ * <<classifier>> - sets the classifier of the artifact you want to
+ configure if multiple artifacts matches the groupId/artifactId/type. Use
the mainArtifactId ('none' by default) to define the main artifact (e.g.
- the artifact without a classifier)
+ the artifact without a classifier).
* <<bundleDir>> - sets the location of this artifact inside the ear archive.
If not set, this artifact will be packaged in the root of the archive.
@@ -301,16 +308,19 @@
The following configuration options are available for SarModule:
- * <<groupId>> - sets the groupId of the sar artifact you want to
- configure.
+ * <<groupId>> - sets the groupId of the artifact you want to configure.
- * <<artifactId>> - sets the artifactId of the sar artifact you want to
- configure.
+ * <<artifactId>> - sets the artifactId of the artifact you want to configure.
- * <<classifier>> - sets the classifier of the sar artifact you want to
- configure if multiple sar artifacts matches the groupId/artifact. Use
+ * <<type>> - sets the type of the artifact you want to configure.
+ Default is 'sar'. If the artifact you want to configure is built with
+ {{{https://github.com/mojohaus/jboss-packaging-maven-plugin}JBoss Packaging Maven Plugin}}
+ and has 'jboss-sar' type, then that type should be specified explicitly.
+
+ * <<classifier>> - sets the classifier of the artifact you want to
+ configure if multiple artifacts matches the groupId/artifactId/type. Use
the mainArtifactId ('none' by default) to define the main artifact (e.g.
- the artifact without a classifier)
+ the artifact without a classifier).
* <<bundleDir>> - sets the location of this artifact inside the ear archive.
If not set, this artifact will be packaged in the root of the archive.
@@ -338,16 +348,17 @@
The following configuration options are available for WebModule:
- * <<groupId>> - sets the groupId of the web artifact you want to
- configure.
+ * <<groupId>> - sets the groupId of the artifact you want to configure.
- * <<artifactId>> - sets the artifactId of the web artifact you want to
- configure.
+ * <<artifactId>> - sets the artifactId of the artifact you want to configure.
- * <<classifier>> - sets the classifier of the web artifact you want to
- configure if multiple web artifacts matches the groupId/artifact. Use
+ * <<type>> - sets the type of the artifact you want to configure.
+ Default is 'war'.
+
+ * <<classifier>> - sets the classifier of the artifact you want to
+ configure if multiple artifacts matches the groupId/artifactId/type. Use
the mainArtifactId ('none' by default) to define the main artifact (e.g.
- the artifact without a classifier)
+ the artifact without a classifier).
* <<bundleDir>> - sets the location of this artifact inside the ear archive.
If not set, this artifact will be packaged in the root of the archive.
@@ -385,16 +396,17 @@
The following configuration options are available for WsrModule:
- * <<groupId>> - sets the groupId of the wsr artifact you want to
- configure.
+ * <<groupId>> - sets the groupId of the artifact you want to configure.
- * <<artifactId>> - sets the artifactId of the wsr artifact you want to
- configure.
+ * <<artifactId>> - sets the artifactId of the artifact you want to configure.
- * <<classifier>> - sets the classifier of the wst artifact you want to
- configure if multiple wsr artifacts matches the groupId/artifact. Use
+ * <<type>> - sets the type of the artifact you want to configure.
+ Default is 'wsr'.
+
+ * <<classifier>> - sets the classifier of the artifact you want to
+ configure if multiple artifacts matches the groupId/artifactId/type. Use
the mainArtifactId ('none' by default) to define the main artifact (e.g.
- the artifact without a classifier)
+ the artifact without a classifier).
* <<bundleDir>> - sets the location of this artifact inside the ear archive.
If not set, this artifact will be packaged in the root of the archive.
@@ -425,16 +437,19 @@
The following configuration options are available for HarModule:
- * <<groupId>> - sets the groupId of the hibernate archive artifact you
- want to configure.
+ * <<groupId>> - sets the groupId of the artifact you want to configure.
- * <<artifactId>> - sets the artifactId of the hibernate archive artifact
- you want to configure.
+ * <<artifactId>> - sets the artifactId of artifact you want to configure.
- * <<classifier>> - sets the classifier of the hibernate archive artifact
- you want to configure if multiple hibernate archive artifacts matches
- the groupId/artifact. Use the mainArtifactId ('none' by default) to define
- the main artifact (e.g. the artifact without a classifier)
+ * <<type>> - sets the type of the artifact you want to configure.
+ Default is 'har'. If the artifact you want to configure is built with
+ {{{https://github.com/mojohaus/jboss-packaging-maven-plugin}JBoss Packaging Maven Plugin}}
+ and has 'jboss-har' type, then that type should be specified explicitly.
+
+ * <<classifier>> - sets the classifier of the artifact you want to
+ configure if multiple artifacts matches the groupId/artifactId/type. Use
+ the mainArtifactId ('none' by default) to define the main artifact (e.g.
+ the artifact without a classifier).
* <<bundleDir>> - sets the location of this artifact inside the ear archive.
If not set, this artifact will be packaged in the root of the archive.
@@ -460,16 +475,17 @@
The following configuration options are available for AppClientModule:
- * <<groupId>> - sets the groupId of the application client artifact you want to
- configure.
+ * <<groupId>> - sets the groupId of the artifact you want to configure.
- * <<artifactId>> - sets the artifactId of the applicant client artifact you want to
- configure.
+ * <<artifactId>> - sets the artifactId of the artifact you want to configure.
- * <<classifier>> - sets the classifier of the application client artifact you want to
- configure if multiple application client artifacts matches the groupId/artifact. Use
+ * <<type>> - sets the type of the artifact you want to configure.
+ Default is 'app-client'.
+
+ * <<classifier>> - sets the classifier of the artifact you want to
+ configure if multiple artifacts matches the groupId/artifactId/type. Use
the mainArtifactId ('none' by default) to define the main artifact (e.g.
- the artifact without a classifier)
+ the artifact without a classifier).
* <<bundleDir>> - sets the location of this artifact inside the ear archive.
If not set, this artifact will be packaged in the root of the archive.
diff --git a/src/test/java/org/apache/maven/plugins/ear/it/EarMojoIT.java b/src/test/java/org/apache/maven/plugins/ear/it/EarMojoIT.java
index 1d67239..678c353 100644
--- a/src/test/java/org/apache/maven/plugins/ear/it/EarMojoIT.java
+++ b/src/test/java/org/apache/maven/plugins/ear/it/EarMojoIT.java
@@ -287,7 +287,7 @@
}
/**
- * Builds an EAR and make sure that a classified dependency with mutiple candidates is detected when specifying the
+ * Builds an EAR and make sure that a classified dependency with multiple candidates is detected when specifying the
* classifier.
*/
public void testProject025()
@@ -299,7 +299,7 @@
}
/**
- * Builds an EAR and make sure that the build fails if a unclassifed module configuration with mutiple candidates is
+ * Builds an EAR and make sure that the build fails if a unclassifed module configuration with multiple candidates is
* specified.
*/
public void testProject026()
@@ -426,7 +426,7 @@
}
/**
- * Builds an EAR and make sure that a non-classified dependency with mutiple candidates is detected when specifying
+ * Builds an EAR and make sure that a non-classified dependency with multiple candidates is detected when specifying
* the mainArtifactId as classifier.
*/
public void testProject038()
@@ -1159,4 +1159,61 @@
{ rarModuleLibDir + jarSampleOneLibrary, rarModuleLibDir + jarSampleTwoLibrary, rarModuleLibDir + jarSampleThreeLibrary } } ,
null );
}
+
+ /**
+ * Ensures that test JAR dependency of WAR is handled as regular JAR in terms of packaging and manifest modification
+ * when skinnyWars option is turned on.
+ */
+ public void testProject095()
+ throws Exception
+ {
+ final String warModule = "eartest-war-sample-two-1.0.war";
+ final String jarSampleTwoLibrary = "lib/eartest-jar-sample-two-1.0.jar";
+ final String jarSampleThreeLibrary = "lib/eartest-jar-sample-three-with-deps-1.0.jar";
+ final String jarSampleFourTestLibrary = "lib/eartest-jar-sample-four-1.0-tests.jar";
+ doTestProject( "project-095", "ear",
+ new String[] { warModule, jarSampleTwoLibrary, jarSampleThreeLibrary, jarSampleFourTestLibrary },
+ new boolean[] { false, false, false, false },
+ new String[] { warModule },
+ new boolean[] { false },
+ new String[][] { { jarSampleFourTestLibrary, jarSampleThreeLibrary, jarSampleTwoLibrary } },
+ true );
+ }
+
+ /**
+ * Ensures that test JAR dependency representing Java module is described in deployment descriptor
+ * if includeInApplicationXml property of module is {@code true}.
+ */
+ public void testProject096()
+ throws Exception
+ {
+ final String warModule = "eartest-war-sample-two-1.0.war";
+ final String jarSampleTwoLibrary = "eartest-jar-sample-two-1.0.jar";
+ final String jarSampleThreeLibrary = "eartest-jar-sample-three-with-deps-1.0.jar";
+ final String jarSampleFourTestLibrary = "eartest-jar-sample-four-1.0-tests.jar";
+ final String jarSampleFiveLibrary = "eartest-jar-sample-five-1.0.jar";
+ doTestProject( "project-096", "ear",
+ new String[] { warModule, jarSampleTwoLibrary, jarSampleThreeLibrary, jarSampleFourTestLibrary, jarSampleFiveLibrary },
+ new boolean[] { false, false, false, false, false },
+ new String[] { warModule },
+ new boolean[] { false },
+ new String[][] { { jarSampleFourTestLibrary, jarSampleFiveLibrary, jarSampleThreeLibrary, jarSampleTwoLibrary } },
+ true );
+ }
+
+ /**
+ * Ensures that artifacts with jboss-sar, jboss-har and jboss-par types are packaged in EAR and
+ * described in deployment descriptor when respective types are configured for EAR modules.
+ */
+ public void testProject097()
+ throws Exception
+ {
+ final String warModule = "eartest-war-sample-three-1.0.war";
+ final String sarSampleTwo = "eartest-sar-sample-two-1.0.sar";
+ final String harSampleTwo = "eartest-har-sample-two-1.0.har";
+ final String parSampleTwo = "eartest-par-sample-one-1.0.par";
+ final String[] artifacts = { warModule, sarSampleTwo, harSampleTwo, parSampleTwo };
+ final boolean[] artifactsDirectory = { false, false, false, false };
+ doTestProject( "project-097", "ear", artifacts, artifactsDirectory, null, null, null , true );
+ }
}
diff --git a/src/test/resources/projects/project-095/ear/expected-META-INF/application.xml b/src/test/resources/projects/project-095/ear/expected-META-INF/application.xml
new file mode 100644
index 0000000..46efdd0
--- /dev/null
+++ b/src/test/resources/projects/project-095/ear/expected-META-INF/application.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version="6">
+ <display-name>maven-ear-plugin-test-project-095</display-name>
+ <module>
+ <web>
+ <web-uri>eartest-war-sample-two-1.0.war</web-uri>
+ <context-root>/war-sample-two</context-root>
+ </web>
+ </module>
+ <library-directory>lib</library-directory>
+</application>
diff --git a/src/test/resources/projects/project-095/ear/pom.xml b/src/test/resources/projects/project-095/ear/pom.xml
new file mode 100644
index 0000000..37b9e9a
--- /dev/null
+++ b/src/test/resources/projects/project-095/ear/pom.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>ear</groupId>
+ <artifactId>maven-ear-plugin-test-project-095-parent</artifactId>
+ <version>99.0</version>
+ </parent>
+ <artifactId>maven-ear-plugin-test-project-095</artifactId>
+ <packaging>ear</packaging>
+ <dependencies>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>war-sample-two</artifactId>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>war-sample-two</artifactId>
+ <type>pom</type>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-ear-plugin</artifactId>
+ <version>@project.version@</version>
+ <configuration>
+ <version>6</version>
+ <defaultLibBundleDir>lib</defaultLibBundleDir>
+ <skinnyWars>true</skinnyWars>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/src/test/resources/projects/project-095/jar/pom.xml b/src/test/resources/projects/project-095/jar/pom.xml
new file mode 100644
index 0000000..3796ce5
--- /dev/null
+++ b/src/test/resources/projects/project-095/jar/pom.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>ear</groupId>
+ <artifactId>maven-ear-plugin-test-project-095-parent</artifactId>
+ <version>99.0</version>
+ </parent>
+ <groupId>eartest</groupId>
+ <artifactId>jar-sample-four</artifactId>
+ <version>1.0</version>
+ <dependencies>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>jar-sample-three-with-deps</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>test-jar</id>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/src/test/resources/projects/project-095/pom.xml b/src/test/resources/projects/project-095/pom.xml
new file mode 100644
index 0000000..9d2f247
--- /dev/null
+++ b/src/test/resources/projects/project-095/pom.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>ear</groupId>
+ <artifactId>maven-ear-plugin-test-project-095-parent</artifactId>
+ <version>99.0</version>
+ <packaging>pom</packaging>
+ <modules>
+ <module>jar</module>
+ <module>war</module>
+ <module>ear</module>
+ </modules>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>jar-sample-three-with-deps</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>jar-sample-four</artifactId>
+ <version>1.0</version>
+ <classifier>tests</classifier>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>war-sample-two</artifactId>
+ <version>1.0</version>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>war-sample-two</artifactId>
+ <version>1.0</version>
+ <type>pom</type>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>@mavenWarPluginVersion@</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>@mavenJarPluginVersion@</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+</project>
diff --git a/src/test/resources/projects/project-095/war/pom.xml b/src/test/resources/projects/project-095/war/pom.xml
new file mode 100644
index 0000000..a0549e7
--- /dev/null
+++ b/src/test/resources/projects/project-095/war/pom.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>ear</groupId>
+ <artifactId>maven-ear-plugin-test-project-095-parent</artifactId>
+ <version>99.0</version>
+ </parent>
+ <groupId>eartest</groupId>
+ <artifactId>war-sample-two</artifactId>
+ <version>1.0</version>
+ <packaging>war</packaging>
+ <dependencies>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>jar-sample-four</artifactId>
+ <classifier>tests</classifier>
+ <type>test-jar</type>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/src/test/resources/projects/project-095/war/src/main/webapp/WEB-INF/web.xml b/src/test/resources/projects/project-095/war/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..fbbf307
--- /dev/null
+++ b/src/test/resources/projects/project-095/war/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<web-app xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
+ version="3.0">
+</web-app>
diff --git a/src/test/resources/projects/project-096/ear/expected-META-INF/application.xml b/src/test/resources/projects/project-096/ear/expected-META-INF/application.xml
new file mode 100644
index 0000000..96a5d41
--- /dev/null
+++ b/src/test/resources/projects/project-096/ear/expected-META-INF/application.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version="6">
+ <display-name>maven-ear-plugin-test-project-096</display-name>
+ <module>
+ <java>eartest-jar-sample-four-1.0-tests.jar</java>
+ </module>
+ <module>
+ <java>eartest-jar-sample-five-1.0.jar</java>
+ </module>
+ <module>
+ <web>
+ <web-uri>eartest-war-sample-two-1.0.war</web-uri>
+ <context-root>/war-sample-two</context-root>
+ </web>
+ </module>
+</application>
diff --git a/src/test/resources/projects/project-096/ear/pom.xml b/src/test/resources/projects/project-096/ear/pom.xml
new file mode 100644
index 0000000..9cacc91
--- /dev/null
+++ b/src/test/resources/projects/project-096/ear/pom.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>ear</groupId>
+ <artifactId>maven-ear-plugin-test-project-096-parent</artifactId>
+ <version>99.0</version>
+ </parent>
+ <artifactId>maven-ear-plugin-test-project-096</artifactId>
+ <packaging>ear</packaging>
+ <dependencies>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>war-sample-two</artifactId>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>war-sample-two</artifactId>
+ <type>pom</type>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-ear-plugin</artifactId>
+ <version>@project.version@</version>
+ <configuration>
+ <version>6</version>
+ <skinnyWars>true</skinnyWars>
+ <modules>
+ <jarModule>
+ <groupId>eartest</groupId>
+ <artifactId>jar-sample-four</artifactId>
+ <type>test-jar</type>
+ <includeInApplicationXml>true</includeInApplicationXml>
+ </jarModule>
+ <jarModule>
+ <groupId>eartest</groupId>
+ <artifactId>jar-sample-five</artifactId>
+ <includeInApplicationXml>true</includeInApplicationXml>
+ </jarModule>
+ </modules>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/src/test/resources/projects/project-096/jar-five/pom.xml b/src/test/resources/projects/project-096/jar-five/pom.xml
new file mode 100644
index 0000000..7e0b335
--- /dev/null
+++ b/src/test/resources/projects/project-096/jar-five/pom.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>ear</groupId>
+ <artifactId>maven-ear-plugin-test-project-096-parent</artifactId>
+ <version>99.0</version>
+ </parent>
+ <groupId>eartest</groupId>
+ <artifactId>jar-sample-five</artifactId>
+ <version>1.0</version>
+ <dependencies>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>jar-sample-three-with-deps</artifactId>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/src/test/resources/projects/project-096/jar-four/pom.xml b/src/test/resources/projects/project-096/jar-four/pom.xml
new file mode 100644
index 0000000..0632636
--- /dev/null
+++ b/src/test/resources/projects/project-096/jar-four/pom.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>ear</groupId>
+ <artifactId>maven-ear-plugin-test-project-096-parent</artifactId>
+ <version>99.0</version>
+ </parent>
+ <groupId>eartest</groupId>
+ <artifactId>jar-sample-four</artifactId>
+ <version>1.0</version>
+ <dependencies>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>jar-sample-three-with-deps</artifactId>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>test-jar</id>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/src/test/resources/projects/project-096/pom.xml b/src/test/resources/projects/project-096/pom.xml
new file mode 100644
index 0000000..f35c27c
--- /dev/null
+++ b/src/test/resources/projects/project-096/pom.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>ear</groupId>
+ <artifactId>maven-ear-plugin-test-project-096-parent</artifactId>
+ <version>99.0</version>
+ <packaging>pom</packaging>
+ <modules>
+ <module>jar-four</module>
+ <module>jar-five</module>
+ <module>war</module>
+ <module>ear</module>
+ </modules>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>jar-sample-three-with-deps</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>jar-sample-four</artifactId>
+ <version>1.0</version>
+ <classifier>tests</classifier>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>jar-sample-five</artifactId>
+ <version>1.0</version>
+ <type>jar</type>
+ </dependency>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>war-sample-two</artifactId>
+ <version>1.0</version>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>war-sample-two</artifactId>
+ <version>1.0</version>
+ <type>pom</type>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>@mavenWarPluginVersion@</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>@mavenJarPluginVersion@</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+</project>
diff --git a/src/test/resources/projects/project-096/war/pom.xml b/src/test/resources/projects/project-096/war/pom.xml
new file mode 100644
index 0000000..33547e7
--- /dev/null
+++ b/src/test/resources/projects/project-096/war/pom.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>ear</groupId>
+ <artifactId>maven-ear-plugin-test-project-096-parent</artifactId>
+ <version>99.0</version>
+ </parent>
+ <groupId>eartest</groupId>
+ <artifactId>war-sample-two</artifactId>
+ <version>1.0</version>
+ <packaging>war</packaging>
+ <dependencies>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>jar-sample-four</artifactId>
+ <classifier>tests</classifier>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>jar-sample-five</artifactId>
+ <type>jar</type>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/src/test/resources/projects/project-096/war/src/main/webapp/WEB-INF/web.xml b/src/test/resources/projects/project-096/war/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..fbbf307
--- /dev/null
+++ b/src/test/resources/projects/project-096/war/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<web-app xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
+ version="3.0">
+</web-app>
diff --git a/src/test/resources/projects/project-097/ear/expected-META-INF/application.xml b/src/test/resources/projects/project-097/ear/expected-META-INF/application.xml
new file mode 100644
index 0000000..3382f5a
--- /dev/null
+++ b/src/test/resources/projects/project-097/ear/expected-META-INF/application.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version="6">
+ <display-name>maven-ear-plugin-test-project-097</display-name>
+ <module>
+ <web>
+ <web-uri>eartest-war-sample-three-1.0.war</web-uri>
+ <context-root>/war-sample-three</context-root>
+ </web>
+ </module>
+ <module>
+ <ejb>eartest-par-sample-one-1.0.par</ejb>
+ </module>
+</application>
diff --git a/src/test/resources/projects/project-097/ear/expected-META-INF/jboss-app.xml b/src/test/resources/projects/project-097/ear/expected-META-INF/jboss-app.xml
new file mode 100644
index 0000000..dc9962a
--- /dev/null
+++ b/src/test/resources/projects/project-097/ear/expected-META-INF/jboss-app.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<!DOCTYPE jboss-app PUBLIC
+ "-//JBoss//DTD Java EE Application 5.0//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss-app_5_0.dtd">
+<jboss-app>
+ <module>
+ <service>eartest-sar-sample-two-1.0.sar</service>
+ </module>
+ <module>
+ <har>eartest-har-sample-two-1.0.har</har>
+ </module>
+</jboss-app>
diff --git a/src/test/resources/projects/project-097/ear/pom.xml b/src/test/resources/projects/project-097/ear/pom.xml
new file mode 100644
index 0000000..090ff2e
--- /dev/null
+++ b/src/test/resources/projects/project-097/ear/pom.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>ear</groupId>
+ <artifactId>maven-ear-plugin-test-project-097-parent</artifactId>
+ <version>99.0</version>
+ </parent>
+ <artifactId>maven-ear-plugin-test-project-097</artifactId>
+ <packaging>ear</packaging>
+ <dependencies>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>war-sample-three</artifactId>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>sar-sample-two</artifactId>
+ <type>jboss-sar</type>
+ </dependency>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>har-sample-two</artifactId>
+ <type>jboss-har</type>
+ </dependency>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>par-sample-one</artifactId>
+ <type>jboss-par</type>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-ear-plugin</artifactId>
+ <version>@project.version@</version>
+ <configuration>
+ <version>6</version>
+ <sarModule>
+ <groupId>eartest</groupId>
+ <artifactId>sar-sample-two</artifactId>
+ <type>jboss-sar</type>
+ </sarModule>
+ <sarModule>
+ <groupId>eartest</groupId>
+ <artifactId>har-sample-two</artifactId>
+ <type>jboss-sar</type>
+ </sarModule>
+ <parModule>
+ <groupId>eartest</groupId>
+ <artifactId>par-sample-one</artifactId>
+ <type>jboss-par</type>
+ </parModule>
+ <jboss>
+ <version>5</version>
+ </jboss>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/src/test/resources/projects/project-097/har/pom.xml b/src/test/resources/projects/project-097/har/pom.xml
new file mode 100644
index 0000000..f42449b
--- /dev/null
+++ b/src/test/resources/projects/project-097/har/pom.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>ear</groupId>
+ <artifactId>maven-ear-plugin-test-project-097-parent</artifactId>
+ <version>99.0</version>
+ </parent>
+ <groupId>eartest</groupId>
+ <artifactId>har-sample-two</artifactId>
+ <version>1.0</version>
+ <packaging>jboss-har</packaging>
+</project>
diff --git a/src/test/resources/projects/project-097/har/src/main/resources/META-INF/jboss-service.xml b/src/test/resources/projects/project-097/har/src/main/resources/META-INF/jboss-service.xml
new file mode 100644
index 0000000..5316328
--- /dev/null
+++ b/src/test/resources/projects/project-097/har/src/main/resources/META-INF/jboss-service.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<server>
+</server>
diff --git a/src/test/resources/projects/project-097/par/pom.xml b/src/test/resources/projects/project-097/par/pom.xml
new file mode 100644
index 0000000..ac58ba1
--- /dev/null
+++ b/src/test/resources/projects/project-097/par/pom.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>ear</groupId>
+ <artifactId>maven-ear-plugin-test-project-097-parent</artifactId>
+ <version>99.0</version>
+ </parent>
+ <groupId>eartest</groupId>
+ <artifactId>par-sample-one</artifactId>
+ <version>1.0</version>
+ <packaging>jboss-par</packaging>
+</project>
diff --git a/src/test/resources/projects/project-097/par/src/main/jpdl/par-sample-one/processdefinition.xml b/src/test/resources/projects/project-097/par/src/main/jpdl/par-sample-one/processdefinition.xml
new file mode 100644
index 0000000..44d6f13
--- /dev/null
+++ b/src/test/resources/projects/project-097/par/src/main/jpdl/par-sample-one/processdefinition.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="par-basic-test">
+</process-definition>
diff --git a/src/test/resources/projects/project-097/pom.xml b/src/test/resources/projects/project-097/pom.xml
new file mode 100644
index 0000000..4b0ee79
--- /dev/null
+++ b/src/test/resources/projects/project-097/pom.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>ear</groupId>
+ <artifactId>maven-ear-plugin-test-project-097-parent</artifactId>
+ <version>99.0</version>
+ <packaging>pom</packaging>
+ <modules>
+ <module>war</module>
+ <module>sar</module>
+ <module>har</module>
+ <module>par</module>
+ <module>ear</module>
+ </modules>
+ <properties>
+ <maven.compiler.source>1.7</maven.compiler.source>
+ <maven.compiler.target>1.7</maven.compiler.target>
+ </properties>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>war-sample-three</artifactId>
+ <version>1.0</version>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>sar-sample-two</artifactId>
+ <version>1.0</version>
+ <type>jboss-sar</type>
+ </dependency>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>har-sample-two</artifactId>
+ <version>1.0</version>
+ <type>jboss-har</type>
+ </dependency>
+ <dependency>
+ <groupId>eartest</groupId>
+ <artifactId>par-sample-one</artifactId>
+ <version>1.0</version>
+ <type>jboss-par</type>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>@mavenWarPluginVersion@</version>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>jboss-packaging-maven-plugin</artifactId>
+ <version>@jbossPackagingPluginVersion@</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>jboss-packaging-maven-plugin</artifactId>
+ <extensions>true</extensions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/src/test/resources/projects/project-097/sar/pom.xml b/src/test/resources/projects/project-097/sar/pom.xml
new file mode 100644
index 0000000..32d133b
--- /dev/null
+++ b/src/test/resources/projects/project-097/sar/pom.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>ear</groupId>
+ <artifactId>maven-ear-plugin-test-project-097-parent</artifactId>
+ <version>99.0</version>
+ </parent>
+ <groupId>eartest</groupId>
+ <artifactId>sar-sample-two</artifactId>
+ <version>1.0</version>
+ <packaging>jboss-sar</packaging>
+</project>
diff --git a/src/test/resources/projects/project-097/sar/src/main/resources/META-INF/jboss-service.xml b/src/test/resources/projects/project-097/sar/src/main/resources/META-INF/jboss-service.xml
new file mode 100644
index 0000000..5316328
--- /dev/null
+++ b/src/test/resources/projects/project-097/sar/src/main/resources/META-INF/jboss-service.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<server>
+</server>
diff --git a/src/test/resources/projects/project-097/war/pom.xml b/src/test/resources/projects/project-097/war/pom.xml
new file mode 100644
index 0000000..969e296
--- /dev/null
+++ b/src/test/resources/projects/project-097/war/pom.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>ear</groupId>
+ <artifactId>maven-ear-plugin-test-project-097-parent</artifactId>
+ <version>99.0</version>
+ </parent>
+ <groupId>eartest</groupId>
+ <artifactId>war-sample-three</artifactId>
+ <version>1.0</version>
+ <packaging>war</packaging>
+</project>
diff --git a/src/test/resources/projects/project-097/war/src/main/webapp/WEB-INF/web.xml b/src/test/resources/projects/project-097/war/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..fbbf307
--- /dev/null
+++ b/src/test/resources/projects/project-097/war/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<web-app xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
+ version="3.0">
+</web-app>