You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2013/04/14 20:50:51 UTC
svn commit: r1467812 - in /maven/shared/trunk/maven-dependency-tree: ./
src/main/java/org/apache/maven/shared/dependency/graph/internal/
Author: hboutemy
Date: Sun Apr 14 18:50:50 2013
New Revision: 1467812
URL: http://svn.apache.org/r1467812
Log:
[MSHARED-250] updated support for Maven 3.1-alpha-1/Eclipse Aether 0.9.0-M2
Modified:
maven/shared/trunk/maven-dependency-tree/pom.xml
maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyGraphBuilder.java
maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
Modified: maven/shared/trunk/maven-dependency-tree/pom.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-dependency-tree/pom.xml?rev=1467812&r1=1467811&r2=1467812&view=diff
==============================================================================
--- maven/shared/trunk/maven-dependency-tree/pom.xml (original)
+++ maven/shared/trunk/maven-dependency-tree/pom.xml Sun Apr 14 18:50:50 2013
@@ -78,9 +78,14 @@
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-api</artifactId>
- <version>0.9.0.M1</version>
+ <version>0.9.0.M2</version>
<optional>true</optional>
</dependency>
+ <dependency>
+ <groupId>org.eclipse.aether</groupId>
+ <artifactId>aether-util</artifactId>
+ <version>0.9.0.M2</version>
+ </dependency>
<dependency>
<groupId>jmock</groupId>
Modified: maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyGraphBuilder.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyGraphBuilder.java?rev=1467812&r1=1467811&r2=1467812&view=diff
==============================================================================
--- maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyGraphBuilder.java (original)
+++ maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyGraphBuilder.java Sun Apr 14 18:50:50 2013
@@ -73,16 +73,7 @@ public class DefaultDependencyGraphBuild
*/
protected static boolean isMaven2x()
{
- try
- {
- Thread.currentThread().getContextClassLoader().loadClass( "org.apache.maven.project.DependencyResolutionRequest" ); // Maven 3 specific
-
- return false;
- }
- catch ( ClassNotFoundException e )
- {
- return true;
- }
+ return !canFindCoreClass( "org.apache.maven.project.DependencyResolutionRequest" ); // Maven 3 specific
}
/**
@@ -90,15 +81,20 @@ public class DefaultDependencyGraphBuild
*/
protected static boolean isMaven31()
{
+ return canFindCoreClass( "org.eclipse.aether.artifact.Artifact" ); // Maven 3.1 specific
+ }
+
+ private static boolean canFindCoreClass( String className)
+ {
try
{
- Class.forName( "org.eclipse.aether.artifact.Artifact" ); // Maven 3.1 specific
+ Thread.currentThread().getContextClassLoader().loadClass( className );
- return false;
+ return true;
}
catch ( ClassNotFoundException e )
{
- return true;
+ return false;
}
}
Modified: maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java?rev=1467812&r1=1467811&r2=1467812&view=diff
==============================================================================
--- maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java (original)
+++ maven/shared/trunk/maven-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java Sun Apr 14 18:50:50 2013
@@ -40,7 +40,10 @@ import org.apache.maven.shared.dependenc
import org.apache.maven.shared.dependency.graph.DependencyNode;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
+import org.eclipse.aether.DefaultRepositorySystemSession;
+import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.graph.Dependency;
+import org.eclipse.aether.util.graph.manager.DependencyManagerUtils;
import org.eclipse.aether.version.VersionConstraint;
/**
@@ -66,15 +69,31 @@ public class Maven31DependencyGraphBuild
try
{
ProjectBuildingRequest projectBuildingRequest =
- (ProjectBuildingRequest) invoke( project, "getProjectBuildingRequest" );
+ (ProjectBuildingRequest) invoke( project.getClass(), project, "getProjectBuildingRequest" );
+
+ RepositorySystemSession session =
+ (RepositorySystemSession) invoke( ProjectBuildingRequest.class, projectBuildingRequest,
+ "getRepositorySession" );
+
+ if ( Boolean.TRUE != ( (Boolean) session.getConfigProperties().get( DependencyManagerUtils.NODE_DATA_PREMANAGED_VERSION ) ) )
+ {
+ DefaultRepositorySystemSession newSession = new DefaultRepositorySystemSession( session );
+ newSession.setConfigProperty( DependencyManagerUtils.NODE_DATA_PREMANAGED_VERSION, true );
+ session = newSession;
+ }
DependencyResolutionRequest request =
- new DefaultDependencyResolutionRequest( project, projectBuildingRequest.getRepositorySession() );
+ new DefaultDependencyResolutionRequest();
+ request.setMavenProject( project );
+ invoke( request, "setRepositorySession", RepositorySystemSession.class, session );
DependencyResolutionResult result = resolver.resolve( request );
- return buildDependencyNode( null, (org.eclipse.aether.graph.DependencyNode) result.getDependencyGraph(),
- project.getArtifact(), filter );
+ org.eclipse.aether.graph.DependencyNode graph =
+ (org.eclipse.aether.graph.DependencyNode) invoke( DependencyResolutionResult.class, result,
+ "getDependencyGraph" );
+
+ return buildDependencyNode( null, graph, project.getArtifact(), filter );
}
catch ( DependencyResolutionException e )
{
@@ -94,10 +113,16 @@ public class Maven31DependencyGraphBuild
}
}
- private Object invoke( Object object, String method )
+ private Object invoke( Class<?> clazz, Object object, String method )
throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
{
- return object.getClass().getMethod( method ).invoke( object );
+ return clazz.getMethod( method ).invoke( object );
+ }
+
+ private Object invoke( Object object, String method, Class<?> clazz, Object arg )
+ throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
+ {
+ return object.getClass().getMethod( method, clazz ).invoke( object, arg );
}
private Artifact getDependencyArtifact( Dependency dep )
@@ -113,8 +138,11 @@ public class Maven31DependencyGraphBuild
private DependencyNode buildDependencyNode( DependencyNode parent, org.eclipse.aether.graph.DependencyNode node,
Artifact artifact, ArtifactFilter filter )
{
+ String premanagedVersion = DependencyManagerUtils.getPremanagedVersion( node );
+ String premanagedScope = DependencyManagerUtils.getPremanagedScope( node );
+
DefaultDependencyNode current =
- new DefaultDependencyNode( parent, artifact, node.getPremanagedVersion(), node.getPremanagedScope(),
+ new DefaultDependencyNode( parent, artifact, premanagedVersion, premanagedScope,
getVersionSelectedFromRange( node.getVersionConstraint() ) );
List<DependencyNode> nodes = new ArrayList<DependencyNode>( node.getChildren().size() );