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 2008/07/19 08:06:34 UTC
svn commit: r678107 - in /maven/sandbox/trunk/mercury/src:
main/java/org/apache/maven/mercury/metadata/
main/java/org/apache/maven/mercury/retrieve/
test/java/org/apache/maven/mercury/metadata/
test/java/org/apache/maven/mercury/repository/ test/java/o...
Author: ogusakov
Date: Fri Jul 18 23:06:33 2008
New Revision: 678107
URL: http://svn.apache.org/viewvc?rev=678107&view=rev
Log:
started revamping repository metadata and objects. RemoteRepositories are now a List, not Set
Added:
maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/HttpMetadataSource.java
maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/repository/
maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/repository/metadata/
maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/repository/metadata/MetadataReaderTest.java
maven/sandbox/trunk/mercury/src/test/resources/controlledRepo/a/a/maven-metadata.xml
Modified:
maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/DefaultMetadataResolver.java
maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/MetadataResolutionRequest.java
maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/MetadataSource.java
maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/MetadataTree.java
maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ArtifactRetriever.java
maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/DefaultArtifactRetriever.java
maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ResolutionRequest.java
maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ResolutionResult.java
maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MetadataResolverTest.java
maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MockMetadataSource.java
Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/DefaultMetadataResolver.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/DefaultMetadataResolver.java?rev=678107&r1=678106&r2=678107&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/DefaultMetadataResolver.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/DefaultMetadataResolver.java Fri Jul 18 23:06:33 2008
@@ -13,7 +13,7 @@
import org.apache.maven.mercury.retrieve.ResolutionRequest;
import org.apache.maven.mercury.retrieve.ResolutionResult;
-/*
+/**
* default implementation of the metadata resolver
*
* @author Oleg Gusakov
@@ -57,7 +57,7 @@
private MetadataTreeNode resolveMetadataTree( ArtifactMetadata query
, MetadataTreeNode parent
, LocalRepository localRepository
- , Set<RemoteRepository> remoteRepositories
+ , List<RemoteRepository> remoteRepositories
)
throws MetadataResolutionException
{
Added: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/HttpMetadataSource.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/HttpMetadataSource.java?rev=678107&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/HttpMetadataSource.java (added)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/HttpMetadataSource.java Fri Jul 18 23:06:33 2008
@@ -0,0 +1,40 @@
+package org.apache.maven.mercury.metadata;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.maven.mercury.repository.LocalRepository;
+import org.apache.maven.mercury.repository.RemoteRepository;
+
+public class HttpMetadataSource
+implements MetadataSource
+{
+ LocalRepository _localRepository;
+ Set<RemoteRepository> _remoteRepositories;
+
+ public Collection<ArtifactMetadata> expand(
+ ArtifactMetadata metadataQuery
+ , LocalRepository localRepository
+ , List<RemoteRepository> remoteRepositories
+ )
+ throws MetadataRetrievalException
+ {
+ if( localRepository == null )
+ throw new MetadataRetrievalException("null localRepo specified");
+
+ return null;
+ }
+
+ public MetadataResolution retrieve(
+ ArtifactMetadata metadata
+ , LocalRepository localRepository
+ , List<RemoteRepository> remoteRepositories
+ )
+ throws MetadataRetrievalException
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/MetadataResolutionRequest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/MetadataResolutionRequest.java?rev=678107&r1=678106&r2=678107&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/MetadataResolutionRequest.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/MetadataResolutionRequest.java Fri Jul 18 23:06:33 2008
@@ -1,5 +1,6 @@
package org.apache.maven.mercury.metadata;
+import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -14,7 +15,7 @@
{
protected ArtifactMetadata query;
protected LocalRepository localRepository;
- protected Set<RemoteRepository> remoteRepositories;
+ protected List<RemoteRepository> remoteRepositories;
public MetadataResolutionRequest()
{
@@ -22,7 +23,7 @@
public MetadataResolutionRequest( ArtifactMetadata query,
LocalRepository localRepository,
- Set<RemoteRepository> remoteRepositories )
+ List<RemoteRepository> remoteRepositories )
{
this.query = query;
this.localRepository = localRepository;
@@ -49,7 +50,7 @@
{
if ( remoteRepositories == null )
{
- remoteRepositories = new HashSet();
+ remoteRepositories = new ArrayList<RemoteRepository>();
}
remoteRepositories.add( repository );
@@ -63,12 +64,12 @@
return this;
}
- public Set<RemoteRepository> getRemoteRepositories()
+ public List<RemoteRepository> getRemoteRepositories()
{
return remoteRepositories;
}
- public MetadataResolutionRequest setRemoteRepositories( Set<RemoteRepository> remoteRepositories )
+ public MetadataResolutionRequest setRemoteRepositories( List<RemoteRepository> remoteRepositories )
{
this.remoteRepositories = remoteRepositories;
return this;
Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/MetadataSource.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/MetadataSource.java?rev=678107&r1=678106&r2=678107&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/MetadataSource.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/MetadataSource.java Fri Jul 18 23:06:33 2008
@@ -20,7 +20,7 @@
*/
import java.util.Collection;
-import java.util.Set;
+import java.util.List;
import org.apache.maven.mercury.repository.LocalRepository;
import org.apache.maven.mercury.repository.RemoteRepository;
@@ -54,7 +54,7 @@
MetadataResolution retrieve(
ArtifactMetadata metadata
, LocalRepository localRepository
- , Set<RemoteRepository> remoteRepositories
+ , List<RemoteRepository> remoteRepositories
)
throws MetadataRetrievalException
;
@@ -72,7 +72,7 @@
Collection<ArtifactMetadata> expand(
ArtifactMetadata metadataQuery
, LocalRepository localRepository
- , Set<RemoteRepository> remoteRepositories
+ , List<RemoteRepository> remoteRepositories
)
throws MetadataRetrievalException
;
Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/MetadataTree.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/MetadataTree.java?rev=678107&r1=678106&r2=678107&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/MetadataTree.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/MetadataTree.java Fri Jul 18 23:06:33 2008
@@ -25,7 +25,7 @@
private Set<MetadataTreeArtifactFilter> _filters;
private List<Comparator<MetadataTreeNode>> _comparators;
private LocalRepository _localRepository;
- private Set<RemoteRepository> _remoteRepositories;
+ private List<RemoteRepository> _remoteRepositories;
MetadataTreeNode _root;
@@ -34,7 +34,7 @@
, Set<MetadataTreeArtifactFilter> filters
, List<Comparator<MetadataTreeNode>> comparators
, LocalRepository localRepository
- , Set<RemoteRepository> remoteRepositories
+ , List<RemoteRepository> remoteRepositories
)
{
this._mdSource = mdSource;
Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ArtifactRetriever.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ArtifactRetriever.java?rev=678107&r1=678106&r2=678107&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ArtifactRetriever.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ArtifactRetriever.java Fri Jul 18 23:06:33 2008
@@ -24,6 +24,7 @@
* Responsible for retrieving a set of artifacts.
*
* @author Jason van Zyl
+ * @author Oleg Gusakov
*/
public interface ArtifactRetriever
{
@@ -31,4 +32,5 @@
/** @since 3.0 */
ResolutionResult retrieve( ResolutionRequest request );
+
}
\ No newline at end of file
Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/DefaultArtifactRetriever.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/DefaultArtifactRetriever.java?rev=678107&r1=678106&r2=678107&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/DefaultArtifactRetriever.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/DefaultArtifactRetriever.java Fri Jul 18 23:06:33 2008
@@ -25,7 +25,7 @@
import org.apache.maven.mercury.spi.http.client.retrieve.RetrievalResponse;
import org.apache.maven.mercury.spi.http.client.retrieve.Retriever;
-/*
+/**
* @author Jason van Zyl
*
* @plexus.component
Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ResolutionRequest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ResolutionRequest.java?rev=678107&r1=678106&r2=678107&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ResolutionRequest.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ResolutionRequest.java Fri Jul 18 23:06:33 2008
@@ -1,5 +1,6 @@
package org.apache.maven.mercury.retrieve;
+import java.util.List;
import java.util.Set;
import org.apache.maven.mercury.Artifact;
@@ -13,12 +14,13 @@
* to process a POMs dependencies.
*
* @author Jason van Zyl
+ * @author Oleg Gusakov
*/
public class ResolutionRequest
{
private ArtifactMetadata _md;
private LocalRepository localRepository;
- private Set<RemoteRepository> remoteRepostories;
+ private List<RemoteRepository> remoteRepostories;
public ArtifactMetadata getMd()
{
@@ -95,12 +97,12 @@
return this;
}
- public Set<RemoteRepository> getRemoteRepostories()
+ public List<RemoteRepository> getRemoteRepostories()
{
return remoteRepostories;
}
- public ResolutionRequest setRemoteRepostories( Set<RemoteRepository> remoteRepostories )
+ public ResolutionRequest setRemoteRepostories( List<RemoteRepository> remoteRepostories )
{
this.remoteRepostories = remoteRepostories;
Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ResolutionResult.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ResolutionResult.java?rev=678107&r1=678106&r2=678107&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ResolutionResult.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/retrieve/ResolutionResult.java Fri Jul 18 23:06:33 2008
@@ -28,7 +28,7 @@
import org.apache.maven.mercury.repository.RemoteRepository;
import org.apache.maven.mercury.repository.Repository;
-/*
+/**
* @author Jason van Zyl
*/
public class ResolutionResult
Modified: maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MetadataResolverTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MetadataResolverTest.java?rev=678107&r1=678106&r2=678107&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MetadataResolverTest.java (original)
+++ maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MetadataResolverTest.java Fri Jul 18 23:06:33 2008
@@ -2,6 +2,7 @@
import java.io.File;
import java.util.Collection;
+import java.util.List;
import java.util.Set;
import junit.framework.TestCase;
@@ -84,9 +85,9 @@
}
class SimpleSource
- implements MetadataSource
+ implements MetadataSource
{
- public MetadataResolution retrieve( ArtifactMetadata artifact, LocalRepository localRepository, Set<RemoteRepository> remoteRepositories )
+ public MetadataResolution retrieve( ArtifactMetadata artifact, LocalRepository localRepository, List<RemoteRepository> remoteRepositories )
throws MetadataRetrievalException
{
//TODO: This assumes that we have already pulled it down
@@ -96,7 +97,7 @@
public Collection<ArtifactMetadata> expand(
ArtifactMetadata metadataQuery, LocalRepository localRepository,
- Set<RemoteRepository> remoteRepositories)
+ List<RemoteRepository> remoteRepositories)
throws MetadataRetrievalException
{
// TODO Auto-generated method stub
Modified: maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MockMetadataSource.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MockMetadataSource.java?rev=678107&r1=678106&r2=678107&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MockMetadataSource.java (original)
+++ maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MockMetadataSource.java Fri Jul 18 23:06:33 2008
@@ -30,7 +30,7 @@
public Collection<ArtifactMetadata> expand(
ArtifactMetadata mdq
, LocalRepository localRepository
- , Set<RemoteRepository> remoteRepositories
+ , List<RemoteRepository> remoteRepositories
)
throws MetadataRetrievalException
{
@@ -82,7 +82,7 @@
public MetadataResolution retrieve(
ArtifactMetadata metadata
, LocalRepository localRepository
- , Set<RemoteRepository> remoteRepositories
+ , List<RemoteRepository> remoteRepositories
)
throws MetadataRetrievalException
{
Added: maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/repository/metadata/MetadataReaderTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/repository/metadata/MetadataReaderTest.java?rev=678107&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/repository/metadata/MetadataReaderTest.java (added)
+++ maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/repository/metadata/MetadataReaderTest.java Fri Jul 18 23:06:33 2008
@@ -0,0 +1,107 @@
+package org.apache.maven.mercury.repository.metadata;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.HashSet;
+import java.util.List;
+
+import org.apache.maven.mercury.repository.metadata.io.xpp3.MetadataXpp3Reader;
+import org.apache.maven.mercury.spi.http.client.Binding;
+import org.apache.maven.mercury.spi.http.client.retrieve.DefaultRetrievalRequest;
+import org.apache.maven.mercury.spi.http.client.retrieve.DefaultRetriever;
+import org.apache.maven.mercury.spi.http.client.retrieve.RetrievalResponse;
+import org.apache.maven.mercury.spi.http.server.HttpTestServer;
+import org.apache.maven.mercury.spi.http.server.SimpleTestServer;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+import junit.framework.TestCase;
+
+public class MetadataReaderTest
+extends TestCase
+{
+ MetadataXpp3Reader _reader;
+ File _testBase = new File("./target/test-classes/controlledRepo");
+ DefaultRetriever _retriever;
+ public String _port;
+ HttpTestServer _server;
+ DefaultRetrievalRequest _request;
+
+
+ @Override
+ protected void setUp()
+ throws Exception
+ {
+// File [] list = _testBase.listFiles();
+// if( list != null )
+// {
+// for( File f : list )
+// System.out.println( f.getCanonicalPath() );
+// }
+// else
+// System.out.println("no files in "+_testBase.getCanonicalPath() );
+
+ _retriever = new DefaultRetriever();
+ _server = new HttpTestServer( _testBase, "/repo" );
+ _server.start();
+ _port = String.valueOf( _server.getPort() );
+
+ _reader = new MetadataXpp3Reader();
+ _request = new DefaultRetrievalRequest();
+ }
+
+ protected void tearDown()
+ throws Exception
+ {
+ super.tearDown();
+ _server.stop();
+ _server.destroy();
+ }
+
+ public void testReadMd()
+ throws FileNotFoundException, IOException, XmlPullParserException
+ {
+ Metadata mmd = _reader.read( new FileInputStream( new File( _testBase, "a/a/maven-metadata.xml") ) );
+ validateMmd( mmd );
+ }
+
+
+ public void testReadRemoteMd()
+ throws FileNotFoundException, IOException, XmlPullParserException
+ {
+ File temp = File.createTempFile("maven", "metadata" );
+ HashSet<Binding> bindings = new HashSet<Binding>();
+
+ Binding aaMdBinding = new Binding( "http://localhost:"+_port+"/repo/a/a/maven-metadata.xml", temp, true );
+ bindings.add( aaMdBinding );
+
+ _request.setBindings(bindings);
+
+ RetrievalResponse response = _retriever.retrieve(_request);
+
+ if( response.hasExceptions() )
+ fail("retrieval exceptions: "+response.getExceptions() );
+
+ Metadata mmd = _reader.read( new FileInputStream( temp ) );
+ temp.delete();
+
+ validateMmd( mmd );
+
+ }
+
+ private void validateMmd( Metadata mmd )
+ {
+ assertNotNull( mmd );
+ assertEquals("a", mmd.getGroupId() );
+ assertEquals("a", mmd.getArtifactId() );
+
+ assertNotNull( mmd.getVersioning() );
+
+ List<String> versions = mmd.getVersioning().getVersions();
+
+ assertNotNull( versions );
+ assertTrue( versions.size() > 3 );
+ }
+
+}
Added: maven/sandbox/trunk/mercury/src/test/resources/controlledRepo/a/a/maven-metadata.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/test/resources/controlledRepo/a/a/maven-metadata.xml?rev=678107&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/src/test/resources/controlledRepo/a/a/maven-metadata.xml (added)
+++ maven/sandbox/trunk/mercury/src/test/resources/controlledRepo/a/a/maven-metadata.xml Fri Jul 18 23:06:33 2008
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?><metadata>
+ <groupId>a</groupId>
+ <artifactId>a</artifactId>
+ <version>4</version>
+ <versioning>
+ <release>4</release>
+ <versions>
+ <version>1</version>
+ <version>2</version>
+ <version>3</version>
+ <version>4</version>
+ </versions>
+ <lastUpdated>20080424212921</lastUpdated>
+ </versioning>
+</metadata>
\ No newline at end of file