You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2020/12/26 13:45:39 UTC
[maven-artifact-transfer] 03/03: [MSHARED-944] Cleanup - remove
reflections
This is an automated email from the ASF dual-hosted git repository.
slachiewicz pushed a commit to branch MSHARED-944
in repository https://gitbox.apache.org/repos/asf/maven-artifact-transfer.git
commit 0605987d9cbd18d1d80d9c847165613426e3c885
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Thu Nov 26 01:35:39 2020 +0100
[MSHARED-944] 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;
}