Replace deprecated ArtifactFactory with RepositoryUtils to translate an Aether artifact to a Maven artifact
git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@1687128 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Invoker.java b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Invoker.java
index e7df4bf..f591973 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Invoker.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Invoker.java
@@ -19,10 +19,10 @@
* under the License.
*/
-import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
-
import java.lang.reflect.InvocationTargetException;
+import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
+
/**
* Invokes method on objects using reflection.
*/
@@ -81,4 +81,25 @@
throw new DependencyGraphBuilderException( e.getMessage(), e );
}
}
+
+ public static Object invoke( Class<?> objectClazz, String staticMethod, Class<?> argClazz, Object arg )
+ throws DependencyGraphBuilderException
+ {
+ try
+ {
+ return objectClazz.getMethod( staticMethod, argClazz ).invoke( null, arg );
+ }
+ catch ( IllegalAccessException e )
+ {
+ throw new DependencyGraphBuilderException( e.getMessage(), e );
+ }
+ catch ( InvocationTargetException e )
+ {
+ throw new DependencyGraphBuilderException( e.getMessage(), e );
+ }
+ catch ( NoSuchMethodException e )
+ {
+ throw new DependencyGraphBuilderException( e.getMessage(), e );
+ }
+ }
}
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
index 066e6ff..95d5665 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
@@ -19,10 +19,16 @@
* under the License.
*/
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.maven.RepositoryUtils;
import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
-import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.project.DefaultDependencyResolutionRequest;
import org.apache.maven.project.DependencyResolutionException;
import org.apache.maven.project.DependencyResolutionRequest;
@@ -40,13 +46,6 @@
import org.eclipse.aether.graph.Dependency;
import org.eclipse.aether.version.VersionConstraint;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
/**
* Wrapper around Eclipse Aether dependency resolver, used in Maven 3.1.
*
@@ -62,9 +61,6 @@
@Requirement
private ProjectDependenciesResolver resolver;
- @Requirement
- private ArtifactFactory factory;
-
/**
* Builds the dependency graph for Maven 3.1+.
*
@@ -189,11 +185,16 @@
private Artifact getDependencyArtifact( Dependency dep )
{
org.eclipse.aether.artifact.Artifact artifact = dep.getArtifact();
-
- return factory.createDependencyArtifact( artifact.getGroupId(), artifact.getArtifactId(),
- VersionRange.createFromVersion( artifact.getVersion() ),
- artifact.getProperty( "type", artifact.getExtension() ),
- artifact.getClassifier(), dep.getScope(), dep.isOptional() );
+
+ try
+ {
+ return (Artifact) Invoker.invoke( RepositoryUtils.class, "toArtifact", org.eclipse.aether.artifact.Artifact.class, artifact );
+ }
+ catch ( DependencyGraphBuilderException e )
+ {
+ // ReflectionException should not happen
+ throw new RuntimeException( e.getMessage(), e );
+ }
}
private DependencyNode buildDependencyNode( DependencyNode parent, org.eclipse.aether.graph.DependencyNode node,
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
index a24c6e8..1b9870a 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
@@ -19,10 +19,16 @@
* under the License.
*/
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.maven.RepositoryUtils;
import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
-import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.project.DefaultDependencyResolutionRequest;
import org.apache.maven.project.DependencyResolutionException;
import org.apache.maven.project.DependencyResolutionRequest;
@@ -39,13 +45,6 @@
import org.sonatype.aether.graph.Dependency;
import org.sonatype.aether.version.VersionConstraint;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
/**
* Wrapper around Maven 3 dependency resolver.
*
@@ -61,9 +60,6 @@
@Requirement
private ProjectDependenciesResolver resolver;
- @Requirement
- private ArtifactFactory factory;
-
/**
* Builds the dependency graph for Maven 3.
*
@@ -175,12 +171,8 @@
private Artifact getDependencyArtifact( Dependency dep )
{
- org.sonatype.aether.artifact.Artifact artifact = dep.getArtifact();
-
- return factory.createDependencyArtifact( artifact.getGroupId(), artifact.getArtifactId(),
- VersionRange.createFromVersion( artifact.getVersion() ),
- artifact.getProperty( "type", artifact.getExtension() ),
- artifact.getClassifier(), dep.getScope(), dep.isOptional() );
+
+ return RepositoryUtils.toArtifact( dep.getArtifact() );
}
private DependencyNode buildDependencyNode( DependencyNode parent, org.sonatype.aether.graph.DependencyNode node,