You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2020/01/05 16:13:25 UTC

[maven-shade-plugin] branch MSHADE-339 created (now f6d44ed)

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

khmarbaise pushed a change to branch MSHADE-339
in repository https://gitbox.apache.org/repos/asf/maven-shade-plugin.git.


      at f6d44ed  [MSHADE-339] - Shaded test jar has wrong type "jar"

This branch includes the following new commits:

     new f3669a1  Revert "[maven-release-plugin] prepare release maven-shade-plugin-3.2.2"
     new 03b159e  Fixed several JavaDoc issues Removed useless method separator comments. Removed SVN legacy information.
     new dc9dfa3  [MSHADE-311] - Don't add exclusions for provided dep
     new e45e37c  [MSHADE-340] - Shaded test jar artifact is not attached to the project
     new f6d44ed  [MSHADE-339] - Shaded test jar has wrong type "jar"

The 5 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.



[maven-shade-plugin] 03/05: [MSHADE-311] - Don't add exclusions for provided dep

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

khmarbaise pushed a commit to branch MSHADE-339
in repository https://gitbox.apache.org/repos/asf/maven-shade-plugin.git

commit dc9dfa38e4695873d2a0c70aa77d6ed76c2d60c3
Author: Falko Modler <fa...@users.noreply.github.com>
AuthorDate: Fri Jan 3 15:51:42 2020 +0100

    [MSHADE-311] - Don't add exclusions for provided dep
---
 .../pom.xml                                        | 105 +++++++++++++++++++++
 .../apache/maven/its/shade/drpape/a/0.1/a-0.1.jar  | Bin 0 -> 2020 bytes
 .../apache/maven/its/shade/drpape/a/0.1/a-0.1.pom  |  40 ++++++++
 .../apache/maven/its/shade/drpape/b/0.1/b-0.1.jar  | Bin 0 -> 2053 bytes
 .../apache/maven/its/shade/drpape/b/0.1/b-0.1.pom  |  48 ++++++++++
 .../apache/maven/its/shade/drpape/c/0.1/c-0.1.jar  | Bin 0 -> 2019 bytes
 .../apache/maven/its/shade/drpape/c/0.1/c-0.1.pom  |  40 ++++++++
 .../apache/maven/its/shade/drpape/d/0.1/d-0.1.jar  | Bin 0 -> 2053 bytes
 .../apache/maven/its/shade/drpape/d/0.1/d-0.1.pom  |  48 ++++++++++
 .../apache/maven/its/shade/drpape/e/0.1/e-0.1.jar  | Bin 0 -> 2020 bytes
 .../apache/maven/its/shade/drpape/e/0.1/e-0.1.pom  |  40 ++++++++
 .../verify.groovy                                  |  40 ++++++++
 .../apache/maven/plugins/shade/mojo/ShadeMojo.java |   6 +-
 13 files changed, 366 insertions(+), 1 deletion(-)

diff --git a/src/it/dep-reduced-pom-artifactset-provided-excludes/pom.xml b/src/it/dep-reduced-pom-artifactset-provided-excludes/pom.xml
new file mode 100644
index 0000000..cc862c5
--- /dev/null
+++ b/src/it/dep-reduced-pom-artifactset-provided-excludes/pom.xml
@@ -0,0 +1,105 @@
+<?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.its.shade.drpape</groupId>
+  <artifactId>test</artifactId>
+  <version>1.0</version>
+  <packaging>jar</packaging>
+
+  <name>MSHADE-311</name>
+  <description>
+    Tests that creation of the dependency reduced POM does not create excludes for a provided transitive dependency.
+    This dependency 'c' is a compile dependency of 'b' which is a provided dependency of this project.
+    Shade-plugin is configured to only include (compile) dependency 'a', not 'b' (which must therefore be retained).
+    Additionally (to prevent regressions), this project has a provided dependency 'd' which depends on 'e', but 'e' is excluded.
+    That exclusion must be retained in the dependency reduced POM.
+  </description>
+
+  <repositories>
+    <repository>
+      <id>shade-it</id>
+      <url>file:///${basedir}/repo</url>
+      <releases>
+        <checksumPolicy>ignore</checksumPolicy>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+    </repository>
+  </repositories>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.shade.drpape</groupId>
+      <artifactId>a</artifactId>
+      <version>0.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.shade.drpape</groupId>
+      <artifactId>b</artifactId>
+      <version>0.1</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.its.shade.drpape</groupId>
+      <artifactId>d</artifactId>
+      <version>0.1</version>
+      <scope>provided</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>org.apache.maven.its.shade.drpape</groupId>
+          <artifactId>e</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-shade-plugin</artifactId>
+        <version>@project.version@</version>
+        <executions>
+          <execution>
+            <id>attach-shade</id>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+            <configuration>
+              <createDependencyReducedPom>true</createDependencyReducedPom>
+              <dependencyReducedPomLocation>target/dependency-reduced-pom.xml</dependencyReducedPomLocation>
+              <artifactSet>
+                <includes>
+                  <include>org.apache.maven.its.shade.drpape:a</include>
+                </includes>
+              </artifactSet>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/a/0.1/a-0.1.jar b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/a/0.1/a-0.1.jar
new file mode 100644
index 0000000..484889c
Binary files /dev/null and b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/a/0.1/a-0.1.jar differ
diff --git a/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/a/0.1/a-0.1.pom b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/a/0.1/a-0.1.pom
new file mode 100644
index 0000000..c943daa
--- /dev/null
+++ b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/a/0.1/a-0.1.pom
@@ -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>
+
+  <groupId>org.apache.maven.its.shade.drpape</groupId>
+  <artifactId>a</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/b/0.1/b-0.1.jar b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/b/0.1/b-0.1.jar
new file mode 100644
index 0000000..c982180
Binary files /dev/null and b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/b/0.1/b-0.1.jar differ
diff --git a/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/b/0.1/b-0.1.pom b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/b/0.1/b-0.1.pom
new file mode 100644
index 0000000..09cb49b
--- /dev/null
+++ b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/b/0.1/b-0.1.pom
@@ -0,0 +1,48 @@
+<?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.its.shade.drpape</groupId>
+  <artifactId>b</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.shade.drpape</groupId>
+      <artifactId>c</artifactId>
+      <version>0.1</version>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/c/0.1/c-0.1.jar b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/c/0.1/c-0.1.jar
new file mode 100644
index 0000000..520a93d
Binary files /dev/null and b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/c/0.1/c-0.1.jar differ
diff --git a/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/c/0.1/c-0.1.pom b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/c/0.1/c-0.1.pom
new file mode 100644
index 0000000..49d9dea
--- /dev/null
+++ b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/c/0.1/c-0.1.pom
@@ -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>
+
+  <groupId>org.apache.maven.its.shade.drpape</groupId>
+  <artifactId>c</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/d/0.1/d-0.1.jar b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/d/0.1/d-0.1.jar
new file mode 100644
index 0000000..2ad59eb
Binary files /dev/null and b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/d/0.1/d-0.1.jar differ
diff --git a/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/d/0.1/d-0.1.pom b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/d/0.1/d-0.1.pom
new file mode 100644
index 0000000..a73939d
--- /dev/null
+++ b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/d/0.1/d-0.1.pom
@@ -0,0 +1,48 @@
+<?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.its.shade.drpape</groupId>
+  <artifactId>d</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.its.shade.drpape</groupId>
+      <artifactId>e</artifactId>
+      <version>0.1</version>
+    </dependency>
+  </dependencies>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/e/0.1/e-0.1.jar b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/e/0.1/e-0.1.jar
new file mode 100644
index 0000000..1981528
Binary files /dev/null and b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/e/0.1/e-0.1.jar differ
diff --git a/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/e/0.1/e-0.1.pom b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/e/0.1/e-0.1.pom
new file mode 100644
index 0000000..6ac9a8f
--- /dev/null
+++ b/src/it/dep-reduced-pom-artifactset-provided-excludes/repo/org/apache/maven/its/shade/drpape/e/0.1/e-0.1.pom
@@ -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>
+
+  <groupId>org.apache.maven.its.shade.drpape</groupId>
+  <artifactId>e</artifactId>
+  <version>0.1</version>
+  <packaging>jar</packaging>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+  </properties>
+
+  <distributionManagement>
+    <repository>
+      <id>maven-core-it</id>
+      <url>file:///${basedir}/repo</url>
+    </repository>
+  </distributionManagement>
+</project>
diff --git a/src/it/dep-reduced-pom-artifactset-provided-excludes/verify.groovy b/src/it/dep-reduced-pom-artifactset-provided-excludes/verify.groovy
new file mode 100644
index 0000000..06093d1
--- /dev/null
+++ b/src/it/dep-reduced-pom-artifactset-provided-excludes/verify.groovy
@@ -0,0 +1,40 @@
+/*
+ * 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.
+ */
+
+File pomFile = new File( basedir, "target/dependency-reduced-pom.xml" );
+assert pomFile.isFile()
+
+def ns = new groovy.xml.Namespace("http://maven.apache.org/POM/4.0.0") 
+def pom = new XmlParser().parse( pomFile )
+
+assert pom[ns.modelVersion].size() == 1
+
+assert pom[ns.dependencies][ns.dependency].size() == 2
+
+def depB = pom[ns.dependencies][ns.dependency][0]
+assert depB[ns.artifactId].text().equals('b')
+assert depB[ns.scope].text().equals('provided')
+assert depB[ns.exclusions][ns.exclusion].size() == 0
+
+def depD = pom[ns.dependencies][ns.dependency][1]
+assert depD[ns.artifactId].text().equals('d')
+assert depD[ns.scope].text().equals('provided')
+def depDExclusions = depD[ns.exclusions][ns.exclusion]
+assert depDExclusions.size() == 1
+assert depDExclusions[0][ns.artifactId].text().equals('e')
diff --git a/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java b/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
index 29f665c..112c301 100644
--- a/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
+++ b/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
@@ -1255,7 +1255,11 @@ public class ShadeMojo
                         }
                     }
 
-                    if ( !found )
+                    // MSHADE-311: do not add exclusion for provided transitive dep
+                    //       note: MSHADE-31 introduced the exclusion logic for promoteTransitiveDependencies=true,
+                    //             but as of 3.2.1 promoteTransitiveDependencies has no effect for provided deps,
+                    //             which makes this fix even possible (see also MSHADE-181)
+                    if ( !found && !"provided".equals( n3.getArtifact().getScope() ) )
                     {
                         for ( Dependency dep : dependencies )
                         {


[maven-shade-plugin] 02/05: Fixed several JavaDoc issues Removed useless method separator comments. Removed SVN legacy information.

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

khmarbaise pushed a commit to branch MSHADE-339
in repository https://gitbox.apache.org/repos/asf/maven-shade-plugin.git

commit 03b159eb8f7b3f6b7ba1a88f3e9806f8ff2f311a
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Sun Dec 29 14:25:32 2019 +0100

    Fixed several JavaDoc issues
    Removed useless method separator comments.
    Removed SVN legacy information.
---
 .../apache/maven/plugins/shade/ShadeRequest.java   |  12 +-
 .../apache/maven/plugins/shade/filter/Filter.java  |   2 +-
 .../maven/plugins/shade/filter/SimpleFilter.java   |   4 +-
 .../apache/maven/plugins/shade/mojo/ShadeMojo.java |   2 +-
 .../apache/maven/plugins/shade/pom/Counter.java    |   1 +
 .../maven/plugins/shade/pom/MavenJDOMWriter.java   | 707 +++++++++++----------
 .../ResourceBundleAppendingTransformer.java        |   1 +
 .../ApacheLicenseResourceTransformerTest.java      |   1 -
 .../ApacheNoticeResourceTransformerTest.java       |   1 -
 .../shade/resource/AppendingTransformerTest.java   |   1 -
 10 files changed, 369 insertions(+), 363 deletions(-)

diff --git a/src/main/java/org/apache/maven/plugins/shade/ShadeRequest.java b/src/main/java/org/apache/maven/plugins/shade/ShadeRequest.java
index 88838ce..7d1376a 100644
--- a/src/main/java/org/apache/maven/plugins/shade/ShadeRequest.java
+++ b/src/main/java/org/apache/maven/plugins/shade/ShadeRequest.java
@@ -54,7 +54,7 @@ public class ShadeRequest
     /**
      * Which jars to shade.
      *
-     * @param jars
+     * @param jars The jars.
      */
     public void setJars( Set<File> jars )
     {
@@ -69,7 +69,7 @@ public class ShadeRequest
     /**
      * Output jar.
      *
-     * @param uberJar
+     * @param uberJar The ueberJar file.
      */
     public void setUberJar( File uberJar )
     {
@@ -84,7 +84,7 @@ public class ShadeRequest
     /**
      * The filters.
      *
-     * @param filters
+     * @param filters The filters
      */
     public void setFilters( List<Filter> filters )
     {
@@ -99,7 +99,7 @@ public class ShadeRequest
     /**
      * The relocators.
      *
-     * @param relocators
+     * @param relocators The relocators.
      */
     public void setRelocators( List<Relocator> relocators )
     {
@@ -114,7 +114,7 @@ public class ShadeRequest
     /**
      * The transformers.
      *
-     * @param resourceTransformers
+     * @param resourceTransformers List of resourceTransformers.
      */
     public void setResourceTransformers( List<ResourceTransformer> resourceTransformers )
     {
@@ -131,7 +131,7 @@ public class ShadeRequest
      * When false, it will just relocate the java source files to the shaded paths, but will not modify the
      * actual contents of the java source files.
      *
-     * @param shadeSourcesContent
+     * @param shadeSourcesContent {@code true} or {@code false}.
      */
     public void setShadeSourcesContent( boolean shadeSourcesContent )
     {
diff --git a/src/main/java/org/apache/maven/plugins/shade/filter/Filter.java b/src/main/java/org/apache/maven/plugins/shade/filter/Filter.java
index 0064569..930d49b 100644
--- a/src/main/java/org/apache/maven/plugins/shade/filter/Filter.java
+++ b/src/main/java/org/apache/maven/plugins/shade/filter/Filter.java
@@ -33,7 +33,7 @@ public interface Filter
     boolean canFilter( File jar );
 
     /**
-     * @param classFile
+     * @param classFile The classFile.
      * @return true if the file has been filtered false otherwise.
      */
     boolean isFiltered( String classFile );
diff --git a/src/main/java/org/apache/maven/plugins/shade/filter/SimpleFilter.java b/src/main/java/org/apache/maven/plugins/shade/filter/SimpleFilter.java
index d1b234c..9b76719 100644
--- a/src/main/java/org/apache/maven/plugins/shade/filter/SimpleFilter.java
+++ b/src/main/java/org/apache/maven/plugins/shade/filter/SimpleFilter.java
@@ -48,7 +48,7 @@ public class SimpleFilter
     private boolean excludeDefaults = true;
 
     /**
-     * @deprecated As of release 3.2.2, replaced by {@link #SimpleFilter(Set<File>, ArchiveFilter)}
+     * @deprecated As of release 3.2.2, replaced by {@link #SimpleFilter(Set, ArchiveFilter)}}
      * @param jars set of {@link File}s.
      * @param includes set of includes.
      * @param excludes set of excludes.
@@ -61,7 +61,7 @@ public class SimpleFilter
 
     /**
      * @param jars set of {@link File}s.
-     * @param archiveFilters set of {@link ArchiveFilter}s.
+     * @param archiveFilter set of {@link ArchiveFilter}s.
      */
     public SimpleFilter( final Set<File> jars, final ArchiveFilter archiveFilter )
     {
diff --git a/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java b/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
index 03e70b8..29f665c 100644
--- a/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
+++ b/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
@@ -385,7 +385,7 @@ public class ShadeMojo
     }
 
     /**
-     * @throws MojoExecutionException
+     * @throws MojoExecutionException in case of an error.
      */
     public void execute()
         throws MojoExecutionException
diff --git a/src/main/java/org/apache/maven/plugins/shade/pom/Counter.java b/src/main/java/org/apache/maven/plugins/shade/pom/Counter.java
index 9f6509a..aec9488 100644
--- a/src/main/java/org/apache/maven/plugins/shade/pom/Counter.java
+++ b/src/main/java/org/apache/maven/plugins/shade/pom/Counter.java
@@ -62,6 +62,7 @@ public class Counter
 
     /**
      * Method getDepth
+     * @return {@link #level}
      */
     public int getDepth()
     {
diff --git a/src/main/java/org/apache/maven/plugins/shade/pom/MavenJDOMWriter.java b/src/main/java/org/apache/maven/plugins/shade/pom/MavenJDOMWriter.java
index 412527b..a8b80d3 100644
--- a/src/main/java/org/apache/maven/plugins/shade/pom/MavenJDOMWriter.java
+++ b/src/main/java/org/apache/maven/plugins/shade/pom/MavenJDOMWriter.java
@@ -84,7 +84,6 @@ import org.jdom2.output.XMLOutputter;
 /**
  * Class MavenJDOMWriter.
  *
- * @version $Revision$ $Date$
  */
 public class MavenJDOMWriter
 {
@@ -102,15 +101,16 @@ public class MavenJDOMWriter
     {
         factory = new DefaultJDOMFactory();
         lineSeparator = "\n";
-    } // -- org.apache.maven.model.io.jdom.MavenJDOMWriter()
+    }
 
     /**
      * Method findAndReplaceProperties
      *
-     * @param counter
-     * @param props
-     * @param name
-     * @param parent
+     * @param counter {@link Counter}
+     * @param props {@link Map}
+     * @param name The name.
+     * @param parent {@link Element}
+     * @return {@link Element}
      */
     protected Element findAndReplaceProperties( Counter counter, Element parent, String name, Map props )
     {
@@ -138,16 +138,17 @@ public class MavenJDOMWriter
             }
         }
         return element;
-    } // -- Element findAndReplaceProperties(Counter, Element, String, Map)
+    }
 
     /**
      * Method findAndReplaceSimpleElement
      *
-     * @param counter
-     * @param defaultValue
-     * @param text
-     * @param name
-     * @param parent
+     * @param counter {@link Counter}
+     * @param defaultValue The default value.
+     * @param text The text.
+     * @param name The name.
+     * @param parent The parent.
+     * @return {@link Element}
      */
     protected Element findAndReplaceSimpleElement( Counter counter, Element parent, String name, String text,
                                                    String defaultValue )
@@ -168,16 +169,17 @@ public class MavenJDOMWriter
             element.setText( text );
         }
         return element;
-    } // -- Element findAndReplaceSimpleElement(Counter, Element, String, String, String)
+    }
 
     /**
      * Method findAndReplaceSimpleLists
      *
-     * @param counter
-     * @param childName
-     * @param parentName
-     * @param list
-     * @param parent
+     * @param counter {@link Counter}
+     * @param childName The childName
+     * @param parentName The parentName
+     * @param list The list of elements.
+     * @param parent The parent.
+     * @return {@link Element}
      */
     protected Element findAndReplaceSimpleLists( Counter counter, Element parent, Collection<String> list,
                                                  String parentName, String childName )
@@ -221,15 +223,16 @@ public class MavenJDOMWriter
             }
         }
         return element;
-    } // -- Element findAndReplaceSimpleLists(Counter, Element, java.util.Collection, String, String)
+    }
 
     /**
      * Method findAndReplaceXpp3DOM
      *
-     * @param counter
-     * @param dom
-     * @param name
-     * @param parent
+     * @param counter {@link Counter}
+     * @param dom {@link Xpp3Dom}
+     * @param name The name.
+     * @param parent The parent.
+     * @return {@link Element}
      */
     protected Element findAndReplaceXpp3DOM( Counter counter, Element parent, String name, Xpp3Dom dom )
     {
@@ -240,14 +243,14 @@ public class MavenJDOMWriter
             replaceXpp3DOM( element, dom, new Counter( counter.getDepth() + 1 ) );
         }
         return element;
-    } // -- Element findAndReplaceXpp3DOM(Counter, Element, String, Xpp3Dom)
+    }
 
     /**
      * Method insertAtPreferredLocation
      *
-     * @param parent
-     * @param counter
-     * @param child
+     * @param parent The parent.
+     * @param counter {@link Counter}
+     * @param child {@link Element}
      */
     protected void insertAtPreferredLocation( Element parent, Element child, Counter counter )
     {
@@ -292,16 +295,16 @@ public class MavenJDOMWriter
         }
         parent.addContent( contentIndex, child );
         parent.addContent( contentIndex, lastText );
-    } // -- void insertAtPreferredLocation(Element, Element, Counter)
+    }
 
     /**
      * Method iterateContributor
      *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
+     * @param counter {@link Counter}
+     * @param childTag The childTag
+     * @param parentTag The parentTag
+     * @param list The list of elements.
+     * @param parent The parent.
      */
     protected void iterateContributor( Counter counter, Element parent, Collection<Contributor> list,
                                        String parentTag, String childTag )
@@ -344,16 +347,16 @@ public class MavenJDOMWriter
                 }
             }
         }
-    } // -- void iterateContributor(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)
+    }
 
     /**
      * Method iterateDependency
      *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
+     * @param counter {@link Counter}
+     * @param childTag The childTag
+     * @param parentTag The parentTag
+     * @param list The list of elements.
+     * @param parent The parent.
      */
     protected void iterateDependency( Counter counter, Element parent, Collection<Dependency> list,
                                       String parentTag, String childTag )
@@ -396,16 +399,16 @@ public class MavenJDOMWriter
                 }
             }
         }
-    } // -- void iterateDependency(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)
+    }
 
     /**
      * Method iterateDeveloper
      *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
+     * @param counter {@link Counter}
+     * @param childTag The childTag
+     * @param parentTag The parentTag
+     * @param list The list of elements.
+     * @param parent The parent.
      */
     protected void iterateDeveloper( Counter counter, Element parent, Collection<Developer> list,
                                      String parentTag, String childTag )
@@ -448,16 +451,16 @@ public class MavenJDOMWriter
                 }
             }
         }
-    } // -- void iterateDeveloper(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)
+    }
 
     /**
      * Method iterateExclusion
      *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
+     * @param counter {@link Counter}
+     * @param childTag The childTag
+     * @param parentTag The parentTag
+     * @param list The list of elements.
+     * @param parent The parent.
      */
     protected void iterateExclusion( Counter counter, Element parent, Collection<Exclusion> list,
                                      String parentTag, String childTag )
@@ -500,16 +503,16 @@ public class MavenJDOMWriter
                 }
             }
         }
-    } // -- void iterateExclusion(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)
+    }
 
     /**
      * Method iterateExtension
      *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
+     * @param counter {@link Counter}
+     * @param childTag The childTag
+     * @param parentTag The parentTag
+     * @param list The list of elements.
+     * @param parent The parent.
      */
     protected void iterateExtension( Counter counter, Element parent, Collection<Extension> list,
                                      String parentTag, String childTag )
@@ -552,16 +555,16 @@ public class MavenJDOMWriter
                 }
             }
         }
-    } // -- void iterateExtension(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)
+    }
 
     /**
      * Method iterateLicense
      *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
+     * @param counter {@link Counter}
+     * @param childTag The childTag
+     * @param parentTag The parentTag
+     * @param list The list of elements.
+     * @param parent The parent.
      */
     protected void iterateLicense( Counter counter, Element parent, Collection<License> list,
                                    String parentTag, String childTag )
@@ -604,16 +607,16 @@ public class MavenJDOMWriter
                 }
             }
         }
-    } // -- void iterateLicense(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)
+    }
 
     /**
      * Method iterateMailingList
      *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
+     * @param counter {@link Counter}
+     * @param childTag The childTag
+     * @param parentTag The parentTag
+     * @param list The list of elements.
+     * @param parent The parent.
      */
     protected void iterateMailingList( Counter counter, Element parent, Collection<MailingList> list,
                                        String parentTag, String childTag )
@@ -656,16 +659,16 @@ public class MavenJDOMWriter
                 }
             }
         }
-    } // -- void iterateMailingList(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)
+    }
 
     /**
      * Method iterateNotifier
      *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
+     * @param counter {@link Counter}
+     * @param childTag The childTag
+     * @param parentTag The parentTag
+     * @param list The list of elements.
+     * @param parent The parent.
      */
     protected void iterateNotifier( Counter counter, Element parent, Collection<Notifier> list,
                                     String parentTag, String childTag )
@@ -708,16 +711,16 @@ public class MavenJDOMWriter
                 }
             }
         }
-    } // -- void iterateNotifier(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)
+    }
 
     /**
      * Method iteratePlugin
      *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
+     * @param counter {@link Counter}
+     * @param childTag The childTag
+     * @param parentTag The parentTag
+     * @param list The list of elements.
+     * @param parent The parent.
      */
     protected void iteratePlugin( Counter counter, Element parent, Collection<Plugin> list,
                                   String parentTag, String childTag )
@@ -760,16 +763,16 @@ public class MavenJDOMWriter
                 }
             }
         }
-    } // -- void iteratePlugin(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)
+    }
 
     /**
      * Method iteratePluginExecution
      *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
+     * @param counter {@link Counter}
+     * @param childTag The childTag
+     * @param parentTag The parentTag
+     * @param list The list of elements.
+     * @param parent The parent.
      */
     protected void iteratePluginExecution( Counter counter, Element parent, Collection<PluginExecution> list,
                                            String parentTag, String childTag )
@@ -812,16 +815,16 @@ public class MavenJDOMWriter
                 }
             }
         }
-    } // -- void iteratePluginExecution(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)
+    }
 
     /**
      * Method iterateProfile
      *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
+     * @param counter {@link Counter}
+     * @param childTag The childTag
+     * @param parentTag The parentTag
+     * @param list The list of elements.
+     * @param parent The parent.
      */
     protected void iterateProfile( Counter counter, Element parent, Collection<Profile> list,
                                    String parentTag, String childTag )
@@ -864,16 +867,16 @@ public class MavenJDOMWriter
                 }
             }
         }
-    } // -- void iterateProfile(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)
+    }
 
     /**
      * Method iterateReportPlugin
      *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
+     * @param counter {@link Counter}
+     * @param childTag The childTag
+     * @param parentTag The parentTag
+     * @param list The list of elements.
+     * @param parent The parent.
      */
     protected void iterateReportPlugin( Counter counter, Element parent, Collection<ReportPlugin> list,
                                         String parentTag, String childTag )
@@ -916,16 +919,16 @@ public class MavenJDOMWriter
                 }
             }
         }
-    } // -- void iterateReportPlugin(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)
+    }
 
     /**
      * Method iterateReportSet
      *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
+     * @param counter {@link Counter}
+     * @param childTag The childTag
+     * @param parentTag The parentTag
+     * @param list The list of elements.
+     * @param parent The parent.
      */
     protected void iterateReportSet( Counter counter, Element parent, Collection<ReportSet> list,
                                      String parentTag, String childTag )
@@ -968,16 +971,16 @@ public class MavenJDOMWriter
                 }
             }
         }
-    } // -- void iterateReportSet(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)
+    }
 
     /**
      * Method iterateRepository
      *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
+     * @param counter {@link Counter}
+     * @param childTag The childTag
+     * @param parentTag The parentTag
+     * @param list The list of elements.
+     * @param parent The parent.
      */
     protected void iterateRepository( Counter counter, Element parent, Collection<Repository> list,
                                       String parentTag, String childTag )
@@ -1020,16 +1023,16 @@ public class MavenJDOMWriter
                 }
             }
         }
-    } // -- void iterateRepository(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)
+    }
 
     /**
      * Method iterateResource
      *
-     * @param counter
-     * @param childTag
-     * @param parentTag
-     * @param list
-     * @param parent
+     * @param counter {@link Counter}
+     * @param childTag The childTag
+     * @param parentTag The parentTag
+     * @param list The list of elements.
+     * @param parent The parent.
      */
     protected void iterateResource( Counter counter, Element parent, Collection<Resource> list,
                                     String parentTag, String childTag )
@@ -1072,14 +1075,14 @@ public class MavenJDOMWriter
                 }
             }
         }
-    } // -- void iterateResource(Counter, Element, java.util.Collection, java.lang.String, java.lang.String)
+    }
 
     /**
      * Method replaceXpp3DOM
      *
-     * @param parent
-     * @param counter
-     * @param parentDom
+     * @param parent The parent.
+     * @param counter {@link Counter}
+     * @param parentDom {@link Element}
      */
     protected void replaceXpp3DOM( Element parent, Xpp3Dom parentDom, Counter counter )
     {
@@ -1125,15 +1128,15 @@ public class MavenJDOMWriter
         {
             parent.setText( parentDom.getValue() );
         }
-    } // -- void replaceXpp3DOM(Element, Xpp3Dom, Counter)
+    }
 
     /**
      * Method updateActivationFile
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateActivationFile( ActivationFile value, String xmlTag, Counter counter, Element element )
     {
@@ -1145,15 +1148,15 @@ public class MavenJDOMWriter
             findAndReplaceSimpleElement( innerCount, root, "missing", value.getMissing(), null );
             findAndReplaceSimpleElement( innerCount, root, "exists", value.getExists(), null );
         }
-    } // -- void updateActivationFile(ActivationFile, String, Counter, Element)
+    }
 
     /**
      * Method updateActivationOS
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateActivationOS( ActivationOS value, String xmlTag, Counter counter, Element element )
     {
@@ -1167,15 +1170,15 @@ public class MavenJDOMWriter
             findAndReplaceSimpleElement( innerCount, root, "arch", value.getArch(), null );
             findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null );
         }
-    } // -- void updateActivationOS(ActivationOS, String, Counter, Element)
+    }
 
     /**
      * Method updateActivationProperty
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateActivationProperty( ActivationProperty value, String xmlTag, Counter counter, Element element )
     {
@@ -1187,15 +1190,15 @@ public class MavenJDOMWriter
             findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null );
             findAndReplaceSimpleElement( innerCount, root, "value", value.getValue(), null );
         }
-    } // -- void updateActivationProperty(ActivationProperty, String, Counter, Element)
+    }
 
     /**
      * Method updateBuild
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     //CHECKSTYLE_OFF: LineLength
     protected void updateBuild( Build value, String xmlTag, Counter counter, Element element )
@@ -1221,16 +1224,16 @@ public class MavenJDOMWriter
             updatePluginManagement( value.getPluginManagement(), "pluginManagement", innerCount, root );
             iteratePlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" );
         }
-    } // -- void updateBuild(Build, String, Counter, Element)
+    }
     //CHECKSTYLE_ON: LineLength
 
     /**
      * Method updateBuildBase
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateBuildBase( BuildBase value, String xmlTag, Counter counter, Element element )
     {
@@ -1248,15 +1251,15 @@ public class MavenJDOMWriter
             updatePluginManagement( value.getPluginManagement(), "pluginManagement", innerCount, root );
             iteratePlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" );
         }
-    } // -- void updateBuildBase(BuildBase, String, Counter, Element)
+    }
 
     /**
      * Method updateCiManagement
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateCiManagement( CiManagement value, String xmlTag, Counter counter, Element element )
     {
@@ -1269,15 +1272,15 @@ public class MavenJDOMWriter
             findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null );
             iterateNotifier( innerCount, root, value.getNotifiers(), "notifiers", "notifier" );
         }
-    } // -- void updateCiManagement(CiManagement, String, Counter, Element)
+    }
 
     /**
      * Method updateConfigurationContainer
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateConfigurationContainer( ConfigurationContainer value, String xmlTag, Counter counter,
                                                  Element element )
@@ -1290,15 +1293,15 @@ public class MavenJDOMWriter
             findAndReplaceSimpleElement( innerCount, root, "inherited", value.getInherited(), null );
             findAndReplaceXpp3DOM( innerCount, root, "configuration", (Xpp3Dom) value.getConfiguration() );
         }
-    } // -- void updateConfigurationContainer(ConfigurationContainer, String, Counter, Element)
+    }
 
     /**
      * Method updateContributor
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateContributor( Contributor value, String xmlTag, Counter counter, Element element )
     {
@@ -1312,15 +1315,15 @@ public class MavenJDOMWriter
         findAndReplaceSimpleLists( innerCount, root, value.getRoles(), "roles", "role" );
         findAndReplaceSimpleElement( innerCount, root, "timezone", value.getTimezone(), null );
         findAndReplaceProperties( innerCount, root, "properties", value.getProperties() );
-    } // -- void updateContributor(Contributor, String, Counter, Element)
+    }
 
     /**
      * Method updateDependency
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateDependency( Dependency value, String xmlTag, Counter counter, Element element )
     {
@@ -1336,15 +1339,15 @@ public class MavenJDOMWriter
         iterateExclusion( innerCount, root, value.getExclusions(), "exclusions", "exclusion" );
         findAndReplaceSimpleElement( innerCount, root, "optional",
                                      !value.isOptional() ? null : String.valueOf( value.isOptional() ), "false" );
-    } // -- void updateDependency(Dependency, String, Counter, Element)
+    }
 
     /**
      * Method updateDependencyManagement
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateDependencyManagement( DependencyManagement value, String xmlTag, Counter counter,
                                                Element element )
@@ -1356,15 +1359,15 @@ public class MavenJDOMWriter
             Counter innerCount = new Counter( counter.getDepth() + 1 );
             iterateDependency( innerCount, root, value.getDependencies(), "dependencies", "dependency" );
         }
-    } // -- void updateDependencyManagement(DependencyManagement, String, Counter, Element)
+    }
 
     /**
      * Method updateDeploymentRepository
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateDeploymentRepository( DeploymentRepository value, String xmlTag, Counter counter,
                                                Element element )
@@ -1382,15 +1385,15 @@ public class MavenJDOMWriter
             findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null );
             findAndReplaceSimpleElement( innerCount, root, "layout", value.getLayout(), "default" );
         }
-    } // -- void updateDeploymentRepository(DeploymentRepository, String, Counter, Element)
+    }
 
     /**
      * Method updateDeveloper
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateDeveloper( Developer value, String xmlTag, Counter counter, Element element )
     {
@@ -1405,15 +1408,15 @@ public class MavenJDOMWriter
         findAndReplaceSimpleLists( innerCount, root, value.getRoles(), "roles", "role" );
         findAndReplaceSimpleElement( innerCount, root, "timezone", value.getTimezone(), null );
         findAndReplaceProperties( innerCount, root, "properties", value.getProperties() );
-    } // -- void updateDeveloper(Developer, String, Counter, Element)
+    }
 
     /**
      * Method updateDistributionManagement
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateDistributionManagement( DistributionManagement value, String xmlTag, Counter counter,
                                                  Element element )
@@ -1430,15 +1433,16 @@ public class MavenJDOMWriter
             updateRelocation( value.getRelocation(), "relocation", innerCount, root );
             findAndReplaceSimpleElement( innerCount, root, "status", value.getStatus(), null );
         }
-    } // -- void updateDistributionManagement(DistributionManagement, String, Counter, Element)
+    }
 
     /**
      * Method updateElement
      *
-     * @param counter
-     * @param shouldExist
-     * @param name
-     * @param parent
+     * @param counter {@link Counter}
+     * @param shouldExist should exist.
+     * @param name The name.
+     * @param parent The parent.
+     * @return {@link Element}
      */
     protected Element updateElement( Counter counter, Element parent, String name, boolean shouldExist )
     {
@@ -1471,15 +1475,15 @@ public class MavenJDOMWriter
             parent.removeContent( element );
         }
         return element;
-    } // -- Element updateElement(Counter, Element, String, boolean)
+    }
 
     /**
      * Method updateExclusion
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateExclusion( Exclusion value, String xmlTag, Counter counter, Element element )
     {
@@ -1487,15 +1491,15 @@ public class MavenJDOMWriter
         Counter innerCount = new Counter( counter.getDepth() + 1 );
         findAndReplaceSimpleElement( innerCount, root, "artifactId", value.getArtifactId(), null );
         findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null );
-    } // -- void updateExclusion(Exclusion, String, Counter, Element)
+    }
 
     /**
      * Method updateExtension
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateExtension( Extension value, String xmlTag, Counter counter, Element element )
     {
@@ -1504,15 +1508,15 @@ public class MavenJDOMWriter
         findAndReplaceSimpleElement( innerCount, root, "groupId", value.getGroupId(), null );
         findAndReplaceSimpleElement( innerCount, root, "artifactId", value.getArtifactId(), null );
         findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null );
-    } // -- void updateExtension(Extension, String, Counter, Element)
+    }
 
     /**
      * Method updateFileSet
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateFileSet( FileSet value, String xmlTag, Counter counter, Element element )
     {
@@ -1525,15 +1529,15 @@ public class MavenJDOMWriter
             findAndReplaceSimpleLists( innerCount, root, value.getIncludes(), "includes", "include" );
             findAndReplaceSimpleLists( innerCount, root, value.getExcludes(), "excludes", "exclude" );
         }
-    } // -- void updateFileSet(FileSet, String, Counter, Element)
+    }
 
     /**
      * Method updateIssueManagement
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateIssueManagement( IssueManagement value, String xmlTag, Counter counter, Element element )
     {
@@ -1545,15 +1549,15 @@ public class MavenJDOMWriter
             findAndReplaceSimpleElement( innerCount, root, "system", value.getSystem(), null );
             findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null );
         }
-    } // -- void updateIssueManagement(IssueManagement, String, Counter, Element)
+    }
 
     /**
      * Method updateLicense
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateLicense( License value, String xmlTag, Counter counter, Element element )
     {
@@ -1563,15 +1567,15 @@ public class MavenJDOMWriter
         findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null );
         findAndReplaceSimpleElement( innerCount, root, "distribution", value.getDistribution(), null );
         findAndReplaceSimpleElement( innerCount, root, "comments", value.getComments(), null );
-    } // -- void updateLicense(License, String, Counter, Element)
+    }
 
     /**
      * Method updateMailingList
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateMailingList( MailingList value, String xmlTag, Counter counter, Element element )
     {
@@ -1583,15 +1587,15 @@ public class MavenJDOMWriter
         findAndReplaceSimpleElement( innerCount, root, "post", value.getPost(), null );
         findAndReplaceSimpleElement( innerCount, root, "archive", value.getArchive(), null );
         findAndReplaceSimpleLists( innerCount, root, value.getOtherArchives(), "otherArchives", "otherArchive" );
-    } // -- void updateMailingList(MailingList, String, Counter, Element)
+    }
 
     /**
      * Method updateModel
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateModel( Model value, String xmlTag, Counter counter, Element element )
     {
@@ -1627,15 +1631,15 @@ public class MavenJDOMWriter
         updateDependencyManagement( value.getDependencyManagement(), "dependencyManagement", innerCount, root );
         updateDistributionManagement( value.getDistributionManagement(), "distributionManagement", innerCount, root );
         findAndReplaceProperties( innerCount, root, "properties", value.getProperties() );
-    } // -- void updateModel(Model, String, Counter, Element)
+    }
 
     /**
      * Method updateModelBase
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     //CHECKSTYLE_OFF: LineLength
     protected void updateModelBase( ModelBase value, String xmlTag, Counter counter, Element element )
@@ -1656,16 +1660,16 @@ public class MavenJDOMWriter
             updateDistributionManagement( value.getDistributionManagement(), "distributionManagement", innerCount, root );
             findAndReplaceProperties( innerCount, root, "properties", value.getProperties() );
         }
-    } // -- void updateModelBase(ModelBase, String, Counter, Element)
+    }
     //CHECKSTYLE_ON: LineLength
 
     /**
      * Method updateNotifier
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     //CHECKSTYLE_OFF: LineLength
     protected void updateNotifier( Notifier value, String xmlTag, Counter counter, Element element )
@@ -1683,16 +1687,16 @@ public class MavenJDOMWriter
                                      value.isSendOnWarning() ? null : String.valueOf( value.isSendOnWarning() ), "true" );
         findAndReplaceSimpleElement( innerCount, root, "address", value.getAddress(), null );
         findAndReplaceProperties( innerCount, root, "configuration", value.getConfiguration() );
-    } // -- void updateNotifier(Notifier, String, Counter, Element)
+    }
     //CHECKSTYLE_ON: LineLength
 
     /**
      * Method updateOrganization
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateOrganization( Organization value, String xmlTag, Counter counter, Element element )
     {
@@ -1704,15 +1708,15 @@ public class MavenJDOMWriter
             findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null );
             findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null );
         }
-    } // -- void updateOrganization(Organization, String, Counter, Element)
+    }
 
     /**
      * Method updateParent
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateParent( Parent value, String xmlTag, Counter counter, Element element )
     {
@@ -1726,15 +1730,15 @@ public class MavenJDOMWriter
             findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null );
             findAndReplaceSimpleElement( innerCount, root, "relativePath", value.getRelativePath(), "../pom.xml" );
         }
-    } // -- void updateParent(Parent, String, Counter, Element)
+    }
 
     /**
      * Method updatePatternSet
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updatePatternSet( PatternSet value, String xmlTag, Counter counter, Element element )
     {
@@ -1746,15 +1750,15 @@ public class MavenJDOMWriter
             findAndReplaceSimpleLists( innerCount, root, value.getIncludes(), "includes", "include" );
             findAndReplaceSimpleLists( innerCount, root, value.getExcludes(), "excludes", "exclude" );
         }
-    } // -- void updatePatternSet(PatternSet, String, Counter, Element)
+    }
 
     /**
      * Method updatePlugin
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updatePlugin( Plugin value, String xmlTag, Counter counter, Element element )
     {
@@ -1770,15 +1774,15 @@ public class MavenJDOMWriter
         findAndReplaceXpp3DOM( innerCount, root, "goals", (Xpp3Dom) value.getGoals() );
         findAndReplaceSimpleElement( innerCount, root, "inherited", value.getInherited(), null );
         findAndReplaceXpp3DOM( innerCount, root, "configuration", (Xpp3Dom) value.getConfiguration() );
-    } // -- void updatePlugin(Plugin, String, Counter, Element)
+    }
 
     /**
      * Method updatePluginConfiguration
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     //CHECKSTYLE_OFF: LineLength
     protected void updatePluginConfiguration( PluginConfiguration value, String xmlTag, Counter counter, Element element )
@@ -1791,16 +1795,16 @@ public class MavenJDOMWriter
             updatePluginManagement( value.getPluginManagement(), "pluginManagement", innerCount, root );
             iteratePlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" );
         }
-    } // -- void updatePluginConfiguration(PluginConfiguration, String, Counter, Element)
+    }
     //CHECKSTYLE_ON: LineLength
 
     /**
      * Method updatePluginContainer
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updatePluginContainer( PluginContainer value, String xmlTag, Counter counter, Element element )
     {
@@ -1811,15 +1815,15 @@ public class MavenJDOMWriter
             Counter innerCount = new Counter( counter.getDepth() + 1 );
             iteratePlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" );
         }
-    } // -- void updatePluginContainer(PluginContainer, String, Counter, Element)
+    }
 
     /**
      * Method updatePluginExecution
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updatePluginExecution( PluginExecution value, String xmlTag, Counter counter, Element element )
     {
@@ -1830,15 +1834,15 @@ public class MavenJDOMWriter
         findAndReplaceSimpleLists( innerCount, root, value.getGoals(), "goals", "goal" );
         findAndReplaceSimpleElement( innerCount, root, "inherited", value.getInherited(), null );
         findAndReplaceXpp3DOM( innerCount, root, "configuration", (Xpp3Dom) value.getConfiguration() );
-    } // -- void updatePluginExecution(PluginExecution, String, Counter, Element)
+    }
 
     /**
      * Method updatePluginManagement
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updatePluginManagement( PluginManagement value, String xmlTag, Counter counter, Element element )
     {
@@ -1849,15 +1853,15 @@ public class MavenJDOMWriter
             Counter innerCount = new Counter( counter.getDepth() + 1 );
             iteratePlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" );
         }
-    } // -- void updatePluginManagement(PluginManagement, String, Counter, Element)
+    }
 
     /**
      * Method updatePrerequisites
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updatePrerequisites( Prerequisites value, String xmlTag, Counter counter, Element element )
     {
@@ -1868,15 +1872,15 @@ public class MavenJDOMWriter
             Counter innerCount = new Counter( counter.getDepth() + 1 );
             findAndReplaceSimpleElement( innerCount, root, "maven", value.getMaven(), "2.0" );
         }
-    } // -- void updatePrerequisites(Prerequisites, String, Counter, Element)
+    }
 
     /**
      * Method updateProfile
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateProfile( Profile value, String xmlTag, Counter counter, Element element )
     {
@@ -1894,15 +1898,15 @@ public class MavenJDOMWriter
         updateDependencyManagement( value.getDependencyManagement(), "dependencyManagement", innerCount, root );
         updateDistributionManagement( value.getDistributionManagement(), "distributionManagement", innerCount, root );
         findAndReplaceProperties( innerCount, root, "properties", value.getProperties() );
-    } // -- void updateProfile(Profile, String, Counter, Element)
+    }
 
     /**
      * Method updateRelocation
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateRelocation( Relocation value, String xmlTag, Counter counter, Element element )
     {
@@ -1916,15 +1920,15 @@ public class MavenJDOMWriter
             findAndReplaceSimpleElement( innerCount, root, "version", value.getVersion(), null );
             findAndReplaceSimpleElement( innerCount, root, "message", value.getMessage(), null );
         }
-    } // -- void updateRelocation(Relocation, String, Counter, Element)
+    }
 
     /**
      * Method updateReportPlugin
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateReportPlugin( ReportPlugin value, String xmlTag, Counter counter, Element element )
     {
@@ -1936,15 +1940,15 @@ public class MavenJDOMWriter
         findAndReplaceSimpleElement( innerCount, root, "inherited", value.getInherited(), null );
         findAndReplaceXpp3DOM( innerCount, root, "configuration", (Xpp3Dom) value.getConfiguration() );
         iterateReportSet( innerCount, root, value.getReportSets(), "reportSets", "reportSet" );
-    } // -- void updateReportPlugin(ReportPlugin, String, Counter, Element)
+    }
 
     /**
      * Method updateReportSet
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateReportSet( ReportSet value, String xmlTag, Counter counter, Element element )
     {
@@ -1954,15 +1958,15 @@ public class MavenJDOMWriter
         findAndReplaceXpp3DOM( innerCount, root, "configuration", (Xpp3Dom) value.getConfiguration() );
         findAndReplaceSimpleElement( innerCount, root, "inherited", value.getInherited(), null );
         findAndReplaceSimpleLists( innerCount, root, value.getReports(), "reports", "report" );
-    } // -- void updateReportSet(ReportSet, String, Counter, Element)
+    }
 
     /**
      * Method updateReporting
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateReporting( Reporting value, String xmlTag, Counter counter, Element element )
     {
@@ -1976,15 +1980,15 @@ public class MavenJDOMWriter
             findAndReplaceSimpleElement( innerCount, root, "outputDirectory", value.getOutputDirectory(), null );
             iterateReportPlugin( innerCount, root, value.getPlugins(), "plugins", "plugin" );
         }
-    } // -- void updateReporting(Reporting, String, Counter, Element)
+    }
 
     /**
      * Method updateRepository
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateRepository( Repository value, String xmlTag, Counter counter, Element element )
     {
@@ -1996,15 +2000,15 @@ public class MavenJDOMWriter
         findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null );
         findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null );
         findAndReplaceSimpleElement( innerCount, root, "layout", value.getLayout(), "default" );
-    } // -- void updateRepository(Repository, String, Counter, Element)
+    }
 
     /**
      * Method updateRepositoryBase
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateRepositoryBase( RepositoryBase value, String xmlTag, Counter counter, Element element )
     {
@@ -2018,15 +2022,15 @@ public class MavenJDOMWriter
             findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null );
             findAndReplaceSimpleElement( innerCount, root, "layout", value.getLayout(), "default" );
         }
-    } // -- void updateRepositoryBase(RepositoryBase, String, Counter, Element)
+    }
 
     /**
      * Method updateRepositoryPolicy
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateRepositoryPolicy( RepositoryPolicy value, String xmlTag, Counter counter, Element element )
     {
@@ -2040,15 +2044,15 @@ public class MavenJDOMWriter
             findAndReplaceSimpleElement( innerCount, root, "updatePolicy", value.getUpdatePolicy(), null );
             findAndReplaceSimpleElement( innerCount, root, "checksumPolicy", value.getChecksumPolicy(), null );
         }
-    } // -- void updateRepositoryPolicy(RepositoryPolicy, String, Counter, Element)
+    }
 
     /**
      * Method updateResource
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateResource( Resource value, String xmlTag, Counter counter, Element element )
     {
@@ -2060,15 +2064,15 @@ public class MavenJDOMWriter
         findAndReplaceSimpleElement( innerCount, root, "directory", value.getDirectory(), null );
         findAndReplaceSimpleLists( innerCount, root, value.getIncludes(), "includes", "include" );
         findAndReplaceSimpleLists( innerCount, root, value.getExcludes(), "excludes", "exclude" );
-    } // -- void updateResource(Resource, String, Counter, Element)
+    }
 
     /**
      * Method updateScm
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateScm( Scm value, String xmlTag, Counter counter, Element element )
     {
@@ -2086,15 +2090,15 @@ public class MavenJDOMWriter
 
             //CHECKSTYLE_ON: LineLength
         }
-    } // -- void updateScm(Scm, String, Counter, Element)
+    }
 
     /**
      * Method updateSite
      *
-     * @param value
-     * @param element
-     * @param counter
-     * @param xmlTag
+     * @param value The value.
+     * @param element {@link Element}
+     * @param counter {@link Counter}
+     * @param xmlTag The XMLTag.
      */
     protected void updateSite( Site value, String xmlTag, Counter counter, Element element )
     {
@@ -2107,15 +2111,16 @@ public class MavenJDOMWriter
             findAndReplaceSimpleElement( innerCount, root, "name", value.getName(), null );
             findAndReplaceSimpleElement( innerCount, root, "url", value.getUrl(), null );
         }
-    } // -- void updateSite(Site, String, Counter, Element)
+    }
 
     /**
      * Method write
      *
-     * @param project
-     * @param stream
-     * @param document
+     * @param project {@link Model}
+     * @param stream {@link OutputStream}
+     * @param document {@link Document}
      * @deprecated
+     * @throws IOException in case of an error.
      */
     public void write( Model project, Document document, OutputStream stream )
         throws IOException
@@ -2126,14 +2131,15 @@ public class MavenJDOMWriter
         format.setIndent( "    " ).setLineSeparator( System.getProperty( "line.separator" ) );
         outputter.setFormat( format );
         outputter.output( document, stream );
-    } // -- void write(Model, Document, OutputStream)
+    }
 
     /**
      * Method write
      *
-     * @param project
-     * @param writer
-     * @param document
+     * @param project {@link Model}
+     * @param writer {@link OutputStreamWriter}
+     * @param document {@link Document}
+     * @throws IOException in case of an error.
      */
     public void write( Model project, Document document, OutputStreamWriter writer )
         throws IOException
@@ -2141,15 +2147,16 @@ public class MavenJDOMWriter
         Format format = Format.getRawFormat();
         format.setEncoding( writer.getEncoding() ).setLineSeparator( System.getProperty( "line.separator" ) );
         write( project, document, writer, format );
-    } // -- void write(Model, Document, OutputStreamWriter)
+    }
 
     /**
      * Method write
      *
-     * @param project
-     * @param jdomFormat
-     * @param writer
-     * @param document
+     * @param project {@link Model}
+     * @param jdomFormat {@link Format}
+     * @param writer {@link Writer}
+     * @param document {@link Document}
+     * @throws IOException in case of an error.
      */
     public void write( Model project, Document document, Writer writer, Format jdomFormat )
         throws IOException
@@ -2158,6 +2165,6 @@ public class MavenJDOMWriter
         XMLOutputter outputter = new XMLOutputter();
         outputter.setFormat( jdomFormat );
         outputter.output( document, writer );
-    } // -- void write(Model, Document, Writer, Format)
+    }
 
 }
diff --git a/src/main/java/org/apache/maven/plugins/shade/resource/ResourceBundleAppendingTransformer.java b/src/main/java/org/apache/maven/plugins/shade/resource/ResourceBundleAppendingTransformer.java
index 39bb908..8214bb1 100644
--- a/src/main/java/org/apache/maven/plugins/shade/resource/ResourceBundleAppendingTransformer.java
+++ b/src/main/java/org/apache/maven/plugins/shade/resource/ResourceBundleAppendingTransformer.java
@@ -46,6 +46,7 @@ public class ResourceBundleAppendingTransformer implements ResourceTransformer
     
     /**
      * the base name of the resource bundle, a fully qualified class name
+     * @param basename The basename.
      */
     public void setBasename( String basename )
     {
diff --git a/src/test/java/org/apache/maven/plugins/shade/resource/ApacheLicenseResourceTransformerTest.java b/src/test/java/org/apache/maven/plugins/shade/resource/ApacheLicenseResourceTransformerTest.java
index 2ea0b94..2c214c0 100644
--- a/src/test/java/org/apache/maven/plugins/shade/resource/ApacheLicenseResourceTransformerTest.java
+++ b/src/test/java/org/apache/maven/plugins/shade/resource/ApacheLicenseResourceTransformerTest.java
@@ -27,7 +27,6 @@ import junit.framework.TestCase;
  * Test for {@link ApacheLicenseResourceTransformer}.
  * 
  * @author Benjamin Bentmann
- * @version $Id$
  */
 public class ApacheLicenseResourceTransformerTest
     extends TestCase
diff --git a/src/test/java/org/apache/maven/plugins/shade/resource/ApacheNoticeResourceTransformerTest.java b/src/test/java/org/apache/maven/plugins/shade/resource/ApacheNoticeResourceTransformerTest.java
index ffcaa99..80dc8b3 100644
--- a/src/test/java/org/apache/maven/plugins/shade/resource/ApacheNoticeResourceTransformerTest.java
+++ b/src/test/java/org/apache/maven/plugins/shade/resource/ApacheNoticeResourceTransformerTest.java
@@ -27,7 +27,6 @@ import junit.framework.TestCase;
  * Test for {@link ApacheNoticeResourceTransformer}.
  * 
  * @author Benjamin Bentmann
- * @version $Id$
  */
 public class ApacheNoticeResourceTransformerTest
     extends TestCase
diff --git a/src/test/java/org/apache/maven/plugins/shade/resource/AppendingTransformerTest.java b/src/test/java/org/apache/maven/plugins/shade/resource/AppendingTransformerTest.java
index 5c1efc0..b54817f 100644
--- a/src/test/java/org/apache/maven/plugins/shade/resource/AppendingTransformerTest.java
+++ b/src/test/java/org/apache/maven/plugins/shade/resource/AppendingTransformerTest.java
@@ -27,7 +27,6 @@ import junit.framework.TestCase;
  * Test for {@link AppendingTransformer}.
  * 
  * @author Benjamin Bentmann
- * @version $Id$
  */
 public class AppendingTransformerTest
     extends TestCase


[maven-shade-plugin] 04/05: [MSHADE-340] - Shaded test jar artifact is not attached to the project

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

khmarbaise pushed a commit to branch MSHADE-339
in repository https://gitbox.apache.org/repos/asf/maven-shade-plugin.git

commit e45e37c7a2bfc9076b43b30a886cfbbd31672bf0
Author: Peter De Maeyer <pe...@gmail.com>
AuthorDate: Wed Dec 25 20:30:16 2019 +0100

    [MSHADE-340] - Shaded test jar artifact is not attached to the project
---
 .../api/pom.xml                                    |  32 +++++
 .../api/src/main/java/Api.java                     |  25 ++++
 .../api/src/test/java/ApiTest.java                 |  28 +++++
 .../impl/pom.xml                                   |  43 +++++++
 .../impl/src/main/java/Impl.java                   |  25 ++++
 .../impl/src/test/java/ImplTest.java               |  28 +++++
 .../pom.xml                                        | 104 ++++++++++++++++
 .../uber-user/pom.xml                              |  68 +++++++++++
 .../uber-user/src/main/java/UberUser.java          |  24 ++++
 .../uber-user/src/test/java/UberUserTest.java      |  30 +++++
 .../uber/pom.xml                                   |  74 ++++++++++++
 .../uber/src/main/java/Uber.java                   |  25 ++++
 .../uber/src/test/java/UberTest.java               |  25 ++++
 .../verify.groovy                                  | 132 +++++++++++++++++++++
 .../apache/maven/plugins/shade/mojo/ShadeMojo.java |   6 +
 15 files changed, 669 insertions(+)

diff --git a/src/it/MSHADE-340_shadedTestJarArtifactAttached/api/pom.xml b/src/it/MSHADE-340_shadedTestJarArtifactAttached/api/pom.xml
new file mode 100644
index 0000000..6b6d7e7
--- /dev/null
+++ b/src/it/MSHADE-340_shadedTestJarArtifactAttached/api/pom.xml
@@ -0,0 +1,32 @@
+<?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.its.shade.stj</groupId>
+        <artifactId>mshade-340-parent</artifactId>
+        <version>1.0</version>
+    </parent>
+    <artifactId>mshade-340-api</artifactId>
+</project>
diff --git a/src/it/MSHADE-340_shadedTestJarArtifactAttached/api/src/main/java/Api.java b/src/it/MSHADE-340_shadedTestJarArtifactAttached/api/src/main/java/Api.java
new file mode 100644
index 0000000..5900a13
--- /dev/null
+++ b/src/it/MSHADE-340_shadedTestJarArtifactAttached/api/src/main/java/Api.java
@@ -0,0 +1,25 @@
+/*
+ * 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.
+ */
+
+/**
+ * Production API class.
+ */
+public class Api
+{
+}
diff --git a/src/it/MSHADE-340_shadedTestJarArtifactAttached/api/src/test/java/ApiTest.java b/src/it/MSHADE-340_shadedTestJarArtifactAttached/api/src/test/java/ApiTest.java
new file mode 100644
index 0000000..53b3902
--- /dev/null
+++ b/src/it/MSHADE-340_shadedTestJarArtifactAttached/api/src/test/java/ApiTest.java
@@ -0,0 +1,28 @@
+/*
+ * 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.
+ */
+
+/**
+ * Test API class.
+ */
+public class ApiTest
+{
+    public static void main(String[] args) {
+        new Api();
+    }
+}
diff --git a/src/it/MSHADE-340_shadedTestJarArtifactAttached/impl/pom.xml b/src/it/MSHADE-340_shadedTestJarArtifactAttached/impl/pom.xml
new file mode 100644
index 0000000..8137187
--- /dev/null
+++ b/src/it/MSHADE-340_shadedTestJarArtifactAttached/impl/pom.xml
@@ -0,0 +1,43 @@
+<?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.its.shade.stj</groupId>
+        <artifactId>mshade-340-parent</artifactId>
+        <version>1.0</version>
+    </parent>
+    <artifactId>mshade-340-impl</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.maven.its.shade.stj</groupId>
+            <artifactId>mshade-340-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.its.shade.stj</groupId>
+            <artifactId>mshade-340-api</artifactId>
+            <type>test-jar</type>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/src/it/MSHADE-340_shadedTestJarArtifactAttached/impl/src/main/java/Impl.java b/src/it/MSHADE-340_shadedTestJarArtifactAttached/impl/src/main/java/Impl.java
new file mode 100644
index 0000000..a2e588b
--- /dev/null
+++ b/src/it/MSHADE-340_shadedTestJarArtifactAttached/impl/src/main/java/Impl.java
@@ -0,0 +1,25 @@
+/*
+ * 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.
+ */
+
+/**
+ * Production implementation class.
+ */
+public class Impl extends Api
+{
+}
diff --git a/src/it/MSHADE-340_shadedTestJarArtifactAttached/impl/src/test/java/ImplTest.java b/src/it/MSHADE-340_shadedTestJarArtifactAttached/impl/src/test/java/ImplTest.java
new file mode 100644
index 0000000..bd2bf41
--- /dev/null
+++ b/src/it/MSHADE-340_shadedTestJarArtifactAttached/impl/src/test/java/ImplTest.java
@@ -0,0 +1,28 @@
+/*
+ * 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.
+ */
+
+/**
+ * Test implementation class.
+ */
+public class ImplTest extends ApiTest
+{
+    public static void main(String[] args) {
+        new Impl();
+    }
+}
diff --git a/src/it/MSHADE-340_shadedTestJarArtifactAttached/pom.xml b/src/it/MSHADE-340_shadedTestJarArtifactAttached/pom.xml
new file mode 100644
index 0000000..6b2fc15
--- /dev/null
+++ b/src/it/MSHADE-340_shadedTestJarArtifactAttached/pom.xml
@@ -0,0 +1,104 @@
+<?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>
+    <groupId>org.apache.maven.its.shade.stj</groupId>
+    <artifactId>mshade-340-parent</artifactId>
+    <packaging>pom</packaging>
+    <version>1.0</version>
+    <modules>
+        <module>api</module>
+        <module>impl</module>
+        <module>uber</module>
+        <module>uber-user</module>
+    </modules>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.apache.maven.its.shade.stj</groupId>
+                <artifactId>mshade-340-api</artifactId>
+                <version>1.0</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.maven.its.shade.stj</groupId>
+                <artifactId>mshade-340-api</artifactId>
+                <version>1.0</version>
+                <type>test-jar</type>
+                <scope>test</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.maven.its.shade.stj</groupId>
+                <artifactId>mshade-340-impl</artifactId>
+                <version>1.0</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.maven.its.shade.stj</groupId>
+                <artifactId>mshade-340-impl</artifactId>
+                <version>1.0</version>
+                <type>test-jar</type>
+                <scope>test</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.maven.its.shade.stj</groupId>
+                <artifactId>mshade-340-uber</artifactId>
+                <version>1.0</version>
+                <classifier>jack-of-all</classifier>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.maven.its.shade.stj</groupId>
+                <artifactId>mshade-340-uber</artifactId>
+                <version>1.0</version>
+                <type>test-jar</type>
+                <classifier>jack-of-all-tests</classifier>
+                <scope>test</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-source-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>jar</goal>
+                            <goal>test-jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <artifactId>maven-jar-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>jar</goal>
+                            <goal>test-jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/src/it/MSHADE-340_shadedTestJarArtifactAttached/uber-user/pom.xml b/src/it/MSHADE-340_shadedTestJarArtifactAttached/uber-user/pom.xml
new file mode 100644
index 0000000..972eb5c
--- /dev/null
+++ b/src/it/MSHADE-340_shadedTestJarArtifactAttached/uber-user/pom.xml
@@ -0,0 +1,68 @@
+<?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.its.shade.stj</groupId>
+        <artifactId>mshade-340-parent</artifactId>
+        <version>1.0</version>
+    </parent>
+    <artifactId>mshade-340-uber-user</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.maven.its.shade.stj</groupId>
+            <artifactId>mshade-340-uber</artifactId>
+            <type>jar</type>
+            <classifier>jack-of-all</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.its.shade.stj</groupId>
+            <artifactId>mshade-340-uber</artifactId>
+            <type>test-jar</type>
+            <classifier>jack-of-all-tests</classifier>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-shade-plugin</artifactId>
+                <version>@project.version@</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>shade</goal>
+                        </goals>
+                        <configuration>
+                            <shadedArtifactAttached>true</shadedArtifactAttached>
+                            <shadedClassifierName>jack-of-all</shadedClassifierName>
+                            <shadeTestJar>true</shadeTestJar>
+                            <createSourcesJar>true</createSourcesJar>
+                            <createTestSourcesJar>true</createTestSourcesJar>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/src/it/MSHADE-340_shadedTestJarArtifactAttached/uber-user/src/main/java/UberUser.java b/src/it/MSHADE-340_shadedTestJarArtifactAttached/uber-user/src/main/java/UberUser.java
new file mode 100644
index 0000000..1697f78
--- /dev/null
+++ b/src/it/MSHADE-340_shadedTestJarArtifactAttached/uber-user/src/main/java/UberUser.java
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+
+public class UberUser
+{
+    Api api;
+    Impl impl;
+}
diff --git a/src/it/MSHADE-340_shadedTestJarArtifactAttached/uber-user/src/test/java/UberUserTest.java b/src/it/MSHADE-340_shadedTestJarArtifactAttached/uber-user/src/test/java/UberUserTest.java
new file mode 100644
index 0000000..7c5715b
--- /dev/null
+++ b/src/it/MSHADE-340_shadedTestJarArtifactAttached/uber-user/src/test/java/UberUserTest.java
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+
+/**
+ * MSHADE-340 The fact that this class compiles verifies the fix.
+ * Without the fix, the (test) dependency cannot be found and compilation fails.
+ * Even though the file exists, it is not correctly attached to the project.
+ */
+public class UberUserTest
+{
+    UberUser uberUser;
+    ApiTest apiTest;
+    ImplTest implTest;
+}
diff --git a/src/it/MSHADE-340_shadedTestJarArtifactAttached/uber/pom.xml b/src/it/MSHADE-340_shadedTestJarArtifactAttached/uber/pom.xml
new file mode 100644
index 0000000..932efb9
--- /dev/null
+++ b/src/it/MSHADE-340_shadedTestJarArtifactAttached/uber/pom.xml
@@ -0,0 +1,74 @@
+<?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.its.shade.stj</groupId>
+        <artifactId>mshade-340-parent</artifactId>
+        <version>1.0</version>
+    </parent>
+    <artifactId>mshade-340-uber</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.maven.its.shade.stj</groupId>
+            <artifactId>mshade-340-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.its.shade.stj</groupId>
+            <artifactId>mshade-340-api</artifactId>
+            <type>test-jar</type>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.its.shade.stj</groupId>
+            <artifactId>mshade-340-impl</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.maven.its.shade.stj</groupId>
+            <artifactId>mshade-340-impl</artifactId>
+            <type>test-jar</type>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-shade-plugin</artifactId>
+                <version>@project.version@</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>shade</goal>
+                        </goals>
+                        <configuration>
+                            <shadedArtifactAttached>true</shadedArtifactAttached>
+                            <shadedClassifierName>jack-of-all</shadedClassifierName>
+                            <shadeTestJar>true</shadeTestJar>
+                            <createSourcesJar>true</createSourcesJar>
+                            <createTestSourcesJar>true</createTestSourcesJar>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/src/it/MSHADE-340_shadedTestJarArtifactAttached/uber/src/main/java/Uber.java b/src/it/MSHADE-340_shadedTestJarArtifactAttached/uber/src/main/java/Uber.java
new file mode 100644
index 0000000..05fd6da
--- /dev/null
+++ b/src/it/MSHADE-340_shadedTestJarArtifactAttached/uber/src/main/java/Uber.java
@@ -0,0 +1,25 @@
+/*
+ * 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.
+ */
+
+/**
+ * Proper class of the uber project.
+ */
+public class Uber
+{
+}
diff --git a/src/it/MSHADE-340_shadedTestJarArtifactAttached/uber/src/test/java/UberTest.java b/src/it/MSHADE-340_shadedTestJarArtifactAttached/uber/src/test/java/UberTest.java
new file mode 100644
index 0000000..68e2a49
--- /dev/null
+++ b/src/it/MSHADE-340_shadedTestJarArtifactAttached/uber/src/test/java/UberTest.java
@@ -0,0 +1,25 @@
+/*
+ * 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.
+ */
+
+/**
+ * Proper test of the uber project.
+ */
+public class UberTest
+{
+}
diff --git a/src/it/MSHADE-340_shadedTestJarArtifactAttached/verify.groovy b/src/it/MSHADE-340_shadedTestJarArtifactAttached/verify.groovy
new file mode 100644
index 0000000..e469af0
--- /dev/null
+++ b/src/it/MSHADE-340_shadedTestJarArtifactAttached/verify.groovy
@@ -0,0 +1,132 @@
+/*
+ * 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.
+ */
+
+def originalUberJar = new File( basedir, "uber/target/mshade-340-uber-1.0.jar" )
+def jackOfAllUberJar = new File( basedir, "uber/target/mshade-340-uber-1.0-jack-of-all.jar" )
+def originalUberTestJar = new File ( basedir, "uber/target/mshade-340-uber-1.0-tests.jar" )
+def jackOfAllUberTestJar = new File ( basedir, "uber/target/mshade-340-uber-1.0-jack-of-all-tests.jar" )
+def originalUberSourcesJar = new File( basedir, "uber/target/mshade-340-uber-1.0-sources.jar" )
+def jackOfAllUberSourcesJar = new File( basedir, "uber/target/mshade-340-uber-1.0-jack-of-all-sources.jar" )
+def originalUberTestSourcesJar = new File ( basedir, "uber/target/mshade-340-uber-1.0-test-sources.jar" )
+def jackOfAllUberTestSourcesJar = new File ( basedir, "uber/target/mshade-340-uber-1.0-jack-of-all-test-sources.jar" )
+
+assert originalUberJar.exists()
+assert jackOfAllUberJar.exists()
+assert originalUberTestJar.exists()
+assert jackOfAllUberTestJar.exists()
+assert originalUberSourcesJar.exists()
+assert jackOfAllUberSourcesJar.exists()
+assert originalUberTestSourcesJar.exists()
+assert jackOfAllUberTestSourcesJar.exists()
+
+def originalUberJarFile = new java.util.jar.JarFile( originalUberJar )
+try
+{
+    assert null == originalUberJarFile.getJarEntry( "Api.class" )
+    assert null == originalUberJarFile.getJarEntry( "Impl.class" )
+    assert null != originalUberJarFile.getJarEntry( "Uber.class" )
+}
+finally
+{
+    originalUberJarFile.close()
+}
+
+def jackOfAllUberJarFile = new java.util.jar.JarFile( jackOfAllUberJar )
+try
+{
+    assert null != jackOfAllUberJarFile.getJarEntry( "Api.class" )
+    assert null != jackOfAllUberJarFile.getJarEntry( "Impl.class" )
+    assert null != jackOfAllUberJarFile.getJarEntry( "Uber.class" )
+}
+finally
+{
+    jackOfAllUberJarFile.close()
+}
+
+def originalUberTestJarFile = new java.util.jar.JarFile( originalUberTestJar )
+try
+{
+    assert null == originalUberTestJarFile.getJarEntry( "ApiTest.class" )
+    assert null == originalUberTestJarFile.getJarEntry( "ImplTest.class" )
+    assert null != originalUberTestJarFile.getJarEntry( "UberTest.class" )
+}
+finally
+{
+    originalUberTestJarFile.close()
+}
+
+def jackOfAllUberTestJarFile = new java.util.jar.JarFile( jackOfAllUberTestJar )
+try
+{
+    assert null != jackOfAllUberTestJarFile.getJarEntry( "ApiTest.class" )
+    assert null != jackOfAllUberTestJarFile.getJarEntry( "ImplTest.class" )
+    assert null != jackOfAllUberTestJarFile.getJarEntry( "UberTest.class" )
+}
+finally
+{
+    jackOfAllUberTestJarFile.close()
+}
+
+def originalUberSourcesJarFile = new java.util.jar.JarFile( originalUberSourcesJar )
+try
+{
+    assert null == originalUberSourcesJarFile.getJarEntry( "Api.java" )
+    assert null == originalUberSourcesJarFile.getJarEntry( "Impl.java" )
+    assert null != originalUberSourcesJarFile.getJarEntry( "Uber.java" )
+}
+finally
+{
+    originalUberSourcesJarFile.close()
+}
+
+def jackOfAllUberSourcesJarFile = new java.util.jar.JarFile( jackOfAllUberSourcesJar )
+try
+{
+    assert null != jackOfAllUberSourcesJarFile.getJarEntry( "Api.java" )
+    assert null != jackOfAllUberSourcesJarFile.getJarEntry( "Impl.java" )
+    assert null != jackOfAllUberSourcesJarFile.getJarEntry( "Uber.java" )
+}
+finally
+{
+    jackOfAllUberSourcesJarFile.close()
+}
+
+def originalUberTestSourcesJarFile = new java.util.jar.JarFile( originalUberTestSourcesJar )
+try
+{
+    assert null == originalUberTestSourcesJarFile.getJarEntry( "ApiTest.java" )
+    assert null == originalUberTestSourcesJarFile.getJarEntry( "ImplTest.java" )
+    assert null != originalUberTestSourcesJarFile.getJarEntry( "UberTest.java" )
+}
+finally
+{
+    originalUberTestSourcesJarFile.close()
+}
+
+def jackOfAllUberTestSourcesJarFile = new java.util.jar.JarFile( jackOfAllUberTestSourcesJar )
+try
+{
+    assert null != jackOfAllUberTestSourcesJarFile.getJarEntry( "ApiTest.java" )
+    assert null != jackOfAllUberTestSourcesJarFile.getJarEntry( "ImplTest.java" )
+    assert null != jackOfAllUberTestSourcesJarFile.getJarEntry( "UberTest.java" )
+}
+finally
+{
+    jackOfAllUberTestSourcesJarFile.close()
+}
diff --git a/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java b/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
index 112c301..9427923 100644
--- a/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
+++ b/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
@@ -542,6 +542,12 @@ public class ShadeMojo
                                                       sourcesJar );
                     }
 
+                    if ( shadeTestJar )
+                    {
+                        projectHelper.attachArtifact( project, "test-jar", shadedClassifierName + "-tests",
+                                                      testJar );
+                    }
+
                     if ( createTestSourcesJar )
                     {
                         projectHelper.attachArtifact( project, "java-source",


[maven-shade-plugin] 01/05: Revert "[maven-release-plugin] prepare release maven-shade-plugin-3.2.2"

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

khmarbaise pushed a commit to branch MSHADE-339
in repository https://gitbox.apache.org/repos/asf/maven-shade-plugin.git

commit f3669a127d394575d3aa88306a46f3d67288b335
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Mon Dec 23 18:45:51 2019 +0100

    Revert "[maven-release-plugin] prepare release maven-shade-plugin-3.2.2"
    
    This reverts commit c848c7ad060d7e8f2afd4b96a71fce7eaddf6ee4.
    
    Failed based on JavaDoc issues.
---
 pom.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pom.xml b/pom.xml
index 0799756..d32b6db 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,7 @@
   </parent>
 
   <artifactId>maven-shade-plugin</artifactId>
-  <version>3.2.2</version>
+  <version>3.2.2-SNAPSHOT</version>
   <packaging>maven-plugin</packaging>
 
   <name>Apache Maven Shade Plugin</name>
@@ -47,7 +47,7 @@
     <connection>scm:git:https://gitbox.apache.org/repos/asf/maven-shade-plugin.git</connection>
     <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/maven-shade-plugin.git</developerConnection>
     <url>https://github.com/apache/maven-shade-plugin/tree/${project.scm.tag}</url>
-    <tag>maven-shade-plugin-3.2.2</tag>
+    <tag>HEAD</tag>
   </scm>
   <issueManagement>
     <system>jira</system>


[maven-shade-plugin] 05/05: [MSHADE-339] - Shaded test jar has wrong type "jar"

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

khmarbaise pushed a commit to branch MSHADE-339
in repository https://gitbox.apache.org/repos/asf/maven-shade-plugin.git

commit f6d44ed53f63f8b5ac9cb0932f7592b35b936655
Author: Peter De Maeyer <pe...@gmail.com>
AuthorDate: Sun Dec 22 20:37:02 2019 +0100

    [MSHADE-339] - Shaded test jar has wrong type "jar"
---
 src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java b/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
index 9427923..61c5cdb 100644
--- a/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
+++ b/src/main/java/org/apache/maven/plugins/shade/mojo/ShadeMojo.java
@@ -579,7 +579,7 @@ public class ShadeMojo
 
                             replaceFile( shadedTests, testJar );
 
-                            projectHelper.attachArtifact( project, "jar", "tests", shadedTests );
+                            projectHelper.attachArtifact( project, "test-jar", "tests", shadedTests );
                         }
 
                         if ( createTestSourcesJar )