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>