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

[maven-jdeprscan-plugin] branch master created (now e3ad788)

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

hboutemy pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/maven-jdeprscan-plugin.git.


      at e3ad788  added classical download.xml.vm

This branch includes the following new commits:

     new 906731b  Initial commit maven-jdeprscan-plugin
     new 6643d43  Improve JDeprScanConsumer
     new aa49376  Add documentation
     new 36641ba  [maven-release-plugin] prepare release maven-jdeprscan-plugin-3.0.0-alpha-1
     new d981c26  [maven-release-plugin] prepare for next development iteration
     new e3ad788  added classical download.xml.vm

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


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

[maven-jdeprscan-plugin] 01/06: Initial commit maven-jdeprscan-plugin

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

hboutemy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-jdeprscan-plugin.git

commit 906731b5908c369def63dac4adac8475e1cc3514
Author: Robert Scholte <rf...@apache.org>
AuthorDate: Sat Oct 14 09:57:50 2017 +0000

    Initial commit maven-jdeprscan-plugin
    
    git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk@1812175 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                            | 124 +++++++++
 .../projects/jdeprscan-default/invoker.properties  |  17 ++
 src/it/projects/jdeprscan-default/pom.xml          |  45 ++++
 .../src/main/java/o/a/m/p/j/its/Main.java          |  32 +++
 src/it/projects/jdeprscan-empty/pom.xml            |  45 ++++
 .../projects/jdeprscan-release7/invoker.properties |  17 ++
 src/it/projects/jdeprscan-release7/pom.xml         |  48 ++++
 .../src/main/java/o/a/m/p/j/its/Deprecations.java  |  29 +++
 src/it/projects/jdeprscan-release7/verify.groovy   |  26 ++
 .../projects/jdeprscan-release8/invoker.properties |  17 ++
 src/it/projects/jdeprscan-release8/pom.xml         |  48 ++++
 .../src/main/java/o/a/m/p/j/its/Deprecations.java  |  29 +++
 src/it/projects/jdeprscan-release8/verify.groovy   |  26 ++
 .../projects/jdeprscan-release9/invoker.properties |  17 ++
 src/it/projects/jdeprscan-release9/pom.xml         |  48 ++++
 .../src/main/java/o/a/m/p/j/its/Deprecations.java  |  29 +++
 src/it/projects/jdeprscan-release9/verify.groovy   |  26 ++
 src/it/projects/list-default/invoker.properties    |  17 ++
 src/it/projects/list-forremoval/invoker.properties |  17 ++
 src/it/projects/list-forremoval/test.properties    |  17 ++
 src/it/projects/list-forremoval/verify.groovy      |  26 ++
 src/it/settings.xml                                |  55 ++++
 .../plugins/jdeprscan/AbstractJDeprScanMojo.java   | 286 +++++++++++++++++++++
 .../maven/plugins/jdeprscan/BaseJDeprScanMojo.java | 125 +++++++++
 .../maven/plugins/jdeprscan/JDeprScanMojo.java     |  64 +++++
 .../apache/maven/plugins/jdeprscan/ListMojo.java   |  58 +++++
 .../maven/plugins/jdeprscan/TestJDeprScanMojo.java |  64 +++++
 .../jdeprscan/consumers/JDeprScanConsumer.java     |  36 +++
 28 files changed, 1388 insertions(+)

diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..fedf1c2
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,124 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.maven.plugins</groupId>
+    <artifactId>maven-plugins</artifactId>
+    <version>28</version>
+    <relativePath>../../pom/maven/maven-plugins/pom.xml</relativePath>
+  </parent>
+
+  <artifactId>maven-jdeprscan-plugin</artifactId>
+  <version>3.0.0-SNAPSHOT</version>
+  <packaging>maven-plugin</packaging>
+
+  <name>Apache Maven JDeprScan Plugin</name>
+  <description>The JDeprScan Plugin uses the jdeprscan tool that scans classes for uses of deprecated API elements.</description>
+  <inceptionYear>2017</inceptionYear>
+
+  <prerequisites>
+    <maven>${mavenVersion}</maven>
+  </prerequisites>
+  
+  <scm>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-jdeprscan-plugin</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-jdeprscan-plugin</developerConnection>
+    <url>http://svn.apache.org/viewvc/maven/plugins/trunk/maven-jdeprscan-plugin</url>
+  </scm>
+  <issueManagement>
+    <system>JIRA</system>
+    <url>https://issues.apache.org/jira/browse/MJDEPRSCAN</url>
+  </issueManagement>
+  <distributionManagement>
+    <site>
+      <id>apache.website</id>
+      <url>scm:svn:https://svn.apache.org/repos/infra/websites/production/maven/components/${maven.site.path}</url>
+    </site>
+  </distributionManagement>
+
+  <properties>
+    <mavenVersion>3.0</mavenVersion>
+    <javaVersion>7</javaVersion>
+  </properties>
+  
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.plugin-tools</groupId>
+      <artifactId>maven-plugin-annotations</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <!-- Maven -->
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>${mavenVersion}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-core</artifactId>
+      <version>${mavenVersion}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-model</artifactId>
+      <version>${mavenVersion}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+      <version>3.1.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-lang3</artifactId>
+      <version>3.5</version>
+    </dependency>
+    
+    <!-- TEST -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.11</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+  
+  <profiles>
+    <profile>
+      <id>run-its</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-invoker-plugin</artifactId>
+            <configuration>
+              <projectsDirectory>src/it/projects</projectsDirectory>
+              <pomIncludes>*</pomIncludes>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+</project>
diff --git a/src/it/projects/jdeprscan-default/invoker.properties b/src/it/projects/jdeprscan-default/invoker.properties
new file mode 100644
index 0000000..cb52a4c
--- /dev/null
+++ b/src/it/projects/jdeprscan-default/invoker.properties
@@ -0,0 +1,17 @@
+# 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.
+invoker.goals = verify
\ No newline at end of file
diff --git a/src/it/projects/jdeprscan-default/pom.xml b/src/it/projects/jdeprscan-default/pom.xml
new file mode 100644
index 0000000..6f58138
--- /dev/null
+++ b/src/it/projects/jdeprscan-default/pom.xml
@@ -0,0 +1,45 @@
+<?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.plugins.jdeprscan.its</groupId>
+  <artifactId>jdeprscan-default</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jdeprscan-plugin</artifactId>
+        <version>@project.version@</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>jdeprscan</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/src/it/projects/jdeprscan-default/src/main/java/o/a/m/p/j/its/Main.java b/src/it/projects/jdeprscan-default/src/main/java/o/a/m/p/j/its/Main.java
new file mode 100644
index 0000000..f842035
--- /dev/null
+++ b/src/it/projects/jdeprscan-default/src/main/java/o/a/m/p/j/its/Main.java
@@ -0,0 +1,32 @@
+package o.a.m.p.j.its;
+
+/*
+ * 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 Main {
+  
+    public static void main( String[] args )
+    {
+        for( String arg : args )
+        {
+          System.out.println( arg ); 
+        }
+    }
+        
+}
\ No newline at end of file
diff --git a/src/it/projects/jdeprscan-empty/pom.xml b/src/it/projects/jdeprscan-empty/pom.xml
new file mode 100644
index 0000000..6f58138
--- /dev/null
+++ b/src/it/projects/jdeprscan-empty/pom.xml
@@ -0,0 +1,45 @@
+<?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.plugins.jdeprscan.its</groupId>
+  <artifactId>jdeprscan-default</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jdeprscan-plugin</artifactId>
+        <version>@project.version@</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>jdeprscan</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/src/it/projects/jdeprscan-release7/invoker.properties b/src/it/projects/jdeprscan-release7/invoker.properties
new file mode 100644
index 0000000..cb52a4c
--- /dev/null
+++ b/src/it/projects/jdeprscan-release7/invoker.properties
@@ -0,0 +1,17 @@
+# 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.
+invoker.goals = verify
\ No newline at end of file
diff --git a/src/it/projects/jdeprscan-release7/pom.xml b/src/it/projects/jdeprscan-release7/pom.xml
new file mode 100644
index 0000000..e4a723e
--- /dev/null
+++ b/src/it/projects/jdeprscan-release7/pom.xml
@@ -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 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.plugins.jdeprscan.its</groupId>
+  <artifactId>jdeprscan-release7</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jdeprscan-plugin</artifactId>
+        <version>@project.version@</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>jdeprscan</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <release>7</release>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/src/it/projects/jdeprscan-release7/src/main/java/o/a/m/p/j/its/Deprecations.java b/src/it/projects/jdeprscan-release7/src/main/java/o/a/m/p/j/its/Deprecations.java
new file mode 100644
index 0000000..373dd32
--- /dev/null
+++ b/src/it/projects/jdeprscan-release7/src/main/java/o/a/m/p/j/its/Deprecations.java
@@ -0,0 +1,29 @@
+package o.a.m.p.j.its;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ 
+import java.rmi.RMISecurityManager;
+
+public class Deprecations {
+  
+   SecurityManager sm = new RMISecurityManager();    // deprecated in 8
+    
+   Boolean b2 = new Boolean(true);          // deprecated in 9          
+}
\ No newline at end of file
diff --git a/src/it/projects/jdeprscan-release7/verify.groovy b/src/it/projects/jdeprscan-release7/verify.groovy
new file mode 100644
index 0000000..78a0e4a
--- /dev/null
+++ b/src/it/projects/jdeprscan-release7/verify.groovy
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ 
+def buildLog = new File( basedir, 'build.log' )
+
+assert !buildLog.text.contains( "class o/a/m/p/j/its/Deprecations uses deprecated class java/rmi/RMISecurityManager" )
+assert !buildLog.text.contains( "class o/a/m/p/j/its/Deprecations uses deprecated method java/lang/Boolean::<init>(Z)V" )
+ 
+
+
diff --git a/src/it/projects/jdeprscan-release8/invoker.properties b/src/it/projects/jdeprscan-release8/invoker.properties
new file mode 100644
index 0000000..cb52a4c
--- /dev/null
+++ b/src/it/projects/jdeprscan-release8/invoker.properties
@@ -0,0 +1,17 @@
+# 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.
+invoker.goals = verify
\ No newline at end of file
diff --git a/src/it/projects/jdeprscan-release8/pom.xml b/src/it/projects/jdeprscan-release8/pom.xml
new file mode 100644
index 0000000..63cc5ce
--- /dev/null
+++ b/src/it/projects/jdeprscan-release8/pom.xml
@@ -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 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.plugins.jdeprscan.its</groupId>
+  <artifactId>jdeprscan-release8</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jdeprscan-plugin</artifactId>
+        <version>@project.version@</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>jdeprscan</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <release>8</release>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/src/it/projects/jdeprscan-release8/src/main/java/o/a/m/p/j/its/Deprecations.java b/src/it/projects/jdeprscan-release8/src/main/java/o/a/m/p/j/its/Deprecations.java
new file mode 100644
index 0000000..373dd32
--- /dev/null
+++ b/src/it/projects/jdeprscan-release8/src/main/java/o/a/m/p/j/its/Deprecations.java
@@ -0,0 +1,29 @@
+package o.a.m.p.j.its;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ 
+import java.rmi.RMISecurityManager;
+
+public class Deprecations {
+  
+   SecurityManager sm = new RMISecurityManager();    // deprecated in 8
+    
+   Boolean b2 = new Boolean(true);          // deprecated in 9          
+}
\ No newline at end of file
diff --git a/src/it/projects/jdeprscan-release8/verify.groovy b/src/it/projects/jdeprscan-release8/verify.groovy
new file mode 100644
index 0000000..908cb94
--- /dev/null
+++ b/src/it/projects/jdeprscan-release8/verify.groovy
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ 
+def buildLog = new File( basedir, 'build.log' )
+
+assert buildLog.text.contains( "class o/a/m/p/j/its/Deprecations uses deprecated class java/rmi/RMISecurityManager" )
+assert !buildLog.text.contains( "class o/a/m/p/j/its/Deprecations uses deprecated method java/lang/Boolean::<init>(Z)V" )
+ 
+
+
diff --git a/src/it/projects/jdeprscan-release9/invoker.properties b/src/it/projects/jdeprscan-release9/invoker.properties
new file mode 100644
index 0000000..cb52a4c
--- /dev/null
+++ b/src/it/projects/jdeprscan-release9/invoker.properties
@@ -0,0 +1,17 @@
+# 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.
+invoker.goals = verify
\ No newline at end of file
diff --git a/src/it/projects/jdeprscan-release9/pom.xml b/src/it/projects/jdeprscan-release9/pom.xml
new file mode 100644
index 0000000..276389d
--- /dev/null
+++ b/src/it/projects/jdeprscan-release9/pom.xml
@@ -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 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.plugins.jdeprscan.its</groupId>
+  <artifactId>jdeprscan-release9</artifactId>
+  <version>1.0.0-SNAPSHOT</version>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jdeprscan-plugin</artifactId>
+        <version>@project.version@</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>jdeprscan</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <release>9</release>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/src/it/projects/jdeprscan-release9/src/main/java/o/a/m/p/j/its/Deprecations.java b/src/it/projects/jdeprscan-release9/src/main/java/o/a/m/p/j/its/Deprecations.java
new file mode 100644
index 0000000..373dd32
--- /dev/null
+++ b/src/it/projects/jdeprscan-release9/src/main/java/o/a/m/p/j/its/Deprecations.java
@@ -0,0 +1,29 @@
+package o.a.m.p.j.its;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ 
+import java.rmi.RMISecurityManager;
+
+public class Deprecations {
+  
+   SecurityManager sm = new RMISecurityManager();    // deprecated in 8
+    
+   Boolean b2 = new Boolean(true);          // deprecated in 9          
+}
\ No newline at end of file
diff --git a/src/it/projects/jdeprscan-release9/verify.groovy b/src/it/projects/jdeprscan-release9/verify.groovy
new file mode 100644
index 0000000..4478900
--- /dev/null
+++ b/src/it/projects/jdeprscan-release9/verify.groovy
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ 
+def buildLog = new File( basedir, 'build.log' )
+
+assert buildLog.text.contains( "class o/a/m/p/j/its/Deprecations uses deprecated class java/rmi/RMISecurityManager" )
+assert buildLog.text.contains( "class o/a/m/p/j/its/Deprecations uses deprecated method java/lang/Boolean::<init>(Z)V" )
+ 
+
+
diff --git a/src/it/projects/list-default/invoker.properties b/src/it/projects/list-default/invoker.properties
new file mode 100644
index 0000000..27b10b0
--- /dev/null
+++ b/src/it/projects/list-default/invoker.properties
@@ -0,0 +1,17 @@
+# 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.
+invoker.goals = org.apache.maven.plugins:maven-jdeprscan-plugin:list
\ No newline at end of file
diff --git a/src/it/projects/list-forremoval/invoker.properties b/src/it/projects/list-forremoval/invoker.properties
new file mode 100644
index 0000000..27b10b0
--- /dev/null
+++ b/src/it/projects/list-forremoval/invoker.properties
@@ -0,0 +1,17 @@
+# 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.
+invoker.goals = org.apache.maven.plugins:maven-jdeprscan-plugin:list
\ No newline at end of file
diff --git a/src/it/projects/list-forremoval/test.properties b/src/it/projects/list-forremoval/test.properties
new file mode 100644
index 0000000..3bef1b6
--- /dev/null
+++ b/src/it/projects/list-forremoval/test.properties
@@ -0,0 +1,17 @@
+# 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.
+for-removal = true
\ No newline at end of file
diff --git a/src/it/projects/list-forremoval/verify.groovy b/src/it/projects/list-forremoval/verify.groovy
new file mode 100644
index 0000000..e9ca1dd
--- /dev/null
+++ b/src/it/projects/list-forremoval/verify.groovy
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ 
+def buildLog = new File( basedir, 'build.log' )
+
+def deprLines = buildLog.readLines().findAll { it =~ /^@Deprecated/ }
+assert !deprLines.isEmpty()
+ 
+def frLines = deprLines.findAll { it =~ /forRemoval=true/  }
+assert deprLines.size() == frLines.size()
\ No newline at end of file
diff --git a/src/it/settings.xml b/src/it/settings.xml
new file mode 100644
index 0000000..35dbcec
--- /dev/null
+++ b/src/it/settings.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
+  <profiles>
+    <profile>
+      <id>it-repo</id>
+      <repositories>
+        <repository>
+          <id>local.central</id>
+          <url>@localRepositoryUrl@</url>
+          <releases>
+            <enabled>true</enabled>
+          </releases>
+          <snapshots>
+            <enabled>true</enabled>
+          </snapshots>
+        </repository>
+      </repositories>
+      <pluginRepositories>
+        <pluginRepository>
+          <id>local.central</id>
+          <url>@localRepositoryUrl@</url>
+          <releases>
+            <enabled>true</enabled>
+          </releases>
+          <snapshots>
+            <enabled>true</enabled>
+          </snapshots>
+        </pluginRepository>
+      </pluginRepositories>
+    </profile>
+  </profiles>
+  <activeProfiles>
+    <activeProfile>it-repo</activeProfile>
+  </activeProfiles>
+</settings>
diff --git a/src/main/java/org/apache/maven/plugins/jdeprscan/AbstractJDeprScanMojo.java b/src/main/java/org/apache/maven/plugins/jdeprscan/AbstractJDeprScanMojo.java
new file mode 100644
index 0000000..d712345
--- /dev/null
+++ b/src/main/java/org/apache/maven/plugins/jdeprscan/AbstractJDeprScanMojo.java
@@ -0,0 +1,286 @@
+package org.apache.maven.plugins.jdeprscan;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.StringTokenizer;
+
+import org.apache.commons.lang3.SystemUtils;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.jdeprscan.consumers.JDeprScanConsumer;
+import org.apache.maven.toolchain.Toolchain;
+import org.apache.maven.toolchain.ToolchainManager;
+import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
+import org.codehaus.plexus.util.cli.Commandline;
+
+/**
+ * Abstract class for all mojos
+ * 
+ * @author Robert Scholte
+ * @since 3.0.0
+ */
+public abstract class AbstractJDeprScanMojo
+    extends AbstractMojo
+{
+    @Parameter( defaultValue = "${session}", readonly = true, required = true )
+    private MavenSession session;
+    
+    
+    @Parameter()
+
+    @Component
+    private ToolchainManager toolchainManager;
+
+    @Override
+    public void execute()
+        throws MojoExecutionException, MojoFailureException
+    {
+        String jExecutable;
+        try
+        {
+            jExecutable = getJDeprScanExecutable();
+        }
+        catch ( IOException e )
+        {
+            throw new MojoFailureException( "Unable to find jdeprscan command: " + e.getMessage(), e );
+        }
+
+        // Synopsis
+        // jdeprscan [options] {dir|jar|class} ...
+        Commandline cmd = new Commandline();
+        cmd.setExecutable( jExecutable );
+
+        addJDeprScanOptions( cmd );
+
+        executeJDeprScanCommandLine( cmd, new JDeprScanConsumer() );
+    }
+    
+    protected abstract boolean isForRemoval();
+
+    protected void addJDeprScanOptions( Commandline cmd ) throws MojoFailureException
+    {
+        if ( isForRemoval() )
+        {
+            cmd.createArg().setValue( "--for-removal" );
+        }
+    }
+
+    private String getJDeprScanExecutable()
+        throws IOException
+    {
+        Toolchain tc = getToolchain();
+
+        String jdeprscanExecutable = null;
+        if ( tc != null )
+        {
+            jdeprscanExecutable = tc.findTool( "jdeprscan" );
+        }
+
+        String jdepsCommand = "jdeprscan" + ( SystemUtils.IS_OS_WINDOWS ? ".exe" : "" );
+
+        File jdeprscanExe;
+
+        if ( StringUtils.isNotEmpty( jdeprscanExecutable ) )
+        {
+            jdeprscanExe = new File( jdeprscanExecutable );
+
+            if ( jdeprscanExe.isDirectory() )
+            {
+                jdeprscanExe = new File( jdeprscanExe, jdepsCommand );
+            }
+
+            if ( SystemUtils.IS_OS_WINDOWS && jdeprscanExe.getName().indexOf( '.' ) < 0 )
+            {
+                jdeprscanExe = new File( jdeprscanExe.getPath() + ".exe" );
+            }
+
+            if ( !jdeprscanExe.isFile() )
+            {
+                throw new IOException( "The jdeprscan executable '" + jdeprscanExe
+                    + "' doesn't exist or is not a file." );
+            }
+            return jdeprscanExe.getAbsolutePath();
+        }
+
+        jdeprscanExe =
+            new File( SystemUtils.getJavaHome() + File.separator + ".." + File.separator + "sh", jdepsCommand );
+
+        // ----------------------------------------------------------------------
+        // Try to find jdepsExe from JAVA_HOME environment variable
+        // ----------------------------------------------------------------------
+        if ( !jdeprscanExe.exists() || !jdeprscanExe.isFile() )
+        {
+            Properties env = CommandLineUtils.getSystemEnvVars();
+            String javaHome = env.getProperty( "JAVA_HOME" );
+            if ( StringUtils.isEmpty( javaHome ) )
+            {
+                throw new IOException( "The environment variable JAVA_HOME is not correctly set." );
+            }
+            if ( ( !new File( javaHome ).getCanonicalFile().exists() )
+                || ( new File( javaHome ).getCanonicalFile().isFile() ) )
+            {
+                throw new IOException( "The environment variable JAVA_HOME=" + javaHome
+                    + " doesn't exist or is not a valid directory." );
+            }
+
+            jdeprscanExe = new File( javaHome + File.separator + "bin", jdepsCommand );
+        }
+
+        if ( !jdeprscanExe.getCanonicalFile().exists() || !jdeprscanExe.getCanonicalFile().isFile() )
+        {
+            throw new IOException( "The jdeps executable '" + jdeprscanExe
+                + "' doesn't exist or is not a file. Verify the JAVA_HOME environment variable." );
+        }
+
+        return jdeprscanExe.getAbsolutePath();
+    }
+
+    private void executeJDeprScanCommandLine( Commandline cmd,
+                                          CommandLineUtils.StringStreamConsumer consumer )
+        throws MojoExecutionException
+    {
+        if ( getLog().isDebugEnabled() )
+        {
+            // no quoted arguments
+            getLog().debug( "Executing: " + CommandLineUtils.toString( cmd.getCommandline() ).replaceAll( "'", "" ) );
+        }
+
+        CommandLineUtils.StringStreamConsumer err = new CommandLineUtils.StringStreamConsumer();
+        CommandLineUtils.StringStreamConsumer out;
+        if ( consumer != null )
+        {
+            out = consumer;
+        }
+        else
+        {
+            out = new CommandLineUtils.StringStreamConsumer();
+        }
+
+        try
+        {
+            int exitCode = CommandLineUtils.executeCommandLine( cmd, out, err );
+
+            String output = ( StringUtils.isEmpty( out.getOutput() ) ? null : '\n' + out.getOutput().trim() );
+
+            if ( exitCode != 0 )
+            {
+                if ( StringUtils.isNotEmpty( output ) )
+                {
+                    getLog().info( output );
+                }
+
+                StringBuilder msg = new StringBuilder( "\nExit code: " );
+                msg.append( exitCode );
+                if ( StringUtils.isNotEmpty( err.getOutput() ) )
+                {
+                    msg.append( " - " ).append( err.getOutput() );
+                }
+                msg.append( '\n' );
+                msg.append( "Command line was: " ).append( cmd ).append( '\n' ).append( '\n' );
+
+                throw new MojoExecutionException( msg.toString() );
+            }
+
+            if ( StringUtils.isNotEmpty( output ) )
+            {
+                getLog().info( output );
+            }
+        }
+        catch ( CommandLineException e )
+        {
+            throw new MojoExecutionException( "Unable to execute jdeprscan command: " + e.getMessage(), e );
+        }
+
+        // ----------------------------------------------------------------------
+        // Handle JDeprScan warnings
+        // ----------------------------------------------------------------------
+
+        if ( StringUtils.isNotEmpty( err.getOutput() ) && getLog().isWarnEnabled() )
+        {
+            getLog().warn( "JDeprScan Warnings" );
+
+            StringTokenizer token = new StringTokenizer( err.getOutput(), "\n" );
+            while ( token.hasMoreTokens() )
+            {
+                String current = token.nextToken().trim();
+
+                getLog().warn( current );
+            }
+        }
+    }
+
+    private Toolchain getToolchain()
+    {
+        Toolchain tc = null;
+        if ( toolchainManager != null )
+        {
+            tc = toolchainManager.getToolchainFromBuildContext( "jdk", session );
+
+            if ( tc == null )
+            {
+                // Maven 3.2.6 has plugin execution scoped Toolchain Support
+                try
+                {
+                    Method getToolchainsMethod =
+                        toolchainManager.getClass().getMethod( "getToolchains", MavenSession.class, String.class,
+                                                               Map.class );
+
+                    @SuppressWarnings( "unchecked" )
+                    List<Toolchain> tcs =
+                        (List<Toolchain>) getToolchainsMethod.invoke( toolchainManager, session, "jdk",
+                                                                      Collections.singletonMap( "version", "[9,)" ) );
+
+                    if ( tcs != null && tcs.size() > 0 )
+                    {
+                        // pick up latest, jdeps of JDK9 has more options compared to JDK8
+                        tc = tcs.get( tcs.size() - 1 );
+                    }
+                }
+                catch ( ReflectiveOperationException e )
+                {
+                    // ignore
+                }
+                catch ( SecurityException e )
+                {
+                    // ignore
+                }
+                catch ( IllegalArgumentException e )
+                {
+                    // ignore
+                }
+            }
+        }
+
+        return tc;
+    }
+}
diff --git a/src/main/java/org/apache/maven/plugins/jdeprscan/BaseJDeprScanMojo.java b/src/main/java/org/apache/maven/plugins/jdeprscan/BaseJDeprScanMojo.java
new file mode 100644
index 0000000..97cb8f8
--- /dev/null
+++ b/src/main/java/org/apache/maven/plugins/jdeprscan/BaseJDeprScanMojo.java
@@ -0,0 +1,125 @@
+package org.apache.maven.plugins.jdeprscan;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Collection;
+
+import org.apache.maven.artifact.DependencyResolutionRequiredException;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.cli.Commandline;
+
+/**
+ * Base class for all explicit jdeprscan mojos
+ * 
+ * @author Robert Scholte
+ * @since 3.0.0
+ */
+public abstract class BaseJDeprScanMojo extends AbstractJDeprScanMojo
+{
+    @Parameter( defaultValue = "${project}", readonly = true, required = true )
+    private MavenProject project;
+
+    /**
+     * Indicates whether the build will continue even if there are jdeprscan warnings.
+     */
+    @Parameter( defaultValue = "true" )
+    private boolean failOnWarning;
+    
+    /**
+     * Limits scanning or listing to APIs that are deprecated for removal. 
+     * Can’t be used with a release value of 6, 7, or 8.
+     */
+    @Parameter( property = "maven.jdeprscan.forremoval" )
+    private boolean forRemoval;
+
+    /**
+     * Specifies the Java SE release that provides the set of deprecated APIs for scanning.
+     */
+    @Parameter
+    private String release;
+    
+    @Override
+    public void execute()
+        throws MojoExecutionException, MojoFailureException
+    {
+        if ( !Files.exists( getClassesDirectory() ) )
+        {
+            getLog().debug( "No classes to analyze" );
+            return;
+        }
+        super.execute();
+    }
+
+    protected MavenProject getProject()
+    {
+        return project;
+    }
+    
+    @Override
+    protected boolean isForRemoval()
+    {
+        return forRemoval;
+    }
+    
+    @Override
+    protected final void addJDeprScanOptions( Commandline cmd ) throws MojoFailureException
+    {
+        super.addJDeprScanOptions( cmd );
+
+        if ( release != null )
+        {
+            cmd.createArg().setValue( "--release" );
+
+            cmd.createArg().setValue( release );
+        }
+
+        try
+        {
+            Collection<Path> cp = getClassPath();
+            
+            if ( !cp.isEmpty() )
+            {
+                cmd.createArg().setValue( "--class-path" );
+
+                cmd.createArg().setValue( StringUtils.join( cp.iterator(), File.pathSeparator ) );
+            }
+            
+        }
+        catch ( DependencyResolutionRequiredException e )
+        {
+            throw new MojoFailureException( e.getMessage(), e );
+        }
+        
+        cmd.createArg().setFile( getClassesDirectory().toFile() );
+    }
+    
+
+    protected abstract Path getClassesDirectory();
+    
+    protected abstract Collection<Path> getClassPath() throws DependencyResolutionRequiredException;
+}
diff --git a/src/main/java/org/apache/maven/plugins/jdeprscan/JDeprScanMojo.java b/src/main/java/org/apache/maven/plugins/jdeprscan/JDeprScanMojo.java
new file mode 100644
index 0000000..7da7982
--- /dev/null
+++ b/src/main/java/org/apache/maven/plugins/jdeprscan/JDeprScanMojo.java
@@ -0,0 +1,64 @@
+package org.apache.maven.plugins.jdeprscan;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Collection;
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+import org.apache.maven.artifact.DependencyResolutionRequiredException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+
+/**
+ * Scans main classes with jdeprscan tool
+ * 
+ * @author Robert Scholte
+ * @since 3.0.0
+ */
+@Mojo( name = "jdeprscan", 
+       requiresDependencyResolution = ResolutionScope.COMPILE,
+       defaultPhase = LifecyclePhase.PROCESS_CLASSES, 
+       threadSafe = true )
+public class JDeprScanMojo extends BaseJDeprScanMojo
+{
+    @Override
+    protected Path getClassesDirectory()
+    {
+        return Paths.get( getProject().getBuild().getOutputDirectory() );
+    }
+    
+    @Override
+    protected Collection<Path> getClassPath()
+        throws DependencyResolutionRequiredException
+    {
+        Set<Path> classPath = new LinkedHashSet<>( getProject().getCompileClasspathElements().size() );
+
+        for ( String elm : getProject().getCompileClasspathElements() )
+        {
+            classPath.add( Paths.get( elm ) );
+        }
+
+        return classPath;
+    }
+}
diff --git a/src/main/java/org/apache/maven/plugins/jdeprscan/ListMojo.java b/src/main/java/org/apache/maven/plugins/jdeprscan/ListMojo.java
new file mode 100644
index 0000000..d4a19d0
--- /dev/null
+++ b/src/main/java/org/apache/maven/plugins/jdeprscan/ListMojo.java
@@ -0,0 +1,58 @@
+package org.apache.maven.plugins.jdeprscan;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.codehaus.plexus.util.cli.Commandline;
+
+/**
+ * Prints the set of deprecated APIs. No scanning is done.
+ * 
+ * @author Robert Scholte
+ * @since 3.0.0
+ */
+@Mojo( name = "list", requiresProject = false, requiresDirectInvocation = true )
+public class ListMojo
+    extends AbstractJDeprScanMojo
+{
+    /**
+     * Limits scanning or listing to APIs that are deprecated for removal. Can’t be used with a release value of 6, 7,
+     * or 8.
+     */
+    @Parameter( property = "for-removal" )
+    private boolean forRemoval;
+
+    @Override
+    protected boolean isForRemoval()
+    {
+        return forRemoval;
+    }
+
+    @Override
+    protected void addJDeprScanOptions( Commandline cmd )
+        throws MojoFailureException
+    {
+        super.addJDeprScanOptions( cmd );
+
+        cmd.createArg().setValue( "--list" );
+    }
+}
diff --git a/src/main/java/org/apache/maven/plugins/jdeprscan/TestJDeprScanMojo.java b/src/main/java/org/apache/maven/plugins/jdeprscan/TestJDeprScanMojo.java
new file mode 100644
index 0000000..88cee58
--- /dev/null
+++ b/src/main/java/org/apache/maven/plugins/jdeprscan/TestJDeprScanMojo.java
@@ -0,0 +1,64 @@
+package org.apache.maven.plugins.jdeprscan;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Collection;
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+import org.apache.maven.artifact.DependencyResolutionRequiredException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+
+/**
+ * Scans test classes with jdeprscan
+ * 
+ * @author Robert Scholte
+ * @since 3.0.0
+ */
+@Mojo( name = "test-jdeprscan", 
+       requiresDependencyResolution = ResolutionScope.TEST, 
+       defaultPhase = LifecyclePhase.PROCESS_TEST_CLASSES, 
+       threadSafe = true )
+public class TestJDeprScanMojo extends BaseJDeprScanMojo
+{
+    @Override
+    protected Path getClassesDirectory()
+    {
+        return Paths.get( getProject().getBuild().getTestOutputDirectory() );
+    }
+    
+    @Override
+    protected Collection<Path> getClassPath()
+        throws DependencyResolutionRequiredException
+    {
+        Set<Path> classPath = new LinkedHashSet<>( getProject().getTestClasspathElements().size() );
+
+        for ( String elm : getProject().getTestClasspathElements() )
+        {
+            classPath.add( Paths.get( elm ) );
+        }
+
+        return classPath;
+    }
+}
diff --git a/src/main/java/org/apache/maven/plugins/jdeprscan/consumers/JDeprScanConsumer.java b/src/main/java/org/apache/maven/plugins/jdeprscan/consumers/JDeprScanConsumer.java
new file mode 100644
index 0000000..3983efd
--- /dev/null
+++ b/src/main/java/org/apache/maven/plugins/jdeprscan/consumers/JDeprScanConsumer.java
@@ -0,0 +1,36 @@
+package org.apache.maven.plugins.jdeprscan.consumers;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.codehaus.plexus.util.cli.CommandLineUtils;
+import org.codehaus.plexus.util.cli.StreamConsumer;
+
+/**
+ * Consumes output of jdeprscan tool
+ * 
+ * @author Robert Scholte
+ * @since 3.0.0
+ */
+public class JDeprScanConsumer
+    extends CommandLineUtils.StringStreamConsumer
+    implements StreamConsumer
+{
+
+}

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

[maven-jdeprscan-plugin] 03/06: Add documentation

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

hboutemy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-jdeprscan-plugin.git

commit aa493765d00d21739f8991c18c6e305a33794676
Author: Robert Scholte <rf...@apache.org>
AuthorDate: Sun Nov 5 15:20:02 2017 +0000

    Add documentation
    
    git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk@1814359 13f79535-47bb-0310-9956-ffa450edef68
---
 src/site/apt/index.apt.vm       | 76 +++++++++++++++++++++++++++++++++++++++++
 src/site/apt/usage.apt.vm       | 69 +++++++++++++++++++++++++++++++++++++
 src/site/resources/download.cgi | 22 ++++++++++++
 src/site/site.xml               | 40 ++++++++++++++++++++++
 4 files changed, 207 insertions(+)

diff --git a/src/site/apt/index.apt.vm b/src/site/apt/index.apt.vm
new file mode 100644
index 0000000..ae8f8d5
--- /dev/null
+++ b/src/site/apt/index.apt.vm
@@ -0,0 +1,76 @@
+  ------
+  Introduction
+  ------
+  Robert Scholte
+  ------
+  2017-11-05
+  ------
+
+~~ Licensed to the Apache Software Foundation (ASF) under one
+~~ or more contributor license agreements.  See the NOTICE file
+~~ distributed with this work for additional information
+~~ regarding copyright ownership.  The ASF licenses this file
+~~ to you under the Apache License, Version 2.0 (the
+~~ "License"); you may not use this file except in compliance
+~~ with the License.  You may obtain a copy of the License at
+~~
+~~   http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~ Unless required by applicable law or agreed to in writing,
+~~ software distributed under the License is distributed on an
+~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+~~ KIND, either express or implied.  See the License for the
+~~ specific language governing permissions and limitations
+~~ under the License.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/doxia/references/apt-format.html
+
+${project.name}
+
+  The Maven JDeprScan plugin is used to scan class files for uses of deprecated API elements.
+    
+  NOTE: This is an alpha release which means everything can change until we reach the first
+  milestone release.
+
+* Goals Overview
+
+  The JDeprScan Plugin has four goals:
+
+  * {{{./jdeprscan-mojo.html}jdeprscan:jdeprscan}} scans the main sources for deprecated APIs.
+
+  * {{{./test-jdeprscan-mojo.html}jdeprscan:test-jdeprscan}} scans the test sources for deprecated APIs.
+
+  * {{{./list-mojo.html}jdeprscan:list}} Prints the set of deprecated APIs. 
+    No scanning is done, so no directory, jar, or class arguments should be provided.
+
+  * {{{./help-mojo.html}jdeprscan:help}} displays help information on maven-jdeprscan-plugin.
+
+  []
+
+* Usage
+
+  General instructions on how to use the JDeprScan Plugin can be found on the {{{./usage.html}usage page}}. Some more
+  specific use cases are described in the examples given below.
+
+  In case you still have questions regarding the plugin's usage, please have a look at the {{{./faq.html}FAQ}} and feel
+  free to contact the {{{./mail-lists.html}user mailing list}}. The posts to the mailing list are archived and could
+  already contain the answer to your question as part of an older thread. Hence, it is also worth browsing/searching
+  the {{{./mail-lists.html}mail archive}}.
+
+  If you feel like the plugin is missing a feature or has a defect, you can fill a feature request or bug report in our
+  {{{./issue-tracking.html}issue tracker}}. When creating a new issue, please provide a comprehensive description of your
+  concern. Especially for fixing bugs it is crucial that the developers can reproduce your problem. For this reason,
+  entire debug logs, POMs or most preferably little demo projects attached to the issue are very much appreciated.
+  Of course, patches are welcome, too. Contributors can check out the project from our
+  {{{./source-repository.html}source repository}} and will find supplementary information in the
+  {{{http://maven.apache.org/guides/development/guide-helping.html}guide to helping with Maven}}.
+
+* Examples
+
+  To provide you with better understanding on some usages of the Maven JDeprScan Plugin,
+  you can take a look into the following examples:
+
+  TODO: Add examples.
+
+  []
diff --git a/src/site/apt/usage.apt.vm b/src/site/apt/usage.apt.vm
new file mode 100644
index 0000000..8a1a059
--- /dev/null
+++ b/src/site/apt/usage.apt.vm
@@ -0,0 +1,69 @@
+  ------
+  Usage
+  ------
+  Robert Scholte
+  ------
+  2017-11-05
+
+~~ Copyright 2006 The Apache Software Foundation.
+~~
+~~ Licensed under the Apache License, Version 2.0 (the "License");
+~~ you may not use this file except in compliance with the License.
+~~ You may obtain a copy of the License at
+~~
+~~      http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~ Unless required by applicable law or agreed to in writing, software
+~~ distributed under the License is distributed on an "AS IS" BASIS,
+~~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+~~ See the License for the specific language governing permissions and
+~~ limitations under the License.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/doxia/references/apt-format.html
+
+
+Usage
+
+* Introduction
+
+  The Maven JDeprScan plugin is used to scan class files for uses of deprecated API elements.
+  
+* Configuration of the Maven JDeprScan Plugin
+
+  To use the Maven JDeprScan Plugin you have to configure it as an <<<extensions>>> which means
+  the configuration in your pom file has to look like this:
+  
++-----
+<project>
+  [...]
+  <build>
+    [...]
+    <plugins>
+      [...]
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jdeprscan-plugin</artifactId>
+        <version>${project.version}</version>
+        <configuration>
+          <!-- configuration elements goes here -->
+        </configuration>
+      </plugin>
+   [...]
+</project>
++-----
+
+  The configuration element contains the configuration for the plugin 
+  {{{https://maven.apache.org/guides/mini/guide-configuring-plugins.html}like any other Maven plugin}}.
+  The different elements which can be configured for this plugin can identified by the
+  {{{./plugin-info.html}goals documentation}}.
+
+* Requirements
+
+  Based on the foundation of the plugin it is required to have JDK 9 installed. This means
+  either you have it configured via <<JAVA_HOME>> which means to run the whole
+  Maven build with JDK 9 or via <<Toolchains>>.
+
+  How to configure Maven related to Toolchains can be read in the
+  {{{https://maven.apache.org/guides/mini/guide-using-toolchains.html}Toolchains documentation}}.
+
diff --git a/src/site/resources/download.cgi b/src/site/resources/download.cgi
new file mode 100644
index 0000000..1b178d2
--- /dev/null
+++ b/src/site/resources/download.cgi
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+# 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.
+#
+# Just call the standard mirrors.cgi script. It will use download.html
+# as the input template.
+exec /www/www.apache.org/dyn/mirrors/mirrors.cgi $*
\ No newline at end of file
diff --git a/src/site/site.xml b/src/site/site.xml
new file mode 100644
index 0000000..472e6aa
--- /dev/null
+++ b/src/site/site.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+<project xmlns="http://maven.apache.org/DECORATION/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 http://maven.apache.org/xsd/decoration-1.0.0.xsd"
+>
+  <custom>
+    <fluidoSkin>
+      <profile>pre-release</profile>
+    </fluidoSkin>
+  </custom>
+  <body>
+    <menu name="Overview">
+      <item name="Introduction" href="index.html" />
+      <item name="Goals" href="plugin-info.html" />
+      <item name="Usage" href="usage.html" />
+      <!-- According to https://issues.apache.org/jira/browse/MNGSITE-152 -->
+      <item name="License" href="http://www.apache.org/licenses/" />
+      <item name="Download" href="download.html" />
+    </menu>
+  </body>
+</project>

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

[maven-jdeprscan-plugin] 04/06: [maven-release-plugin] prepare release maven-jdeprscan-plugin-3.0.0-alpha-1

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

hboutemy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-jdeprscan-plugin.git

commit 36641ba0b618bf1e8bf84c51ac4f07e60cf0c01b
Author: Robert Scholte <rf...@apache.org>
AuthorDate: Sun Nov 12 15:04:53 2017 +0000

    [maven-release-plugin] prepare release maven-jdeprscan-plugin-3.0.0-alpha-1
    
    git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk@1815022 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index fedf1c2..247caf5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,7 @@ under the License.
   </parent>
 
   <artifactId>maven-jdeprscan-plugin</artifactId>
-  <version>3.0.0-SNAPSHOT</version>
+  <version>3.0.0-alpha-1</version>
   <packaging>maven-plugin</packaging>
 
   <name>Apache Maven JDeprScan Plugin</name>
@@ -42,9 +42,9 @@ under the License.
   </prerequisites>
   
   <scm>
-    <connection>scm:svn:http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-jdeprscan-plugin</connection>
-    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-jdeprscan-plugin</developerConnection>
-    <url>http://svn.apache.org/viewvc/maven/plugins/trunk/maven-jdeprscan-plugin</url>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/maven/plugins/tags/maven-jdeprscan-plugin-3.0.0-alpha-1</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/plugins/tags/maven-jdeprscan-plugin-3.0.0-alpha-1</developerConnection>
+    <url>http://svn.apache.org/viewvc/maven/plugins/tags/maven-jdeprscan-plugin-3.0.0-alpha-1</url>
   </scm>
   <issueManagement>
     <system>JIRA</system>

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

[maven-jdeprscan-plugin] 02/06: Improve JDeprScanConsumer

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

hboutemy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-jdeprscan-plugin.git

commit 6643d43ff79bbaedbb9dc925ffca97d4f294cd87
Author: Robert Scholte <rf...@apache.org>
AuthorDate: Sun Oct 22 11:41:02 2017 +0000

    Improve JDeprScanConsumer
    
    git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk@1812898 13f79535-47bb-0310-9956-ffa450edef68
---
 .../projects/jdeprscan-release8/invoker.properties |  1 +
 .../projects/jdeprscan-release9/invoker.properties |  1 +
 .../plugins/jdeprscan/AbstractJDeprScanMojo.java   | 31 ++++++-----
 .../maven/plugins/jdeprscan/BaseJDeprScanMojo.java | 55 ++++++++++++++++++-
 .../jdeprscan/consumers/JDeprScanConsumer.java     | 58 ++++++++++++++++++++
 .../jdeprscan/consumers/JDeprScanConsumerTest.java | 63 ++++++++++++++++++++++
 6 files changed, 193 insertions(+), 16 deletions(-)

diff --git a/src/it/projects/jdeprscan-release8/invoker.properties b/src/it/projects/jdeprscan-release8/invoker.properties
index cb52a4c..c99dc4e 100644
--- a/src/it/projects/jdeprscan-release8/invoker.properties
+++ b/src/it/projects/jdeprscan-release8/invoker.properties
@@ -14,4 +14,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+invoker.buildResult = failure
 invoker.goals = verify
\ No newline at end of file
diff --git a/src/it/projects/jdeprscan-release9/invoker.properties b/src/it/projects/jdeprscan-release9/invoker.properties
index cb52a4c..c99dc4e 100644
--- a/src/it/projects/jdeprscan-release9/invoker.properties
+++ b/src/it/projects/jdeprscan-release9/invoker.properties
@@ -14,4 +14,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+invoker.buildResult = failure
 invoker.goals = verify
\ No newline at end of file
diff --git a/src/main/java/org/apache/maven/plugins/jdeprscan/AbstractJDeprScanMojo.java b/src/main/java/org/apache/maven/plugins/jdeprscan/AbstractJDeprScanMojo.java
index d712345..a40977c 100644
--- a/src/main/java/org/apache/maven/plugins/jdeprscan/AbstractJDeprScanMojo.java
+++ b/src/main/java/org/apache/maven/plugins/jdeprscan/AbstractJDeprScanMojo.java
@@ -35,7 +35,6 @@ import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Parameter;
-import org.apache.maven.plugins.jdeprscan.consumers.JDeprScanConsumer;
 import org.apache.maven.toolchain.Toolchain;
 import org.apache.maven.toolchain.ToolchainManager;
 import org.codehaus.plexus.util.StringUtils;
@@ -55,9 +54,6 @@ public abstract class AbstractJDeprScanMojo
     @Parameter( defaultValue = "${session}", readonly = true, required = true )
     private MavenSession session;
     
-    
-    @Parameter()
-
     @Component
     private ToolchainManager toolchainManager;
 
@@ -82,7 +78,18 @@ public abstract class AbstractJDeprScanMojo
 
         addJDeprScanOptions( cmd );
 
-        executeJDeprScanCommandLine( cmd, new JDeprScanConsumer() );
+        executeJDeprScanCommandLine( cmd, getConsumer() );
+        
+        verify();
+    }
+    
+    protected CommandLineUtils.StringStreamConsumer getConsumer()
+    {
+      return null;    
+    }
+    
+    protected void verify() throws MojoExecutionException
+    {
     }
     
     protected abstract boolean isForRemoval();
@@ -192,13 +199,13 @@ public abstract class AbstractJDeprScanMojo
 
             String output = ( StringUtils.isEmpty( out.getOutput() ) ? null : '\n' + out.getOutput().trim() );
 
-            if ( exitCode != 0 )
+            if ( StringUtils.isNotEmpty( output ) )
             {
-                if ( StringUtils.isNotEmpty( output ) )
-                {
-                    getLog().info( output );
-                }
+                getLog().info( output );
+            }
 
+            if ( exitCode != 0 )
+            {
                 StringBuilder msg = new StringBuilder( "\nExit code: " );
                 msg.append( exitCode );
                 if ( StringUtils.isNotEmpty( err.getOutput() ) )
@@ -211,10 +218,6 @@ public abstract class AbstractJDeprScanMojo
                 throw new MojoExecutionException( msg.toString() );
             }
 
-            if ( StringUtils.isNotEmpty( output ) )
-            {
-                getLog().info( output );
-            }
         }
         catch ( CommandLineException e )
         {
diff --git a/src/main/java/org/apache/maven/plugins/jdeprscan/BaseJDeprScanMojo.java b/src/main/java/org/apache/maven/plugins/jdeprscan/BaseJDeprScanMojo.java
index 97cb8f8..763d90e 100644
--- a/src/main/java/org/apache/maven/plugins/jdeprscan/BaseJDeprScanMojo.java
+++ b/src/main/java/org/apache/maven/plugins/jdeprscan/BaseJDeprScanMojo.java
@@ -23,15 +23,19 @@ import java.io.File;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
 
 import org.apache.maven.artifact.DependencyResolutionRequiredException;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 
 import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.jdeprscan.consumers.JDeprScanConsumer;
 import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.cli.Commandline;
+import org.codehaus.plexus.util.cli.CommandLineUtils.StringStreamConsumer;
 
 /**
  * Base class for all explicit jdeprscan mojos
@@ -63,13 +67,15 @@ public abstract class BaseJDeprScanMojo extends AbstractJDeprScanMojo
     @Parameter
     private String release;
     
+    private JDeprScanConsumer consumer = new JDeprScanConsumer();
+    
     @Override
     public void execute()
         throws MojoExecutionException, MojoFailureException
     {
         if ( !Files.exists( getClassesDirectory() ) )
         {
-            getLog().debug( "No classes to analyze" );
+            getLog().debug( "No classes to scan" );
             return;
         }
         super.execute();
@@ -87,6 +93,12 @@ public abstract class BaseJDeprScanMojo extends AbstractJDeprScanMojo
     }
     
     @Override
+    protected StringStreamConsumer getConsumer()
+    {
+        return consumer;
+    }
+    
+    @Override
     protected final void addJDeprScanOptions( Commandline cmd ) throws MojoFailureException
     {
         super.addJDeprScanOptions( cmd );
@@ -117,7 +129,46 @@ public abstract class BaseJDeprScanMojo extends AbstractJDeprScanMojo
         
         cmd.createArg().setFile( getClassesDirectory().toFile() );
     }
-    
+
+    @Override
+    protected void verify() throws MojoExecutionException
+    {
+        if ( !( consumer.getDeprecatedClasses().isEmpty() && consumer.getDeprecatedMethods().isEmpty() ) )
+        {
+            if ( !consumer.getDeprecatedClasses().isEmpty() )
+            {
+                getLog().warn( "Found usage of deprecated classes:" );
+                
+                for ( Map.Entry<String, Set<String>> classes : consumer.getDeprecatedClasses().entrySet() )
+                {
+                    getLog().warn( "class " + classes.getKey() + " uses deprecated class(es)" );
+                    for ( String deprClass : classes.getValue() )
+                    {
+                        getLog().warn( "  * " + deprClass );
+                    }
+                }
+            }
+            
+            if ( !consumer.getDeprecatedMethods().isEmpty() )
+            {
+                getLog().warn( "Found usage of deprecated methods:" );
+                
+                for ( Map.Entry<String, Set<String>> classes : consumer.getDeprecatedMethods().entrySet() )
+                {
+                    getLog().warn( "class " + classes.getKey() + " uses deprecated method(s)" );
+                    for ( String deprMethod : classes.getValue() )
+                    {
+                        getLog().warn( "  * " + deprMethod );
+                    }
+                }
+            }
+            
+            if ( failOnWarning )
+            {
+                throw new MojoExecutionException( "JDeprScan detected usage of deprecated classes/methods" );
+            }
+        }
+    }
 
     protected abstract Path getClassesDirectory();
     
diff --git a/src/main/java/org/apache/maven/plugins/jdeprscan/consumers/JDeprScanConsumer.java b/src/main/java/org/apache/maven/plugins/jdeprscan/consumers/JDeprScanConsumer.java
index 3983efd..1a5d51c 100644
--- a/src/main/java/org/apache/maven/plugins/jdeprscan/consumers/JDeprScanConsumer.java
+++ b/src/main/java/org/apache/maven/plugins/jdeprscan/consumers/JDeprScanConsumer.java
@@ -19,6 +19,13 @@ package org.apache.maven.plugins.jdeprscan.consumers;
  * under the License.
  */
 
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
 import org.codehaus.plexus.util.cli.CommandLineUtils;
 import org.codehaus.plexus.util.cli.StreamConsumer;
 
@@ -33,4 +40,55 @@ public class JDeprScanConsumer
     implements StreamConsumer
 {
 
+    private Map<String, Set<String>> deprecatedClasses = new HashMap<>();
+
+    private Map<String, Set<String>> deprecatedMethods = new HashMap<>();
+
+    public static final Pattern DEPRECATED_CLASS = Pattern.compile( "^class (\\S+) uses deprecated class (\\S+)" );
+
+    public static final Pattern DEPRECATED_METHOD = Pattern.compile( "^class (\\S+) uses deprecated method (\\S+)" );
+
+    public Map<String, Set<String>> getDeprecatedClasses()
+    {
+        return deprecatedClasses;
+    }
+    
+    public Map<String, Set<String>> getDeprecatedMethods()
+    {
+        return deprecatedMethods;
+    }
+    
+    @Override
+    public void consumeLine( String line )
+    {
+        super.consumeLine( line );
+
+        Matcher matcher;
+        
+        matcher = DEPRECATED_CLASS.matcher( line );
+        if ( matcher.find() )
+        {
+            Set<String> dc = deprecatedClasses.get( matcher.group( 1 ) );
+            if ( dc == null )
+            {
+                dc = new HashSet<>();
+                deprecatedClasses.put( matcher.group( 1 ), dc );
+            }
+            dc.add( matcher.group( 2 ) );
+            return;
+        }
+        
+        matcher = DEPRECATED_METHOD.matcher( line );
+        if ( matcher.find() )
+        {
+            Set<String> dm = deprecatedMethods.get( matcher.group( 1 ) );
+            if ( dm == null )
+            {
+                dm = new HashSet<>();
+                deprecatedMethods.put( matcher.group( 1 ), dm );
+            }
+            dm.add( matcher.group( 2 ) );
+            return;
+        }
+    }
 }
diff --git a/src/test/java/org/apache/maven/plugins/jdeprscan/consumers/JDeprScanConsumerTest.java b/src/test/java/org/apache/maven/plugins/jdeprscan/consumers/JDeprScanConsumerTest.java
new file mode 100644
index 0000000..0126ddb
--- /dev/null
+++ b/src/test/java/org/apache/maven/plugins/jdeprscan/consumers/JDeprScanConsumerTest.java
@@ -0,0 +1,63 @@
+package org.apache.maven.plugins.jdeprscan.consumers;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Collections;
+import java.util.Set;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class JDeprScanConsumerTest
+{
+    private JDeprScanConsumer consumer;
+    
+    @Before
+    public void setUp()
+    {
+        consumer = new JDeprScanConsumer();
+    }
+
+    @Test
+    public void testDeprecatedClass()
+    {
+        consumer.consumeLine( "class o/a/m/p/j/its/Deprecations uses deprecated class java/rmi/RMISecurityManager " );
+        
+        assertEquals( consumer.getDeprecatedClasses().size(), 1 );
+        assertEquals( consumer.getDeprecatedMethods().size(), 0 );
+        
+        Set<String> classes = consumer.getDeprecatedClasses().get( "o/a/m/p/j/its/Deprecations" );
+        assertEquals( Collections.singleton( "java/rmi/RMISecurityManager" ), classes );
+    }
+
+    @Test
+    public void testDeprecatedMethod()
+    {
+        consumer.consumeLine( "class o/a/m/p/j/its/Deprecations uses deprecated method java/lang/Boolean::<init>(Z)V" );
+        
+        assertEquals( consumer.getDeprecatedClasses().size(), 0 );
+        assertEquals( consumer.getDeprecatedMethods().size(), 1 );
+        
+        Set<String> methods = consumer.getDeprecatedMethods().get( "o/a/m/p/j/its/Deprecations" );
+        assertEquals( Collections.singleton( "java/lang/Boolean::<init>(Z)V" ), methods );
+    }
+}

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

[maven-jdeprscan-plugin] 06/06: added classical download.xml.vm

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

hboutemy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-jdeprscan-plugin.git

commit e3ad788e42b8ed25722416e7c5fd8654f0f236ef
Author: Herve Boutemy <hb...@apache.org>
AuthorDate: Fri Nov 17 23:47:16 2017 +0000

    added classical download.xml.vm
    
    git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk@1815637 13f79535-47bb-0310-9956-ffa450edef68
---
 src/site/xdoc/download.xml.vm | 126 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 126 insertions(+)

diff --git a/src/site/xdoc/download.xml.vm b/src/site/xdoc/download.xml.vm
new file mode 100644
index 0000000..09d4f42
--- /dev/null
+++ b/src/site/xdoc/download.xml.vm
@@ -0,0 +1,126 @@
+<?xml version="1.0"?>
+
+<!--
+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.
+-->
+
+<document>
+  <properties>
+    <title>Download ${project.name} Source</title>
+  </properties>
+  <body>
+    <section name="Download ${project.name} ${project.version} Source">
+
+      <p>${project.name} ${project.version} is distributed in source format. Use a source archive if you intend to build
+      ${project.name} yourself. Otherwise, simply use the ready-made binary artifacts from central repository.</p>
+
+      <p>You will be prompted for a mirror - if the file is not found on yours, please be patient, as it may take 24
+      hours to reach all mirrors.<p/>
+
+      <p>In order to guard against corrupted downloads/installations, it is highly recommended to
+      <a href="http://www.apache.org/dev/release-signing#verifying-signature">verify the signature</a>
+      of the release bundles against the public <a href="http://www.apache.org/dist/maven/KEYS">KEYS</a> used by the Apache Maven
+      developers.</p>
+
+      <p>${project.name} is distributed under the <a href="http://www.apache.org/licenses/">Apache License, version 2.0</a>.</p>
+
+      <p></p>We <b>strongly</b> encourage our users to configure a Maven repository mirror closer to their location, please read <a href="/guides/mini/guide-mirror-settings.html">How to Use Mirrors for Repositories</a>.</p>
+
+      <a name="mirror"/>
+      <subsection name="Mirror">
+
+        <p>
+          [if-any logo]
+          <a href="[link]">
+            <img align="right" src="[logo]" border="0"
+                 alt="logo"/>
+          </a>
+          [end]
+          The currently selected mirror is
+          <b>[preferred]</b>.
+          If you encounter a problem with this mirror,
+          please select another mirror.
+          If all mirrors are failing, there are
+          <i>backup</i>
+          mirrors
+          (at the end of the mirrors list) that should be available.
+        </p>
+
+        <form action="[location]" method="get" id="SelectMirror">
+          Other mirrors:
+          <select name="Preferred">
+            [if-any http]
+            [for http]
+            <option value="[http]">[http]</option>
+            [end]
+            [end]
+            [if-any ftp]
+            [for ftp]
+            <option value="[ftp]">[ftp]</option>
+            [end]
+            [end]
+            [if-any backup]
+            [for backup]
+            <option value="[backup]">[backup] (backup)</option>
+            [end]
+            [end]
+          </select>
+          <input type="submit" value="Change"/>
+        </form>
+
+        <p>
+          You may also consult the
+          <a href="http://www.apache.org/mirrors/">complete list of
+            mirrors.</a>
+        </p>
+
+      </subsection>
+      
+      <subsection name="${project.name} ${project.version}">
+        
+      <p>This is the current stable version of ${project.name}.</p>
+        
+      <table>
+        <thead>
+          <tr>
+            <th></th>
+            <th>Link</th>
+            <th>Checksum</th>
+            <th>Signature</th>
+          </tr>
+        </thead>
+        <tbody>
+          <tr>
+            <td>${project.name} ${project.version} (Source zip)</td>
+            <td><a href="[preferred]maven/plugins/${project.artifactId}-${project.version}-source-release.zip">maven/plugins/${project.artifactId}-${project.version}-source-release.zip</a></td>
+            <td><a href="http://www.apache.org/dist/maven/plugins/${project.artifactId}-${project.version}-source-release.zip.md5">maven/plugins/${project.artifactId}-${project.version}-source-release.zip.md5</a></td>
+            <td><a href="http://www.apache.org/dist/maven/plugins/${project.artifactId}-${project.version}-source-release.zip.asc">maven/plugins/${project.artifactId}-${project.version}-source-release.zip.asc</a></td>
+          </tr>
+        </tbody>
+      </table>
+      </subsection>
+
+      <subsection name="Previous Versions">
+        
+      <p>Older non-recommended releases can be found on our <a href="http://archive.apache.org/dist/maven/plugins/">archive site</a>.</p>
+
+      </subsection>
+    </section>
+  </body>
+</document>
+

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

[maven-jdeprscan-plugin] 05/06: [maven-release-plugin] prepare for next development iteration

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

hboutemy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-jdeprscan-plugin.git

commit d981c2609a6bd2c37dbf3b4a0acae6de0f0d7356
Author: Robert Scholte <rf...@apache.org>
AuthorDate: Sun Nov 12 15:05:08 2017 +0000

    [maven-release-plugin] prepare for next development iteration
    
    git-svn-id: https://svn.apache.org/repos/asf/maven/plugins/trunk@1815024 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index 247caf5..fedf1c2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,7 @@ under the License.
   </parent>
 
   <artifactId>maven-jdeprscan-plugin</artifactId>
-  <version>3.0.0-alpha-1</version>
+  <version>3.0.0-SNAPSHOT</version>
   <packaging>maven-plugin</packaging>
 
   <name>Apache Maven JDeprScan Plugin</name>
@@ -42,9 +42,9 @@ under the License.
   </prerequisites>
   
   <scm>
-    <connection>scm:svn:http://svn.apache.org/repos/asf/maven/plugins/tags/maven-jdeprscan-plugin-3.0.0-alpha-1</connection>
-    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/plugins/tags/maven-jdeprscan-plugin-3.0.0-alpha-1</developerConnection>
-    <url>http://svn.apache.org/viewvc/maven/plugins/tags/maven-jdeprscan-plugin-3.0.0-alpha-1</url>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-jdeprscan-plugin</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/plugins/trunk/maven-jdeprscan-plugin</developerConnection>
+    <url>http://svn.apache.org/viewvc/maven/plugins/trunk/maven-jdeprscan-plugin</url>
   </scm>
   <issueManagement>
     <system>JIRA</system>

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