You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/08/02 16:41:04 UTC

svn commit: r800086 - in /maven/components/trunk/maven-compat/src/main/java/org/apache/maven: artifact/resolver/ArtifactResolver.java artifact/resolver/DefaultArtifactResolver.java repository/LegacyRepositorySystem.java repository/RepositorySystem.java

Author: bentmann
Date: Sun Aug  2 14:41:04 2009
New Revision: 800086

URL: http://svn.apache.org/viewvc?rev=800086&view=rev
Log:
o Extended repo system to grab artifacts without resolving them

Modified:
    maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java
    maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
    maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/LegacyRepositorySystem.java
    maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/RepositorySystem.java

Modified: maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java?rev=800086&r1=800085&r2=800086&view=diff
==============================================================================
--- maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java (original)
+++ maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolver.java Sun Aug  2 14:41:04 2009
@@ -35,6 +35,8 @@
 // Just hide the one method we want behind the RepositorySystem interface.
 public interface ArtifactResolver
 {
+    ArtifactResolutionResult collect( ArtifactResolutionRequest request );
+
     ArtifactResolutionResult resolve( ArtifactResolutionRequest request );
 
     // The rest is deprecated

Modified: maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java?rev=800086&r1=800085&r2=800086&view=diff
==============================================================================
--- maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java (original)
+++ maven/components/trunk/maven-compat/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java Sun Aug  2 14:41:04 2009
@@ -339,9 +339,19 @@
     // ------------------------------------------------------------------------
     //
     // ------------------------------------------------------------------------
-    
+
+    public ArtifactResolutionResult collect( ArtifactResolutionRequest request )
+    {
+        return resolve( request, true );
+    }
+
     public ArtifactResolutionResult resolve( ArtifactResolutionRequest request )
     {
+        return resolve( request, false );
+    }
+
+    private ArtifactResolutionResult resolve( ArtifactResolutionRequest request, boolean collectOnly )
+    {
         Artifact rootArtifact = request.getArtifact();
         Set<Artifact> artifacts = request.getArtifactDependencies();
         Map managedVersions = request.getManagedVersionMap();
@@ -382,7 +392,7 @@
         // file reference. But this may be a Maven Plugin that we need to resolve from a remote repository
         // as well as its dependencies.
                         
-        if ( request.isResolveRoot() /* && rootArtifact.getFile() == null */ )
+        if ( !collectOnly && request.isResolveRoot() /* && rootArtifact.getFile() == null */ )
         {            
             try
             {
@@ -457,7 +467,7 @@
             return result;
         }
                 
-        if ( result.getArtifacts() != null )
+        if ( !collectOnly && result.getArtifacts() != null )
         {
             for ( Artifact artifact : result.getArtifacts() )
             {

Modified: maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/LegacyRepositorySystem.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/LegacyRepositorySystem.java?rev=800086&r1=800085&r2=800086&view=diff
==============================================================================
--- maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/LegacyRepositorySystem.java (original)
+++ maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/LegacyRepositorySystem.java Sun Aug  2 14:41:04 2009
@@ -260,6 +260,57 @@
         return url;
     }
 
+    public ArtifactResolutionResult collect( ArtifactResolutionRequest request )
+    {
+        /*
+         * Probably is not worth it, but here I make sure I restore request
+         * to its original state. 
+         */
+        try
+        {
+            LocalArtifactRepository ideWorkspace = plexus.lookup( LocalArtifactRepository.class, LocalArtifactRepository.IDE_WORKSPACE );
+
+            if ( request.getLocalRepository() instanceof DelegatingLocalArtifactRepository )
+            {
+                DelegatingLocalArtifactRepository delegatingLocalRepository = (DelegatingLocalArtifactRepository) request.getLocalRepository();
+
+                LocalArtifactRepository orig = delegatingLocalRepository.getIdeWorspace();
+
+                delegatingLocalRepository.setIdeWorkspace( ideWorkspace );
+
+                try
+                {
+                    return artifactResolver.collect( request );
+                }
+                finally
+                {
+                    delegatingLocalRepository.setIdeWorkspace( orig );
+                }
+            }
+            else
+            {
+                ArtifactRepository localRepository = request.getLocalRepository();
+                DelegatingLocalArtifactRepository delegatingLocalRepository = new DelegatingLocalArtifactRepository( localRepository );
+                delegatingLocalRepository.setIdeWorkspace( ideWorkspace );
+                request.setLocalRepository( delegatingLocalRepository );
+                try
+                {
+                    return artifactResolver.collect( request );
+                }
+                finally
+                {
+                    request.setLocalRepository( localRepository );
+                }
+            }
+        }
+        catch ( ComponentLookupException e )
+        {
+            // no ide workspace artifact resolution
+        }
+
+        return artifactResolver.resolve( request );
+    }
+
     public ArtifactResolutionResult resolve( ArtifactResolutionRequest request )
     {
         /*

Modified: maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/RepositorySystem.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/RepositorySystem.java?rev=800086&r1=800085&r2=800086&view=diff
==============================================================================
--- maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/RepositorySystem.java (original)
+++ maven/components/trunk/maven-compat/src/main/java/org/apache/maven/repository/RepositorySystem.java Sun Aug  2 14:41:04 2009
@@ -90,6 +90,8 @@
      */
     List<ArtifactRepository> getEffectiveRepositories( List<ArtifactRepository> repositories );    
 
+    ArtifactResolutionResult collect( ArtifactResolutionRequest request );
+
     ArtifactResolutionResult resolve( ArtifactResolutionRequest request );
 
     MetadataResolutionResult resolveMetadata( MetadataResolutionRequest request );