You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2015/05/11 22:08:43 UTC
svn commit: r1678815 - in /maven/shared/branches/m-dependency-tree: ./
src/main/java/org/apache/maven/shared/dependency/graph/
src/main/java/org/apache/maven/shared/dependency/graph/internal/
src/main/java/org/apache/maven/shared/dependency/tree/ src/t...
Author: rfscholte
Date: Mon May 11 20:08:42 2015
New Revision: 1678815
URL: http://svn.apache.org/r1678815
Log:
m-dependency-tree 3.0 cleanup
Removed:
maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven2DependencyGraphBuilder.java
maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/tree/
maven/shared/branches/m-dependency-tree/src/test/java/org/
Modified:
maven/shared/branches/m-dependency-tree/pom.xml
maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/DependencyGraphBuilder.java
maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyGraphBuilder.java
maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
Modified: maven/shared/branches/m-dependency-tree/pom.xml
URL: http://svn.apache.org/viewvc/maven/shared/branches/m-dependency-tree/pom.xml?rev=1678815&r1=1678814&r2=1678815&view=diff
==============================================================================
--- maven/shared/branches/m-dependency-tree/pom.xml (original)
+++ maven/shared/branches/m-dependency-tree/pom.xml Mon May 11 20:08:42 2015
@@ -28,7 +28,7 @@
</parent>
<artifactId>maven-dependency-tree</artifactId>
- <version>2.3-SNAPSHOT</version>
+ <version>3.0-SNAPSHOT</version>
<name>Apache Maven Dependency Tree</name>
<description>A tree-based API for resolution of Maven project dependencies</description>
@@ -50,7 +50,7 @@
</distributionManagement>
<properties>
- <mavenVersion>2.2.1</mavenVersion>
+ <mavenVersion>3.0</mavenVersion>
</properties>
<contributors>
@@ -62,12 +62,6 @@
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
- <artifactId>maven-project</artifactId>
- <version>${mavenVersion}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
<version>3.0.4</version>
<scope>provided</scope>
Modified: maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/DependencyGraphBuilder.java
URL: http://svn.apache.org/viewvc/maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/DependencyGraphBuilder.java?rev=1678815&r1=1678814&r2=1678815&view=diff
==============================================================================
--- maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/DependencyGraphBuilder.java (original)
+++ maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/DependencyGraphBuilder.java Mon May 11 20:08:42 2015
@@ -21,6 +21,7 @@ package org.apache.maven.shared.dependen
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.ProjectBuildingRequest;
import java.util.Collection;
@@ -39,10 +40,24 @@ public interface DependencyGraphBuilder
* @param filter artifact filter (can be <code>null</code>)
* @return the dependency graph
* @throws DependencyGraphBuilderException if some of the dependencies could not be resolved.
+ * @deprecated instead use {@link #buildDependencyGraph(ProjectBuildingRequest, ArtifactFilter)}
*/
+ @Deprecated
DependencyNode buildDependencyGraph( MavenProject project, ArtifactFilter filter )
throws DependencyGraphBuilderException;
+
+ /**
+ * Build the dependency graph.
+ *
+ * @param project the project
+ * @param filter artifact filter (can be <code>null</code>)
+ * @return the dependency graph
+ * @throws DependencyGraphBuilderException if some of the dependencies could not be resolved.
+ */
+ DependencyNode buildDependencyGraph( ProjectBuildingRequest buildingRequest, ArtifactFilter filter )
+ throws DependencyGraphBuilderException;
+
/**
* Build the dependency graph, with a hack to include dependencies contained in the reactor projects
* but that are not yet compiled, which is the minimum prerequisite for Maven core's
@@ -56,8 +71,28 @@ public interface DependencyGraphBuilder
* @param reactorProjects Collection of those projects contained in the reactor (can be <code>null</code>).
* @return the dependency graph
* @throws DependencyGraphBuilderException if some of the dependencies could not be resolved.
+ * @deprecated instead use {@link #buildDependencyGraph(ProjectBuildingRequest, ArtifactFilter, Collection)}
*/
+ @Deprecated
DependencyNode buildDependencyGraph( MavenProject project, ArtifactFilter filter,
Collection<MavenProject> reactorProjects )
throws DependencyGraphBuilderException;
+
+ /**
+ * Build the dependency graph, with a hack to include dependencies contained in the reactor projects
+ * but that are not yet compiled, which is the minimum prerequisite for Maven core's
+ * ReactorReader to find them. Notice that this hack hasn't been done for Maven 2.
+ * <p>Notice: If Maven core did collect instead of resolving dependencies (ie did not try to get the
+ * artifacts but only the poms), probably this hack wouldn't be necessary even for people requiring
+ * the dependency graph before compiling. TODO: for Maven 3, use Aether to collect dependencies.</p>
+ *
+ * @param project the project
+ * @param filter artifact filter (can be <code>null</code>)
+ * @param reactorProjects Collection of those projects contained in the reactor (can be <code>null</code>).
+ * @return the dependency graph
+ * @throws DependencyGraphBuilderException if some of the dependencies could not be resolved.
+ */
+ DependencyNode buildDependencyGraph( ProjectBuildingRequest buildingRequest, ArtifactFilter filter,
+ Collection<MavenProject> reactorProjects )
+ throws DependencyGraphBuilderException;
}
Modified: maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyGraphBuilder.java
URL: http://svn.apache.org/viewvc/maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyGraphBuilder.java?rev=1678815&r1=1678814&r2=1678815&view=diff
==============================================================================
--- maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyGraphBuilder.java (original)
+++ maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyGraphBuilder.java Mon May 11 20:08:42 2015
@@ -21,6 +21,7 @@ package org.apache.maven.shared.dependen
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.ProjectBuildingRequest;
import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
import org.apache.maven.shared.dependency.graph.DependencyNode;
@@ -62,7 +63,13 @@ public class DefaultDependencyGraphBuild
public DependencyNode buildDependencyGraph( MavenProject project, ArtifactFilter filter )
throws DependencyGraphBuilderException
{
- return buildDependencyGraph( project, filter, null );
+ return buildDependencyGraph( project.getProjectBuildingRequest(), filter, null );
+ }
+
+ public DependencyNode buildDependencyGraph( ProjectBuildingRequest buildingRequest, ArtifactFilter filter )
+ throws DependencyGraphBuilderException
+ {
+ return buildDependencyGraph( buildingRequest, filter, null );
}
/**
@@ -78,16 +85,24 @@ public class DefaultDependencyGraphBuild
Collection<MavenProject> reactorProjects )
throws DependencyGraphBuilderException
{
+ return buildDependencyGraph( project.getProjectBuildingRequest(), filter, reactorProjects );
+ }
+
+ public DependencyNode buildDependencyGraph( ProjectBuildingRequest buildingRequest, ArtifactFilter filter,
+ Collection<MavenProject> reactorProjects )
+ throws DependencyGraphBuilderException
+ {
try
{
- String hint = isMaven31() ? "maven31" : isMaven2x() ? "maven2" : "maven3";
+ String hint = isMaven31() ? "maven31" : "maven3";
DependencyGraphBuilder effectiveGraphBuilder =
(DependencyGraphBuilder) container.lookup( DependencyGraphBuilder.class.getCanonicalName(), hint );
- getLogger().debug( "building " + hint + " dependency graph for " + project.getId() + " with "
- + effectiveGraphBuilder.getClass().getSimpleName() );
+
+ getLogger().debug( "building " + hint + " dependency graph for " + buildingRequest.getProject().getId()
+ + " with " + effectiveGraphBuilder.getClass().getSimpleName() );
- return effectiveGraphBuilder.buildDependencyGraph( project, filter, reactorProjects );
+ return effectiveGraphBuilder.buildDependencyGraph( buildingRequest, filter, reactorProjects );
}
catch ( ComponentLookupException e )
{
@@ -96,14 +111,6 @@ public class DefaultDependencyGraphBuild
}
/**
- * @return true if the current Maven is Maven 2.x.
- */
- protected static boolean isMaven2x()
- {
- return !canFindCoreClass( "org.apache.maven.project.DependencyResolutionRequest" ); // Maven 3 specific
- }
-
- /**
* @return true if the current Maven version is Maven 3.1.
*/
protected static boolean isMaven31()
Modified: maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
URL: http://svn.apache.org/viewvc/maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java?rev=1678815&r1=1678814&r2=1678815&view=diff
==============================================================================
--- maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java (original)
+++ maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java Mon May 11 20:08:42 2015
@@ -78,6 +78,12 @@ public class Maven31DependencyGraphBuild
{
return buildDependencyGraph( project, filter, null );
}
+
+ public DependencyNode buildDependencyGraph( ProjectBuildingRequest buildingRequest, ArtifactFilter filter )
+ throws DependencyGraphBuilderException
+ {
+ return buildDependencyGraph( buildingRequest, filter, null );
+ }
/**
* Builds the dependency graph for Maven 3.1+, eventually hacking for collecting projects from
@@ -96,6 +102,15 @@ public class Maven31DependencyGraphBuild
ProjectBuildingRequest projectBuildingRequest =
(ProjectBuildingRequest) Invoker.invoke( project, "getProjectBuildingRequest" );
+ return buildDependencyGraph( projectBuildingRequest, filter, reactorProjects );
+ }
+
+ public DependencyNode buildDependencyGraph( ProjectBuildingRequest projectBuildingRequest, ArtifactFilter filter,
+ Collection<MavenProject> reactorProjects )
+ throws DependencyGraphBuilderException
+ {
+ MavenProject project = projectBuildingRequest.getProject();
+
RepositorySystemSession session =
(RepositorySystemSession) Invoker.invoke( projectBuildingRequest, "getRepositorySession" );
Modified: maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
URL: http://svn.apache.org/viewvc/maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java?rev=1678815&r1=1678814&r2=1678815&view=diff
==============================================================================
--- maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java (original)
+++ maven/shared/branches/m-dependency-tree/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java Mon May 11 20:08:42 2015
@@ -19,6 +19,13 @@ package org.apache.maven.shared.dependen
* 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.artifact.Artifact;
import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
@@ -36,16 +43,10 @@ import org.apache.maven.shared.dependenc
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.sonatype.aether.RepositorySystemSession;
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.
*
@@ -77,6 +78,12 @@ public class Maven3DependencyGraphBuilde
{
return buildDependencyGraph( project, filter, null );
}
+
+ public DependencyNode buildDependencyGraph( ProjectBuildingRequest buildingRequest, ArtifactFilter filter )
+ throws DependencyGraphBuilderException
+ {
+ return buildDependencyGraph( buildingRequest, filter, null );
+ }
/**
* Builds the dependency graph for Maven 3, eventually hacking for collecting projects from
@@ -92,17 +99,31 @@ public class Maven3DependencyGraphBuilde
Collection<MavenProject> reactorProjects )
throws DependencyGraphBuilderException
{
+ // this method doesn't exist on all MavenProject versions and also has been deprecated.
ProjectBuildingRequest projectBuildingRequest =
(ProjectBuildingRequest) Invoker.invoke( project, "getProjectBuildingRequest" );
+ return buildDependencyGraph( projectBuildingRequest, filter, reactorProjects );
+ }
+
+ public DependencyNode buildDependencyGraph( ProjectBuildingRequest buildingRequest, ArtifactFilter filter,
+ Collection<MavenProject> reactorProjects )
+ throws DependencyGraphBuilderException
+ {
+ MavenProject project = buildingRequest.getProject();
+
+ RepositorySystemSession session =
+ (RepositorySystemSession) Invoker.invoke( buildingRequest, "getRepositorySession" );
+
DependencyResolutionRequest request =
- new DefaultDependencyResolutionRequest( project, projectBuildingRequest.getRepositorySession() );
+ new DefaultDependencyResolutionRequest( project, session );
DependencyResolutionResult result = resolveDependencies( request, reactorProjects );
return buildDependencyNode( null, result.getDependencyGraph(), project.getArtifact(), filter );
}
+
private DependencyResolutionResult resolveDependencies( DependencyResolutionRequest request,
Collection<MavenProject> reactorProjects )
throws DependencyGraphBuilderException