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 <khmarba...@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 );
     }  
 }

Reply via email to