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 08:19:10 UTC

svn commit: r760790 - 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 06:19:10 2009
New Revision: 760790

URL: http://svn.apache.org/viewvc?rev=760790&view=rev
Log:
started adding tree resolution to Mercury repo system impl

Modified:
    maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.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/MavenArtifactMetadata.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/MetadataGraphNode.java
    maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataResolutionRequest.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=760790&r1=760789&r2=760790&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 06:19:10 2009
@@ -29,12 +29,16 @@
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.mercury.artifact.ArtifactMetadata;
+import org.apache.maven.mercury.artifact.MetadataTreeNode;
 import org.apache.maven.mercury.builder.api.DependencyProcessor;
 import org.apache.maven.mercury.repository.api.Repository;
 import org.apache.maven.mercury.repository.local.m2.LocalRepositoryM2;
 import org.apache.maven.mercury.repository.remote.m2.RemoteRepositoryM2;
 import org.apache.maven.mercury.transport.api.Server;
 import org.apache.maven.mercury.util.Util;
+import org.apache.maven.repository.MavenArtifactMetadata;
+import org.apache.maven.repository.MetadataGraph;
+import org.apache.maven.repository.MetadataGraphNode;
 
 /**
  * @author Oleg Gusakov
@@ -136,5 +140,50 @@
     {
         return toMavenArtifact( af, new ArtifactMetadata(name) );
     }
+    
+    public static MavenArtifactMetadata toMavenArtifactMetadata( ArtifactMetadata 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 )
+            return null;
+        
+        MetadataGraphNode entry = new MetadataGraphNode( toMavenArtifactMetadata( root.getMd() ) );
+        
+        MetadataGraph graph = new MetadataGraph(entry);
+        
+        addKids( root, entry, graph );
+        
+        return graph;
+    }
+    
+    private static final void addKids( MetadataTreeNode tParent, MetadataGraphNode gParent, MetadataGraph graph )
+    {
+        if( !tParent.hasChildren() )
+            return;
+        
+        for( MetadataTreeNode kid : tParent.getChildren() )
+        {
+            MavenArtifactMetadata mmd = toMavenArtifactMetadata( kid.getMd() );
+            
+            MetadataGraphNode node = graph.findNode( mmd );
+            
+            node.addIncident( gParent );
+            
+            gParent.addIncident( node );
+            
+            addKids( kid, node, graph );
+        }
+    }
 
 }

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=760790&r1=760789&r2=760790&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 06:19:10 2009
@@ -19,7 +19,17 @@
 
 package org.apache.maven.repository.mercury;
 
+import java.io.IOException;
+import java.util.Set;
+
+import org.apache.maven.artifact.Artifact;
+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.repository.AbstractMavenRepositorySystemTest;
+import org.apache.maven.repository.MavenArtifactMetadata;
+import org.apache.maven.repository.MetadataResolutionRequest;
+import org.apache.maven.repository.MetadataResolutionResult;
 import org.apache.maven.repository.RepositorySystem;
 
 /**
@@ -39,4 +49,44 @@
         
         _mrs = getContainer().lookup( RepositorySystem.class, "mercury" );
     }
+    
+    
+    public void testRetrieve() throws IOException
+    {
+        MavenArtifactMetadata mad = MercuryAdaptor.toMavenArtifactMetadata( new ArtifactMetadata( "asm:asm-xml:3.0" ) );
+        
+        MetadataResolutionRequest request = new MetadataResolutionRequest();
+        request.setLocalRepository( _localRepo );
+        request.setRemoteRepostories( _remoteRepos );
+        request.setArtifactMetadata( mad );
+        request.setAsResolvedTree( true );
+        
+        MetadataResolutionResult res = _mrs.resolveMetadata( request );
+        
+//        assertNotNull( res );
+//        
+//        Set<Artifact> as = res.getArtifacts();
+//        
+//        assertNotNull( as );
+//        
+//        assertEquals( 4, as.size() );
+//        
+//        assertTrue( checkExists( as, "asm:asm-xml:3.0" ) );
+//        
+//        assertTrue( checkExists( as, "asm:asm-util:3.0" ) );
+//        
+//        assertTrue( checkExists( as, "asm:asm-tree:3.0" ) );
+//        
+//        assertTrue( checkExists( as, "asm:asm:3.0" ) );
+//        
+//        assertFalse( checkExists( as, "asm:asm-parent:3.0" ) );
+//        
+//        for( Artifact a : as )
+//        {
+//            assertTrue( a.getFile().exists() );
+//            
+//            System.out.println( a.getFile().getCanonicalPath()+ " : "+ a.getFile().length()+" bytes");
+//        }
+
+    }
 }

Modified: maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MavenArtifactMetadata.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MavenArtifactMetadata.java?rev=760790&r1=760789&r2=760790&view=diff
==============================================================================
--- maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MavenArtifactMetadata.java (original)
+++ maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MavenArtifactMetadata.java Wed Apr  1 06:19:10 2009
@@ -114,8 +114,8 @@
     public String toString()
     {
         return getGroupId()+":"+getArtifactId()+":"+getVersion()
-        +":" + (getClassifier() == null ? "" : getClassifier() )
-        +":" + (getType() == null ? DEFAULT_TYPE : getType() )
+                +":" + (getClassifier() == null ? "" : getClassifier() )
+                +":" + (getType() == null ? DEFAULT_TYPE : getType() )
         ;
     }
     

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=760790&r1=760789&r2=760790&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 06:19:10 2009
@@ -50,4 +50,16 @@
     {
         nodes.add( node );
     }
+
+    public MetadataGraphNode findNode( MavenArtifactMetadata md )
+    {
+        for( MetadataGraphNode mgn : nodes )
+            if( mgn.metadata.equals( md ) )
+                return mgn;
+
+        MetadataGraphNode node = new MetadataGraphNode( md );
+        addNode( node );
+        
+        return node;
+    }
 }

Modified: maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataGraphNode.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataGraphNode.java?rev=760790&r1=760789&r2=760790&view=diff
==============================================================================
--- maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataGraphNode.java (original)
+++ maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/MetadataGraphNode.java Wed Apr  1 06:19:10 2009
@@ -19,6 +19,7 @@
 
 package org.apache.maven.repository;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -35,6 +36,30 @@
     List<MetadataGraphNode> inNodes;
     List<MetadataGraphNode> exNodes;
     
+    public MetadataGraphNode()
+    {
+        inNodes = new ArrayList<MetadataGraphNode>(4);
+        exNodes = new ArrayList<MetadataGraphNode>(8);
+    }
+    
+    public MetadataGraphNode( MavenArtifactMetadata metadata )
+    {
+        this();
+        this.metadata = metadata;
+    }
+    
+    public MetadataGraphNode addIncident( MetadataGraphNode node )
+    {
+        inNodes.add( node );
+        return this;
+    }
+    
+    public MetadataGraphNode addExident( MetadataGraphNode node )
+    {
+        exNodes.add( node );
+        return this;
+    }
+
     @Override
     public boolean equals( Object obj )
     {

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=760790&r1=760789&r2=760790&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 06:19:10 2009
@@ -39,7 +39,7 @@
  */
 public class MetadataResolutionRequest
 {
-    private Artifact artifact;
+    private MavenArtifactMetadata mad;
 
     // Needs to go away
     private Set<Artifact> artifactDependencies;
@@ -80,21 +80,21 @@
     {  
     }
     
-    public MetadataResolutionRequest( Artifact artifact, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )    
+    public MetadataResolutionRequest( MavenArtifactMetadata md, ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories )    
     {        
-        this.artifact = artifact;
+        this.mad = md;
         this.localRepository = localRepository;
         this.remoteRepositories = remoteRepositories;
     }
     
-    public Artifact getArtifact()
+    public MavenArtifactMetadata getArtifact()
     {
-        return artifact;
+        return mad;
     }
 
-    public MetadataResolutionRequest setArtifact( Artifact artifact )
+    public MetadataResolutionRequest setArtifactMetadata( MavenArtifactMetadata md )
     {
-        this.artifact = artifact;
+        this.mad = md;
 
         return this;
     }
@@ -210,7 +210,7 @@
     {
         StringBuffer sb = new StringBuffer()
                 .append( "REQUEST: " ).append(  "\n" )
-                .append( "artifact: " ).append( artifact ).append(  "\n" )
+                .append( "artifact: " ).append( mad ).append(  "\n" )
                 .append( artifactDependencies ).append(  "\n" )
                 .append( "localRepository: " ).append(  localRepository ).append(  "\n" )
                 .append( "remoteRepositories: " ).append(  remoteRepositories ).append(  "\n" )