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


Reply via email to