This is an automated email from the ASF dual-hosted git repository. slachiewicz pushed a commit to branch maven-31 in repository https://gitbox.apache.org/repos/asf/maven-artifact-transfer.git
The following commit(s) were added to refs/heads/maven-31 by this push: new c003541 Cleanup - remove reflections c003541 is described below commit c003541e7cec4ff0aaa10d6ebda5a1478abae198 Author: Sylwester Lachiewicz <slachiew...@apache.org> AuthorDate: Thu Nov 26 01:35:39 2020 +0100 Cleanup - remove reflections --- .../internal/DefaultDependencyCollector.java | 17 ++-- .../internal/Maven31DependencyCollector.java | 25 +----- .../internal/DefaultDependencyCollector.java | 16 ++-- .../dependencies/collect/internal/Invoker.java | 93 --------------------- .../internal/Maven31DependencyCollector.java | 24 ++---- .../internal/Maven31DependencyNodeAdapter.java | 39 ++------- .../internal/DefaultDependencyResolver.java | 11 ++- .../dependencies/resolve/internal/Invoker.java | 95 ---------------------- .../resolve/internal/Maven31ArtifactResult.java | 15 +--- .../internal/Maven31DependencyResolver.java | 38 ++------- .../internal/DefaultRepositoryManager.java | 22 ++--- .../transfer/repository/internal/Invoker.java | 79 ------------------ .../internal/Maven31RepositoryManager.java | 48 ++--------- 13 files changed, 62 insertions(+), 460 deletions(-) diff --git a/src/main/java/org/apache/maven/shared/transfer/collection/internal/DefaultDependencyCollector.java b/src/main/java/org/apache/maven/shared/transfer/collection/internal/DefaultDependencyCollector.java index df2a248..24d1d04 100644 --- a/src/main/java/org/apache/maven/shared/transfer/collection/internal/DefaultDependencyCollector.java +++ b/src/main/java/org/apache/maven/shared/transfer/collection/internal/DefaultDependencyCollector.java @@ -19,9 +19,6 @@ package org.apache.maven.shared.transfer.collection.internal; * under the License. */ -import java.util.List; -import java.util.Objects; - import org.apache.maven.RepositoryUtils; import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager; import org.apache.maven.model.Dependency; @@ -39,9 +36,11 @@ import org.codehaus.plexus.context.Context; import org.codehaus.plexus.context.ContextException; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable; import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.RepositorySystemSession; import org.eclipse.aether.repository.RemoteRepository; +import java.util.List; +import java.util.Objects; + /** * This DependencyCollector passes the request to the proper Maven 3.x implementation * @@ -143,18 +142,16 @@ class DefaultDependencyCollector implements DependencyCollector, Contextualizabl } private MavenDependencyCollector getMavenDependencyCollector( ProjectBuildingRequest buildingRequest ) - throws ComponentLookupException, DependencyCollectionException + throws ComponentLookupException { ArtifactHandlerManager artifactHandlerManager = container.lookup( ArtifactHandlerManager.class ); RepositorySystem m31RepositorySystem = container.lookup( RepositorySystem.class ); - RepositorySystemSession session = Invoker.invoke( buildingRequest, "getRepositorySession" ); - - List<RemoteRepository> aetherRepositories = Invoker.invoke( - RepositoryUtils.class, "toRepos", List.class, buildingRequest.getRemoteRepositories() ); + List<RemoteRepository> aetherRepositories = RepositoryUtils.toRepos( buildingRequest.getRemoteRepositories() ); - return new Maven31DependencyCollector( m31RepositorySystem, artifactHandlerManager, session, + return new Maven31DependencyCollector( m31RepositorySystem, artifactHandlerManager, + buildingRequest.getRepositorySession(), aetherRepositories ); } diff --git a/src/main/java/org/apache/maven/shared/transfer/collection/internal/Maven31DependencyCollector.java b/src/main/java/org/apache/maven/shared/transfer/collection/internal/Maven31DependencyCollector.java index 43846ab..36425f4 100644 --- a/src/main/java/org/apache/maven/shared/transfer/collection/internal/Maven31DependencyCollector.java +++ b/src/main/java/org/apache/maven/shared/transfer/collection/internal/Maven31DependencyCollector.java @@ -39,6 +39,8 @@ import org.eclipse.aether.collection.CollectRequest; import org.eclipse.aether.graph.Dependency; import org.eclipse.aether.repository.RemoteRepository; +import static org.apache.maven.RepositoryUtils.toDependency; + /** * Maven 3.1+ implementation of the {@link DependencyCollector} * @@ -70,13 +72,8 @@ class Maven31DependencyCollector public CollectResult collectDependencies( org.apache.maven.model.Dependency root ) throws DependencyCollectionException { - ArtifactTypeRegistry typeRegistry = Invoker - .invoke( RepositoryUtils.class, "newArtifactTypeRegistry", - ArtifactHandlerManager.class, artifactHandlerManager ); - CollectRequest request = new CollectRequest(); - request.setRoot( toDependency( root, typeRegistry ) ); - + request.setRoot( toDependency( root, RepositoryUtils.newArtifactTypeRegistry( artifactHandlerManager ) ) ); return collectDependencies( request ); } @@ -112,9 +109,7 @@ class Maven31DependencyCollector CollectRequest request = new CollectRequest(); request.setRoot( new Dependency( aetherArtifact, null ) ); - ArtifactTypeRegistry typeRegistry = Invoker - .invoke( RepositoryUtils.class, "newArtifactTypeRegistry", - ArtifactHandlerManager.class, artifactHandlerManager ); + ArtifactTypeRegistry typeRegistry = RepositoryUtils.newArtifactTypeRegistry( artifactHandlerManager ); List<Dependency> aetherDependencies = new ArrayList<>( root.getDependencies().size() ); for ( org.apache.maven.model.Dependency mavenDependency : root.getDependencies() ) @@ -153,16 +148,4 @@ class Maven31DependencyCollector throw new DependencyCollectionException( e.getMessage(), e ); } } - - private static Dependency toDependency( org.apache.maven.model.Dependency root, ArtifactTypeRegistry typeRegistry ) - throws DependencyCollectionException - { - Class<?>[] argClasses = new Class<?>[] { org.apache.maven.model.Dependency.class, ArtifactTypeRegistry.class }; - - Object[] args = new Object[] { root, typeRegistry }; - - return Invoker - .invoke( RepositoryUtils.class, "toDependency", argClasses, args ); - } - } diff --git a/src/main/java/org/apache/maven/shared/transfer/dependencies/collect/internal/DefaultDependencyCollector.java b/src/main/java/org/apache/maven/shared/transfer/dependencies/collect/internal/DefaultDependencyCollector.java index 160dca3..cff0340 100644 --- a/src/main/java/org/apache/maven/shared/transfer/dependencies/collect/internal/DefaultDependencyCollector.java +++ b/src/main/java/org/apache/maven/shared/transfer/dependencies/collect/internal/DefaultDependencyCollector.java @@ -19,8 +19,6 @@ package org.apache.maven.shared.transfer.dependencies.collect.internal; * under the License. */ -import java.util.List; - import org.apache.maven.RepositoryUtils; import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager; import org.apache.maven.model.Dependency; @@ -38,9 +36,10 @@ import org.codehaus.plexus.context.Context; import org.codehaus.plexus.context.ContextException; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable; import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.RepositorySystemSession; import org.eclipse.aether.repository.RemoteRepository; +import java.util.List; + /** * This DependencyCollector passes the request to the proper Maven 3.x implementation * @@ -145,19 +144,16 @@ class DefaultDependencyCollector implements DependencyCollector, Contextualizabl } private MavenDependencyCollector getMavenDependencyCollector( ProjectBuildingRequest buildingRequest ) - throws ComponentLookupException, DependencyCollectorException + throws ComponentLookupException { ArtifactHandlerManager artifactHandlerManager = container.lookup( ArtifactHandlerManager.class ); RepositorySystem m31RepositorySystem = container.lookup( RepositorySystem.class ); - RepositorySystemSession session = Invoker.invoke( buildingRequest, "getRepositorySession" ); - - List<RemoteRepository> aetherRepositories = Invoker.invoke( - RepositoryUtils.class, "toRepos", List.class, buildingRequest.getRemoteRepositories() ); + List<RemoteRepository> aetherRepositories = RepositoryUtils.toRepos( buildingRequest.getRemoteRepositories() ); - return new Maven31DependencyCollector( m31RepositorySystem, artifactHandlerManager, session, - aetherRepositories ); + return new Maven31DependencyCollector( m31RepositorySystem, artifactHandlerManager, + buildingRequest.getRepositorySession(), aetherRepositories ); } diff --git a/src/main/java/org/apache/maven/shared/transfer/dependencies/collect/internal/Invoker.java b/src/main/java/org/apache/maven/shared/transfer/dependencies/collect/internal/Invoker.java deleted file mode 100644 index 45872e9..0000000 --- a/src/main/java/org/apache/maven/shared/transfer/dependencies/collect/internal/Invoker.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.apache.maven.shared.transfer.dependencies.collect.internal; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.shared.transfer.dependencies.collect.DependencyCollectorException; - -import java.lang.reflect.InvocationTargetException; - -/** - * Invokes method on objects using reflection. - */ -final class Invoker -{ - private Invoker() - { - // do not instantiate - } - - public static <T> T invoke( Object object, String method ) throws DependencyCollectorException - { - try - { - @SuppressWarnings( "unchecked" ) - T invoke = (T) object.getClass().getMethod( method ).invoke( object ); - return invoke; - } - catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e ) - { - throw new DependencyCollectorException( e.getMessage(), e ); - } - } - - public static <T> T invoke( Class<?> objectClazz, String staticMethod, Class<?> argClazz, Object arg ) - throws DependencyCollectorException - { - try - { - @SuppressWarnings( "unchecked" ) - T invoke = (T) objectClazz.getMethod( staticMethod, argClazz ).invoke( null, arg ); - return invoke; - } - catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e ) - { - throw new DependencyCollectorException( e.getMessage(), e ); - } - } - - /** - * @param objectClazz the class of the static method - * @param staticMethod the static method to call - * @param argClasses the classes of the argument, used to select the right static method - * @param args the actual arguments to be passed - * @return the result of the method invocation - * @throws DependencyCollectorException if any checked exception occurs - */ - public static <T> T invoke( Class<?> objectClazz, String staticMethod, Class<?>[] argClasses, Object[] args ) - throws DependencyCollectorException - { - if ( args.length != argClasses.length ) - { - throw new IllegalArgumentException( "The number of elements in argClasses and args are not the same." ); - } - - try - { - @SuppressWarnings( "unchecked" ) - T invoke = (T) objectClazz.getMethod( staticMethod, argClasses ).invoke( null, args ); - return invoke; - } - catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e ) - { - throw new DependencyCollectorException( e.getMessage(), e ); - } - } - -} diff --git a/src/main/java/org/apache/maven/shared/transfer/dependencies/collect/internal/Maven31DependencyCollector.java b/src/main/java/org/apache/maven/shared/transfer/dependencies/collect/internal/Maven31DependencyCollector.java index 50f3700..924637a 100644 --- a/src/main/java/org/apache/maven/shared/transfer/dependencies/collect/internal/Maven31DependencyCollector.java +++ b/src/main/java/org/apache/maven/shared/transfer/dependencies/collect/internal/Maven31DependencyCollector.java @@ -19,9 +19,6 @@ package org.apache.maven.shared.transfer.dependencies.collect.internal; * under the License. */ -import java.util.ArrayList; -import java.util.List; - import org.apache.maven.RepositoryUtils; import org.apache.maven.artifact.handler.ArtifactHandler; import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager; @@ -40,6 +37,11 @@ import org.eclipse.aether.collection.DependencyCollectionException; import org.eclipse.aether.graph.Dependency; import org.eclipse.aether.repository.RemoteRepository; +import java.util.ArrayList; +import java.util.List; + +import static org.apache.maven.RepositoryUtils.toDependency; + /** * Maven 3.1+ implementation of the {@link DependencyCollector} * @@ -65,22 +67,11 @@ class Maven31DependencyCollector implements MavenDependencyCollector this.aetherRepositories = aetherRepositories; } - private static Dependency toDependency( org.apache.maven.model.Dependency mavenDependency, - ArtifactTypeRegistry typeRegistry ) throws DependencyCollectorException - { - Class<?>[] argClasses = new Class<?>[] {org.apache.maven.model.Dependency.class, ArtifactTypeRegistry.class}; - - Object[] args = new Object[] {mavenDependency, typeRegistry}; - - return Invoker.invoke( RepositoryUtils.class, "toDependency", argClasses, args ); - } - @Override public CollectorResult collectDependencies( org.apache.maven.model.Dependency root ) throws DependencyCollectorException { - ArtifactTypeRegistry typeRegistry = Invoker.invoke( RepositoryUtils.class, "newArtifactTypeRegistry", - ArtifactHandlerManager.class, artifactHandlerManager ); + ArtifactTypeRegistry typeRegistry = RepositoryUtils.newArtifactTypeRegistry( artifactHandlerManager ); CollectRequest request = new CollectRequest(); request.setRoot( toDependency( root, typeRegistry ) ); @@ -118,8 +109,7 @@ class Maven31DependencyCollector implements MavenDependencyCollector CollectRequest request = new CollectRequest(); request.setRoot( new Dependency( aetherArtifact, null ) ); - ArtifactTypeRegistry typeRegistry = Invoker.invoke( RepositoryUtils.class, "newArtifactTypeRegistry", - ArtifactHandlerManager.class, artifactHandlerManager ); + ArtifactTypeRegistry typeRegistry = RepositoryUtils.newArtifactTypeRegistry( artifactHandlerManager ); List<Dependency> aetherDependencies = new ArrayList<>( root.getDependencies().size() ); for ( org.apache.maven.model.Dependency mavenDependency : root.getDependencies() ) diff --git a/src/main/java/org/apache/maven/shared/transfer/dependencies/collect/internal/Maven31DependencyNodeAdapter.java b/src/main/java/org/apache/maven/shared/transfer/dependencies/collect/internal/Maven31DependencyNodeAdapter.java index f0cccc4..d5584dc 100644 --- a/src/main/java/org/apache/maven/shared/transfer/dependencies/collect/internal/Maven31DependencyNodeAdapter.java +++ b/src/main/java/org/apache/maven/shared/transfer/dependencies/collect/internal/Maven31DependencyNodeAdapter.java @@ -19,17 +19,18 @@ package org.apache.maven.shared.transfer.dependencies.collect.internal; * under the License. */ -import java.util.ArrayList; -import java.util.List; - -import org.apache.maven.RepositoryUtils; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.shared.transfer.dependencies.collect.DependencyCollectorException; import org.apache.maven.shared.transfer.graph.DependencyNode; import org.apache.maven.shared.transfer.graph.DependencyVisitor; import org.eclipse.aether.repository.RemoteRepository; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import static org.apache.maven.RepositoryUtils.toArtifact; + /** * DependencyCollectorNode wrapper around {@link org.eclipse.aether.graph.DependencyNode} * @@ -52,7 +53,7 @@ class Maven31DependencyNodeAdapter implements DependencyNode @Override public Artifact getArtifact() { - return getArtifact( dependencyNode.getArtifact() ); + return toArtifact( dependencyNode.getArtifact() ); } @Override @@ -134,30 +135,6 @@ class Maven31DependencyNodeAdapter implements DependencyNode } Maven31DependencyNodeAdapter other = (Maven31DependencyNodeAdapter) obj; - if ( dependencyNode == null ) - { - if ( other.dependencyNode != null ) - { - return false; - } - } - else if ( !dependencyNode.equals( other.dependencyNode ) ) - { - return false; - } - return true; - } - - private Artifact getArtifact( org.eclipse.aether.artifact.Artifact aetherArtifact ) - { - try - { - return Invoker.invoke( RepositoryUtils.class, "toArtifact", - org.eclipse.aether.artifact.Artifact.class, aetherArtifact ); - } - catch ( DependencyCollectorException e ) - { - throw new RuntimeException( e ); - } + return Objects.equals( dependencyNode, other.dependencyNode ); } } diff --git a/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/DefaultDependencyResolver.java b/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/DefaultDependencyResolver.java index 5d51e97..241fb30 100644 --- a/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/DefaultDependencyResolver.java +++ b/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/DefaultDependencyResolver.java @@ -60,8 +60,8 @@ class DefaultDependencyResolver implements DependencyResolver, Contextualizable try { - return getMavenDependencyResolver( buildingRequest ).resolveDependencies( coordinates, managedDependencies, - filter ); + return getMavenDependencyResolver( buildingRequest ) + .resolveDependencies( coordinates, managedDependencies, filter ); } catch ( ComponentLookupException e ) { @@ -130,16 +130,15 @@ class DefaultDependencyResolver implements DependencyResolver, Contextualizable } private MavenDependencyResolver getMavenDependencyResolver( ProjectBuildingRequest buildingRequest ) - throws ComponentLookupException, DependencyResolverException + throws ComponentLookupException { ArtifactHandlerManager artifactHandlerManager = container.lookup( ArtifactHandlerManager.class ); RepositorySystem m31RepositorySystem = container.lookup( RepositorySystem.class ); - RepositorySystemSession session = Invoker.invoke( buildingRequest, "getRepositorySession" ); + RepositorySystemSession session = buildingRequest.getRepositorySession(); - List<RemoteRepository> aetherRepositories = Invoker.invoke( - RepositoryUtils.class, "toRepos", List.class, buildingRequest.getRemoteRepositories() ); + List<RemoteRepository> aetherRepositories = RepositoryUtils.toRepos( buildingRequest.getRemoteRepositories() ); return new Maven31DependencyResolver( m31RepositorySystem, artifactHandlerManager, session, aetherRepositories ); diff --git a/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/Invoker.java b/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/Invoker.java deleted file mode 100644 index dc7ad4c..0000000 --- a/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/Invoker.java +++ /dev/null @@ -1,95 +0,0 @@ -package org.apache.maven.shared.transfer.dependencies.resolve.internal; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.lang.reflect.InvocationTargetException; - -import org.apache.maven.shared.transfer.dependencies.resolve.DependencyResolverException; - -/** - * Invokes method on objects using reflection. - */ -final class Invoker -{ - private Invoker() - { - // do not instantiate - } - - public static <T> T invoke( Object object, String method ) - throws DependencyResolverException - { - try - { - @SuppressWarnings( "unchecked" ) - T invoke = (T) object.getClass().getMethod( method ).invoke( object ); - return invoke; - } - catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e ) - { - throw new DependencyResolverException( e.getMessage(), e ); - } - } - - public static <T> T invoke( Class<?> objectClazz, String staticMethod, Class<?> argClazz, Object arg ) - throws DependencyResolverException - { - try - { - @SuppressWarnings( "unchecked" ) - T invoke = (T) objectClazz.getMethod( staticMethod, argClazz ).invoke( null, arg ); - return invoke; - } - catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e ) - { - throw new DependencyResolverException( e.getMessage(), e ); - } - } - - /** - * <strong>Note:</strong> Ensure that argClasses and args have the same number of elements - * - * @param objectClazz the class of the static method - * @param staticMethod the static method to call - * @param argClasses the classes of the argument, used to select the right static method - * @param args the actual arguments to be passed - * @return the result of the method invocation - * @throws DependencyResolverException if any checked exception occurs - */ - public static <T> T invoke( Class<?> objectClazz, String staticMethod, Class<?>[] argClasses, Object[] args ) - throws DependencyResolverException - { - if ( args.length != argClasses.length ) - { - throw new IllegalArgumentException( "The number of elements in argClasses and args are not the same." ); - } - - try - { - @SuppressWarnings( "unchecked" ) - T invoke = (T) objectClazz.getMethod( staticMethod, argClasses ).invoke( null, args ); - return invoke; - } - catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e ) - { - throw new DependencyResolverException( e.getMessage(), e ); - } - } -} diff --git a/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/Maven31ArtifactResult.java b/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/Maven31ArtifactResult.java index fe26ce4..db9c206 100644 --- a/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/Maven31ArtifactResult.java +++ b/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/Maven31ArtifactResult.java @@ -20,9 +20,8 @@ package org.apache.maven.shared.transfer.dependencies.resolve.internal; */ import org.apache.maven.RepositoryUtils; -import org.apache.maven.shared.transfer.dependencies.resolve.DependencyResolverException; +import org.apache.maven.artifact.Artifact; import org.eclipse.aether.resolution.ArtifactResult; -import org.eclipse.aether.artifact.Artifact; /** * {@link org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult} wrapper for {@link ArtifactResult} @@ -44,16 +43,8 @@ class Maven31ArtifactResult } @Override - public org.apache.maven.artifact.Artifact getArtifact() + public Artifact getArtifact() { - try - { - return Invoker.invoke( RepositoryUtils.class, "toArtifact", - Artifact.class, artifactResult.getArtifact() ); - } - catch ( DependencyResolverException e ) - { - throw new RuntimeException( e ); - } + return RepositoryUtils.toArtifact( artifactResult.getArtifact() ); } } diff --git a/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/Maven31DependencyResolver.java b/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/Maven31DependencyResolver.java index ea35bc5..8c04e58 100644 --- a/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/Maven31DependencyResolver.java +++ b/src/main/java/org/apache/maven/shared/transfer/dependencies/resolve/internal/Maven31DependencyResolver.java @@ -93,22 +93,11 @@ class Maven31DependencyResolver implements MavenDependencyResolver return new Dependency( artifact, null ); } - private static Dependency toDependency( org.apache.maven.model.Dependency root, ArtifactTypeRegistry typeRegistry ) - throws DependencyResolverException - { - Object[] args = new Object[] {root, typeRegistry}; - - return Invoker.invoke( RepositoryUtils.class, "toDependency", ARG_CLASSES, args ); - } - @Override - // CHECKSTYLE_OFF: LineLength public Iterable<org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult> resolveDependencies( - DependableCoordinate coordinate, TransformableFilter dependencyFilter ) - // CHECKSTYLE_ON: LineLength - throws DependencyResolverException + DependableCoordinate coordinate, TransformableFilter dependencyFilter ) throws DependencyResolverException { - ArtifactTypeRegistry typeRegistry = createTypeRegistry(); + ArtifactTypeRegistry typeRegistry = RepositoryUtils.newArtifactTypeRegistry( artifactHandlerManager ); Dependency aetherRoot = toDependency( coordinate, typeRegistry ); @@ -117,18 +106,9 @@ class Maven31DependencyResolver implements MavenDependencyResolver return resolveDependencies( dependencyFilter, request ); } - private ArtifactTypeRegistry createTypeRegistry() throws DependencyResolverException - { - return Invoker.invoke( RepositoryUtils.class, "newArtifactTypeRegistry", ArtifactHandlerManager.class, - artifactHandlerManager ); - } - @Override - // CHECKSTYLE_OFF: LineLength public Iterable<org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult> resolveDependencies( Model model, - TransformableFilter dependencyFilter ) - // CHECKSTYLE_ON: LineLength - throws DependencyResolverException + TransformableFilter dependencyFilter ) throws DependencyResolverException { // Are there examples where packaging and type are NOT in sync ArtifactHandler artifactHandler = artifactHandlerManager.getArtifactHandler( model.getPackaging() ); @@ -156,36 +136,30 @@ class Maven31DependencyResolver implements MavenDependencyResolver /** * @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(); } - ArtifactTypeRegistry typeRegistry = createTypeRegistry(); + ArtifactTypeRegistry typeRegistry = RepositoryUtils.newArtifactTypeRegistry( artifactHandlerManager ); List<Dependency> aetherDependencies = new ArrayList<>( mavenDependencies.size() ); for ( org.apache.maven.model.Dependency mavenDependency : mavenDependencies ) { - aetherDependencies.add( toDependency( mavenDependency, typeRegistry ) ); + aetherDependencies.add( RepositoryUtils.toDependency( mavenDependency, typeRegistry ) ); } return aetherDependencies; } @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 { @@ -198,10 +172,8 @@ class Maven31DependencyResolver implements MavenDependencyResolver return resolveDependencies( filter, request ); } - // CHECKSTYLE_OFF: LineLength private Iterable<org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult> resolveDependencies( TransformableFilter dependencyFilter, CollectRequest request ) throws DependencyResolverException - // CHECKSTYLE_ON: LineLength { try { diff --git a/src/main/java/org/apache/maven/shared/transfer/repository/internal/DefaultRepositoryManager.java b/src/main/java/org/apache/maven/shared/transfer/repository/internal/DefaultRepositoryManager.java index c1ee372..3c9aa51 100644 --- a/src/main/java/org/apache/maven/shared/transfer/repository/internal/DefaultRepositoryManager.java +++ b/src/main/java/org/apache/maven/shared/transfer/repository/internal/DefaultRepositoryManager.java @@ -19,8 +19,6 @@ package org.apache.maven.shared.transfer.repository.internal; * under the License. */ -import java.io.File; - import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.metadata.ArtifactMetadata; import org.apache.maven.project.ProjectBuildingRequest; @@ -28,7 +26,6 @@ import org.apache.maven.project.artifact.ProjectArtifactMetadata; import org.apache.maven.shared.transfer.artifact.ArtifactCoordinate; import org.apache.maven.shared.transfer.artifact.DefaultArtifactCoordinate; import org.apache.maven.shared.transfer.repository.RepositoryManager; -import org.apache.maven.shared.transfer.repository.RepositoryManagerException; import org.codehaus.plexus.PlexusConstants; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.component.annotations.Component; @@ -37,7 +34,8 @@ import org.codehaus.plexus.context.Context; import org.codehaus.plexus.context.ContextException; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable; import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.RepositorySystemSession; + +import java.io.File; /** * @@ -55,7 +53,7 @@ class DefaultRepositoryManager { return getMavenRepositoryManager( buildingRequest ).getPathForLocalArtifact( artifact ); } - catch ( ComponentLookupException | RepositoryManagerException e ) + catch ( ComponentLookupException e ) { throw new IllegalStateException( e.getMessage(), e ); } @@ -68,7 +66,7 @@ class DefaultRepositoryManager { return getMavenRepositoryManager( buildingRequest ).getPathForLocalArtifact( coor ); } - catch ( ComponentLookupException | RepositoryManagerException e ) + catch ( ComponentLookupException e ) { throw new IllegalStateException( e.getMessage(), e ); } @@ -91,7 +89,7 @@ class DefaultRepositoryManager { return getMavenRepositoryManager( buildingRequest ).getPathForLocalMetadata( metadata ); } - catch ( ComponentLookupException | RepositoryManagerException e ) + catch ( ComponentLookupException e ) { throw new IllegalStateException( e.getMessage(), e ); } @@ -104,7 +102,7 @@ class DefaultRepositoryManager { return getMavenRepositoryManager( buildingRequest ).setLocalRepositoryBasedir( buildingRequest, basedir ); } - catch ( ComponentLookupException | RepositoryManagerException e ) + catch ( ComponentLookupException e ) { throw new IllegalStateException( e.getMessage(), e ); } @@ -117,20 +115,18 @@ class DefaultRepositoryManager { return getMavenRepositoryManager( buildingRequest ).getLocalRepositoryBasedir(); } - catch ( ComponentLookupException | RepositoryManagerException e ) + catch ( ComponentLookupException e ) { throw new IllegalStateException( e.getMessage(), e ); } } private MavenRepositoryManager getMavenRepositoryManager( ProjectBuildingRequest buildingRequest ) - throws ComponentLookupException, RepositoryManagerException + throws ComponentLookupException { RepositorySystem m31RepositorySystem = container.lookup( RepositorySystem.class ); - RepositorySystemSession session = Invoker.invoke( buildingRequest, "getRepositorySession" ); - - return new Maven31RepositoryManager( m31RepositorySystem, session ); + return new Maven31RepositoryManager( m31RepositorySystem, buildingRequest.getRepositorySession() ); } public void contextualize( Context context ) throws ContextException diff --git a/src/main/java/org/apache/maven/shared/transfer/repository/internal/Invoker.java b/src/main/java/org/apache/maven/shared/transfer/repository/internal/Invoker.java deleted file mode 100644 index 48342dc..0000000 --- a/src/main/java/org/apache/maven/shared/transfer/repository/internal/Invoker.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.apache.maven.shared.transfer.repository.internal; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.lang.reflect.InvocationTargetException; - -import org.apache.maven.shared.transfer.repository.RepositoryManagerException; - -/** - * Invokes method on objects using reflection. - */ -final class Invoker -{ - private Invoker() - { - // do not instantiate - } - - public static <T> T invoke( Object object, String method ) - throws RepositoryManagerException - { - try - { - @SuppressWarnings( "unchecked" ) - T invoke = (T) object.getClass().getMethod( method ).invoke( object ); - return invoke; - } - catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e ) - { - throw new RepositoryManagerException( e.getMessage(), e ); - } - } - - public static <T> T invoke( Object object, String method, Class<?> argClazz, Object arg ) - throws RepositoryManagerException - { - try - { - final Class<?> objectClazz = object.getClass(); - @SuppressWarnings( "unchecked" ) - T invoke = (T) objectClazz.getMethod( method, argClazz ).invoke( object, arg ); - return invoke; - } - catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e ) - { - throw new RepositoryManagerException( e.getMessage(), e ); - } - } - - public static Object invoke( Class<?> objectClazz, String staticMethod, Class<?> argClazz, Object arg ) - throws RepositoryManagerException - { - try - { - return objectClazz.getMethod( staticMethod, argClazz ).invoke( null, arg ); - } - catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e ) - { - throw new RepositoryManagerException( e.getMessage(), e ); - } - } -} diff --git a/src/main/java/org/apache/maven/shared/transfer/repository/internal/Maven31RepositoryManager.java b/src/main/java/org/apache/maven/shared/transfer/repository/internal/Maven31RepositoryManager.java index 8ca19c6..f7f6ecb 100644 --- a/src/main/java/org/apache/maven/shared/transfer/repository/internal/Maven31RepositoryManager.java +++ b/src/main/java/org/apache/maven/shared/transfer/repository/internal/Maven31RepositoryManager.java @@ -19,14 +19,11 @@ package org.apache.maven.shared.transfer.repository.internal; * under the License. */ -import java.io.File; - import org.apache.maven.RepositoryUtils; import org.apache.maven.artifact.metadata.ArtifactMetadata; import org.apache.maven.project.DefaultProjectBuildingRequest; import org.apache.maven.project.ProjectBuildingRequest; import org.apache.maven.shared.transfer.artifact.ArtifactCoordinate; -import org.apache.maven.shared.transfer.repository.RepositoryManagerException; import org.eclipse.aether.DefaultRepositoryCache; import org.eclipse.aether.DefaultRepositorySystemSession; import org.eclipse.aether.RepositorySystem; @@ -39,6 +36,8 @@ import org.eclipse.aether.metadata.Metadata.Nature; import org.eclipse.aether.repository.LocalRepository; import org.eclipse.aether.repository.LocalRepositoryManager; +import java.io.File; + /** * */ @@ -49,8 +48,7 @@ class Maven31RepositoryManager private final RepositorySystemSession session; - Maven31RepositoryManager( RepositorySystem repositorySystem, - RepositorySystemSession session ) + Maven31RepositoryManager( RepositorySystem repositorySystem, RepositorySystemSession session ) { this.repositorySystem = repositorySystem; this.session = session; @@ -59,28 +57,14 @@ class Maven31RepositoryManager @Override public String getPathForLocalArtifact( org.apache.maven.artifact.Artifact mavenArtifact ) { - Artifact aetherArtifact; - - // LRM.getPathForLocalArtifact() won't throw an Exception, so translate reflection error to RuntimeException - try - { - aetherArtifact = (Artifact) Invoker.invoke( RepositoryUtils.class, "toArtifact", - org.apache.maven.artifact.Artifact.class, mavenArtifact ); - } - catch ( RepositoryManagerException e ) - { - throw new RuntimeException( e.getMessage(), e ); - } - - return session.getLocalRepositoryManager().getPathForLocalArtifact( aetherArtifact ); + return session.getLocalRepositoryManager() + .getPathForLocalArtifact( RepositoryUtils.toArtifact( mavenArtifact ) ); } @Override public String getPathForLocalArtifact( ArtifactCoordinate coordinate ) { - Artifact aetherArtifact = toArtifact( coordinate ); - - return session.getLocalRepositoryManager().getPathForLocalArtifact( aetherArtifact ); + return session.getLocalRepositoryManager().getPathForLocalArtifact( toArtifact( coordinate ) ); } @Override @@ -100,15 +84,7 @@ class Maven31RepositoryManager { ProjectBuildingRequest newRequest = new DefaultProjectBuildingRequest( buildingRequest ); - RepositorySystemSession session; - try - { - session = Invoker.invoke( buildingRequest, "getRepositorySession" ); - } - catch ( RepositoryManagerException e ) - { - throw new RuntimeException( e.getMessage(), e ); - } + RepositorySystemSession session = buildingRequest.getRepositorySession(); // "clone" session and replace localRepository DefaultRepositorySystemSession newSession = new DefaultRepositorySystemSession( session ); @@ -123,15 +99,7 @@ class Maven31RepositoryManager repositorySystem.newLocalRepositoryManager( newSession, new LocalRepository( basedir, repositoryType ) ); newSession.setLocalRepositoryManager( localRepositoryManager ); - - try - { - Invoker.invoke( newRequest, "setRepositorySession", RepositorySystemSession.class, newSession ); - } - catch ( RepositoryManagerException e ) - { - throw new RuntimeException( e.getMessage(), e ); - } + newRequest.setRepositorySession( newSession ); return newRequest; }