Author: ogusakov Date: Wed Aug 27 10:04:27 2008 New Revision: 689529 URL: http://svn.apache.org/viewvc?rev=689529&view=rev Log: intermediate state - repository APIs simplified, all tests good. Bug in getVersions - incorrect LATEST, RELEASE or snapshot TS
Added: maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/LocalRepositoryReaderM2Test.java (contents, props changed) - copied, changed from r688239, maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/LocalRepositoryM2Test.java maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepOpResult.java (contents, props changed) - copied, changed from r688239, maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryOperationResult.java Removed: maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/LocalRepositoryM2Test.java maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryOperationResult.java Modified: maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/AbstractRepositoryReaderM2Test.java maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/RemoteRepositoryReaderM2Test.java maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryCallback.java maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/VirtualRepositoryReader.java maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java Modified: maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/AbstractRepositoryReaderM2Test.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/AbstractRepositoryReaderM2Test.java?rev=689529&r1=689528&r2=689529&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/AbstractRepositoryReaderM2Test.java (original) +++ maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/AbstractRepositoryReaderM2Test.java Wed Aug 27 10:04:27 2008 @@ -8,6 +8,7 @@ import junit.framework.TestCase; +import org.apache.maven.mercury.artifact.Artifact; import org.apache.maven.mercury.artifact.ArtifactBasicMetadata; import org.apache.maven.mercury.artifact.ArtifactMetadata; import org.apache.maven.mercury.artifact.DefaultArtifact; @@ -18,9 +19,11 @@ import org.apache.maven.mercury.crypto.api.StreamVerifierFactory; import org.apache.maven.mercury.crypto.pgp.PgpStreamVerifierFactory; import org.apache.maven.mercury.crypto.sha.SHA1VerifierFactory; +import org.apache.maven.mercury.repository.api.ArtifactBasicResults; +import org.apache.maven.mercury.repository.api.ArtifactResults; import org.apache.maven.mercury.repository.api.Repository; import org.apache.maven.mercury.repository.api.RepositoryException; -import org.apache.maven.mercury.repository.api.RepositoryOperationResult; +import org.apache.maven.mercury.repository.api.AbstractRepOpResult; import org.apache.maven.mercury.repository.api.RepositoryReader; import org.apache.maven.mercury.repository.local.m2.LocalRepositoryM2; import org.apache.maven.mercury.repository.local.m2.MetadataProcessorMock; @@ -54,26 +57,23 @@ { bmd = new ArtifactBasicMetadata("a:a:[3,3]"); query.add( bmd ); - Map<ArtifactBasicMetadata, RepositoryOperationResult<ArtifactBasicMetadata>> - res = reader.readVersions( query ); - assertNotNull( res ); - assertEquals( 1, res.size() ); + ArtifactBasicResults res = reader.readVersions( query ); - RepositoryOperationResult<ArtifactBasicMetadata> ror = res.get( bmd ); + assertNotNull( res ); + assertFalse( res.hasExceptions() ); + assertTrue( res.hasResults() ); - assertNotNull( ror ); + assertEquals( 1, res.getResults().size() ); - if( ror.hasExceptions() ) - System.out.println( ror.getExceptions() ); + List<ArtifactBasicMetadata> ror = res.getResult( bmd ); - assertFalse( ror.hasExceptions() ); - assertTrue( ror.hasResults() ); - - List<ArtifactBasicMetadata> qr = ror.getResults(); + assertNotNull( ror ); - assertNotNull( qr ); - assertEquals( 1, qr.size() ); + if( res.hasExceptions() ) + System.out.println( res.getExceptions() ); + + assertEquals( 1, ror.size() ); // System.out.println(qr); } @@ -85,22 +85,20 @@ bmd = new ArtifactBasicMetadata("a:a:3"); query.add( bmd ); - Map<ArtifactBasicMetadata, RepositoryOperationResult<ArtifactBasicMetadata>> res = reader.readVersions( query ); - - assertNotNull( res ); - assertEquals( 1, res.size() ); - RepositoryOperationResult<ArtifactBasicMetadata> ror = res.get( bmd ); + ArtifactBasicResults res = reader.readVersions( query ); - assertNotNull( ror ); + assertNotNull( res ); - if( ror.hasExceptions() ) - System.out.println( ror.getExceptions() ); + if( res.hasExceptions() ) + System.out.println( res.getExceptions() ); + + assertFalse( res.hasExceptions() ); + assertTrue( res.hasResults() ); - assertFalse( ror.hasExceptions() ); - assertTrue( ror.hasResults() ); + assertEquals( 1, res.getResults().size() ); - List<ArtifactBasicMetadata> qr = ror.getResults(); + List<ArtifactBasicMetadata> qr = res.getResult( bmd ); assertNotNull( qr ); assertTrue( qr.size() > 1 ); @@ -109,16 +107,17 @@ System.out.println("query "+bmd+"->"+qr); - Map<ArtifactBasicMetadata,ArtifactMetadata> depRes = reader.readDependencies( qr ); + ArtifactBasicResults depRes = reader.readDependencies( qr ); assertNotNull( depRes ); - assertTrue( depRes.size() > 1 ); - assertTrue( depRes.containsKey( bmd ) ); + assertFalse( depRes.hasExceptions() ); + assertTrue( depRes.hasResults() ); - ArtifactMetadata amd = depRes.get( bmd ); + assertTrue( depRes.hasResults( bmd ) ); - List<ArtifactBasicMetadata> deps = amd.getDependencies(); + List<ArtifactBasicMetadata> deps = depRes.getResult( bmd ); assertNotNull( deps ); + assertFalse( deps.isEmpty() ); // System.out.println(deps); @@ -133,7 +132,7 @@ bmd = new ArtifactBasicMetadata("a:a:3"); query.add( bmd ); - RepositoryOperationResult<DefaultArtifact> ror = reader.readArtifacts( query ); + ArtifactResults ror = reader.readArtifacts( query ); assertNotNull( ror ); @@ -143,12 +142,12 @@ assertFalse( ror.hasExceptions() ); assertTrue( ror.hasResults() ); - List<DefaultArtifact> res = ror.getResults(); + List<Artifact> res = ror.getResults(bmd); assertNotNull( res ); assertEquals( 1, res.size() ); - DefaultArtifact da = res.get( 0 ); + Artifact da = res.get( 0 ); assertNotNull( da ); assertNotNull( da.getFile() ); @@ -162,7 +161,7 @@ bmd = new ArtifactBasicMetadata("a:a:5-SNAPSHOT"); query.add( bmd ); - RepositoryOperationResult<DefaultArtifact> ror = reader.readArtifacts( query ); + ArtifactResults ror = reader.readArtifacts( query ); assertNotNull( ror ); @@ -172,12 +171,12 @@ assertFalse( ror.hasExceptions() ); assertTrue( ror.hasResults() ); - List<DefaultArtifact> res = ror.getResults(); + List<Artifact> res = ror.getResults(bmd); assertNotNull( res ); assertEquals( 1, res.size() ); - DefaultArtifact da = res.get( 0 ); + Artifact da = res.get( 0 ); assertNotNull( da ); assertNotNull( da.getFile() ); @@ -192,7 +191,7 @@ bmd = new ArtifactBasicMetadata("a:a:5-20080807.234713-11"); query.add( bmd ); - RepositoryOperationResult<DefaultArtifact> ror = reader.readArtifacts( query ); + ArtifactResults ror = reader.readArtifacts( query ); assertNotNull( ror ); @@ -202,12 +201,12 @@ assertFalse( ror.hasExceptions() ); assertTrue( ror.hasResults() ); - List<DefaultArtifact> res = ror.getResults(); + List<Artifact> res = ror.getResults(bmd); assertNotNull( res ); assertEquals( 1, res.size() ); - DefaultArtifact da = res.get( 0 ); + Artifact da = res.get( 0 ); assertNotNull( da ); assertNotNull( da.getFile() ); @@ -222,7 +221,7 @@ bmd = new ArtifactBasicMetadata("a:a:LATEST"); query.add( bmd ); - RepositoryOperationResult<DefaultArtifact> ror = reader.readArtifacts( query ); + ArtifactResults ror = reader.readArtifacts( query ); assertNotNull( ror ); @@ -232,12 +231,12 @@ assertFalse( ror.hasExceptions() ); assertTrue( ror.hasResults() ); - List<DefaultArtifact> res = ror.getResults(); + List<Artifact> res = ror.getResults(bmd); assertNotNull( res ); assertEquals( 1, res.size() ); - DefaultArtifact da = res.get( 0 ); + Artifact da = res.get( 0 ); assertNotNull( da ); assertEquals( "5-SNAPSHOT", da.getVersion() ); @@ -255,7 +254,7 @@ bmd = new ArtifactBasicMetadata("a:a:RELEASE"); query.add( bmd ); - RepositoryOperationResult<DefaultArtifact> ror = reader.readArtifacts( query ); + ArtifactResults ror = reader.readArtifacts( query ); assertNotNull( ror ); @@ -265,12 +264,12 @@ assertFalse( ror.hasExceptions() ); assertTrue( ror.hasResults() ); - List<DefaultArtifact> res = ror.getResults(); + List<Artifact> res = ror.getResults(bmd); assertNotNull( res ); assertEquals( 1, res.size() ); - DefaultArtifact da = res.get( 0 ); + Artifact da = res.get( 0 ); assertNotNull( da ); assertEquals( "4", da.getVersion() ); @@ -298,7 +297,7 @@ bmd = new ArtifactBasicMetadata("a:a:4"); query.add( bmd ); - RepositoryOperationResult<DefaultArtifact> ror = reader.readArtifacts( query ); + ArtifactResults ror = reader.readArtifacts( query ); assertNotNull( ror ); @@ -308,12 +307,12 @@ assertFalse( ror.hasExceptions() ); assertTrue( ror.hasResults() ); - List<DefaultArtifact> res = ror.getResults(); + List<Artifact> res = ror.getResults(bmd); assertNotNull( res ); assertEquals( 1, res.size() ); - DefaultArtifact da = res.get( 0 ); + Artifact da = res.get( 0 ); assertNotNull( da ); assertNotNull( da.getFile() ); @@ -337,7 +336,7 @@ bmd = new ArtifactBasicMetadata("a:a:3"); query.add( bmd ); - RepositoryOperationResult<DefaultArtifact> ror = null; + ArtifactResults ror = null; try { ror = reader.readArtifacts( query ); @@ -370,7 +369,7 @@ bmd = new ArtifactBasicMetadata("a:a:2"); query.add( bmd ); - RepositoryOperationResult<DefaultArtifact> ror = null; + ArtifactResults ror = null; try { ror = reader.readArtifacts( query ); @@ -404,7 +403,7 @@ bmd = new ArtifactBasicMetadata("a:a:3"); query.add( bmd ); - RepositoryOperationResult<DefaultArtifact> ror = null; + ArtifactResults ror = null; try { ror = reader.readArtifacts( query ); Copied: maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/LocalRepositoryReaderM2Test.java (from r688239, maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/LocalRepositoryM2Test.java) URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/LocalRepositoryReaderM2Test.java?p2=maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/LocalRepositoryReaderM2Test.java&p1=maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/LocalRepositoryM2Test.java&r1=688239&r2=689529&rev=689529&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/LocalRepositoryM2Test.java (original) +++ maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/LocalRepositoryReaderM2Test.java Wed Aug 27 10:04:27 2008 @@ -15,7 +15,7 @@ * @version $Id$ * */ -public class LocalRepositoryM2Test +public class LocalRepositoryReaderM2Test extends AbstractRepositoryReaderM2Test { Propchange: maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/LocalRepositoryReaderM2Test.java ------------------------------------------------------------------------------ svn:mergeinfo = Modified: maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/RemoteRepositoryReaderM2Test.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/RemoteRepositoryReaderM2Test.java?rev=689529&r1=689528&r2=689529&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/RemoteRepositoryReaderM2Test.java (original) +++ maven/sandbox/trunk/mercury/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/RemoteRepositoryReaderM2Test.java Wed Aug 27 10:04:27 2008 @@ -20,7 +20,7 @@ import org.apache.maven.mercury.builder.api.MetadataProcessor; import org.apache.maven.mercury.repository.local.m2.MetadataProcessorMock; import org.apache.maven.mercury.repository.api.RepositoryException; -import org.apache.maven.mercury.repository.api.RepositoryOperationResult; +import org.apache.maven.mercury.repository.api.AbstractRepOpResult; import org.apache.maven.mercury.repository.api.RepositoryReader; import org.apache.maven.mercury.repository.metadata.Metadata; import org.apache.maven.mercury.repository.metadata.io.xpp3.MetadataXpp3Reader; Modified: maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java?rev=689529&r1=689528&r2=689529&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java (original) +++ maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java Wed Aug 27 10:04:27 2008 @@ -13,6 +13,7 @@ import org.apache.maven.mercury.builder.api.MetadataProcessor; import org.apache.maven.mercury.metadata.sat.DefaultSatSolver; import org.apache.maven.mercury.metadata.sat.SatException; +import org.apache.maven.mercury.repository.api.ArtifactBasicResults; import org.apache.maven.mercury.repository.api.Repository; import org.apache.maven.mercury.repository.api.RepositoryException; import org.apache.maven.mercury.repository.api.VirtualRepositoryReader; @@ -127,7 +128,8 @@ if( dependencies == null || dependencies.size() < 1 ) return node; - Map<ArtifactBasicMetadata, List<ArtifactBasicMetadata>> expandedDeps = _reader.readVersions( dependencies ); + ArtifactBasicResults res = _reader.readVersions( dependencies ); + Map<ArtifactBasicMetadata, List<ArtifactBasicMetadata>> expandedDeps = res.getResults(); // if( expandedDeps == null ) // return node; Modified: maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java?rev=689529&r1=689528&r2=689529&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java (original) +++ maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java Wed Aug 27 10:04:27 2008 @@ -39,7 +39,6 @@ protected void setUp() throws Exception { -System.out.println("Current dir is "+ new File(".").getCanonicalPath() ); processor = new MetadataProcessorMock(); localRepo = new LocalRepositoryM2( "local", repoDir ); @@ -123,7 +122,7 @@ } //---------------------------------------------------------------------------------------------- - public void testBigResolveConflicts() + public void testResolveBigConflicts() throws MetadataTreeException { ArtifactMetadata md = new ArtifactMetadata( "a:a:3" ); Copied: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepOpResult.java (from r688239, maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryOperationResult.java) URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepOpResult.java?p2=maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepOpResult.java&p1=maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryOperationResult.java&r1=688239&r2=689529&rev=689529&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryOperationResult.java (original) +++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepOpResult.java Wed Aug 27 10:04:27 2008 @@ -1,87 +1,57 @@ package org.apache.maven.mercury.repository.api; -import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.HashMap; +import java.util.Map; import org.apache.maven.mercury.artifact.ArtifactBasicMetadata; /** - * generic repository operation result. Represents a List of <T extends ArtifactBasicMetadata> - * objects and a set of exceptions thrown in the process + * generic repository operation result. Represents a Map of query object to AbstractRepositoryOperationResult * * @author Oleg Gusakov * @version $Id$ * - * @param <T> */ -public class RepositoryOperationResult<T extends ArtifactBasicMetadata> +public abstract class AbstractRepOpResult { - private Set<Exception> _exceptions = Collections.synchronizedSet( new HashSet<Exception>() ); - private List<T> _results = Collections.synchronizedList( new ArrayList<T>() ); + private Map<ArtifactBasicMetadata,Exception> _exceptions; - public static RepositoryOperationResult<ArtifactBasicMetadata> add( RepositoryOperationResult<ArtifactBasicMetadata> rep, RepositoryException exception ) + public AbstractRepOpResult() { - if( rep == null ) - rep = new RepositoryOperationResult<ArtifactBasicMetadata>(); - - rep.add( exception ); - return rep; } - public static RepositoryOperationResult<ArtifactBasicMetadata> add( RepositoryOperationResult<ArtifactBasicMetadata> rep, ArtifactBasicMetadata abmd ) - { - if( rep == null ) - rep = new RepositoryOperationResult<ArtifactBasicMetadata>(); - - rep.add( abmd ); - return rep; - } - - public RepositoryOperationResult() - { - } - - public void add( Exception exception ) - { - _exceptions.add( exception ); - } - - public Set<Exception> getExceptions() + public Map<ArtifactBasicMetadata,Exception> getExceptions() { return _exceptions; } - - public String toString() - { - return _exceptions.toString(); - } - public boolean hasExceptions() - { - return _exceptions.size() > 0; - } + public abstract boolean hasResults(); + + public abstract boolean hasResults( ArtifactBasicMetadata key ); - public void add( T result ) + public boolean hasExceptions() { - _results.add( result ); + return _exceptions != null && ! _exceptions.isEmpty(); } - public void add( Collection<T> resColl ) + public void addError( ArtifactBasicMetadata key, Exception error ) { - _results.addAll( resColl ); + if( _exceptions == null ) + _exceptions = new HashMap<ArtifactBasicMetadata, Exception>(8); + + _exceptions.put( key, error ); } - public List<T> getResults() + public Exception getError( ArtifactBasicMetadata key ) { - return _results; + if( _exceptions == null ) + return null; + + return _exceptions.get( key ); } - - public boolean hasResults() + + public String toString() { - return _results.size() > 0; + return _exceptions.toString(); } - } Propchange: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepOpResult.java ------------------------------------------------------------------------------ svn:mergeinfo = Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryCallback.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryCallback.java?rev=689529&r1=689528&r2=689529&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryCallback.java (original) +++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryCallback.java Wed Aug 27 10:04:27 2008 @@ -12,5 +12,5 @@ */ public interface RepositoryCallback { - public void done( RepositoryOperationResult<?> result ); + public void done( AbstractRepOpResult results ); } Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java?rev=689529&r1=689528&r2=689529&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java (original) +++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java Wed Aug 27 10:04:27 2008 @@ -33,20 +33,19 @@ * it with hasExceptions() * @throws RepositoryException */ - public Map<ArtifactBasicMetadata, RepositoryOperationResult<ArtifactBasicMetadata>> readVersions( List<? extends ArtifactBasicMetadata> query ) + public ArtifactBasicResults readVersions( List<ArtifactBasicMetadata> query ) throws RepositoryException, IllegalArgumentException; /** - * given basic coordinates query read full ArtifactMetadata objects - + * given basic coordinates query read dependencies as a GAV list * with dependencies as queries i.e. each dependency at this stage is an ArtifactBasicMetadata * <b>Analogous to reading pom.xml</b> file for given GAV * * @param query list of MD coordinate queries to read. They are found by previous call to findMetadata - * @return result as list of available MD objects with dependencies filled in. Order is the same - * as in query list. null means not found or worse + * @return result as a map GAV -> [GAV1, GAV2, ... GAVn] * @throws RepositoryException */ - public Map< ArtifactBasicMetadata, ArtifactMetadata > readDependencies( List<? extends ArtifactBasicMetadata> query ) + public ArtifactBasicResults readDependencies( List<ArtifactBasicMetadata> query ) throws RepositoryException, IllegalArgumentException; /** @@ -57,7 +56,7 @@ * @return array of results - lists of available matches. Order is the same as in query list. null means not found or worse * @throws RepositoryException */ - public RepositoryOperationResult<DefaultArtifact> readArtifacts( List<? extends ArtifactBasicMetadata> query ) + public ArtifactResults readArtifacts( List<ArtifactBasicMetadata> query ) throws RepositoryException, IllegalArgumentException; /** Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/VirtualRepositoryReader.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/VirtualRepositoryReader.java?rev=689529&r1=689528&r2=689529&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/VirtualRepositoryReader.java (original) +++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/VirtualRepositoryReader.java Wed Aug 27 10:04:27 2008 @@ -17,9 +17,6 @@ * this helper class hides the necessity to talk to localRepo and a bunch of remoteRepos. * It also adds discrete convenience methods, hiding batch nature of RepositoryReader * - * Please don't forget to initialize target platform if you really need one - * - * * @author Oleg Gusakov * @version $Id$ * @@ -126,56 +123,69 @@ _initialized = true; } //---------------------------------------------------------------------------------------------------------------------------- - public Map<ArtifactBasicMetadata, List<ArtifactBasicMetadata>> readVersions( List<? extends ArtifactBasicMetadata> query ) + /** + * + * + * @param query + * @param reader + * @param res + * @return + */ + private List<ArtifactBasicMetadata> applyScanPolicy( + List<ArtifactBasicMetadata> query + , RepositoryReader reader + , AbstractRepOpResult res + ) + { + // TODO 2008-08-26 og: implement real policy + return query; + } + //---------------------------------------------------------------------------------------------------------------------------- + public ArtifactBasicResults readVersions( List<ArtifactBasicMetadata> query ) throws IllegalArgumentException, RepositoryException { if( query == null ) throw new IllegalArgumentException("null bmd supplied"); init(); - - Map<ArtifactBasicMetadata, List<ArtifactBasicMetadata>> res = null; + + ArtifactBasicResults res = null; ArtifactListProcessor tp = _processors == null ? null : _processors.get( ArtifactListProcessor.FUNCTION_TP ); for( RepositoryReader rr : _repositoryReaders ) { - Map<ArtifactBasicMetadata, RepositoryOperationResult<ArtifactBasicMetadata>> repoRes = rr.readVersions( query ); + List<ArtifactBasicMetadata> leftOvers = applyScanPolicy( query, rr, res ); + + ArtifactBasicResults repoRes = rr.readVersions( leftOvers ); - if( repoRes != null ) - for( ArtifactBasicMetadata key : repoRes.keySet() ) + if( repoRes != null && repoRes.hasResults() ) + for( ArtifactBasicMetadata key : repoRes.getResults().keySet() ) { - RepositoryOperationResult<ArtifactBasicMetadata> ror = repoRes.get( key ); - if( ror != null && !ror.hasExceptions() && ror.hasResults() ) + List<ArtifactBasicMetadata> rorRes = repoRes.getResult(key); + + if( tp != null ) { - List<ArtifactBasicMetadata> rorRes = ror.getResults(); - - if( tp != null ) + try + { + tp.configure( key ); + rorRes = tp.process( rorRes ); + } + catch( ArtifactListProcessorException e ) { - try - { - tp.configure( key ); - rorRes = tp.process( rorRes ); - } - catch( ArtifactListProcessorException e ) - { - throw new RepositoryException(e); - } + throw new RepositoryException(e); } - - if( rorRes == null ) - continue; - - for( ArtifactBasicMetadata bmd : rorRes ) - bmd.setTracker( rr ); - - if( res == null ) - res = new HashMap<ArtifactBasicMetadata, List<ArtifactBasicMetadata>>( query.size() ); - - if( res.containsKey( key ) ) - res.get( key ).addAll( rorRes ); - else - res.put( key, rorRes ); } + + if( rorRes == null ) + continue; + + for( ArtifactBasicMetadata bmd : rorRes ) + bmd.setTracker( rr ); + + if( res == null ) + res = new ArtifactBasicResults( key, rorRes ); + else + res.add( key, rorRes ); } } @@ -193,18 +203,20 @@ List<ArtifactBasicMetadata> query = new ArrayList<ArtifactBasicMetadata>(1); query.add( bmd ); + ArtifactMetadata md = new ArtifactMetadata( bmd ); for( RepositoryReader rr : _repositoryReaders ) { - Map<ArtifactBasicMetadata, ArtifactMetadata> res = rr.readDependencies( query ); - if( res != null && ! res.isEmpty() ) + ArtifactBasicResults res = rr.readDependencies( query ); + + if( res != null && res.hasResults( bmd ) ) { - ArtifactMetadata md = res.get( bmd ); + md.setDependencies( res.getResult( bmd ) ); md.setTracker( rr ); return md; } } - return null; + return md; } //---------------------------------------------------------------------------------------------------------------------------- /* (non-Javadoc) Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java?rev=689529&r1=689528&r2=689529&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java (original) +++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java Wed Aug 27 10:04:27 2008 @@ -27,10 +27,12 @@ import org.apache.maven.mercury.crypto.api.StreamVerifierFactory; import org.apache.maven.mercury.repository.api.AbstracRepositoryReader; import org.apache.maven.mercury.repository.api.AbstractRepository; +import org.apache.maven.mercury.repository.api.ArtifactBasicResults; +import org.apache.maven.mercury.repository.api.ArtifactResults; import org.apache.maven.mercury.repository.api.LocalRepository; import org.apache.maven.mercury.repository.api.Repository; import org.apache.maven.mercury.repository.api.RepositoryException; -import org.apache.maven.mercury.repository.api.RepositoryOperationResult; +import org.apache.maven.mercury.repository.api.AbstractRepOpResult; import org.apache.maven.mercury.repository.api.RepositoryReader; import org.apache.maven.mercury.util.FileUtil; import org.codehaus.plexus.i18n.DefaultLanguage; @@ -73,14 +75,14 @@ return _repo; } //--------------------------------------------------------------------------------------------------------------- - public RepositoryOperationResult<DefaultArtifact> readArtifacts( List<? extends ArtifactBasicMetadata> query ) + public ArtifactResults readArtifacts( List<ArtifactBasicMetadata> query ) throws RepositoryException, IllegalArgumentException { if( query == null || query.isEmpty() ) throw new IllegalArgumentException( _lang.getMessage( "empty.query", query==null?"null":"empty" ) ); - RepositoryOperationResult<DefaultArtifact> res = new RepositoryOperationResult<DefaultArtifact>(); + ArtifactResults res = new ArtifactResults(); Set<StreamVerifierFactory> vFacs = null; @@ -100,7 +102,7 @@ if( !gaDir.exists() ) { - res.add( new RepositoryException( _lang.getMessage( "ga.not.found", bmd.toString(), relGaPath ) ) ); + res.addError( bmd, new RepositoryException( _lang.getMessage( "ga.not.found", bmd.toString(), relGaPath ) ) ); continue; } @@ -150,7 +152,7 @@ if( version == null ) { - res.add( new RepositoryException( _lang.getMessage( "gav.not.found", bmd.toString(), relGaPath ) ) ); + res.addError( bmd, new RepositoryException( _lang.getMessage( "gav.not.found", bmd.toString(), relGaPath ) ) ); continue; } @@ -174,7 +176,7 @@ File gavDir = new File( gaDir, version ); if( !gavDir.exists() ) { - res.add( new RepositoryException( _lang.getMessage( "gavdir.not.found", bmd.toString(), gavDir.getAbsolutePath() ) ) ); + res.addError( bmd, new RepositoryException( _lang.getMessage( "gavdir.not.found", bmd.toString(), gavDir.getAbsolutePath() ) ) ); continue; } @@ -203,7 +205,7 @@ // binary calculated if( ! binary.exists() ) { - res.add( new RepositoryException( _lang.getMessage( "binary.not.found", bmd.toString(), binary.getAbsolutePath() ) ) ); + res.addError( bmd, new RepositoryException( _lang.getMessage( "binary.not.found", bmd.toString(), binary.getAbsolutePath() ) ) ); continue; } @@ -228,7 +230,7 @@ _log.warn( _lang.getMessage( "pom.not.found", bmd.toString()) ); } - res.add( da ); + res.add( bmd, da ); } catch( Exception e ) { @@ -321,14 +323,14 @@ /** * */ - public Map<ArtifactBasicMetadata, ArtifactMetadata> readDependencies( List<? extends ArtifactBasicMetadata> query ) + public ArtifactBasicResults readDependencies( List<ArtifactBasicMetadata> query ) throws RepositoryException, IllegalArgumentException { if( query == null || query.size() < 1 ) return null; - Map<ArtifactBasicMetadata, ArtifactMetadata> ror = new HashMap<ArtifactBasicMetadata, ArtifactMetadata>(16); + ArtifactBasicResults ror = null; File pomFile = null; for( ArtifactBasicMetadata bmd : query ) @@ -352,10 +354,7 @@ try { List<ArtifactBasicMetadata> deps = _mdProcessor.getDependencies( bmd, this, System.getProperties() ); - ArtifactMetadata md = new ArtifactMetadata( bmd ); - md.setDependencies( deps ); - - ror.put( bmd, md ); + ror = ArtifactBasicResults.add( ror, bmd, deps ); } catch( MetadataProcessingException e ) { @@ -368,7 +367,7 @@ return ror; } //--------------------------------------------------------------------------------------------------------------- - private static File findLatestSnapshot( File gavDir, DefaultArtifact da, RepositoryOperationResult<DefaultArtifact> res ) + private static File findLatestSnapshot( File gavDir, DefaultArtifact da, AbstractRepOpResult res ) { String version = gavDir.getName(); @@ -424,7 +423,7 @@ if( version == null ) { - res.add( new RepositoryException( _lang.getMessage( "snapshot.not.found", da.toString(), gavDir.getAbsolutePath() ) ) ); + res.addError( da, new RepositoryException( _lang.getMessage( "snapshot.not.found", da.toString(), gavDir.getAbsolutePath() ) ) ); return null; } @@ -440,14 +439,13 @@ /** * direct disk search, no redirects, first attempt */ - public Map<ArtifactBasicMetadata, RepositoryOperationResult<ArtifactBasicMetadata>> - readVersions( List<? extends ArtifactBasicMetadata> query ) + public ArtifactBasicResults readVersions( List<ArtifactBasicMetadata> query ) throws RepositoryException, IllegalArgumentException { if( query == null || query.size() < 1 ) return null; - Map<ArtifactBasicMetadata, RepositoryOperationResult<ArtifactBasicMetadata>> res = new HashMap<ArtifactBasicMetadata, RepositoryOperationResult<ArtifactBasicMetadata>>( query.size() ); + ArtifactBasicResults res = new ArtifactBasicResults( query.size() ); File gaDir = null; for( ArtifactBasicMetadata bmd : query ) @@ -458,7 +456,6 @@ File [] versionFiles = gaDir.listFiles(); - RepositoryOperationResult<ArtifactBasicMetadata> rr = null; VersionRange versionQuery; try { @@ -466,7 +463,7 @@ } catch( VersionException e ) { - rr = RepositoryOperationResult.add( rr, new RepositoryException(e) ); + res = ArtifactBasicResults.add( res, bmd, new RepositoryException(e) ); continue; } @@ -491,10 +488,8 @@ vmd.setType( bmd.getType() ); vmd.setVersion( vf.getName() ); - rr = RepositoryOperationResult.add( rr, vmd ); + res = ArtifactBasicResults.add( res, bmd, vmd ); } - if( rr != null ) - res.put( bmd, rr ); } return res; Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java?rev=689529&r1=689528&r2=689529&view=diff ============================================================================== --- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java (original) +++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java Wed Aug 27 10:04:27 2008 @@ -25,10 +25,12 @@ import org.apache.maven.mercury.builder.api.MetadataReader; import org.apache.maven.mercury.repository.api.AbstracRepositoryReader; import org.apache.maven.mercury.repository.api.AbstractRepository; +import org.apache.maven.mercury.repository.api.ArtifactBasicResults; +import org.apache.maven.mercury.repository.api.ArtifactResults; import org.apache.maven.mercury.repository.api.RemoteRepository; import org.apache.maven.mercury.repository.api.Repository; import org.apache.maven.mercury.repository.api.RepositoryException; -import org.apache.maven.mercury.repository.api.RepositoryOperationResult; +import org.apache.maven.mercury.repository.api.AbstractRepOpResult; import org.apache.maven.mercury.repository.api.RepositoryReader; import org.apache.maven.mercury.repository.metadata.Metadata; import org.apache.maven.mercury.repository.metadata.MetadataBuilder; @@ -110,25 +112,25 @@ return _repo; } //--------------------------------------------------------------------------------------------------------------- - public RepositoryOperationResult<DefaultArtifact> readArtifacts( List<? extends ArtifactBasicMetadata> query ) + public ArtifactResults readArtifacts( List<ArtifactBasicMetadata> query ) throws RepositoryException, IllegalArgumentException { if( query == null || query.size() < 1 ) return null; - RepositoryOperationResult<DefaultArtifact> res = new RepositoryOperationResult<DefaultArtifact>(); + ArtifactResults res = new ArtifactResults(); for( ArtifactBasicMetadata bmd : query ) { try { DefaultArtifact da = readArtifact( bmd ); - res.add( da ); + res.add( bmd, da ); } catch( Exception e ) { - res.add( e ); + res.addError( bmd, e ); } } @@ -149,7 +151,6 @@ if( gavMd == null || gavMd.getVersioning() == null ) throw new RepositoryException( _lang.getMessage( "gav.md.no.versions", _repo.getServer().getURL().toString(), gavPath+'/'+ver+'/'+_repo.getMetadataName() ) ); - List<String> versions = gavMd.getVersioning().getVersions(); if( versions == null || versions.size() < 1 ) throw new RepositoryException( _lang.getMessage( "gav.md.no.versions", _repo.getServer().getURL().toString(), gavPath+'/'+ver+'/'+_repo.getMetadataName() ) ); @@ -216,6 +217,7 @@ Quality vq = dav.getQuality(); String relGaPath = bmd.getGroupId().replace( '.', '/' ) + '/' + bmd.getArtifactId(); + String versionDir = bmd.getVersion(); byte [] mdBytes = readRawData( relGaPath+'/'+_repo.getMetadataName() ); if( mdBytes == null ) @@ -275,12 +277,17 @@ if( relBinaryPath == null ) throw new RepositoryException( _lang.getMessage( "gav.not.found", bmd.toString(), relGaPath ) ); + + versionDir = version; } else { - relBinaryPath = relGaPath+'/'+version+'/'+bmd.getArtifactId()+'-'+version + versionDir = version; + relBinaryPath = relGaPath+'/'+versionDir + +'/'+bmd.getArtifactId()+'-'+version + ( bmd.hasClassifier() ? '-'+bmd.getClassifier() : "" )+'.'+bmd.getType() ; + da.setVersion( version ); } } @@ -288,6 +295,7 @@ else if( version.endsWith( Artifact.SNAPSHOT_VERSION ) ) { relBinaryPath = findLatestSnapshot( relGaPath, version, da ); + versionDir = dav.getBase()+'-'+Artifact.SNAPSHOT_VERSION; if( relBinaryPath == null ) throw new RepositoryException( _lang.getMessage( "gav.not.found", bmd.toString(), relGaPath ) ); @@ -295,8 +303,8 @@ // time stamped snapshot requested else if( vq.equals( Quality.SNAPSHOT_TS_QUALITY )) { - relBinaryPath = relGaPath - + '/'+dav.getBase()+'-'+Artifact.SNAPSHOT_VERSION + versionDir = dav.getBase()+'-'+Artifact.SNAPSHOT_VERSION; + relBinaryPath = relGaPath + '/' + versionDir + '/' + bmd.getArtifactId() + '-' + bmd.getVersion() + ( bmd.hasClassifier() ? '-'+bmd.getClassifier() : "" ) + '.' + bmd.getType() ; @@ -312,7 +320,7 @@ // binary calculated - File binFile = File.createTempFile( "remote-repo-", bmd.getArtifactId()+bmd.getVersion()+'.'+bmd.getType() ); + File binFile = File.createTempFile( "remote-repo-" + _repo.getId(), bmd.getArtifactId()+bmd.getVersion()+'.'+bmd.getType() ); File pomFile = null; Binding binBinding = new Binding( new URL(_repo.getServer().getURL().toString() + '/'+ relBinaryPath) , binFile ); @@ -322,14 +330,14 @@ if( !"pom".equals( bmd.getType() ) ) { - String relPomPath = relGaPath + '/'+version + String relPomPath = relGaPath + '/' + versionDir + '/'+bmd.getArtifactId()+'-'+version + ".pom" ; - pomFile = File.createTempFile( "remote-repo-", bmd.getArtifactId()+bmd.getVersion()+'.'+bmd.getType() ); + pomFile = File.createTempFile( "remote-repo-" + _repo.getId(), bmd.getArtifactId()+bmd.getVersion()+".pom" ); Binding pomBinding = new Binding( new URL(_repo.getServer().getURL().toString() + '/'+ relPomPath) , pomFile ); - request.addBinding( binBinding ); + request.addBinding( pomBinding ); } RetrievalResponse response = _transport.retrieve( request ); @@ -356,24 +364,21 @@ /** * */ - public Map<ArtifactBasicMetadata, ArtifactMetadata> readDependencies( List<? extends ArtifactBasicMetadata> query ) + public ArtifactBasicResults readDependencies( List<ArtifactBasicMetadata> query ) throws RepositoryException, IllegalArgumentException { if( query == null || query.size() < 1 ) return null; - Map<ArtifactBasicMetadata, ArtifactMetadata> ror = new HashMap<ArtifactBasicMetadata, ArtifactMetadata>(16); + ArtifactBasicResults ror = new ArtifactBasicResults(16); for( ArtifactBasicMetadata bmd : query ) { try { List<ArtifactBasicMetadata> deps = _mdProcessor.getDependencies( bmd, this, System.getProperties() ); - ArtifactMetadata md = new ArtifactMetadata( bmd ); - md.setDependencies( deps ); - - ror.put( bmd, md ); + ror.add( bmd, deps ); } catch( MetadataProcessingException e ) { @@ -389,14 +394,14 @@ /** * direct disk search, no redirects, first attempt */ - public Map<ArtifactBasicMetadata, RepositoryOperationResult<ArtifactBasicMetadata>> readVersions( List<? extends ArtifactBasicMetadata> query ) + public ArtifactBasicResults readVersions( List<ArtifactBasicMetadata> query ) throws RepositoryException, IllegalArgumentException { if( query == null || query.size() < 1 ) return null; - Map<ArtifactBasicMetadata, RepositoryOperationResult<ArtifactBasicMetadata>> res = new HashMap<ArtifactBasicMetadata, RepositoryOperationResult<ArtifactBasicMetadata>>( query.size() ); + ArtifactBasicResults res = new ArtifactBasicResults( query.size() ); String gaPath = null; for( ArtifactBasicMetadata bmd : query ) @@ -433,7 +438,6 @@ throw new RepositoryException( pe ); } - RepositoryOperationResult<ArtifactBasicMetadata> rr = null; VersionRange versionQuery; try { @@ -441,7 +445,7 @@ } catch( VersionException e ) { - rr = RepositoryOperationResult.add( rr, new RepositoryException(e) ); + res.addError( bmd, new RepositoryException(e) ); continue; } @@ -466,10 +470,8 @@ vmd.setType( bmd.getType() ); vmd.setVersion( v ); - rr = RepositoryOperationResult.add( rr, vmd ); + res.add( bmd, vmd ); } - if( rr != null ) - res.put( bmd, rr ); } return res;