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:11 UTC

[maven-dependency-analyzer] branch MSHARED-916 created (now 8fa184b)

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

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


      at 8fa184b  Require Maven 3.2.5+

This branch includes the following new commits:

     new 8fa184b  Require Maven 3.2.5+

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


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

Posted by sj...@apache.org.
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 );