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 15:08:38 UTC
[maven-artifact-transfer] 01/01: [MSHARED-944] Cleanup - remove
reflections, use injection
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 e751e3e8ed137f3987a1c3aed15a6720f6e8e771
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Sat Dec 26 15:55:47 2020 +0100
[MSHARED-944] Cleanup - remove reflections, use injection
---
.../deploy/internal/DefaultArtifactDeployer.java | 54 ++----------
.../transfer/artifact/deploy/internal/Invoker.java | 66 ---------------
.../deploy/internal/Maven31ArtifactDeployer.java | 7 +-
.../install/internal/DefaultArtifactInstaller.java | 56 +++----------
.../artifact/install/internal/Invoker.java | 65 ---------------
.../install/internal/Maven31ArtifactInstaller.java | 3 +-
.../resolve/internal/DefaultArtifactResolver.java | 59 ++-----------
.../artifact/resolve/internal/Invoker.java | 67 ---------------
.../resolve/internal/Maven31ArtifactResolver.java | 18 ++--
.../resolve/internal/Maven31ArtifactResult.java | 12 +--
.../internal/DefaultDependencyCollector.java | 76 ++++-------------
.../transfer/collection/internal/Invoker.java | 96 ----------------------
.../internal/Maven31DependencyCollector.java | 25 +-----
.../internal/Maven31DependencyNodeAdapter.java | 17 +---
.../internal/DefaultDependencyCollector.java | 74 ++++-------------
.../dependencies/collect/internal/Invoker.java | 93 ---------------------
.../internal/Maven31DependencyCollector.java | 24 ++----
.../internal/Maven31DependencyNodeAdapter.java | 39 ++-------
.../internal/DefaultDependencyResolver.java | 77 ++++-------------
.../dependencies/resolve/internal/Invoker.java | 95 ---------------------
.../resolve/internal/Maven31ArtifactResult.java | 15 +---
.../internal/Maven31DependencyResolver.java | 38 ++-------
.../deploy/internal/DefaultProjectDeployer.java | 14 ++--
.../internal/DefaultRepositoryManager.java | 75 +++--------------
.../transfer/repository/internal/Invoker.java | 79 ------------------
.../internal/Maven31RepositoryManager.java | 48 ++---------
26 files changed, 138 insertions(+), 1154 deletions(-)
diff --git a/src/main/java/org/apache/maven/shared/transfer/artifact/deploy/internal/DefaultArtifactDeployer.java b/src/main/java/org/apache/maven/shared/transfer/artifact/deploy/internal/DefaultArtifactDeployer.java
index e51e784..3170123 100644
--- a/src/main/java/org/apache/maven/shared/transfer/artifact/deploy/internal/DefaultArtifactDeployer.java
+++ b/src/main/java/org/apache/maven/shared/transfer/artifact/deploy/internal/DefaultArtifactDeployer.java
@@ -19,31 +19,25 @@ package org.apache.maven.shared.transfer.artifact.deploy.internal;
* under the License.
*/
-import java.util.Collection;
-
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.project.ProjectBuildingRequest;
import org.apache.maven.shared.transfer.artifact.deploy.ArtifactDeployer;
import org.apache.maven.shared.transfer.artifact.deploy.ArtifactDeployerException;
-import org.codehaus.plexus.PlexusConstants;
-import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
-import org.codehaus.plexus.context.Context;
-import org.codehaus.plexus.context.ContextException;
-import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
+import org.codehaus.plexus.component.annotations.Requirement;
import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
+
+import java.util.Collection;
/**
*
*/
@Component( role = ArtifactDeployer.class )
-class DefaultArtifactDeployer implements ArtifactDeployer, Contextualizable
+class DefaultArtifactDeployer implements ArtifactDeployer
{
-
- private PlexusContainer container;
+ @Requirement
+ RepositorySystem repositorySystem;
@Override
public void deploy( ProjectBuildingRequest request, Collection<Artifact> mavenArtifacts )
@@ -51,14 +45,7 @@ class DefaultArtifactDeployer implements ArtifactDeployer, Contextualizable
{
validateParameters( request, mavenArtifacts );
- try
- {
- getMavenArtifactDeployer( request ).deploy( mavenArtifacts );
- }
- catch ( ComponentLookupException e )
- {
- throw new ArtifactDeployerException( e.getMessage(), e );
- }
+ getMavenArtifactDeployer( request ).deploy( mavenArtifacts );
}
@Override
@@ -66,14 +53,7 @@ class DefaultArtifactDeployer implements ArtifactDeployer, Contextualizable
Collection<Artifact> mavenArtifacts ) throws ArtifactDeployerException
{
validateParameters( request, mavenArtifacts );
- try
- {
- getMavenArtifactDeployer( request ).deploy( remoteRepository, mavenArtifacts );
- }
- catch ( ComponentLookupException e )
- {
- throw new ArtifactDeployerException( e.getMessage(), e );
- }
+ getMavenArtifactDeployer( request ).deploy( remoteRepository, mavenArtifacts );
}
private void validateParameters( ProjectBuildingRequest request, Collection<Artifact> mavenArtifacts )
@@ -92,24 +72,8 @@ class DefaultArtifactDeployer implements ArtifactDeployer, Contextualizable
}
}
- /**
- * Injects the Plexus content.
- *
- * @param context Plexus context to inject.
- * @throws ContextException if the PlexusContainer could not be located.
- */
- public void contextualize( Context context ) throws ContextException
- {
- container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
- }
-
private MavenArtifactDeployer getMavenArtifactDeployer( ProjectBuildingRequest buildingRequest )
- throws ComponentLookupException, ArtifactDeployerException
{
- RepositorySystem repositorySystem = container.lookup( RepositorySystem.class );
-
- RepositorySystemSession session = Invoker.invoke( buildingRequest, "getRepositorySession" );
-
- return new Maven31ArtifactDeployer( repositorySystem, session );
+ return new Maven31ArtifactDeployer( repositorySystem, buildingRequest.getRepositorySession() );
}
}
diff --git a/src/main/java/org/apache/maven/shared/transfer/artifact/deploy/internal/Invoker.java b/src/main/java/org/apache/maven/shared/transfer/artifact/deploy/internal/Invoker.java
deleted file mode 100644
index 485e58d..0000000
--- a/src/main/java/org/apache/maven/shared/transfer/artifact/deploy/internal/Invoker.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package org.apache.maven.shared.transfer.artifact.deploy.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.artifact.deploy.ArtifactDeployerException;
-
-/**
- * Invokes method on objects using reflection.
- */
-final class Invoker
-{
- private Invoker()
- {
- // do not instantiate
- }
-
- public static <T> T invoke( Object object, String method )
- throws ArtifactDeployerException
- {
- try
- {
- @SuppressWarnings( "unchecked" )
- T invoke = (T) object.getClass().getMethod( method ).invoke( object );
- return invoke;
- }
- catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e )
- {
- throw new ArtifactDeployerException( e.getMessage(), e );
- }
- }
-
- public static <T> T invoke( Class<?> objectClazz, String staticMethod, Class<?> argClazz, Object arg )
- throws ArtifactDeployerException
- {
- try
- {
- @SuppressWarnings( "unchecked" )
- T invoke = (T) objectClazz.getMethod( staticMethod, argClazz ).invoke( null, arg );
- return invoke;
- }
- catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e )
- {
- throw new ArtifactDeployerException( e.getMessage(), e );
- }
- }
-
-}
diff --git a/src/main/java/org/apache/maven/shared/transfer/artifact/deploy/internal/Maven31ArtifactDeployer.java b/src/main/java/org/apache/maven/shared/transfer/artifact/deploy/internal/Maven31ArtifactDeployer.java
index ed61b12..c69f59e 100644
--- a/src/main/java/org/apache/maven/shared/transfer/artifact/deploy/internal/Maven31ArtifactDeployer.java
+++ b/src/main/java/org/apache/maven/shared/transfer/artifact/deploy/internal/Maven31ArtifactDeployer.java
@@ -41,7 +41,6 @@ import org.eclipse.aether.util.artifact.SubArtifact;
*/
class Maven31ArtifactDeployer implements MavenArtifactDeployer
{
-
private final RepositorySystem repositorySystem;
private final RepositorySystemSession session;
@@ -76,8 +75,7 @@ class Maven31ArtifactDeployer implements MavenArtifactDeployer
// transform artifacts
for ( org.apache.maven.artifact.Artifact mavenArtifact : mavenArtifacts )
{
- Artifact aetherArtifact = Invoker.invoke( RepositoryUtils.class, "toArtifact",
- org.apache.maven.artifact.Artifact.class, mavenArtifact );
+ Artifact aetherArtifact = RepositoryUtils.toArtifact( mavenArtifact );
request.addArtifact( aetherArtifact );
RemoteRepository aetherRepository;
@@ -129,8 +127,7 @@ class Maven31ArtifactDeployer implements MavenArtifactDeployer
private RemoteRepository getRemoteRepository( RepositorySystemSession session, ArtifactRepository remoteRepository )
throws ArtifactDeployerException
{
- RemoteRepository aetherRepo = Invoker.invoke( RepositoryUtils.class, "toRepo", ArtifactRepository.class,
- remoteRepository );
+ RemoteRepository aetherRepo = RepositoryUtils.toRepo( remoteRepository );
if ( aetherRepo.getAuthentication() == null || aetherRepo.getProxy() == null )
{
diff --git a/src/main/java/org/apache/maven/shared/transfer/artifact/install/internal/DefaultArtifactInstaller.java b/src/main/java/org/apache/maven/shared/transfer/artifact/install/internal/DefaultArtifactInstaller.java
index bd963a7..d6de637 100644
--- a/src/main/java/org/apache/maven/shared/transfer/artifact/install/internal/DefaultArtifactInstaller.java
+++ b/src/main/java/org/apache/maven/shared/transfer/artifact/install/internal/DefaultArtifactInstaller.java
@@ -19,49 +19,36 @@ package org.apache.maven.shared.transfer.artifact.install.internal;
* under the License.
*/
-import java.io.File;
-import java.util.Collection;
-
import org.apache.maven.artifact.Artifact;
import org.apache.maven.project.ProjectBuildingRequest;
import org.apache.maven.shared.transfer.artifact.install.ArtifactInstaller;
import org.apache.maven.shared.transfer.artifact.install.ArtifactInstallerException;
import org.apache.maven.shared.transfer.repository.RepositoryManager;
-import org.codehaus.plexus.PlexusConstants;
-import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
-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;
+import java.util.Collection;
/**
*
*/
@Component( role = ArtifactInstaller.class )
-class DefaultArtifactInstaller implements ArtifactInstaller, Contextualizable
+class DefaultArtifactInstaller implements ArtifactInstaller
{
- private PlexusContainer container;
-
@Requirement
private RepositoryManager repositoryManager;
+ @Requirement
+ private RepositorySystem repositorySystem;
+
@Override
public void install( ProjectBuildingRequest request, Collection<Artifact> mavenArtifacts )
throws ArtifactInstallerException, IllegalArgumentException
{
validateParameters( request, mavenArtifacts );
- try
- {
- getMavenArtifactInstaller( request ).install( mavenArtifacts );
- }
- catch ( ComponentLookupException e )
- {
- throw new ArtifactInstallerException( e.getMessage(), e );
- }
+ getMavenArtifactInstaller( request ).install( mavenArtifacts );
}
@Override
@@ -83,14 +70,7 @@ class DefaultArtifactInstaller implements ArtifactInstaller, Contextualizable
// update local repo in request
ProjectBuildingRequest newRequest = repositoryManager.setLocalRepositoryBasedir( request, localRepositry );
- try
- {
- getMavenArtifactInstaller( newRequest ).install( mavenArtifacts );
- }
- catch ( ComponentLookupException e )
- {
- throw new ArtifactInstallerException( e.getMessage(), e );
- }
+ getMavenArtifactInstaller( newRequest ).install( mavenArtifacts );
}
private void validateParameters( ProjectBuildingRequest request, Collection<Artifact> mavenArtifacts )
@@ -109,24 +89,8 @@ class DefaultArtifactInstaller implements ArtifactInstaller, Contextualizable
}
}
- /**
- * Injects the Plexus content.
- *
- * @param context Plexus context to inject.
- * @throws ContextException if the PlexusContainer could not be located.
- */
- public void contextualize( Context context ) throws ContextException
- {
- container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
- }
-
private MavenArtifactInstaller getMavenArtifactInstaller( ProjectBuildingRequest buildingRequest )
- throws ComponentLookupException, ArtifactInstallerException
{
- RepositorySystem repositorySystem = container.lookup( RepositorySystem.class );
-
- RepositorySystemSession session = Invoker.invoke( buildingRequest, "getRepositorySession" );
-
- return new Maven31ArtifactInstaller( repositorySystem, session );
+ return new Maven31ArtifactInstaller( repositorySystem, buildingRequest.getRepositorySession() );
}
}
diff --git a/src/main/java/org/apache/maven/shared/transfer/artifact/install/internal/Invoker.java b/src/main/java/org/apache/maven/shared/transfer/artifact/install/internal/Invoker.java
deleted file mode 100644
index eb8c69e..0000000
--- a/src/main/java/org/apache/maven/shared/transfer/artifact/install/internal/Invoker.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.apache.maven.shared.transfer.artifact.install.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.artifact.install.ArtifactInstallerException;
-
-/**
- * Invokes method on objects using reflection.
- */
-final class Invoker
-{
- private Invoker()
- {
- // do not instantiate
- }
-
- public static <T> T invoke( Object object, String method )
- throws ArtifactInstallerException
- {
- try
- {
- @SuppressWarnings( "unchecked" )
- T invoke = (T) object.getClass().getMethod( method ).invoke( object );
- return invoke;
- }
- catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e )
- {
- throw new ArtifactInstallerException( e.getMessage(), e );
- }
- }
-
- public static <T> T invoke( Class<?> objectClazz, String staticMethod, Class<?> argClazz, Object arg )
- throws ArtifactInstallerException
- {
- try
- {
- @SuppressWarnings( "unchecked" )
- T invoke = (T) objectClazz.getMethod( staticMethod, argClazz ).invoke( null, arg );
- return invoke;
- }
- catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e )
- {
- throw new ArtifactInstallerException( e.getMessage(), e );
- }
- }
-}
diff --git a/src/main/java/org/apache/maven/shared/transfer/artifact/install/internal/Maven31ArtifactInstaller.java b/src/main/java/org/apache/maven/shared/transfer/artifact/install/internal/Maven31ArtifactInstaller.java
index aa15504..e188646 100644
--- a/src/main/java/org/apache/maven/shared/transfer/artifact/install/internal/Maven31ArtifactInstaller.java
+++ b/src/main/java/org/apache/maven/shared/transfer/artifact/install/internal/Maven31ArtifactInstaller.java
@@ -61,8 +61,7 @@ class Maven31ArtifactInstaller
// transform artifacts
for ( org.apache.maven.artifact.Artifact mavenArtifact : mavenArtifacts )
{
- Artifact mainArtifact = Invoker.invoke( RepositoryUtils.class, "toArtifact",
- org.apache.maven.artifact.Artifact.class, mavenArtifact );
+ Artifact mainArtifact = RepositoryUtils.toArtifact( mavenArtifact );
request.addArtifact( mainArtifact );
for ( ArtifactMetadata metadata : mavenArtifact.getMetadataList() )
diff --git a/src/main/java/org/apache/maven/shared/transfer/artifact/resolve/internal/DefaultArtifactResolver.java b/src/main/java/org/apache/maven/shared/transfer/artifact/resolve/internal/DefaultArtifactResolver.java
index c6d1407..5486667 100644
--- a/src/main/java/org/apache/maven/shared/transfer/artifact/resolve/internal/DefaultArtifactResolver.java
+++ b/src/main/java/org/apache/maven/shared/transfer/artifact/resolve/internal/DefaultArtifactResolver.java
@@ -19,8 +19,6 @@ package org.apache.maven.shared.transfer.artifact.resolve.internal;
* under the License.
*/
-import java.util.List;
-
import org.apache.maven.RepositoryUtils;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.project.ProjectBuildingRequest;
@@ -28,39 +26,25 @@ import org.apache.maven.shared.transfer.artifact.ArtifactCoordinate;
import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolver;
import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolverException;
import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult;
-import org.codehaus.plexus.PlexusConstants;
-import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
-import org.codehaus.plexus.context.Context;
-import org.codehaus.plexus.context.ContextException;
-import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
+import org.codehaus.plexus.component.annotations.Requirement;
import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.repository.RemoteRepository;
-
/**
*
*/
@Component( role = ArtifactResolver.class, hint = "default" )
-class DefaultArtifactResolver implements ArtifactResolver, Contextualizable
+class DefaultArtifactResolver implements ArtifactResolver
{
- private PlexusContainer container;
+ @Requirement
+ RepositorySystem repositorySystem;
@Override
public ArtifactResult resolveArtifact( ProjectBuildingRequest buildingRequest, Artifact mavenArtifact )
throws ArtifactResolverException, IllegalArgumentException
{
validateParameters( buildingRequest, mavenArtifact );
- try
- {
- return getMavenArtifactResolver( buildingRequest ).resolveArtifact( mavenArtifact );
- }
- catch ( ComponentLookupException e )
- {
- throw new ArtifactResolverException( e.getMessage(), e );
- }
+ return getMavenArtifactResolver( buildingRequest ).resolveArtifact( mavenArtifact );
}
@Override
@@ -68,14 +52,7 @@ class DefaultArtifactResolver implements ArtifactResolver, Contextualizable
throws ArtifactResolverException, IllegalArgumentException
{
validateParameters( buildingRequest, coordinate );
- try
- {
- return getMavenArtifactResolver( buildingRequest ).resolveArtifact( coordinate );
- }
- catch ( ComponentLookupException e )
- {
- throw new ArtifactResolverException( e.getMessage(), e );
- }
+ return getMavenArtifactResolver( buildingRequest ).resolveArtifact( coordinate );
}
private void validateParameters( ProjectBuildingRequest buildingRequest, Artifact mavenArtifact )
@@ -102,28 +79,10 @@ class DefaultArtifactResolver implements ArtifactResolver, Contextualizable
}
}
- /**
- * Injects the Plexus content.
- *
- * @param context Plexus context to inject.
- * @throws ContextException if the PlexusContainer could not be located.
- */
- public void contextualize( Context context ) throws ContextException
- {
- container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
- }
-
private MavenArtifactResolver getMavenArtifactResolver( ProjectBuildingRequest buildingRequest )
- throws ComponentLookupException, ArtifactResolverException
{
- RepositorySystem repositorySystem = container.lookup( RepositorySystem.class );
-
- List<RemoteRepository> aetherRepositories = Invoker.invoke(
- RepositoryUtils.class, "toRepos", List.class, buildingRequest.getRemoteRepositories() );
-
- RepositorySystemSession session = Invoker.invoke( buildingRequest, "getRepositorySession" );
-
- return new Maven31ArtifactResolver( repositorySystem, aetherRepositories, session );
-
+ return new Maven31ArtifactResolver( repositorySystem,
+ RepositoryUtils.toRepos( buildingRequest.getRemoteRepositories() ),
+ buildingRequest.getRepositorySession() );
}
}
diff --git a/src/main/java/org/apache/maven/shared/transfer/artifact/resolve/internal/Invoker.java b/src/main/java/org/apache/maven/shared/transfer/artifact/resolve/internal/Invoker.java
deleted file mode 100644
index 329e2c6..0000000
--- a/src/main/java/org/apache/maven/shared/transfer/artifact/resolve/internal/Invoker.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package org.apache.maven.shared.transfer.artifact.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.artifact.resolve.ArtifactResolverException;
-
-/**
- * Invokes method on objects using reflection.
- */
-final class Invoker
-{
-
- private Invoker()
- {
- // do not instantiate
- }
-
- public static <T> T invoke( Object object, String method )
- throws ArtifactResolverException
- {
- try
- {
- @SuppressWarnings( "unchecked" )
- T invoke = (T) object.getClass().getMethod( method ).invoke( object );
- return invoke;
- }
- catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e )
- {
- throw new ArtifactResolverException( e.getMessage(), e );
- }
- }
-
- public static <T> T invoke( Class<?> objectClazz, String staticMethod, Class<?> argClazz, Object arg )
- throws ArtifactResolverException
- {
- try
- {
- @SuppressWarnings( "unchecked" )
- T invoke = (T) objectClazz.getMethod( staticMethod, argClazz ).invoke( null, arg );
- return invoke;
- }
- catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e )
- {
- throw new ArtifactResolverException( e.getMessage(), e );
- }
- }
-
-}
diff --git a/src/main/java/org/apache/maven/shared/transfer/artifact/resolve/internal/Maven31ArtifactResolver.java b/src/main/java/org/apache/maven/shared/transfer/artifact/resolve/internal/Maven31ArtifactResolver.java
index 9ef5658..5eca53b 100644
--- a/src/main/java/org/apache/maven/shared/transfer/artifact/resolve/internal/Maven31ArtifactResolver.java
+++ b/src/main/java/org/apache/maven/shared/transfer/artifact/resolve/internal/Maven31ArtifactResolver.java
@@ -24,6 +24,7 @@ import java.util.List;
import org.apache.maven.RepositoryUtils;
import org.apache.maven.shared.transfer.artifact.ArtifactCoordinate;
import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolverException;
+import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.artifact.Artifact;
@@ -56,20 +57,14 @@ class Maven31ArtifactResolver
}
@Override
- public org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult resolveArtifact(
+ public ArtifactResult resolveArtifact(
org.apache.maven.artifact.Artifact mavenArtifact ) throws ArtifactResolverException
{
- Artifact aetherArtifact = Invoker.invoke( RepositoryUtils.class, "toArtifact",
- org.apache.maven.artifact.Artifact.class, mavenArtifact );
-
- return resolveArtifact( aetherArtifact );
+ return resolveArtifact( RepositoryUtils.toArtifact( mavenArtifact ) );
}
@Override
- // CHECKSTYLE_OFF: LineLength
- public org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult resolveArtifact( ArtifactCoordinate coordinate )
- throws ArtifactResolverException
- // CHECKSTYLE_ON: LineLength
+ public ArtifactResult resolveArtifact( ArtifactCoordinate coordinate ) throws ArtifactResolverException
{
Artifact aetherArtifact =
new DefaultArtifact( coordinate.getGroupId(), coordinate.getArtifactId(), coordinate.getClassifier(),
@@ -78,10 +73,7 @@ class Maven31ArtifactResolver
return resolveArtifact( aetherArtifact );
}
- // CHECKSTYLE_OFF: LineLength
- private org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult resolveArtifact( Artifact aetherArtifact )
- throws ArtifactResolverException
- // CHECKSTYLE_ON: LineLength
+ private ArtifactResult resolveArtifact( Artifact aetherArtifact ) throws ArtifactResolverException
{
try
{
diff --git a/src/main/java/org/apache/maven/shared/transfer/artifact/resolve/internal/Maven31ArtifactResult.java b/src/main/java/org/apache/maven/shared/transfer/artifact/resolve/internal/Maven31ArtifactResult.java
index 7b56826..6600c24 100644
--- a/src/main/java/org/apache/maven/shared/transfer/artifact/resolve/internal/Maven31ArtifactResult.java
+++ b/src/main/java/org/apache/maven/shared/transfer/artifact/resolve/internal/Maven31ArtifactResult.java
@@ -20,9 +20,7 @@ package org.apache.maven.shared.transfer.artifact.resolve.internal;
*/
import org.apache.maven.RepositoryUtils;
-import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResolverException;
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}
@@ -46,14 +44,6 @@ class Maven31ArtifactResult
@Override
public org.apache.maven.artifact.Artifact getArtifact()
{
- try
- {
- return Invoker.invoke( RepositoryUtils.class, "toArtifact",
- Artifact.class, artifactResult.getArtifact() );
- }
- catch ( ArtifactResolverException e )
- {
- throw new RuntimeException( e );
- }
+ return RepositoryUtils.toArtifact( artifactResult.getArtifact() );
}
}
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..457e2b5 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;
@@ -31,16 +28,11 @@ import org.apache.maven.shared.transfer.collection.CollectResult;
import org.apache.maven.shared.transfer.collection.DependencyCollectionException;
import org.apache.maven.shared.transfer.collection.DependencyCollector;
import org.apache.maven.shared.transfer.dependencies.DependableCoordinate;
-import org.codehaus.plexus.PlexusConstants;
-import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
-import org.codehaus.plexus.context.Context;
-import org.codehaus.plexus.context.ContextException;
-import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
+import org.codehaus.plexus.component.annotations.Requirement;
import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.repository.RemoteRepository;
+
+import java.util.Objects;
/**
* This DependencyCollector passes the request to the proper Maven 3.x implementation
@@ -48,9 +40,13 @@ import org.eclipse.aether.repository.RemoteRepository;
* @author Robert Scholte
*/
@Component( role = DependencyCollector.class, hint = "default" )
-class DefaultDependencyCollector implements DependencyCollector, Contextualizable
+class DefaultDependencyCollector implements DependencyCollector
{
- private PlexusContainer container;
+ @Requirement
+ ArtifactHandlerManager artifactHandlerManager;
+
+ @Requirement
+ RepositorySystem repositorySystem;
@Override
public CollectResult collectDependencies( ProjectBuildingRequest buildingRequest, Dependency root )
@@ -58,14 +54,7 @@ class DefaultDependencyCollector implements DependencyCollector, Contextualizabl
{
validateParameters( buildingRequest, root );
- try
- {
- return getMavenDependencyCollector( buildingRequest ).collectDependencies( root );
- }
- catch ( ComponentLookupException e )
- {
- throw new DependencyCollectionException( e.getMessage(), e );
- }
+ return getMavenDependencyCollector( buildingRequest ).collectDependencies( root );
}
@Override
@@ -74,14 +63,7 @@ class DefaultDependencyCollector implements DependencyCollector, Contextualizabl
{
validateParameters( buildingRequest, root );
- try
- {
- return getMavenDependencyCollector( buildingRequest ).collectDependencies( root );
- }
- catch ( ComponentLookupException e )
- {
- throw new DependencyCollectionException( e.getMessage(), e );
- }
+ return getMavenDependencyCollector( buildingRequest ).collectDependencies( root );
}
@Override
@@ -90,14 +72,7 @@ class DefaultDependencyCollector implements DependencyCollector, Contextualizabl
{
validateParameters( buildingRequest, root );
- try
- {
- return getMavenDependencyCollector( buildingRequest ).collectDependencies( root );
- }
- catch ( ComponentLookupException e )
- {
- throw new DependencyCollectionException( e.getMessage(), e );
- }
+ return getMavenDependencyCollector( buildingRequest ).collectDependencies( root );
}
private void validateParameters( ProjectBuildingRequest buildingRequest, DependableCoordinate root )
@@ -131,31 +106,10 @@ class DefaultDependencyCollector implements DependencyCollector, Contextualizabl
Objects.requireNonNull( root, "The parameter root is not allowed to be null." );
}
- /**
- * Injects the Plexus content.
- *
- * @param context Plexus context to inject.
- * @throws ContextException if the PlexusContainer could not be located.
- */
- public void contextualize( Context context ) throws ContextException
- {
- container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
- }
-
private MavenDependencyCollector getMavenDependencyCollector( ProjectBuildingRequest buildingRequest )
- throws ComponentLookupException, DependencyCollectionException
{
- 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() );
-
- return new Maven31DependencyCollector( m31RepositorySystem, artifactHandlerManager, session,
- aetherRepositories );
+ return new Maven31DependencyCollector( repositorySystem, artifactHandlerManager,
+ buildingRequest.getRepositorySession(),
+ RepositoryUtils.toRepos( buildingRequest.getRemoteRepositories() ) );
}
-
}
diff --git a/src/main/java/org/apache/maven/shared/transfer/collection/internal/Invoker.java b/src/main/java/org/apache/maven/shared/transfer/collection/internal/Invoker.java
deleted file mode 100644
index 642c4b6..0000000
--- a/src/main/java/org/apache/maven/shared/transfer/collection/internal/Invoker.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package org.apache.maven.shared.transfer.collection.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.collection.DependencyCollectionException;
-
-/**
- * Invokes method on objects using reflection.
- */
-final class Invoker
-{
- private Invoker()
- {
- // do not instantiate
- }
-
- public static <T> T invoke( Object object, String method )
- throws DependencyCollectionException
- {
- try
- {
- @SuppressWarnings( "unchecked" )
- T invoke = (T) object.getClass().getMethod( method ).invoke( object );
- return invoke;
- }
- catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e )
- {
- throw new DependencyCollectionException( e.getMessage(), e );
- }
- }
-
- public static <T> T invoke( Class<?> objectClazz, String staticMethod, Class<?> argClazz, Object arg )
- throws DependencyCollectionException
- {
- try
- {
- @SuppressWarnings( "unchecked" )
- T invoke = (T) objectClazz.getMethod( staticMethod, argClazz ).invoke( null, arg );
- return invoke;
- }
- catch ( IllegalAccessException | InvocationTargetException | NoSuchMethodException e )
- {
- throw new DependencyCollectionException( 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 DependencyCollectionException if any checked exception occurs
- */
- public static <T> T invoke( Class<?> objectClazz, String staticMethod, Class<?>[] argClasses, Object[] args )
- throws DependencyCollectionException
- {
- 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 DependencyCollectionException( e.getMessage(), e );
- }
- }
-
-}
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/collection/internal/Maven31DependencyNodeAdapter.java b/src/main/java/org/apache/maven/shared/transfer/collection/internal/Maven31DependencyNodeAdapter.java
index eae1542..563cb31 100644
--- a/src/main/java/org/apache/maven/shared/transfer/collection/internal/Maven31DependencyNodeAdapter.java
+++ b/src/main/java/org/apache/maven/shared/transfer/collection/internal/Maven31DependencyNodeAdapter.java
@@ -19,17 +19,16 @@ package org.apache.maven.shared.transfer.collection.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.collection.DependencyCollectionException;
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;
+
/**
* DependencyCollectorNode wrapper around {@link org.eclipse.aether.graph.DependencyNode}
*
@@ -150,14 +149,6 @@ class Maven31DependencyNodeAdapter implements DependencyNode
private Artifact getArtifact( org.eclipse.aether.artifact.Artifact aetherArtifact )
{
- try
- {
- return Invoker.invoke( RepositoryUtils.class, "toArtifact",
- org.eclipse.aether.artifact.Artifact.class, aetherArtifact );
- }
- catch ( DependencyCollectionException e )
- {
- throw new RuntimeException( e );
- }
+ return RepositoryUtils.toArtifact( aetherArtifact );
}
}
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..2f5a22a 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;
@@ -30,16 +28,9 @@ import org.apache.maven.shared.transfer.dependencies.DependableCoordinate;
import org.apache.maven.shared.transfer.dependencies.collect.CollectorResult;
import org.apache.maven.shared.transfer.dependencies.collect.DependencyCollector;
import org.apache.maven.shared.transfer.dependencies.collect.DependencyCollectorException;
-import org.codehaus.plexus.PlexusConstants;
-import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
-import org.codehaus.plexus.context.Context;
-import org.codehaus.plexus.context.ContextException;
-import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
+import org.codehaus.plexus.component.annotations.Requirement;
import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.repository.RemoteRepository;
/**
* This DependencyCollector passes the request to the proper Maven 3.x implementation
@@ -47,9 +38,14 @@ import org.eclipse.aether.repository.RemoteRepository;
* @author Robert Scholte
*/
@Component( role = DependencyCollector.class, hint = "default" )
-class DefaultDependencyCollector implements DependencyCollector, Contextualizable
+class DefaultDependencyCollector implements DependencyCollector
{
- private PlexusContainer container;
+
+ @Requirement
+ ArtifactHandlerManager artifactHandlerManager;
+
+ @Requirement
+ RepositorySystem repositorySystem;
@Override
public CollectorResult collectDependencies( ProjectBuildingRequest buildingRequest, Dependency root )
@@ -57,14 +53,7 @@ class DefaultDependencyCollector implements DependencyCollector, Contextualizabl
{
validateParameters( buildingRequest, root );
- try
- {
- return getMavenDependencyCollector( buildingRequest ).collectDependencies( root );
- }
- catch ( ComponentLookupException e )
- {
- throw new DependencyCollectorException( e.getMessage(), e );
- }
+ return getMavenDependencyCollector( buildingRequest ).collectDependencies( root );
}
@Override
@@ -73,14 +62,7 @@ class DefaultDependencyCollector implements DependencyCollector, Contextualizabl
{
validateParameters( buildingRequest, root );
- try
- {
- return getMavenDependencyCollector( buildingRequest ).collectDependencies( root );
- }
- catch ( ComponentLookupException e )
- {
- throw new DependencyCollectorException( e.getMessage(), e );
- }
+ return getMavenDependencyCollector( buildingRequest ).collectDependencies( root );
}
@Override
@@ -89,14 +71,7 @@ class DefaultDependencyCollector implements DependencyCollector, Contextualizabl
{
validateParameters( buildingRequest, root );
- try
- {
- return getMavenDependencyCollector( buildingRequest ).collectDependencies( root );
- }
- catch ( ComponentLookupException e )
- {
- throw new DependencyCollectorException( e.getMessage(), e );
- }
+ return getMavenDependencyCollector( buildingRequest ).collectDependencies( root );
}
private void validateParameters( ProjectBuildingRequest buildingRequest, DependableCoordinate root )
@@ -133,32 +108,11 @@ class DefaultDependencyCollector implements DependencyCollector, Contextualizabl
}
}
- /**
- * Injects the Plexus content.
- *
- * @param context Plexus context to inject.
- * @throws ContextException if the PlexusContainer could not be located.
- */
- public void contextualize( Context context ) throws ContextException
- {
- container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
- }
-
private MavenDependencyCollector getMavenDependencyCollector( ProjectBuildingRequest buildingRequest )
- throws ComponentLookupException, DependencyCollectorException
{
- 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() );
-
- return new Maven31DependencyCollector( m31RepositorySystem, artifactHandlerManager, session,
- aetherRepositories );
-
+ return new Maven31DependencyCollector( repositorySystem, artifactHandlerManager,
+ buildingRequest.getRepositorySession(),
+ RepositoryUtils.toRepos( buildingRequest.getRemoteRepositories() ) );
}
}
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..b3787f7 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
@@ -19,9 +19,6 @@ package org.apache.maven.shared.transfer.dependencies.resolve.internal;
* under the License.
*/
-import java.util.Collection;
-import java.util.List;
-
import org.apache.maven.RepositoryUtils;
import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
import org.apache.maven.model.Dependency;
@@ -32,24 +29,23 @@ import org.apache.maven.shared.transfer.artifact.resolve.ArtifactResult;
import org.apache.maven.shared.transfer.dependencies.DependableCoordinate;
import org.apache.maven.shared.transfer.dependencies.resolve.DependencyResolver;
import org.apache.maven.shared.transfer.dependencies.resolve.DependencyResolverException;
-import org.codehaus.plexus.PlexusConstants;
-import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
-import org.codehaus.plexus.context.Context;
-import org.codehaus.plexus.context.ContextException;
-import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
+import org.codehaus.plexus.component.annotations.Requirement;
import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.repository.RemoteRepository;
+
+import java.util.Collection;
/**
*
*/
@Component( role = DependencyResolver.class, hint = "default" )
-class DefaultDependencyResolver implements DependencyResolver, Contextualizable
+class DefaultDependencyResolver implements DependencyResolver
{
- private PlexusContainer container;
+ @Requirement
+ ArtifactHandlerManager artifactHandlerManager;
+
+ @Requirement
+ RepositorySystem repositorySystem;
@Override
public Iterable<ArtifactResult> resolveDependencies( ProjectBuildingRequest buildingRequest,
@@ -58,15 +54,8 @@ class DefaultDependencyResolver implements DependencyResolver, Contextualizable
{
validateBuildingRequest( buildingRequest );
- try
- {
- return getMavenDependencyResolver( buildingRequest ).resolveDependencies( coordinates, managedDependencies,
- filter );
- }
- catch ( ComponentLookupException e )
- {
- throw new DependencyResolverException( e.getMessage(), e );
- }
+ return getMavenDependencyResolver( buildingRequest )
+ .resolveDependencies( coordinates, managedDependencies, filter );
}
@Override
@@ -74,14 +63,7 @@ class DefaultDependencyResolver implements DependencyResolver, Contextualizable
DependableCoordinate coordinate, TransformableFilter filter ) throws DependencyResolverException
{
validateParameters( buildingRequest, coordinate );
- try
- {
- return getMavenDependencyResolver( buildingRequest ).resolveDependencies( coordinate, filter );
- }
- catch ( ComponentLookupException e )
- {
- throw new DependencyResolverException( e.getMessage(), e );
- }
+ return getMavenDependencyResolver( buildingRequest ).resolveDependencies( coordinate, filter );
}
@Override
@@ -89,25 +71,7 @@ class DefaultDependencyResolver implements DependencyResolver, Contextualizable
TransformableFilter filter ) throws DependencyResolverException
{
validateParameters( buildingRequest, model );
- try
- {
- return getMavenDependencyResolver( buildingRequest ).resolveDependencies( model, filter );
- }
- catch ( ComponentLookupException e )
- {
- throw new DependencyResolverException( e.getMessage(), e );
- }
- }
-
- /**
- * Injects the Plexus content.
- *
- * @param context Plexus context to inject.
- * @throws ContextException if the PlexusContainer could not be located.
- */
- public void contextualize( Context context ) throws ContextException
- {
- container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
+ return getMavenDependencyResolver( buildingRequest ).resolveDependencies( model, filter );
}
private void validateParameters( ProjectBuildingRequest buildingRequest, DependableCoordinate coordinate )
@@ -130,19 +94,10 @@ class DefaultDependencyResolver implements DependencyResolver, Contextualizable
}
private MavenDependencyResolver getMavenDependencyResolver( ProjectBuildingRequest buildingRequest )
- throws ComponentLookupException, DependencyResolverException
{
- 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() );
-
- return new Maven31DependencyResolver( m31RepositorySystem, artifactHandlerManager, session,
- aetherRepositories );
+ return new Maven31DependencyResolver( repositorySystem, artifactHandlerManager,
+ buildingRequest.getRepositorySession(),
+ RepositoryUtils.toRepos( buildingRequest.getRemoteRepositories() ) );
}
private void validateBuildingRequest( ProjectBuildingRequest buildingRequest )
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/project/deploy/internal/DefaultProjectDeployer.java b/src/main/java/org/apache/maven/shared/transfer/project/deploy/internal/DefaultProjectDeployer.java
index 16d1d1b..d655b00 100644
--- a/src/main/java/org/apache/maven/shared/transfer/project/deploy/internal/DefaultProjectDeployer.java
+++ b/src/main/java/org/apache/maven/shared/transfer/project/deploy/internal/DefaultProjectDeployer.java
@@ -19,11 +19,6 @@ package org.apache.maven.shared.transfer.project.deploy.internal;
* under the License.
*/
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.project.ProjectBuildingRequest;
@@ -33,12 +28,16 @@ import org.apache.maven.shared.transfer.artifact.deploy.ArtifactDeployerExceptio
import org.apache.maven.shared.transfer.project.NoFileAssignedException;
import org.apache.maven.shared.transfer.project.deploy.ProjectDeployer;
import org.apache.maven.shared.transfer.project.deploy.ProjectDeployerRequest;
-import org.apache.maven.shared.transfer.repository.RepositoryManager;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
/**
* This will deploy a whole project into the appropriate remote repository.
*
@@ -54,9 +53,6 @@ class DefaultProjectDeployer
@Requirement
private ArtifactDeployer deployer;
- @Requirement
- private RepositoryManager repositoryManager;
-
/**
* {@inheritDoc}
*/
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..f5e3105 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,50 +26,32 @@ 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;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
-import org.codehaus.plexus.context.Context;
-import org.codehaus.plexus.context.ContextException;
-import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
+import org.codehaus.plexus.component.annotations.Requirement;
import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
+
+import java.io.File;
/**
*
*/
@Component( role = RepositoryManager.class )
class DefaultRepositoryManager
- implements RepositoryManager, Contextualizable
+ implements RepositoryManager
{
- private PlexusContainer container;
+ @Requirement
+ RepositorySystem repositorySystem;
@Override
public String getPathForLocalArtifact( ProjectBuildingRequest buildingRequest, Artifact artifact )
{
- try
- {
- return getMavenRepositoryManager( buildingRequest ).getPathForLocalArtifact( artifact );
- }
- catch ( ComponentLookupException | RepositoryManagerException e )
- {
- throw new IllegalStateException( e.getMessage(), e );
- }
+ return getMavenRepositoryManager( buildingRequest ).getPathForLocalArtifact( artifact );
}
@Override
public String getPathForLocalArtifact( ProjectBuildingRequest buildingRequest, ArtifactCoordinate coor )
{
- try
- {
- return getMavenRepositoryManager( buildingRequest ).getPathForLocalArtifact( coor );
- }
- catch ( ComponentLookupException | RepositoryManagerException e )
- {
- throw new IllegalStateException( e.getMessage(), e );
- }
+ return getMavenRepositoryManager( buildingRequest ).getPathForLocalArtifact( coor );
}
@Override
@@ -87,54 +67,23 @@ class DefaultRepositoryManager
return getPathForLocalArtifact( buildingRequest, pomCoordinate );
}
- try
- {
- return getMavenRepositoryManager( buildingRequest ).getPathForLocalMetadata( metadata );
- }
- catch ( ComponentLookupException | RepositoryManagerException e )
- {
- throw new IllegalStateException( e.getMessage(), e );
- }
+ return getMavenRepositoryManager( buildingRequest ).getPathForLocalMetadata( metadata );
}
@Override
public ProjectBuildingRequest setLocalRepositoryBasedir( ProjectBuildingRequest buildingRequest, File basedir )
{
- try
- {
- return getMavenRepositoryManager( buildingRequest ).setLocalRepositoryBasedir( buildingRequest, basedir );
- }
- catch ( ComponentLookupException | RepositoryManagerException e )
- {
- throw new IllegalStateException( e.getMessage(), e );
- }
+ return getMavenRepositoryManager( buildingRequest ).setLocalRepositoryBasedir( buildingRequest, basedir );
}
@Override
public File getLocalRepositoryBasedir( ProjectBuildingRequest buildingRequest )
{
- try
- {
- return getMavenRepositoryManager( buildingRequest ).getLocalRepositoryBasedir();
- }
- catch ( ComponentLookupException | RepositoryManagerException e )
- {
- throw new IllegalStateException( e.getMessage(), e );
- }
+ return getMavenRepositoryManager( buildingRequest ).getLocalRepositoryBasedir();
}
private MavenRepositoryManager getMavenRepositoryManager( ProjectBuildingRequest buildingRequest )
- throws ComponentLookupException, RepositoryManagerException
- {
- RepositorySystem m31RepositorySystem = container.lookup( RepositorySystem.class );
-
- RepositorySystemSession session = Invoker.invoke( buildingRequest, "getRepositorySession" );
-
- return new Maven31RepositoryManager( m31RepositorySystem, session );
- }
-
- public void contextualize( Context context ) throws ContextException
{
- container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
+ return new Maven31RepositoryManager( repositorySystem, buildingRequest.getRepositorySession() );
}
}
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;
}