You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2020/03/21 20:08:34 UTC

[maven-artifact-transfer] 01/09: Refactored Step I

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

khmarbaise pushed a commit to branch MSHARED-864
in repository https://gitbox.apache.org/repos/asf/maven-artifact-transfer.git

commit 05af87bd3cc55c9800d561606399a7d20f6b978f
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Sat Mar 14 19:36:15 2020 +0100

    Refactored Step I
---
 .../internal/Maven30DependencyResolver.java        | 119 +++++++++------------
 1 file changed, 52 insertions(+), 67 deletions(-)

diff --git a/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/Maven30DependencyResolver.java b/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/Maven30DependencyResolver.java
index b70a7f0..f1d62e5 100644
--- a/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/Maven30DependencyResolver.java
+++ b/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/Maven30DependencyResolver.java
@@ -21,6 +21,7 @@ package org.apache.maven.shared.transfer.dependencies.resolve.internal;
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 
@@ -33,7 +34,6 @@ import org.apache.maven.shared.artifact.filter.resolve.TransformableFilter;
 import org.apache.maven.shared.artifact.filter.resolve.transform.SonatypeAetherFilterTransformer;
 import org.apache.maven.shared.transfer.dependencies.DependableCoordinate;
 import org.apache.maven.shared.transfer.dependencies.resolve.DependencyResolverException;
-
 import org.sonatype.aether.RepositorySystem;
 import org.sonatype.aether.RepositorySystemSession;
 import org.sonatype.aether.artifact.Artifact;
@@ -80,9 +80,7 @@ class Maven30DependencyResolver
     // CHECKSTYLE_ON: LineLength
         throws DependencyResolverException
     {
-        ArtifactTypeRegistry typeRegistry =
-            (ArtifactTypeRegistry) Invoker.invoke( RepositoryUtils.class, "newArtifactTypeRegistry",
-                                                   ArtifactHandlerManager.class, artifactHandlerManager );
+        ArtifactTypeRegistry typeRegistry = createTypeRegistry();
 
         Dependency aetherRoot = toDependency( coordinate, typeRegistry );
 
@@ -109,94 +107,83 @@ class Maven30DependencyResolver
         Dependency aetherRoot = new Dependency( aetherArtifact, null );
         
         CollectRequest request = new CollectRequest( aetherRoot, aetherRepositories );
-        
-        ArtifactTypeRegistry typeRegistry =
-                        (ArtifactTypeRegistry) Invoker.invoke( RepositoryUtils.class, "newArtifactTypeRegistry",
-                                                               ArtifactHandlerManager.class, artifactHandlerManager );
 
-        List<Dependency> aetherDependencies = new ArrayList<Dependency>( model.getDependencies().size() );
-        for ( org.apache.maven.model.Dependency mavenDependency : model.getDependencies() )
+        List<org.apache.maven.model.Dependency> dependencies = model.getDependencies();
+        if ( dependencies != null )
         {
-            aetherDependencies.add( toDependency( mavenDependency, typeRegistry ) );
+            List<Dependency> aetherDependencies = resolveDependencies( dependencies );
+            request.setDependencies( aetherDependencies );
         }
-        request.setDependencies( aetherDependencies );
 
         DependencyManagement mavenDependencyManagement = model.getDependencyManagement();
         if ( mavenDependencyManagement != null )
         {
-            List<Dependency> aetherManagerDependencies =
-                new ArrayList<Dependency>( mavenDependencyManagement.getDependencies().size() );
-            
-            for ( org.apache.maven.model.Dependency mavenDependency : mavenDependencyManagement.getDependencies() )
-            {
-                aetherManagerDependencies.add( toDependency( mavenDependency, typeRegistry ) );
-            }
-            
-            request.setManagedDependencies( aetherManagerDependencies );
+            request.setManagedDependencies( resolveDependencies( mavenDependencyManagement.getDependencies() ) );
         }
 
         return resolveDependencies( dependencyFilter, request );
     }
 
-    @Override
-    // CHECKSTYLE_OFF: LineLength
-    public Iterable<org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult> resolveDependencies( Collection<org.apache.maven.model.Dependency> mavenDependencies,
-                                                                                                  Collection<org.apache.maven.model.Dependency> managedMavenDependencies,
-                                                                                                  TransformableFilter filter )
-    // CHECKSTYLE_ON: LineLength
-        throws DependencyResolverException
-    {
-        ArtifactTypeRegistry typeRegistry =
-            (ArtifactTypeRegistry) Invoker.invoke( RepositoryUtils.class, "newArtifactTypeRegistry",
-                                                   ArtifactHandlerManager.class, artifactHandlerManager );
-
-        final Class<?>[] argClasses =
+    private static final Class<?>[] ARG_CLASSES =
             new Class<?>[] { org.apache.maven.model.Dependency.class, ArtifactTypeRegistry.class };
 
-         List<Dependency> aetherDependencies = null;
-
-         if ( mavenDependencies != null )
-         {
-             aetherDependencies = new ArrayList<Dependency>( mavenDependencies.size() );
-
-             for ( org.apache.maven.model.Dependency mavenDependency : mavenDependencies )
-             {
-                 Object[] args = new Object[] { mavenDependency, typeRegistry };
+    private ArtifactTypeRegistry createTypeRegistry() throws DependencyResolverException
+    {
+        return  (ArtifactTypeRegistry) Invoker.invoke( RepositoryUtils.class,
+            "newArtifactTypeRegistry", ArtifactHandlerManager.class, artifactHandlerManager );
+    }
 
-                 Dependency aetherDependency =
-                     (Dependency) Invoker.invoke( RepositoryUtils.class, "toDependency", argClasses, args );
+    /**
+     * @param mavenDependencies {@link org.apache.maven.model.Dependency} can be {@code null}.
+     * @return List of resolved dependencies.
+     * @throws DependencyResolverException in case of a failure of the typeRegistry error.
+     */
+    // CHECKSTYLE_OFF: LineLength
+    private List<Dependency> resolveDependencies( Collection<org.apache.maven.model.Dependency> mavenDependencies ) throws
+            DependencyResolverException
+    // CHECKSTYLE_ON: LineLength
+    {
+        if ( mavenDependencies == null )
+        {
+            return Collections.emptyList();
+        }
 
-                 aetherDependencies.add( aetherDependency );
-             }
-         }
+        ArtifactTypeRegistry typeRegistry = createTypeRegistry();
 
-        List<Dependency> aetherManagedDependencies = null;
+        List<Dependency> aetherDependencies = new ArrayList<>( mavenDependencies.size() );
 
-        if ( managedMavenDependencies != null )
+        for ( org.apache.maven.model.Dependency mavenDependency : mavenDependencies )
         {
-            aetherManagedDependencies = new ArrayList<Dependency>( managedMavenDependencies.size() );
+            aetherDependencies.add( toDependency( mavenDependency, typeRegistry ) );
+        }
 
-            for ( org.apache.maven.model.Dependency mavenDependency : managedMavenDependencies )
-            {
-                Object[] args = new Object[] { mavenDependency, typeRegistry };
+        return aetherDependencies;
+    }
 
-                Dependency aetherDependency =
-                    (Dependency) Invoker.invoke( RepositoryUtils.class, "toDependency", argClasses, args );
+    @Override
+    // CHECKSTYLE_OFF: LineLength
+    public Iterable<org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult> resolveDependencies(
+            Collection<org.apache.maven.model.Dependency> mavenDependencies,
+            Collection<org.apache.maven.model.Dependency> managedMavenDependencies, TransformableFilter filter )
+    // CHECKSTYLE_ON: LineLength
+            throws DependencyResolverException
+    {
 
-                aetherManagedDependencies.add( aetherDependency );
-            }
-        }
+        List<Dependency> aetherDependencies = resolveDependencies( mavenDependencies );
 
-        CollectRequest request =
-            new CollectRequest( aetherDependencies, aetherManagedDependencies, aetherRepositories );
+        List<Dependency> aetherManagedDependencies = resolveDependencies( managedMavenDependencies );
+
+        CollectRequest request = new CollectRequest( aetherDependencies, aetherManagedDependencies,
+                aetherRepositories );
 
         return resolveDependencies( filter, request );
     }
 
     // CHECKSTYLE_OFF: LineLength
-    private Iterable<org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult> resolveDependencies( TransformableFilter dependencyFilter,
-                                                                                                   CollectRequest request )
-                                                                                                       throws DependencyResolverException
+    private Iterable<org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult> resolveDependencies(
+            TransformableFilter dependencyFilter,
+            CollectRequest request
+    ) throws DependencyResolverException
     // CHECKSTYLE_ON :LineLength
     {
         try
@@ -266,10 +253,8 @@ class Maven30DependencyResolver
                                             ArtifactTypeRegistry typeRegistry )
         throws DependencyResolverException
     {
-        Class<?>[] argClasses = new Class<?>[] { org.apache.maven.model.Dependency.class, ArtifactTypeRegistry.class };
-
         Object[] args = new Object[] { mavenDependency, typeRegistry };
 
-        return (Dependency) Invoker.invoke( RepositoryUtils.class, "toDependency", argClasses, args );
+        return (Dependency) Invoker.invoke( RepositoryUtils.class, "toDependency", ARG_CLASSES, args );
     }  
 }