You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by og...@apache.org on 2009/04/01 19:45:56 UTC

svn commit: r760981 - in /maven/components/trunk: maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/ maven-repository-mercury/src/test/java/org/apache/maven/repository/mercury/ maven-repository/src/main/java/org/apache/maven/re...

Author: ogusakov
Date: Wed Apr  1 17:45:55 2009
New Revision: 760981

URL: http://svn.apache.org/viewvc?rev=760981&view=rev
Log:
Mercury repo system impl does return a resolved tree as a graph. UT works

Modified:
    maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java
    maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java
    maven/components/trunk/maven-repository-mercury/src/test/java/org/apache/maven/repository/mercury/MercuryRepositorySystemTest.java
    maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataGraph.java
    maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataResolutionRequest.java
    maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataResolutionResult.java

Modified: maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java?rev=760981&r1=760980&r2=760981&view=diff
==============================================================================
--- maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java (original)
+++ maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java Wed Apr  1 17:45:55 2009
@@ -141,6 +141,18 @@
         return toMavenArtifact( af, new ArtifactMetadata(name) );
     }
     
+    public static ArtifactMetadata toMercuryArtifactMetadata( MavenArtifactMetadata md )
+    {
+        ArtifactMetadata mmd = new ArtifactMetadata();
+        mmd.setGroupId( md.getGroupId() );
+        mmd.setArtifactId( md.getArtifactId() );
+        mmd.setVersion( md.getVersion() );
+        mmd.setClassifier( md.getClassifier() );
+        mmd.setType( md.getType() );
+
+        return mmd;
+    }
+    
     public static MavenArtifactMetadata toMavenArtifactMetadata( ArtifactMetadata md )
     {
         MavenArtifactMetadata mmd = new MavenArtifactMetadata();
@@ -153,6 +165,18 @@
         return mmd;
     }
     
+    public static MavenArtifactMetadata toMavenArtifactMetadata( Artifact md )
+    {
+        MavenArtifactMetadata mmd = new MavenArtifactMetadata();
+        mmd.setGroupId( md.getGroupId() );
+        mmd.setArtifactId( md.getArtifactId() );
+        mmd.setVersion( md.getVersion() );
+        mmd.setClassifier( md.getClassifier() );
+        mmd.setType( md.getType() );
+
+        return mmd;
+    }
+    
     public static MetadataGraph resolvedTreeToGraph( MetadataTreeNode root )
     {
         if( root == null )
@@ -162,6 +186,8 @@
         
         MetadataGraph graph = new MetadataGraph(entry);
         
+        graph.addNode( entry );
+        
         addKids( root, entry, graph );
         
         return graph;

Modified: maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java?rev=760981&r1=760980&r2=760981&view=diff
==============================================================================
--- maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java (original)
+++ maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java Wed Apr  1 17:45:55 2009
@@ -26,11 +26,15 @@
 import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
 import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
 import org.apache.maven.mercury.artifact.ArtifactMetadata;
+import org.apache.maven.mercury.artifact.ArtifactQueryList;
+import org.apache.maven.mercury.artifact.ArtifactScopeEnum;
+import org.apache.maven.mercury.artifact.MetadataTreeNode;
 import org.apache.maven.mercury.builder.api.DependencyProcessor;
 import org.apache.maven.mercury.plexus.PlexusMercury;
 import org.apache.maven.mercury.repository.api.Repository;
 import org.apache.maven.mercury.repository.api.RepositoryException;
 import org.apache.maven.mercury.util.Util;
+import org.apache.maven.repository.MetadataGraph;
 import org.apache.maven.repository.MetadataResolutionRequest;
 import org.apache.maven.repository.MetadataResolutionResult;
 import org.apache.maven.repository.RepositorySystem;
@@ -39,6 +43,7 @@
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.lang.DefaultLanguage;
 import org.codehaus.plexus.lang.Language;
+import org.omg.CORBA._PolicyStub;
 
 /**
  * @author Oleg Gusakov
@@ -131,7 +136,36 @@
 
     public MetadataResolutionResult resolveMetadata( MetadataResolutionRequest request )
     {
-        MetadataResolutionResult res = null;
+        if ( request == null )
+            throw new IllegalArgumentException( LANG.getMessage( "null.request" ) );
+
+        if ( request.getArtifactMetadata() == null )
+            throw new IllegalArgumentException( LANG.getMessage( "null.request.artifact" ) );
+
+        List<Repository> repos =
+            MercuryAdaptor.toMercuryRepos( request.getLocalRepository()
+                                           , request.getRemoteRepostories()
+                                           , _dependencyProcessor
+                                         );
+
+        MetadataResolutionResult res = new MetadataResolutionResult();
+        
+        ArtifactMetadata md = MercuryAdaptor.toMercuryArtifactMetadata( request.getArtifactMetadata() );
+        
+        try
+        {
+            MetadataTreeNode root = _mercury.resolveAsTree( repos, ArtifactScopeEnum.valueOf( request.getScope() ), new ArtifactQueryList(md), null, null );
+            if( root != null )
+            {
+                MetadataGraph resTree = MercuryAdaptor.resolvedTreeToGraph( root );
+                
+                res.setResolvedTree( resTree );
+            }
+        }
+        catch ( RepositoryException e )
+        {
+            res.addError( e );
+        }
         
         return res;
     }

Modified: maven/components/trunk/maven-repository-mercury/src/test/java/org/apache/maven/repository/mercury/MercuryRepositorySystemTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-repository-mercury/src/test/java/org/apache/maven/repository/mercury/MercuryRepositorySystemTest.java?rev=760981&r1=760980&r2=760981&view=diff
==============================================================================
--- maven/components/trunk/maven-repository-mercury/src/test/java/org/apache/maven/repository/mercury/MercuryRepositorySystemTest.java (original)
+++ maven/components/trunk/maven-repository-mercury/src/test/java/org/apache/maven/repository/mercury/MercuryRepositorySystemTest.java Wed Apr  1 17:45:55 2009
@@ -28,6 +28,7 @@
 import org.apache.maven.mercury.artifact.ArtifactMetadata;
 import org.apache.maven.repository.AbstractMavenRepositorySystemTest;
 import org.apache.maven.repository.MavenArtifactMetadata;
+import org.apache.maven.repository.MetadataGraph;
 import org.apache.maven.repository.MetadataResolutionRequest;
 import org.apache.maven.repository.MetadataResolutionResult;
 import org.apache.maven.repository.RepositorySystem;
@@ -51,7 +52,8 @@
     }
     
     
-    public void testRetrieve() throws IOException
+    public void testResolveTree()
+    throws IOException
     {
         MavenArtifactMetadata mad = MercuryAdaptor.toMavenArtifactMetadata( new ArtifactMetadata( "asm:asm-xml:3.0" ) );
         
@@ -60,16 +62,19 @@
         request.setRemoteRepostories( _remoteRepos );
         request.setArtifactMetadata( mad );
         request.setAsResolvedTree( true );
+        request.setScope( "compile" );
         
         MetadataResolutionResult res = _mrs.resolveMetadata( request );
         
-//        assertNotNull( res );
-//        
-//        Set<Artifact> as = res.getArtifacts();
-//        
-//        assertNotNull( as );
-//        
-//        assertEquals( 4, as.size() );
+        assertNotNull( res );
+        
+        MetadataGraph resGraph = res.getResolvedTree();
+        
+        assertNotNull( resGraph );
+        
+        assertNotNull( resGraph.getNodes() );
+        
+        assertEquals( 4, resGraph.getNodes().size() );
 //        
 //        assertTrue( checkExists( as, "asm:asm-xml:3.0" ) );
 //        

Modified: maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataGraph.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataGraph.java?rev=760981&r1=760980&r2=760981&view=diff
==============================================================================
--- maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataGraph.java (original)
+++ maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataGraph.java Wed Apr  1 17:45:55 2009
@@ -62,4 +62,14 @@
         
         return node;
     }
+    
+    public MetadataGraphNode getEntry()
+    {
+        return entry;
+    }
+    
+    public Collection<MetadataGraphNode> getNodes()
+    {
+        return nodes;
+    }
 }

Modified: maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataResolutionRequest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataResolutionRequest.java?rev=760981&r1=760980&r2=760981&view=diff
==============================================================================
--- maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataResolutionRequest.java (original)
+++ maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataResolutionRequest.java Wed Apr  1 17:45:55 2009
@@ -41,6 +41,8 @@
 {
     private MavenArtifactMetadata mad;
 
+    private String scope;
+
     // Needs to go away
     private Set<Artifact> artifactDependencies;
 
@@ -48,22 +50,9 @@
 
     private List<ArtifactRepository> remoteRepositories;
 
-    // Not sure what to do with this?
-    // Scope
-    // Lock down lists
-    private ArtifactFilter filter;
-
-    // Needs to go away
-    private List<ResolutionListener> listeners = new ArrayList<ResolutionListener>();
-
     // This is like a filter but overrides all transitive versions 
     private Map managedVersionMap;
 
-    // This should not be in here, it's a component
-    private ArtifactMetadataSource metadataSource;
-
-    private boolean resolveRoot = true;
-
     /** result type - flat list; the default */
     private boolean asList = true;
     
@@ -87,7 +76,7 @@
         this.remoteRepositories = remoteRepositories;
     }
     
-    public MavenArtifactMetadata getArtifact()
+    public MavenArtifactMetadata getArtifactMetadata()
     {
         return mad;
     }
@@ -135,53 +124,6 @@
         return this;
     }
 
-    public ArtifactFilter getFilter()
-    {
-        return filter;
-    }
-
-    public MetadataResolutionRequest setFilter( ArtifactFilter filter )
-    {
-        this.filter = filter;
-
-        return this;
-    }
-
-    public List<ResolutionListener> getListeners()
-    {
-        return listeners;
-    }
-
-    public MetadataResolutionRequest setListeners( List<ResolutionListener> listeners )
-    {        
-        this.listeners = listeners;
-        
-        return this;
-    }
-    
-    public MetadataResolutionRequest addListener( ResolutionListener listener )
-    {
-        listeners.add( listener );
-
-        return this;
-    }
-
-    // ------------------------------------------------------------------------
-    //
-    // ------------------------------------------------------------------------
-
-    public ArtifactMetadataSource getMetadataSource()
-    {
-        return metadataSource;
-    }
-
-    public MetadataResolutionRequest setMetadataSource( ArtifactMetadataSource metadataSource )
-    {
-        this.metadataSource = metadataSource;
-
-        return this;
-    }
-
     public Map getManagedVersionMap()
     {
         return managedVersionMap;
@@ -194,18 +136,6 @@
         return this;
     }
 
-    public MetadataResolutionRequest setResolveRoot( boolean resolveRoot )
-    {
-        this.resolveRoot = resolveRoot;
-        
-        return this;
-    }
-    
-    public boolean isResolveRoot()
-    {
-        return resolveRoot;
-    }
-    
     public String toString()
     {
         StringBuffer sb = new StringBuffer()
@@ -214,7 +144,7 @@
                 .append( artifactDependencies ).append(  "\n" )
                 .append( "localRepository: " ).append(  localRepository ).append(  "\n" )
                 .append( "remoteRepositories: " ).append(  remoteRepositories ).append(  "\n" )
-                .append( "metadataSource: " ).append(  metadataSource ).append(  "\n" );
+                ;
         
         return sb.toString();
     }
@@ -262,4 +192,15 @@
         this.asGraph = asGraph;
         return this;
     }
+
+    public MetadataResolutionRequest setScope( String scope )
+    {
+        this.scope = scope;
+        return this;
+    }
+
+    public String getScope()
+    {
+        return scope;
+    }
 }

Modified: maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataResolutionResult.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataResolutionResult.java?rev=760981&r1=760980&r2=760981&view=diff
==============================================================================
--- maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataResolutionResult.java (original)
+++ maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataResolutionResult.java Wed Apr  1 17:45:55 2009
@@ -233,13 +233,10 @@
         return errorArtifactExceptions != null;
     }
 
-    public MetadataResolutionResult addErrorArtifactException( ArtifactResolutionException e )
+    public MetadataResolutionResult addError( Exception e )
     {
-        errorArtifactExceptions = initList( errorArtifactExceptions );
-
-        errorArtifactExceptions.add( e );
-
-        exceptions = initList( exceptions );
+        if( exceptions == null )
+            initList( exceptions );
 
         exceptions.add( e );