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 );