Author: rfscholte
Date: Sun Jun 12 14:36:10 2016
New Revision: 1748013
URL: http://svn.apache.org/viewvc?rev=1748013&view=rev
Log:
Make it possible to collect dependencies for DependableCoordinate and
ProjectCoordinate
Modified:
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/DependencyCollector.java
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/internal/DefaultDependencyCollector.java
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/internal/Maven30DependencyCollector.java
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/internal/Maven31DependencyCollector.java
Modified:
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/DependencyCollector.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/DependencyCollector.java?rev=1748013&r1=1748012&r2=1748013&view=diff
==============================================================================
---
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/DependencyCollector.java
(original)
+++
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/DependencyCollector.java
Sun Jun 12 14:36:10 2016
@@ -21,6 +21,8 @@ package org.apache.maven.shared.dependen
import org.apache.maven.model.Dependency;
import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.dependencies.DependableCoordinate;
+import org.apache.maven.shared.project.ProjectCoordinate;
/**
* Will only download the pom files when not available, never the artifact.
@@ -32,6 +34,8 @@ public interface DependencyCollector
{
/**
+ * A dependency may have excludes
+ *
* @param buildingRequest {@link ProjectBuildingRequest}
* @param root {@link Dependency}
* @return {@link CollectorResult}
@@ -39,5 +43,11 @@ public interface DependencyCollector
*/
CollectorResult collectDependencies( ProjectBuildingRequest
buildingRequest, Dependency root )
throws DependencyCollectorException;
-
+
+ CollectorResult collectDependencies( ProjectBuildingRequest
buildingRequest, DependableCoordinate root )
+ throws DependencyCollectorException;
+
+ CollectorResult collectDependencies( ProjectBuildingRequest
buildingRequest, ProjectCoordinate root )
+ throws DependencyCollectorException;
+
}
Modified:
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/internal/DefaultDependencyCollector.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/internal/DefaultDependencyCollector.java?rev=1748013&r1=1748012&r2=1748013&view=diff
==============================================================================
---
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/internal/DefaultDependencyCollector.java
(original)
+++
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/internal/DefaultDependencyCollector.java
Sun Jun 12 14:36:10 2016
@@ -21,9 +21,11 @@ package org.apache.maven.shared.dependen
import org.apache.maven.model.Dependency;
import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.dependencies.DependableCoordinate;
import org.apache.maven.shared.dependencies.collect.CollectorResult;
import org.apache.maven.shared.dependencies.collect.DependencyCollector;
import
org.apache.maven.shared.dependencies.collect.DependencyCollectorException;
+import org.apache.maven.shared.project.ProjectCoordinate;
import org.codehaus.plexus.PlexusConstants;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.annotations.Component;
@@ -47,6 +49,42 @@ public class DefaultDependencyCollector
throws DependencyCollectorException
{
try
+ {
+ String hint = isMaven31() ? "maven31" : "maven3";
+
+ DependencyCollector effectiveDependencyCollector =
container.lookup( DependencyCollector.class, hint );
+
+ return effectiveDependencyCollector.collectDependencies(
buildingRequest, root );
+ }
+ catch ( ComponentLookupException e )
+ {
+ throw new DependencyCollectorException( e.getMessage(), e );
+ }
+ }
+
+ @Override
+ public CollectorResult collectDependencies( ProjectBuildingRequest
buildingRequest, DependableCoordinate root )
+ throws DependencyCollectorException
+ {
+ try
+ {
+ String hint = isMaven31() ? "maven31" : "maven3";
+
+ DependencyCollector effectiveDependencyCollector =
container.lookup( DependencyCollector.class, hint );
+
+ return effectiveDependencyCollector.collectDependencies(
buildingRequest, root );
+ }
+ catch ( ComponentLookupException e )
+ {
+ throw new DependencyCollectorException( e.getMessage(), e );
+ }
+ }
+
+ @Override
+ public CollectorResult collectDependencies( ProjectBuildingRequest
buildingRequest, ProjectCoordinate root )
+ throws DependencyCollectorException
+ {
+ try
{
String hint = isMaven31() ? "maven31" : "maven3";
Modified:
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/internal/Maven30DependencyCollector.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/internal/Maven30DependencyCollector.java?rev=1748013&r1=1748012&r2=1748013&view=diff
==============================================================================
---
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/internal/Maven30DependencyCollector.java
(original)
+++
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/internal/Maven30DependencyCollector.java
Sun Jun 12 14:36:10 2016
@@ -22,20 +22,25 @@ package org.apache.maven.shared.dependen
import java.util.List;
import org.apache.maven.RepositoryUtils;
+import org.apache.maven.artifact.handler.ArtifactHandler;
import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.dependencies.DependableCoordinate;
import org.apache.maven.shared.dependencies.collect.CollectorResult;
import org.apache.maven.shared.dependencies.collect.DependencyCollector;
import
org.apache.maven.shared.dependencies.collect.DependencyCollectorException;
+import org.apache.maven.shared.project.ProjectCoordinate;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.sonatype.aether.RepositorySystem;
import org.sonatype.aether.RepositorySystemSession;
+import org.sonatype.aether.artifact.Artifact;
import org.sonatype.aether.artifact.ArtifactTypeRegistry;
import org.sonatype.aether.collection.CollectRequest;
import org.sonatype.aether.collection.DependencyCollectionException;
import org.sonatype.aether.graph.Dependency;
import org.sonatype.aether.repository.RemoteRepository;
+import org.sonatype.aether.util.artifact.DefaultArtifact;
/**
* Maven 3.0 implementation of the {@link DependencyCollector}
@@ -68,6 +73,39 @@ public class Maven30DependencyCollector
return collectDependencies( buildingRequest, aetherRoot );
}
+
+ @Override
+ public CollectorResult collectDependencies( ProjectBuildingRequest
buildingRequest, DependableCoordinate root )
+ throws DependencyCollectorException
+ {
+ ArtifactHandler artifactHandler =
artifactHandlerManager.getArtifactHandler( root.getType() );
+
+ String extension = artifactHandler != null ?
artifactHandler.getExtension() : null;
+
+ Artifact aetherArtifact = new DefaultArtifact( root.getGroupId(),
root.getArtifactId(), root.getClassifier(),
+ extension,
root.getVersion() );
+
+ Dependency aetherRoot = new Dependency( aetherArtifact, null );
+
+ return collectDependencies( buildingRequest, aetherRoot );
+ }
+
+ @Override
+ public CollectorResult collectDependencies( ProjectBuildingRequest
buildingRequest, ProjectCoordinate root )
+ throws DependencyCollectorException
+ {
+ // Are there examples where packaging and type are NOT in sync
+ ArtifactHandler artifactHandler =
artifactHandlerManager.getArtifactHandler( root.getPackaging() );
+
+ String extension = artifactHandler != null ?
artifactHandler.getExtension() : null;
+
+ Artifact aetherArtifact =
+ new DefaultArtifact( root.getGroupId(), root.getArtifactId(),
extension, root.getVersion() );
+
+ Dependency aetherRoot = new Dependency( aetherArtifact, null );
+
+ return collectDependencies( buildingRequest, aetherRoot );
+ }
private CollectorResult collectDependencies( final ProjectBuildingRequest
buildingRequest, Dependency aetherRoot )
throws DependencyCollectorException
Modified:
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/internal/Maven31DependencyCollector.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/internal/Maven31DependencyCollector.java?rev=1748013&r1=1748012&r2=1748013&view=diff
==============================================================================
---
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/internal/Maven31DependencyCollector.java
(original)
+++
maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependencies/collect/internal/Maven31DependencyCollector.java
Sun Jun 12 14:36:10 2016
@@ -22,16 +22,21 @@ package org.apache.maven.shared.dependen
import java.util.List;
import org.apache.maven.RepositoryUtils;
+import org.apache.maven.artifact.handler.ArtifactHandler;
import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.dependencies.DependableCoordinate;
import org.apache.maven.shared.dependencies.collect.CollectorResult;
import org.apache.maven.shared.dependencies.collect.DependencyCollector;
import
org.apache.maven.shared.dependencies.collect.DependencyCollectorException;
+import org.apache.maven.shared.project.ProjectCoordinate;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.artifact.Artifact;
import org.eclipse.aether.artifact.ArtifactTypeRegistry;
+import org.eclipse.aether.artifact.DefaultArtifact;
import org.eclipse.aether.collection.CollectRequest;
import org.eclipse.aether.collection.DependencyCollectionException;
import org.eclipse.aether.graph.Dependency;
@@ -68,6 +73,39 @@ public class Maven31DependencyCollector
return collectDependencies( buildingRequest, aetherRoot );
}
+
+ @Override
+ public CollectorResult collectDependencies( ProjectBuildingRequest
buildingRequest, DependableCoordinate root )
+ throws DependencyCollectorException
+ {
+ ArtifactHandler artifactHandler =
artifactHandlerManager.getArtifactHandler( root.getType() );
+
+ String extension = artifactHandler != null ?
artifactHandler.getExtension() : null;
+
+ Artifact aetherArtifact = new DefaultArtifact( root.getGroupId(),
root.getArtifactId(), root.getClassifier(),
+ extension,
root.getVersion() );
+
+ Dependency aetherRoot = new Dependency( aetherArtifact, null );
+
+ return collectDependencies( buildingRequest, aetherRoot );
+ }
+
+ @Override
+ public CollectorResult collectDependencies( ProjectBuildingRequest
buildingRequest, ProjectCoordinate root )
+ throws DependencyCollectorException
+ {
+ // Are there examples where packaging and type are NOT in sync
+ ArtifactHandler artifactHandler =
artifactHandlerManager.getArtifactHandler( root.getPackaging() );
+
+ String extension = artifactHandler != null ?
artifactHandler.getExtension() : null;
+
+ Artifact aetherArtifact =
+ new DefaultArtifact( root.getGroupId(), root.getArtifactId(),
extension, root.getVersion() );
+
+ Dependency aetherRoot = new Dependency( aetherArtifact, null );
+
+ return collectDependencies( buildingRequest, aetherRoot );
+ }
private CollectorResult collectDependencies( ProjectBuildingRequest
buildingRequest, Dependency aetherRoot )
throws DependencyCollectorException