You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sj...@apache.org on 2022/02/18 16:26:12 UTC

[maven-dependency-analyzer] 01/01: Require Maven 3.2.5+

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

sjaranowski pushed a commit to branch MSHARED-916
in repository https://gitbox.apache.org/repos/asf/maven-dependency-analyzer.git

commit 8fa184b4b0869cd82ed9c9108267cb439fc5c8fe
Author: Slawomir Jaranowski <s....@gmail.com>
AuthorDate: Fri Feb 18 17:24:40 2022 +0100

    Require Maven 3.2.5+
    
    - use Maven 3.2.5 api
    - migrate plexus annotation to JSR330
---
 pom.xml                                            | 57 +++++++++++-----------
 .../dependency/analyzer/DefaultClassAnalyzer.java  |  8 +--
 .../analyzer/DefaultProjectDependencyAnalyzer.java | 31 ++++++------
 .../analyzer/asm/ASMDependencyAnalyzer.java        |  7 ++-
 .../analyzer/asm/DependencyClassFileVisitor.java   | 12 ++---
 5 files changed, 62 insertions(+), 53 deletions(-)

diff --git a/pom.xml b/pom.xml
index 936827c..3a0aea5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -59,51 +59,50 @@
   </distributionManagement>
 
   <properties>
-    <mavenVersion>2.0.5</mavenVersion>
-    <surefire.version>2.22.2</surefire.version>
+    <mavenVersion>3.2.5</mavenVersion>
     <javaVersion>8</javaVersion>
     <project.build.outputTimestamp>2022-01-24T19:57:26Z</project.build.outputTimestamp>
   </properties>
 
   <dependencies>
+
     <dependency>
-      <groupId>org.ow2.asm</groupId>
-      <artifactId>asm</artifactId>
-      <version>9.2</version>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-core</artifactId>
+      <version>${mavenVersion}</version>
     </dependency>
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-utils</artifactId>
-      <version>1.5.1</version>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact</artifactId>
+      <version>${mavenVersion}</version>
     </dependency>
+
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-component-annotations</artifactId>
-      <version>2.1.1</version>
+      <groupId>javax.inject</groupId>
+      <artifactId>javax.inject</artifactId>
+      <version>1</version>
     </dependency>
+
     <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-project</artifactId>
-      <version>${mavenVersion}</version>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+      <version>3.4.1</version>
     </dependency>
+
     <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-model</artifactId>
-      <version>${mavenVersion}</version>
+      <groupId>org.ow2.asm</groupId>
+      <artifactId>asm</artifactId>
+      <version>9.2</version>
     </dependency>
+
+
+    <!-- testing support -->
     <dependency>
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
       <version>2.11.0</version>
+      <scope>test</scope>
     </dependency>
-    
-    <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-artifact</artifactId>
-      <version>${mavenVersion}</version>
-    </dependency>
-
-    <!-- testing support -->
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
@@ -134,12 +133,14 @@
 
     <plugins>
       <plugin>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-component-metadata</artifactId>
+        <groupId>org.eclipse.sisu</groupId>
+        <artifactId>sisu-maven-plugin</artifactId>
+        <version>0.3.5</version>
         <executions>
           <execution>
+            <id>index-project</id>
             <goals>
-              <goal>generate-metadata</goal>
+              <goal>main-index</goal>
             </goals>
           </execution>
         </executions>
diff --git a/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultClassAnalyzer.java b/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultClassAnalyzer.java
index 52ecd18..6a79d4d 100644
--- a/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultClassAnalyzer.java
+++ b/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultClassAnalyzer.java
@@ -19,19 +19,21 @@ package org.apache.maven.shared.dependency.analyzer;
  * under the License.
  */
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.io.IOException;
 import java.net.URL;
 import java.util.Set;
 import java.util.zip.ZipException;
 
-import org.codehaus.plexus.component.annotations.Component;
-
 /**
  * <p>DefaultClassAnalyzer class.</p>
  *
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
  */
-@Component( role = ClassAnalyzer.class )
+@Named
+@Singleton
 public class DefaultClassAnalyzer
     implements ClassAnalyzer
 {
diff --git a/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzer.java b/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzer.java
index 6e704c4..dc0c6a2 100644
--- a/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzer.java
+++ b/src/main/java/org/apache/maven/shared/dependency/analyzer/DefaultProjectDependencyAnalyzer.java
@@ -19,6 +19,10 @@ package org.apache.maven.shared.dependency.analyzer;
  * under the License.
  */
 
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.io.File;
 import java.io.IOException;
 import java.net.URL;
@@ -35,28 +39,27 @@ import java.util.jar.JarFile;
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.annotations.Requirement;
 
 /**
  * <p>DefaultProjectDependencyAnalyzer class.</p>
  *
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
  */
-@Component( role = ProjectDependencyAnalyzer.class )
+@Named
+@Singleton
 public class DefaultProjectDependencyAnalyzer
     implements ProjectDependencyAnalyzer
 {
     /**
      * ClassAnalyzer
      */
-    @Requirement
+    @Inject
     private ClassAnalyzer classAnalyzer;
 
     /**
      * DependencyAnalyzer
      */
-    @Requirement
+    @Inject
     private DependencyAnalyzer dependencyAnalyzer;
 
     /** {@inheritDoc} */
@@ -75,9 +78,9 @@ public class DefaultProjectDependencyAnalyzer
             Set<Artifact> declaredArtifacts = buildDeclaredArtifacts( project );
 
             Map<Artifact, Set<String>> usedArtifacts = buildUsedArtifacts( artifactClassMap, dependencyClasses );
-            Set<Artifact>  mainUsedArtifacts = buildUsedArtifacts( artifactClassMap, mainDependencyClasses ).keySet();
+            Set<Artifact> mainUsedArtifacts = buildUsedArtifacts( artifactClassMap, mainDependencyClasses ).keySet();
 
-            Set<Artifact>  testArtifacts = buildUsedArtifacts( artifactClassMap, testOnlyDependencyClasses ).keySet();
+            Set<Artifact> testArtifacts = buildUsedArtifacts( artifactClassMap, testOnlyDependencyClasses ).keySet();
             Set<Artifact> testOnlyArtifacts = removeAll( testArtifacts, mainUsedArtifacts );
 
             Set<Artifact> usedDeclaredArtifacts = new LinkedHashSet<>( declaredArtifacts );
@@ -85,7 +88,7 @@ public class DefaultProjectDependencyAnalyzer
 
             Map<Artifact, Set<String>> usedUndeclaredArtifactsWithClasses = new LinkedHashMap<>( usedArtifacts );
             Set<Artifact> usedUndeclaredArtifacts = removeAll(
-                    usedUndeclaredArtifactsWithClasses.keySet(), declaredArtifacts );
+                usedUndeclaredArtifactsWithClasses.keySet(), declaredArtifacts );
             usedUndeclaredArtifactsWithClasses.keySet().retainAll( usedUndeclaredArtifacts );
 
             Set<Artifact> unusedDeclaredArtifacts = new LinkedHashSet<>( declaredArtifacts );
@@ -94,7 +97,7 @@ public class DefaultProjectDependencyAnalyzer
             Set<Artifact> testArtifactsWithNonTestScope = getTestArtifactsWithNonTestScope( testOnlyArtifacts );
 
             return new ProjectDependencyAnalysis( usedDeclaredArtifacts, usedUndeclaredArtifactsWithClasses,
-                                                  unusedDeclaredArtifacts, testArtifactsWithNonTestScope );
+                unusedDeclaredArtifacts, testArtifactsWithNonTestScope );
         }
         catch ( IOException exception )
         {
@@ -105,8 +108,8 @@ public class DefaultProjectDependencyAnalyzer
     /**
      * This method defines a new way to remove the artifacts by using the conflict id. We don't care about the version
      * here because there can be only 1 for a given artifact anyway.
-     * 
-     * @param start initial set
+     *
+     * @param start  initial set
      * @param remove set to exclude
      * @return set with remove excluded
      */
@@ -231,9 +234,9 @@ public class DefaultProjectDependencyAnalyzer
 
         return dependencyClasses;
     }
-    
+
     private Set<String> buildMainDependencyClasses( MavenProject project )
-                    throws IOException
+        throws IOException
     {
 
         String outputDirectory = project.getBuild().getOutputDirectory();
@@ -263,7 +266,7 @@ public class DefaultProjectDependencyAnalyzer
     }
 
     private Map<Artifact, Set<String>> buildUsedArtifacts( Map<Artifact, Set<String>> artifactClassMap,
-                                              Set<String> dependencyClasses )
+                                                           Set<String> dependencyClasses )
     {
         Map<Artifact, Set<String>> usedArtifacts = new HashMap<>();
 
diff --git a/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ASMDependencyAnalyzer.java b/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ASMDependencyAnalyzer.java
index 2836c4d..ebe2738 100644
--- a/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ASMDependencyAnalyzer.java
+++ b/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ASMDependencyAnalyzer.java
@@ -19,20 +19,23 @@ package org.apache.maven.shared.dependency.analyzer.asm;
  * under the License.
  */
 
+import javax.inject.Named;
+import javax.inject.Singleton;
+
 import java.io.IOException;
 import java.net.URL;
 import java.util.Set;
 
 import org.apache.maven.shared.dependency.analyzer.ClassFileVisitorUtils;
 import org.apache.maven.shared.dependency.analyzer.DependencyAnalyzer;
-import org.codehaus.plexus.component.annotations.Component;
 
 /**
  * ASMDependencyAnalyzer
  *
  * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
  */
-@Component( role = DependencyAnalyzer.class )
+@Named
+@Singleton
 public class ASMDependencyAnalyzer
     implements DependencyAnalyzer
 {
diff --git a/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyClassFileVisitor.java b/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyClassFileVisitor.java
index c6f3afc..f8a1e79 100644
--- a/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyClassFileVisitor.java
+++ b/src/main/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyClassFileVisitor.java
@@ -19,8 +19,12 @@ package org.apache.maven.shared.dependency.analyzer.asm;
  * under the License.
  */
 
-import org.apache.commons.io.IOUtils;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Set;
+
 import org.apache.maven.shared.dependency.analyzer.ClassFileVisitor;
+import org.codehaus.plexus.util.IOUtil;
 import org.objectweb.asm.AnnotationVisitor;
 import org.objectweb.asm.ClassReader;
 import org.objectweb.asm.ClassVisitor;
@@ -28,10 +32,6 @@ import org.objectweb.asm.FieldVisitor;
 import org.objectweb.asm.MethodVisitor;
 import org.objectweb.asm.signature.SignatureVisitor;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Set;
-
 /**
  * Computes the set of classes referenced by visited class files, using
  * <a href="DependencyVisitor.html">DependencyVisitor</a>.
@@ -56,7 +56,7 @@ public class DependencyClassFileVisitor
     {
         try
         {
-            byte[] byteCode = IOUtils.toByteArray( in );
+            byte[] byteCode = IOUtil.toByteArray( in );
             ClassReader reader = new ClassReader( byteCode );
 
             final Set<String> constantPoolClassRefs = ConstantPoolParser.getConstantPoolClassReferences( byteCode );