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 ); } }