You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2017/12/20 09:26:05 UTC

[maven-acr-plugin] annotated tag maven-acr-plugin-1.0 created (now ee1289e)

This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a change to annotated tag maven-acr-plugin-1.0
in repository https://gitbox.apache.org/repos/asf/maven-acr-plugin.git.


      at ee1289e  (tag)
 tagging f67d0fab883e672c8dc9969ddf23f1dfed533ac8 (commit)
      by Stephane Nicoll
      on Sat Mar 26 17:02:01 2011 +0000

- Log -----------------------------------------------------------------
maven-acr-plugin-1.0
-----------------------------------------------------------------------

This annotated tag includes the following new commits:

     new 02b1143  MACR-1: Initial version of the plugin
     new f12bd8b  MACR-1: Applied Benjamin's remark. Added versions for plugins involved in the default life cycle of the plugin. Now running install and added a check that the proper extension is used in the repository (i.e. .jar)
     new 2295e3a  MACR-2: added documentation.
     new efc18c2  MACR-1, MACR-2: applying subversion properties
     new 508a67b  MACR-1: javadoc
     new becba0e  [maven-release-plugin] prepare release maven-acr-plugin-1.0
     new f67d0fa  [maven-release-plugin]  copy for tag maven-acr-plugin-1.0

The 7 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


-- 
To stop receiving notification emails like this one, please contact
['"commits@maven.apache.org" <co...@maven.apache.org>'].

[maven-acr-plugin] 02/07: MACR-1: Applied Benjamin's remark. Added versions for plugins involved in the default life cycle of the plugin. Now running install and added a check that the proper extension is used in the repository (i.e. .jar)

Posted by hb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to annotated tag maven-acr-plugin-1.0
in repository https://gitbox.apache.org/repos/asf/maven-acr-plugin.git

commit f12bd8bde53f6fca4b33632592cbc81d70373d45
Author: Stephane Nicoll <sn...@apache.org>
AuthorDate: Sat Mar 26 10:45:21 2011 +0000

    MACR-1: Applied Benjamin's remark. Added versions for plugins involved in the default life cycle of the plugin. Now running install and added a check that the proper extension is used in the repository (i.e. .jar)
    
    git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-acr-plugin@1085681 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                           |  2 +-
 src/it/it-01/verify.bsh                           |  9 +++++++
 src/main/resources/META-INF/plexus/components.xml | 32 ++++++++++++++++-------
 3 files changed, 33 insertions(+), 10 deletions(-)

diff --git a/pom.xml b/pom.xml
index fb843e7..925fc6d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -138,7 +138,7 @@ under the License.
               <settingsFile>src/it/settings.xml</settingsFile>
               <goals>
                 <goal>clean</goal>
-                <goal>package</goal>
+                <goal>install</goal>
               </goals>
             </configuration>
             <executions>
diff --git a/src/it/it-01/verify.bsh b/src/it/it-01/verify.bsh
index a4796f0..755114a 100644
--- a/src/it/it-01/verify.bsh
+++ b/src/it/it-01/verify.bsh
@@ -30,6 +30,15 @@ try
     }
 
     jar.close();
+
+    // Make sure that the jar has been added with a .jar extension
+    File localRepo = new File( basedir.getParentFile().getParentFile(), "local-repo" );
+    File repoFile = new File(localRepo,
+        "/org/apache/maven/plugin/maven-acr-plugin-it01/1.0/maven-acr-plugin-it01-1.0.jar");
+    if (!repoFile.exists()) {
+        System.out.println("Jar file for application client not found in repo [" + repoFile.getAbsolutePath() + "]");
+        return false;
+    }
 }
 catch( Throwable t )
 {
diff --git a/src/main/resources/META-INF/plexus/components.xml b/src/main/resources/META-INF/plexus/components.xml
index 7a6bf0f..17d1386 100644
--- a/src/main/resources/META-INF/plexus/components.xml
+++ b/src/main/resources/META-INF/plexus/components.xml
@@ -27,7 +27,6 @@
       <configuration>
         <type>app-client</type>
         <extension>jar</extension>
-        <packaging>jar</packaging>
         <language>java</language>
         <addedToClasspath>true</addedToClasspath>
       </configuration>
@@ -41,15 +40,30 @@
           <lifecycle>
             <id>default</id>
             <phases>
-              <process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
-              <compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
-              <process-test-resources>org.apache.maven.plugins:maven-resources-plugin:testResources
+              <process-resources>
+                org.apache.maven.plugins:maven-resources-plugin:2.4.3:resources
+              </process-resources>
+              <compile>
+                org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile
+              </compile>
+              <process-test-resources>
+                org.apache.maven.plugins:maven-resources-plugin:2.4.3:testResources
               </process-test-resources>
-              <test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
-              <test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
-              <package>org.apache.maven.plugins:maven-acr-plugin:acr</package>
-              <install>org.apache.maven.plugins:maven-install-plugin:install</install>
-              <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
+              <test-compile>
+                org.apache.maven.plugins:maven-compiler-plugin:2.3.2:testCompile
+              </test-compile>
+              <test>
+                org.apache.maven.plugins:maven-surefire-plugin:2.7.2:test
+              </test>
+              <package>
+                org.apache.maven.plugins:maven-acr-plugin:acr
+              </package>
+              <install>
+                org.apache.maven.plugins:maven-install-plugin:2.3.1:install
+              </install>
+              <deploy>
+                org.apache.maven.plugins:maven-deploy-plugin:2.5:deploy
+              </deploy>
             </phases>
           </lifecycle>
         </lifecycles>

-- 
To stop receiving notification emails like this one, please contact
"commits@maven.apache.org" <co...@maven.apache.org>.

[maven-acr-plugin] 06/07: [maven-release-plugin] prepare release maven-acr-plugin-1.0

Posted by hb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to annotated tag maven-acr-plugin-1.0
in repository https://gitbox.apache.org/repos/asf/maven-acr-plugin.git

commit becba0e332c1eaacae5c76aaf43cd164e255faab
Author: Stephane Nicoll <sn...@apache.org>
AuthorDate: Sat Mar 26 17:01:11 2011 +0000

    [maven-release-plugin] prepare release maven-acr-plugin-1.0
    
    git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-acr-plugin@1085767 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/pom.xml b/pom.xml
index 925fc6d..897a7e6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,8 +19,7 @@ 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/xsd/maven-4.0.0.xsd">
+<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/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
@@ -30,7 +29,7 @@ under the License.
   </parent>
 
   <artifactId>maven-acr-plugin</artifactId>
-  <version>1.0-SNAPSHOT</version>
+  <version>1.0</version>
   <packaging>maven-plugin</packaging>
 
   <name>Maven ACR Plugin</name>
@@ -41,10 +40,10 @@ under the License.
   </prerequisites>
 
   <scm>
-    <connection>scm:svn:http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-acr-plugin/</connection>
-    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-acr-plugin/
+    <connection>scm:svn:http://svn.apache.org/repos/asf/maven/plugins/tags/maven-acr-plugin-1.0</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/plugins/tags/maven-acr-plugin-1.0
     </developerConnection>
-    <url>http://svn.apache.org/viewvc/maven/plugins/trunk/maven-acr-plugin/</url>
+    <url>http://svn.apache.org/viewvc/maven/plugins/tags/maven-acr-plugin-1.0</url>
   </scm>
   <issueManagement>
     <system>JIRA</system>

-- 
To stop receiving notification emails like this one, please contact
"commits@maven.apache.org" <co...@maven.apache.org>.

[maven-acr-plugin] 04/07: MACR-1, MACR-2: applying subversion properties

Posted by hb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to annotated tag maven-acr-plugin-1.0
in repository https://gitbox.apache.org/repos/asf/maven-acr-plugin.git

commit efc18c2fc36dea41b1ff39fcbe25daa6d42cdd44
Author: Stephane Nicoll <sn...@apache.org>
AuthorDate: Sat Mar 26 16:42:46 2011 +0000

    MACR-1, MACR-2: applying subversion properties
    
    git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-acr-plugin@1085763 13f79535-47bb-0310-9956-ffa450edef68

-- 
To stop receiving notification emails like this one, please contact
"commits@maven.apache.org" <co...@maven.apache.org>.

[maven-acr-plugin] 05/07: MACR-1: javadoc

Posted by hb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to annotated tag maven-acr-plugin-1.0
in repository https://gitbox.apache.org/repos/asf/maven-acr-plugin.git

commit 508a67b3b8b0937cdc8cecdb0200df638f5c1af7
Author: Stephane Nicoll <sn...@apache.org>
AuthorDate: Sat Mar 26 16:56:01 2011 +0000

    MACR-1: javadoc
    
    git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-acr-plugin@1085765 13f79535-47bb-0310-9956-ffa450edef68
---
 src/main/java/org/apache/maven/plugin/acr/AcrMojo.java | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/apache/maven/plugin/acr/AcrMojo.java b/src/main/java/org/apache/maven/plugin/acr/AcrMojo.java
index ab6fcba..3d1a0de 100644
--- a/src/main/java/org/apache/maven/plugin/acr/AcrMojo.java
+++ b/src/main/java/org/apache/maven/plugin/acr/AcrMojo.java
@@ -40,7 +40,7 @@ import java.io.IOException;
 import java.util.List;
 
 /**
- * Build a JEE Application Client jar file from the current project.
+ * Build a JavaEE Application Client jar file from the current project.
  *
  * @author <a href="pablo@anahata-it.com">Pablo Rodriguez</a>
  * @author <a href="snicoll@apache.org">Stephane Nicoll</a>
@@ -136,7 +136,7 @@ public class AcrMojo
      * An expression preceded with this String won't be interpolated.
      * \${foo} will be replaced with ${foo}.
      *
-     * @parameter expression="${car.escapeString}"
+     * @parameter expression="${acr.escapeString}"
      */
     protected String escapeString;
 
@@ -168,13 +168,14 @@ public class AcrMojo
     private MavenSession session;
 
     /**
-     * Generates the application client jar file
+     * Generates the application client jar file.
      *
-     * @todo Add license files in META-INF directory.
      */
     public void execute()
         throws MojoExecutionException
     {
+        //todo: Add license files in META-INF directory
+
         if ( getLog().isInfoEnabled() )
         {
             getLog().info( "Building JavaEE Application client: " + jarName );

-- 
To stop receiving notification emails like this one, please contact
"commits@maven.apache.org" <co...@maven.apache.org>.

[maven-acr-plugin] 07/07: [maven-release-plugin] copy for tag maven-acr-plugin-1.0

Posted by hb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to annotated tag maven-acr-plugin-1.0
in repository https://gitbox.apache.org/repos/asf/maven-acr-plugin.git

commit f67d0fab883e672c8dc9969ddf23f1dfed533ac8
Author: Stephane Nicoll <sn...@apache.org>
AuthorDate: Sat Mar 26 17:02:01 2011 +0000

    [maven-release-plugin]  copy for tag maven-acr-plugin-1.0
    
    git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/tags/maven-acr-plugin-1.0@1085768 13f79535-47bb-0310-9956-ffa450edef68

-- 
To stop receiving notification emails like this one, please contact
"commits@maven.apache.org" <co...@maven.apache.org>.

[maven-acr-plugin] 01/07: MACR-1: Initial version of the plugin

Posted by hb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to annotated tag maven-acr-plugin-1.0
in repository https://gitbox.apache.org/repos/asf/maven-acr-plugin.git

commit 02b11431f4245b2af76a0e62959ac546e44e6f66
Author: Stephane Nicoll <sn...@apache.org>
AuthorDate: Mon Mar 21 06:10:23 2011 +0000

    MACR-1: Initial version of the plugin
    
    git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-acr-plugin@1083681 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                            | 158 +++++++++++
 src/it/it-01/pom.xml                               |  47 ++++
 .../apache/maven/plugin/acr/it/it01/SampleApp.java |  12 +
 .../main/resources/META-INF/application-client.xml |  15 ++
 src/it/it-01/verify.bsh                            |  40 +++
 src/it/it-02/app-client/pom.xml                    |  40 +++
 .../apache/maven/plugin/acr/it/it02/SampleApp.java |  12 +
 .../main/resources/META-INF/application-client.xml |  15 ++
 src/it/it-02/bundle/pom.xml                        |  49 ++++
 .../maven/plugin/acr/it/it02/DependencyTest.java   |  20 ++
 src/it/it-02/pom.xml                               |  52 ++++
 src/it/it-02/verify.bsh                            |  61 +++++
 src/it/it-03/pom.xml                               |  47 ++++
 .../main/resources/META-INF/application-client.xml |  15 ++
 src/it/it-03/verify.bsh                            |  37 +++
 src/it/it-04/pom.xml                               |  51 ++++
 .../main/resources/META-INF/application-client.xml |  15 ++
 src/it/it-04/verify.bsh                            |  53 ++++
 src/it/settings.xml                                |  55 ++++
 .../java/org/apache/maven/plugin/acr/AcrMojo.java  | 295 +++++++++++++++++++++
 src/main/resources/META-INF/plexus/components.xml  |  59 +++++
 21 files changed, 1148 insertions(+)

diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..fb843e7
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,158 @@
+<?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/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.plugins</groupId>
+    <artifactId>maven-plugins</artifactId>
+    <version>19</version>
+  </parent>
+
+  <artifactId>maven-acr-plugin</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Maven ACR Plugin</name>
+  <description>Generates a J2EE Application Client file.</description>
+
+  <prerequisites>
+    <maven>2.0.6</maven>
+  </prerequisites>
+
+  <scm>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-acr-plugin/</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-acr-plugin/
+    </developerConnection>
+    <url>http://svn.apache.org/viewvc/maven/plugins/trunk/maven-acr-plugin/</url>
+  </scm>
+  <issueManagement>
+    <system>JIRA</system>
+    <url>http://jira.codehaus.org/browse/MACR</url>
+  </issueManagement>
+
+  <properties>
+    <mavenVersion>2.2.1</mavenVersion>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>${mavenVersion}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-project</artifactId>
+      <version>${mavenVersion}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact</artifactId>
+      <version>${mavenVersion}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-archiver</artifactId>
+      <version>2.4.1</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.codehaus.plexus</groupId>
+          <artifactId>plexus-component-api</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.shared</groupId>
+      <artifactId>maven-filtering</artifactId>
+      <version>1.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-interpolation</artifactId>
+      <version>1.12</version>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+      <version>2.0.5</version>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-archiver</artifactId>
+      <version>1.0</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.codehaus.plexus</groupId>
+          <artifactId>plexus-component-api</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.shared</groupId>
+      <artifactId>maven-plugin-testing-harness</artifactId>
+      <version>1.1</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <profiles>
+    <profile>
+      <id>run-its</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-invoker-plugin</artifactId>
+            <version>1.5</version>
+            <configuration>
+              <debug>true</debug>
+              <projectsDirectory>src/it</projectsDirectory>
+              <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
+              <pomIncludes>
+                <pomInclude>*/pom.xml</pomInclude>
+              </pomIncludes>
+              <preBuildHookScript>setup</preBuildHookScript>
+              <postBuildHookScript>verify</postBuildHookScript>
+              <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
+              <settingsFile>src/it/settings.xml</settingsFile>
+              <goals>
+                <goal>clean</goal>
+                <goal>package</goal>
+              </goals>
+            </configuration>
+            <executions>
+              <execution>
+                <id>integration-test</id>
+                <goals>
+                  <goal>install</goal>
+                  <goal>run</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+</project>
diff --git a/src/it/it-01/pom.xml b/src/it/it-01/pom.xml
new file mode 100644
index 0000000..5b5c798
--- /dev/null
+++ b/src/it/it-01/pom.xml
@@ -0,0 +1,47 @@
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.plugin</groupId>
+  <artifactId>maven-acr-plugin-it01</artifactId>
+  <version>1.0</version>
+  <packaging>app-client</packaging>
+
+  <name>Maven ACR Plugin :: Integration test 01</name>
+  <description>Test a simple generation</description>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-acr-plugin</artifactId>
+        <version>@project.version@</version>
+        <extensions>true</extensions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/src/it/it-01/src/main/java/org/apache/maven/plugin/acr/it/it01/SampleApp.java b/src/it/it-01/src/main/java/org/apache/maven/plugin/acr/it/it01/SampleApp.java
new file mode 100644
index 0000000..c93d0ca
--- /dev/null
+++ b/src/it/it-01/src/main/java/org/apache/maven/plugin/acr/it/it01/SampleApp.java
@@ -0,0 +1,12 @@
+package org.apache.maven.plugin.acr.it.it01;
+
+
+public class SampleApp
+{
+
+    public String sayHello( String t )
+    {
+        return "Hello " + t;
+    }
+
+}
\ No newline at end of file
diff --git a/src/it/it-01/src/main/resources/META-INF/application-client.xml b/src/it/it-01/src/main/resources/META-INF/application-client.xml
new file mode 100644
index 0000000..afc19c7
--- /dev/null
+++ b/src/it/it-01/src/main/resources/META-INF/application-client.xml
@@ -0,0 +1,15 @@
+<application-client xmlns="http://java.sun.com/xml/ns/j2ee"
+                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+                    http://java.sun.com/xml/ns/j2ee/application-client_1_4.xsd"
+                    version="1.4">
+
+  <display-name>A sample app client</display-name>
+
+  <env-entry>
+    <env-entry-name>myKey</env-entry-name>
+    <env-entry-type>java.lang.String</env-entry-type>
+    <env-entry-value>myValue</env-entry-value>
+  </env-entry>
+
+</application-client>
\ No newline at end of file
diff --git a/src/it/it-01/verify.bsh b/src/it/it-01/verify.bsh
new file mode 100644
index 0000000..a4796f0
--- /dev/null
+++ b/src/it/it-01/verify.bsh
@@ -0,0 +1,40 @@
+import java.io.*;
+import java.util.*;
+import java.util.jar.*;
+import java.util.regex.*;
+
+try
+{
+    File jarFile = new File( basedir, "target/maven-acr-plugin-it01-1.0.jar" );
+    System.out.println( "Checking for existence of " + jarFile );
+    if ( !jarFile.isFile() )
+    {
+        System.out.println( "FAILURE!" );
+        return false;
+    }
+
+    JarFile jar = new JarFile( jarFile );
+
+    String[] includedEntries = {
+        "META-INF/application-client.xml",
+        "org/apache/maven/plugin/acr/it/it01/SampleApp.class",
+    };
+    for ( String included : includedEntries )
+    {
+        System.out.println( "Checking for existence of " + included );
+        if ( jar.getEntry( included ) == null )
+        {
+            System.out.println( "FAILURE!" );
+            return false;
+        }
+    }
+
+    jar.close();
+}
+catch( Throwable t )
+{
+    t.printStackTrace();
+    return false;
+}
+
+return true;
diff --git a/src/it/it-02/app-client/pom.xml b/src/it/it-02/app-client/pom.xml
new file mode 100644
index 0000000..8ffd515
--- /dev/null
+++ b/src/it/it-02/app-client/pom.xml
@@ -0,0 +1,40 @@
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.maven.plugin</groupId>
+    <artifactId>maven-acr-plugin-it02</artifactId>
+    <version>1.0</version>
+    <relativePath>../pom.xml</relativePath>
+  </parent>
+  <artifactId>maven-acr-plugin-it02-app-client</artifactId>
+  <packaging>app-client</packaging>
+
+  <name>Maven ACR Plugin :: Integration test 02 App client</name>
+  <description>Generates a simple application client to be used as a dependency</description>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+</project>
diff --git a/src/it/it-02/app-client/src/main/java/org/apache/maven/plugin/acr/it/it02/SampleApp.java b/src/it/it-02/app-client/src/main/java/org/apache/maven/plugin/acr/it/it02/SampleApp.java
new file mode 100644
index 0000000..3a6b0dc
--- /dev/null
+++ b/src/it/it-02/app-client/src/main/java/org/apache/maven/plugin/acr/it/it02/SampleApp.java
@@ -0,0 +1,12 @@
+package org.apache.maven.plugin.acr.it.it02;
+
+
+public class SampleApp
+{
+
+    public String sayHello( String t )
+    {
+        return "Hello " + t;
+    }
+
+}
\ No newline at end of file
diff --git a/src/it/it-02/app-client/src/main/resources/META-INF/application-client.xml b/src/it/it-02/app-client/src/main/resources/META-INF/application-client.xml
new file mode 100644
index 0000000..afc19c7
--- /dev/null
+++ b/src/it/it-02/app-client/src/main/resources/META-INF/application-client.xml
@@ -0,0 +1,15 @@
+<application-client xmlns="http://java.sun.com/xml/ns/j2ee"
+                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+                    http://java.sun.com/xml/ns/j2ee/application-client_1_4.xsd"
+                    version="1.4">
+
+  <display-name>A sample app client</display-name>
+
+  <env-entry>
+    <env-entry-name>myKey</env-entry-name>
+    <env-entry-type>java.lang.String</env-entry-type>
+    <env-entry-value>myValue</env-entry-value>
+  </env-entry>
+
+</application-client>
\ No newline at end of file
diff --git a/src/it/it-02/bundle/pom.xml b/src/it/it-02/bundle/pom.xml
new file mode 100644
index 0000000..fe572da
--- /dev/null
+++ b/src/it/it-02/bundle/pom.xml
@@ -0,0 +1,49 @@
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.maven.plugin</groupId>
+    <artifactId>maven-acr-plugin-it02</artifactId>
+    <version>1.0</version>
+    <relativePath>../pom.xml</relativePath>
+  </parent>
+  <artifactId>maven-acr-plugin-it02-bundle</artifactId>
+  <packaging>app-client</packaging>
+
+  <name>Maven ACR Plugin :: Integration test 02 Bundle</name>
+  <description>Generates a simple application client to be used as a dependency</description>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.plugin</groupId>
+      <artifactId>maven-acr-plugin-it02-app-client</artifactId>
+      <version>1.0</version>
+      <type>app-client</type>
+    </dependency>
+  </dependencies>
+
+</project>
diff --git a/src/it/it-02/bundle/src/main/java/org/apache/maven/plugin/acr/it/it02/DependencyTest.java b/src/it/it-02/bundle/src/main/java/org/apache/maven/plugin/acr/it/it02/DependencyTest.java
new file mode 100644
index 0000000..1ab83b2
--- /dev/null
+++ b/src/it/it-02/bundle/src/main/java/org/apache/maven/plugin/acr/it/it02/DependencyTest.java
@@ -0,0 +1,20 @@
+package org.apache.maven.plugin.acr.it.it02;
+
+
+public class DependencyTest
+{
+
+    private final SampleApp sampleApp;
+
+    public DependencyTest( SampleApp sampleApp )
+    {
+        this.sampleApp = sampleApp;
+    }
+
+
+    public String doIt( String t )
+    {
+        return sampleApp.sayHello( t );
+    }
+
+}
\ No newline at end of file
diff --git a/src/it/it-02/pom.xml b/src/it/it-02/pom.xml
new file mode 100644
index 0000000..8f6e8d6
--- /dev/null
+++ b/src/it/it-02/pom.xml
@@ -0,0 +1,52 @@
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.plugin</groupId>
+  <artifactId>maven-acr-plugin-it02</artifactId>
+  <version>1.0</version>
+  <packaging>pom</packaging>
+
+  <name>Maven ACR Plugin :: Integration test 02</name>
+  <description>Test that dependencies work</description>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+  <modules>
+    <module>app-client</module>
+    <module>bundle</module>
+  </modules>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-acr-plugin</artifactId>
+        <version>@project.version@</version>
+        <extensions>true</extensions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/src/it/it-02/verify.bsh b/src/it/it-02/verify.bsh
new file mode 100644
index 0000000..8eb88e8
--- /dev/null
+++ b/src/it/it-02/verify.bsh
@@ -0,0 +1,61 @@
+import java.io.*;
+import java.util.*;
+import java.util.jar.*;
+import java.util.regex.*;
+
+try
+{
+    File jarFile = new File( basedir, "app-client/target/maven-acr-plugin-it02-app-client-1.0.jar" );
+    System.out.println( "Checking for existence of " + jarFile );
+    if ( !jarFile.isFile() )
+    {
+        System.out.println( "FAILURE!" );
+        return false;
+    }
+
+    JarFile jar = new JarFile( jarFile );
+
+    String[] includedEntries = {
+        "META-INF/application-client.xml",
+        "org/apache/maven/plugin/acr/it/it02/SampleApp.class",
+    };
+    for ( String included : includedEntries )
+    {
+        System.out.println( "Checking for existence of " + included );
+        if ( jar.getEntry( included ) == null )
+        {
+            System.out.println( "FAILURE!" );
+            return false;
+        }
+    }
+
+    jar.close();
+
+    File bundleJarFile = new File( basedir, "bundle/target/maven-acr-plugin-it02-bundle-1.0.jar" );
+    JarFile bundle = new JarFile( bundleJarFile );
+
+
+    String[] includedBundleEntries = {
+        "org/apache/maven/plugin/acr/it/it02/DependencyTest.class",
+    };
+    for ( String included : includedBundleEntries )
+    {
+        System.out.println( "Checking for existence of " + included );
+        if ( bundle.getEntry( included ) == null )
+        {
+            System.out.println( "FAILURE!" );
+            return false;
+        }
+    }
+
+    bundle.close();
+
+
+}
+catch( Throwable t )
+{
+    t.printStackTrace();
+    return false;
+}
+
+return true;
diff --git a/src/it/it-03/pom.xml b/src/it/it-03/pom.xml
new file mode 100644
index 0000000..1337ffb
--- /dev/null
+++ b/src/it/it-03/pom.xml
@@ -0,0 +1,47 @@
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.plugin</groupId>
+  <artifactId>maven-acr-plugin-it03</artifactId>
+  <version>1.0</version>
+  <packaging>app-client</packaging>
+
+  <name>Maven ACR Plugin :: Integration test 03</name>
+  <description>Test custom excludes does not add the application-client.xml twice in the archive</description>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-acr-plugin</artifactId>
+        <version>@project.version@</version>
+        <extensions>true</extensions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/src/it/it-03/src/main/resources/META-INF/application-client.xml b/src/it/it-03/src/main/resources/META-INF/application-client.xml
new file mode 100644
index 0000000..afc19c7
--- /dev/null
+++ b/src/it/it-03/src/main/resources/META-INF/application-client.xml
@@ -0,0 +1,15 @@
+<application-client xmlns="http://java.sun.com/xml/ns/j2ee"
+                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+                    http://java.sun.com/xml/ns/j2ee/application-client_1_4.xsd"
+                    version="1.4">
+
+  <display-name>A sample app client</display-name>
+
+  <env-entry>
+    <env-entry-name>myKey</env-entry-name>
+    <env-entry-type>java.lang.String</env-entry-type>
+    <env-entry-value>myValue</env-entry-value>
+  </env-entry>
+
+</application-client>
\ No newline at end of file
diff --git a/src/it/it-03/verify.bsh b/src/it/it-03/verify.bsh
new file mode 100644
index 0000000..6b4ff1a
--- /dev/null
+++ b/src/it/it-03/verify.bsh
@@ -0,0 +1,37 @@
+import java.io.*;
+import java.util.*;
+import java.util.zip.*;
+import java.util.regex.*;
+
+File jarFile = new File( basedir, "target/maven-acr-plugin-it03-1.0.jar" );
+System.out.println( "Checking for existence of " + jarFile );
+if ( !jarFile.isFile() )
+{
+    throw new FileNotFoundException( "Missing " + jarFile );
+}
+
+ZipInputStream zis = new ZipInputStream( new FileInputStream( jarFile ) );
+
+int count = 0;
+
+while (true)
+{
+    ZipEntry entry = zis.getNextEntry();
+    if ( entry == null )
+    {
+        break;
+    }
+    if ( entry.getName().equals( "META-INF/application-client.xml" ) )
+    {
+        count++;
+    }
+}
+
+zis.close();
+
+if ( count != 1 )
+{
+    throw new IllegalStateException( "Wrong number of application-client.xml's in archive: " + count );
+}
+
+return true;
diff --git a/src/it/it-04/pom.xml b/src/it/it-04/pom.xml
new file mode 100644
index 0000000..2f092e9
--- /dev/null
+++ b/src/it/it-04/pom.xml
@@ -0,0 +1,51 @@
+<?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>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.plugin</groupId>
+  <artifactId>maven-acr-plugin-it04</artifactId>
+  <version>1.0</version>
+  <packaging>app-client</packaging>
+
+  <name>Maven ACR Plugin :: Integration test 04</name>
+  <description>Test filtering</description>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <it04.key.value>it04-success</it04.key.value>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-acr-plugin</artifactId>
+        <version>@project.version@</version>
+        <extensions>true</extensions>
+        <configuration>
+          <filterDeploymentDescriptor>true</filterDeploymentDescriptor>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/src/it/it-04/src/main/resources/META-INF/application-client.xml b/src/it/it-04/src/main/resources/META-INF/application-client.xml
new file mode 100644
index 0000000..d512d09
--- /dev/null
+++ b/src/it/it-04/src/main/resources/META-INF/application-client.xml
@@ -0,0 +1,15 @@
+<application-client xmlns="http://java.sun.com/xml/ns/j2ee"
+                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+                    http://java.sun.com/xml/ns/j2ee/application-client_1_4.xsd"
+                    version="1.4">
+
+  <display-name>A sample app client</display-name>
+
+  <env-entry>
+    <env-entry-name>myKey</env-entry-name>
+    <env-entry-type>java.lang.String</env-entry-type>
+    <env-entry-value>${it04.key.value}</env-entry-value>
+  </env-entry>
+
+</application-client>
\ No newline at end of file
diff --git a/src/it/it-04/verify.bsh b/src/it/it-04/verify.bsh
new file mode 100644
index 0000000..c52cbba
--- /dev/null
+++ b/src/it/it-04/verify.bsh
@@ -0,0 +1,53 @@
+import java.io.*;
+import java.util.*;
+import java.util.jar.*;
+import java.util.regex.*;
+import java.util.zip.ZipEntry;
+import org.codehaus.plexus.util.IOUtil;
+
+try
+{
+    File file = new File( basedir, "target/maven-acr-plugin-it04-1.0.jar" );
+    System.out.println( "Checking for existence of " + file );
+    if ( !file.isFile() )
+    {
+        System.out.println( "FAILURE! Missing JAR file" );
+        return false;
+    }
+
+    JarFile jarFile = new JarFile( file );
+
+    ZipEntry zipEntry = jarFile.getEntry( "META-INF/application-client.xml" );
+    if ( zipEntry == null )
+    {
+        System.out.println( "FAILURE! Missing META-INF/application-client.xml in the JAR file" );
+        return false;
+    }
+    else
+    {
+        InputStream is = jarFile.getInputStream( zipEntry );
+        String contents = IOUtil.toString ( is, "UTF-8" );
+        int index = contents.indexOf( "it04.key.value" );
+        if ( index >= 0 )
+        {
+            System.out.println( "FAILURE! The key 'it04.key.value' has not been replaced during filtering" );
+            return false;
+        }
+        index = contents.indexOf( "it04-success" );
+        if ( index < 0 )
+        {
+            System.out.println( "FAILURE! The value 'it04-success' has not been injected during filtering" );
+            return false;
+        }
+        is.close();
+    }
+
+    jarFile.close();
+}
+catch( Throwable t )
+{
+    t.printStackTrace();
+    return false;
+}
+
+return true;
diff --git a/src/it/settings.xml b/src/it/settings.xml
new file mode 100644
index 0000000..c8f77f0
--- /dev/null
+++ b/src/it/settings.xml
@@ -0,0 +1,55 @@
+<?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.
+-->
+
+<settings>
+  <profiles>
+    <profile>
+      <id>it-repo</id>
+      <activation>
+        <activeByDefault>true</activeByDefault>
+      </activation>
+      <repositories>
+        <repository>
+          <id>local.central</id>
+          <url>@localRepositoryUrl@</url>
+          <releases>
+            <enabled>true</enabled>
+          </releases>
+          <snapshots>
+            <enabled>true</enabled>
+          </snapshots>
+        </repository>
+      </repositories>
+      <pluginRepositories>
+        <pluginRepository>
+          <id>local.central</id>
+          <url>@localRepositoryUrl@</url>
+          <releases>
+            <enabled>true</enabled>
+          </releases>
+          <snapshots>
+            <enabled>true</enabled>
+          </snapshots>
+        </pluginRepository>
+      </pluginRepositories>
+    </profile>
+  </profiles>
+</settings>
diff --git a/src/main/java/org/apache/maven/plugin/acr/AcrMojo.java b/src/main/java/org/apache/maven/plugin/acr/AcrMojo.java
new file mode 100644
index 0000000..ab6fcba
--- /dev/null
+++ b/src/main/java/org/apache/maven/plugin/acr/AcrMojo.java
@@ -0,0 +1,295 @@
+package org.apache.maven.plugin.acr;
+
+/*
+ * 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.archiver.MavenArchiveConfiguration;
+import org.apache.maven.archiver.MavenArchiver;
+import org.apache.maven.artifact.DependencyResolutionRequiredException;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.shared.filtering.MavenFileFilter;
+import org.apache.maven.shared.filtering.MavenFilteringException;
+import org.apache.maven.shared.filtering.MavenResourcesExecution;
+import org.codehaus.plexus.archiver.ArchiverException;
+import org.codehaus.plexus.archiver.jar.JarArchiver;
+import org.codehaus.plexus.archiver.jar.ManifestException;
+import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.xml.XmlStreamReader;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * Build a JEE Application Client jar file from the current project.
+ *
+ * @author <a href="pablo@anahata-it.com">Pablo Rodriguez</a>
+ * @author <a href="snicoll@apache.org">Stephane Nicoll</a>
+ * @version $Id:
+ * @goal acr
+ * @requiresDependencyResolution runtime
+ * @threadSafe
+ * @phase package
+ */
+public class AcrMojo
+    extends AbstractMojo
+{
+
+    private static final String APP_CLIENT_XML = "META-INF/application-client.xml";
+
+    // TODO: will null work instead?
+    private static final String[] DEFAULT_INCLUDES = new String[]{ "**/**" };
+
+    private static final String[] DEFAULT_EXCLUDES = new String[]{ APP_CLIENT_XML };
+
+    private static final String[] EMPTY_STRING_ARRAY = new String[0];
+
+    /**
+     * The directory for the generated jar.
+     *
+     * @parameter default-value="${project.build.directory}"
+     * @required
+     * @readonly
+     */
+    private File basedir;
+
+    /**
+     * Directory that resources are copied to during the build.
+     *
+     * @parameter default-value="${project.build.outputDirectory}" expression="${outputDirectory}"
+     */
+    private File outputDirectory;
+
+    /**
+     * The name of the Application client JAR file to generate.
+     *
+     * @parameter default-value="${project.build.finalName}" expression="${jarName}"
+     */
+    private String jarName;
+
+    /**
+     * The files and directories to exclude from the main Application Client jar. Usage:
+     * <p/>
+     * <pre>
+     * &lt;excludes&gt;
+     *   &lt;exclude&gt;**&#47;*DevOnly.class&lt;&#47;exclude&gt;
+     * &lt;&#47;excludes&gt;
+     * </pre>
+     * <br/>Default exclusions: META-INF&#47;application-client.xml,
+     *
+     * @parameter
+     */
+    private List excludes;
+
+    /**
+     * The Maven project.
+     *
+     * @parameter default-value="${project}"
+     * @required
+     * @readonly
+     */
+    private MavenProject project;
+
+    /**
+     * The Jar archiver.
+     *
+     * @component role="org.codehaus.plexus.archiver.Archiver" roleHint="jar"
+     */
+    private JarArchiver jarArchiver;
+
+    /**
+     * The archive configuration to use.
+     * See <a href="http://maven.apache.org/shared/maven-archiver/index.html">Maven Archiver Reference</a>.
+     *
+     * @parameter
+     */
+    private MavenArchiveConfiguration archive = new MavenArchiveConfiguration();
+
+    /**
+     * To escape interpolated value with windows path.
+     * c:\foo\bar will be replaced with c:\\foo\\bar.
+     *
+     * @parameter default-value="false" expression="${acr.escapeBackslashesInFilePath}"
+     */
+    private boolean escapeBackslashesInFilePath;
+
+    /**
+     * An expression preceded with this String won't be interpolated.
+     * \${foo} will be replaced with ${foo}.
+     *
+     * @parameter expression="${car.escapeString}"
+     */
+    protected String escapeString;
+
+    /**
+     * To filter the deployment descriptor.
+     *
+     * @parameter default-value="false" expression="${acr.filterDeploymentDescriptor}"
+     */
+    private boolean filterDeploymentDescriptor;
+
+    /**
+     * Filters (properties files) to include during the interpolation of the deployment descriptor.
+     *
+     * @parameter
+     */
+    private List filters;
+
+    /**
+     * @component role="org.apache.maven.shared.filtering.MavenFileFilter" role-hint="default"
+     * @required
+     */
+    private MavenFileFilter mavenFileFilter;
+
+    /**
+     * @parameter expression="${session}"
+     * @readonly
+     * @required
+     */
+    private MavenSession session;
+
+    /**
+     * Generates the application client jar file
+     *
+     * @todo Add license files in META-INF directory.
+     */
+    public void execute()
+        throws MojoExecutionException
+    {
+        if ( getLog().isInfoEnabled() )
+        {
+            getLog().info( "Building JavaEE Application client: " + jarName );
+        }
+
+        File jarFile = getAppClientJarFile( basedir, jarName );
+
+        MavenArchiver archiver = new MavenArchiver();
+
+        archiver.setArchiver( jarArchiver );
+
+        archiver.setOutputFile( jarFile );
+
+        File deploymentDescriptor = new File( outputDirectory, APP_CLIENT_XML );
+        try
+        {
+            String[] mainJarExcludes = DEFAULT_EXCLUDES;
+
+            if ( excludes != null && !excludes.isEmpty() )
+            {
+                excludes.add( APP_CLIENT_XML );
+                mainJarExcludes = (String[]) excludes.toArray( EMPTY_STRING_ARRAY );
+            }
+
+            if ( !outputDirectory.exists() )
+            {
+                getLog().info(
+                    "JAR will only contain the META-INF/application-client.xml as no content was marked for inclusion" );
+            }
+            else
+            {
+                archiver.getArchiver().addDirectory( outputDirectory, DEFAULT_INCLUDES, mainJarExcludes );
+            }
+
+            if ( deploymentDescriptor.exists() )
+            {
+                if ( filterDeploymentDescriptor )
+                {
+                    getLog().debug( "Filtering deployment descriptor." );
+                    MavenResourcesExecution mavenResourcesExecution = new MavenResourcesExecution();
+                    mavenResourcesExecution.setEscapeString( escapeString );
+                    List filterWrappers =
+                        mavenFileFilter.getDefaultFilterWrappers( project, filters, escapeBackslashesInFilePath,
+                                                                  this.session, mavenResourcesExecution );
+
+                    // Create a temporary file that we can copy-and-filter
+                    File unfilteredDeploymentDescriptor = new File( outputDirectory, APP_CLIENT_XML + ".unfiltered" );
+                    FileUtils.copyFile( deploymentDescriptor, unfilteredDeploymentDescriptor );
+                    mavenFileFilter.copyFile( unfilteredDeploymentDescriptor, deploymentDescriptor, true,
+                                              filterWrappers, getEncoding( unfilteredDeploymentDescriptor ) );
+                    // Remove the temporary file
+                    FileUtils.forceDelete( unfilteredDeploymentDescriptor );
+                }
+                archiver.getArchiver().addFile( deploymentDescriptor, APP_CLIENT_XML );
+            }
+
+            // create archive
+            archiver.createArchive( project, archive );
+        }
+        catch ( ArchiverException e )
+        {
+            throw new MojoExecutionException(
+                "There was a problem creating the JavaEE Application Client  archive: " + e.getMessage(), e );
+        }
+        catch ( ManifestException e )
+        {
+            throw new MojoExecutionException(
+                "There was a problem reading / creating the manifest for the JavaEE Application Client  archive: " +
+                    e.getMessage(), e );
+        }
+        catch ( IOException e )
+        {
+            throw new MojoExecutionException(
+                "There was a I/O problem creating the JavaEE Application Client archive: " + e.getMessage(), e );
+        }
+        catch ( DependencyResolutionRequiredException e )
+        {
+            throw new MojoExecutionException(
+                "There was a problem resolving dependencies while creating the JavaEE Application Client archive: " +
+                    e.getMessage(), e );
+        }
+        catch ( MavenFilteringException e )
+        {
+            throw new MojoExecutionException(
+                "There was a problem filtering the deployment descriptor: " + e.getMessage(), e );
+        }
+
+        project.getArtifact().setFile( jarFile );
+
+
+    }
+
+    /**
+     * Returns the App-client Jar file to generate.
+     *
+     * @param basedir   the output directory
+     * @param finalName the name of the ear file
+     * @return the Application client JAR file to generate
+     */
+    private static File getAppClientJarFile( File basedir, String finalName )
+    {
+        return new File( basedir, finalName + ".jar" );
+    }
+
+    /**
+     * Get the encoding from an XML-file.
+     *
+     * @param xmlFile the XML-file
+     * @return The encoding of the XML-file, or UTF-8 if it's not specified in the file
+     * @throws IOException if an error occurred while reading the file
+     */
+    private String getEncoding( File xmlFile )
+        throws IOException
+    {
+        XmlStreamReader xmlReader = new XmlStreamReader( xmlFile );
+        return xmlReader.getEncoding();
+    }
+}
diff --git a/src/main/resources/META-INF/plexus/components.xml b/src/main/resources/META-INF/plexus/components.xml
new file mode 100644
index 0000000..7a6bf0f
--- /dev/null
+++ b/src/main/resources/META-INF/plexus/components.xml
@@ -0,0 +1,59 @@
+<?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.
+ */-->
+<component-set>
+  <components>
+    <component>
+      <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
+      <role-hint>app-client</role-hint>
+      <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation>
+      <configuration>
+        <type>app-client</type>
+        <extension>jar</extension>
+        <packaging>jar</packaging>
+        <language>java</language>
+        <addedToClasspath>true</addedToClasspath>
+      </configuration>
+    </component>
+    <component>
+      <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
+      <role-hint>app-client</role-hint>
+      <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
+      <configuration>
+        <lifecycles>
+          <lifecycle>
+            <id>default</id>
+            <phases>
+              <process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
+              <compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
+              <process-test-resources>org.apache.maven.plugins:maven-resources-plugin:testResources
+              </process-test-resources>
+              <test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
+              <test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
+              <package>org.apache.maven.plugins:maven-acr-plugin:acr</package>
+              <install>org.apache.maven.plugins:maven-install-plugin:install</install>
+              <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
+            </phases>
+          </lifecycle>
+        </lifecycles>
+      </configuration>
+    </component>
+  </components>
+</component-set>
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
"commits@maven.apache.org" <co...@maven.apache.org>.

[maven-acr-plugin] 03/07: MACR-2: added documentation.

Posted by hb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to annotated tag maven-acr-plugin-1.0
in repository https://gitbox.apache.org/repos/asf/maven-acr-plugin.git

commit 2295e3a9446a26d4925e8e883330194e375a8ab7
Author: Stephane Nicoll <sn...@apache.org>
AuthorDate: Sat Mar 26 11:27:03 2011 +0000

    MACR-2: added documentation.
    
    git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-acr-plugin@1085698 13f79535-47bb-0310-9956-ffa450edef68
---
 src/site/apt/examples/app-client-dependency.apt.vm | 54 +++++++++++++
 .../examples/filter-deployment-descriptor.apt.vm   | 56 ++++++++++++++
 src/site/apt/index.apt                             | 72 +++++++++++++++++
 src/site/apt/usage.apt.vm                          | 65 ++++++++++++++++
 src/site/fml/faq.fml                               | 89 ++++++++++++++++++++++
 src/site/site.xml                                  | 35 +++++++++
 6 files changed, 371 insertions(+)

diff --git a/src/site/apt/examples/app-client-dependency.apt.vm b/src/site/apt/examples/app-client-dependency.apt.vm
new file mode 100644
index 0000000..c7212a0
--- /dev/null
+++ b/src/site/apt/examples/app-client-dependency.apt.vm
@@ -0,0 +1,54 @@
+ ------
+ Using the app-client as a dependency
+ ------
+ Pete Marvin King
+ Stephane Nicoll
+ ------
+ 2011-03-26
+ ------
+
+ ~~ 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.
+
+ ~~ NOTE: For help with the syntax of this file, see:
+ ~~ http://maven.apache.org/doxia/references/apt-format.html
+
+
+Using the app-client as a dependency
+
+ Once the ACR Plugin has been used to generate an application client, the generated artifact can be used as a
+ dependency by specifying the the <<<type>>> as <<<app-client>>>.
+
+* Normal way of adding an Application Client dependency
+
+ The following dependency declaration would include the <<<application-client-project-1.0-SNAPSHOT.jar>>> in your
+ project's package.
+
++------------+
+<project>
+  [...]
+  <dependencies>
+    <dependency>
+      <groupId>com.example</groupId>
+      <artifactId>application-client-project</artifactId>
+      <version>1.0-SNAPSHOT</version>
+      <type>app-client</type>
+    </dependency>
+  </dependencies>
+  [...]
+</project>
++------------+
diff --git a/src/site/apt/examples/filter-deployment-descriptor.apt.vm b/src/site/apt/examples/filter-deployment-descriptor.apt.vm
new file mode 100644
index 0000000..145f0a5
--- /dev/null
+++ b/src/site/apt/examples/filter-deployment-descriptor.apt.vm
@@ -0,0 +1,56 @@
+ ------
+ Filter the deployment descriptor
+ ------
+ Dennis Lundberg
+ Stephane Nicoll
+ ------
+ 2011-03-26
+ ------
+
+~~ 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.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/doxia/references/apt-format.html
+
+Filter the deployment descriptor
+
+  The ACR Plugin is capable of filtering the deployment descriptor
+  (<<</META-INF/application-client.xml>>>) for you, if you have the need to inject values
+  into it during the build.
+
+  To filter the deployment descriptor add the following configuration to your
+  POM:
+
++-------+
+<project>
+  ...
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-acr-plugin</artifactId>
+        <version>${project.version}</version>
+        <configuration>
+          <filterDeploymentDescriptor>true</filterDeploymentDescriptor>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  ...
+</project>
++-------+
diff --git a/src/site/apt/index.apt b/src/site/apt/index.apt
new file mode 100644
index 0000000..d763572
--- /dev/null
+++ b/src/site/apt/index.apt
@@ -0,0 +1,72 @@
+ ------
+ Introduction
+ ------
+ Stephane Nicoll
+ <sn...@apache.org>
+ ------
+ 2011-03-26
+ ------
+
+ ~~ 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.
+
+ ~~ NOTE: For help with the syntax of this file, see:
+ ~~ http://maven.apache.org/doxia/references/apt-format.html
+
+
+Maven ACR Plugin
+
+  This plugin generates J2EE Application Client file.
+
+* Goals Overview
+
+  {{{./acr-mojo.html}acr:acr}} - used by Maven for projects with <<<app-client>>> package type.
+
+* Usage
+
+  General instructions on how to use the ACR Plugin can be found on the {{{./usage.html}usage page}}. Some more
+  specific use cases are described in the examples given below.
+
+  In case you still have questions regarding the plugin's usage, please have a look at the {{{./faq.html}FAQ}} and feel
+  free to contact the {{{./mail-lists.html}user mailing list}}. The posts to the mailing list are archived and could
+  already contain the answer to your question as part of an older thread. Hence, it is also worth browsing/searching
+  the {{{./mail-lists.html}mail archive}}.
+
+  If you feel like the plugin is missing a feature or has a defect, you can fill a feature request or bug report in our
+  {{{./issue-tracking.html}issue tracker}}. When creating a new issue, please provide a comprehensive description of your
+  concern. Especially for fixing bugs it is crucial that the developers can reproduce your problem. For this reason,
+  entire debug logs, POMs or most preferably little demo projects attached to the issue are very much appreciated.
+  Of course, patches are welcome, too. Contributors can check out the project from our
+  {{{./source-repository.html}source repository}} and will find supplementary information in the
+  {{{http://maven.apache.org/guides/development/guide-helping.html}guide to helping with Maven}}.
+
+* Examples
+
+  To provide you with better understanding on some usages of the Maven ACR Plugin,
+  you can take a look into the following examples:
+
+  * {{{./examples/filter-deployment-descriptor.html}Filter the deployment descriptor}}
+
+  * {{{./examples/app-client-dependency.html}Using the app-client as a dependency}}
+
+  []
+
+* Related Links
+
+  * {{{http://maven.apache.org/shared/maven-archiver/index.html}How to configure the archive, including its manifest}}
+
+  []
diff --git a/src/site/apt/usage.apt.vm b/src/site/apt/usage.apt.vm
new file mode 100644
index 0000000..7442d5d
--- /dev/null
+++ b/src/site/apt/usage.apt.vm
@@ -0,0 +1,65 @@
+ ------
+ Usage
+ ------
+ Stephane Nicoll
+ <sn...@apache.org>
+ ------
+ 2011-03-26
+ ------
+
+ ~~ 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.
+
+ ~~ NOTE: For help with the syntax of this file, see:
+ ~~ http://maven.apache.org/doxia/references/apt-format.html
+
+
+Usage
+
+ The ACR Plugin is used to package a JavaEE Application Client module. There are two ways to use the ACR Plugin:
+
+ * If the packaging type defined in the <<<pom.xml>>> is <<<app-client>>>, the <<<package>>> lifecycle phase can be used
+
++--------------+
+  mvn package
++--------------+
+
+  Pay attention that prior to Maven 3.0.4, the plugin's extension must be enabled since the <<<app-client>>>
+  packaging type is new.
+
++-------+
+<project>
+  ...
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-acr-plugin</artifactId>
+        <version>${project.version}</version>
+        <extensions>true</extensions>
+      </plugin>
+    </plugins>
+  </build>
+  ...
+</project>
++-------+
+
+ * or using the <<<acr:acr>>> goal
+
++--------------+
+  mvn acr:acr
++--------------+
diff --git a/src/site/fml/faq.fml b/src/site/fml/faq.fml
new file mode 100644
index 0000000..ca1e997
--- /dev/null
+++ b/src/site/fml/faq.fml
@@ -0,0 +1,89 @@
+<?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.
+-->
+
+
+<faqs xmlns="http://maven.apache.org/FML/1.0.1"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/FML/1.0.1 http://maven.apache.org/xsd/fml-1.0.1.xsd"
+  id="FAQ" title="Frequently Asked Questions">
+  <part id="General">
+    <faq id="How can I specify a Class-Path: entry in the manifest of an Application Client jar?">
+      <question>How can I specify a Class-Path: entry in the manifest of an Application Client jar?</question>
+      <answer>
+        <p>
+          You just have to configure it:
+          <source><![CDATA[
+<project>
+  ...
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-acr-plugin</artifactId>
+        <version>${project.version}</version>
+        ...
+        <configuration>
+          <archive>
+            <manifest>
+              <addClasspath>true</addClasspath>
+            </manifest>
+          </archive>
+        </configuration>
+        ...
+      </plugin>
+    </plugins>
+  </build>
+  ...
+</project>
+          ]]></source>
+Please see the <a href="http://maven.apache.org/shared/maven-archiver/examples/classpath.html">Maven Archiver Reference</a>
+for more information about controlling the exact format of the generated class path entries.
+        </p>
+      </answer>
+    </faq>
+   <faq id="extensions">
+     <question>Why the app-client packaging type is not recognized?</question>
+     <answer>
+       <p>The app-client packaging type has been added as from Maven 3.0.4. If you are running an older version of Maven,
+       it does not know about that packaging type so you need to configure your project accordingly as follows:
+       <source><![CDATA[
+<project>
+  ...
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-acr-plugin</artifactId>
+        <version>${project.version}</version>
+        <extensions>true</extensions>
+        ...
+      </plugin>
+    </plugins>
+  </build>
+  ...
+</project>
+      ]]></source>
+
+       </p>
+     </answer>
+   </faq>
+  </part>
+</faqs>
\ No newline at end of file
diff --git a/src/site/site.xml b/src/site/site.xml
new file mode 100644
index 0000000..b35f318
--- /dev/null
+++ b/src/site/site.xml
@@ -0,0 +1,35 @@
+<?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/DECORATION/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 http://maven.apache.org/xsd/decoration-1.0.0.xsd">
+  <body>
+    <menu name="Overview">
+      <item name="Introduction" href="index.html"/>
+      <item name="Goals" href="plugin-info.html"/>
+      <item name="Usage" href="usage.html"/>
+      <item name="FAQ" href="faq.html"/>
+    </menu>
+    <menu name="Examples">
+      <item name="Filter the deployment descriptor" href="examples/filter-deployment-descriptor.html" />
+      <item name="Using the app-client as a dependency" href="examples/app-client-dependency.html"/>
+    </menu>
+  </body>
+</project>

-- 
To stop receiving notification emails like this one, please contact
"commits@maven.apache.org" <co...@maven.apache.org>.