You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2008/05/26 20:24:05 UTC

svn commit: r660262 - in /maven/sandbox/trunk/mercury/src: main/java/org/apache/maven/mercury/ main/java/org/apache/maven/mercury/metadata/ main/java/org/apache/maven/mercury/repository/ main/java/org/apache/maven/mercury/repository/layout/ main/java/o...

Author: jvanzyl
Date: Mon May 26 11:24:00 2008
New Revision: 660262

URL: http://svn.apache.org/viewvc?rev=660262&view=rev
Log: (empty)

Added:
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/DefaultRepositoryLayout.java
      - copied, changed from r660105, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultRepositoryLayout.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/RepositoryLayout.java
      - copied, changed from r660105, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/RepositoryLayout.java
Removed:
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultRepositoryLayout.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/RepositoryLayout.java
Modified:
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/Artifact.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/DefaultArtifact.java
    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/repository/AbstractRepository.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultLocalRepository.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultRemoteRepository.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/spi/http/server/SimpleTestServer.java

Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/Artifact.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/Artifact.java?rev=660262&r1=660261&r2=660262&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/Artifact.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/Artifact.java Mon May 26 11:24:00 2008
@@ -84,45 +84,11 @@
 
     String getId();
 
-    String getDependencyConflictId();
-
-    void setRepository( Repository remoteRepository );
-
-    Repository getRepository();
-
-    void updateVersion( String version, Repository localRepository );
-
-    String getDownloadUrl();
-
-    void setDownloadUrl( String downloadUrl );
-
-    List<String> getDependencyTrail();
-
-    void setDependencyTrail( List<String> dependencyTrail );
-
-    void setScope( String scope );
-
-    void selectVersion( String version );
-
     void setGroupId( String groupId );
 
     void setArtifactId( String artifactId );
-
-    boolean isSnapshot();
-
-    void setResolved( boolean resolved );
-
+    
     boolean isResolved();
-
-    void setResolvedVersion( String version );
-
-    boolean isRelease();
-
-    void setRelease( boolean release );
-
-    boolean isOptional();
-
-    void setOptional( boolean optional );
-
-    String getInheritedScope();
+    
+    void setResolved( boolean resolved );
 }
\ No newline at end of file

Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/DefaultArtifact.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/DefaultArtifact.java?rev=660262&r1=660261&r2=660262&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/DefaultArtifact.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/DefaultArtifact.java Mon May 26 11:24:00 2008
@@ -51,8 +51,6 @@
 
     private boolean resolved;
 
-    private List dependencyTrail;
-
     // Why is this here? What repository is determined at runtime and is therefore a
     // runtime charactistic. This needs to go. jvz.
     private Repository repository;
@@ -223,7 +221,7 @@
 
     public String getId()
     {
-        return getDependencyConflictId() + ":" + getBaseVersion();
+        return getDependencyConflictId() + ":" + getVersion();
     }
 
     public String getDependencyConflictId()
@@ -264,7 +262,7 @@
         
         if ( getVersion() != null )
         {
-            sb.append( getBaseVersionInternal() );
+            sb.append( getVersion() );
         }
         
         if ( scope != null )
@@ -329,47 +327,6 @@
         return true;
     }
 
-    public String getBaseVersion()
-    {
-        if ( baseVersion == null )
-        {
-            if ( version == null )
-            {
-                throw new NullPointerException( "version was null for " + groupId + ":" + artifactId );
-            }
-            setBaseVersionInternal( version );
-        }
-        return baseVersion;
-    }
-
-    protected String getBaseVersionInternal()
-    {
-        if ( ( baseVersion == null ) && ( version != null ) )
-        {
-            setBaseVersionInternal( version );
-        }
-
-        return baseVersion;
-    }
-
-    public void setBaseVersion( String baseVersion )
-    {
-        setBaseVersionInternal( baseVersion );
-    }
-
-    protected void setBaseVersionInternal( String baseVersion )
-    {
-        Matcher m = VERSION_FILE_PATTERN.matcher( baseVersion );
-        if ( m.matches() )
-        {
-            this.baseVersion = m.group( 1 ) + "-" + SNAPSHOT_VERSION;
-        }
-        else
-        {
-            this.baseVersion = baseVersion;
-        }
-    }
-
     public int compareTo( Object o )
     {
         Artifact a = (Artifact) o;
@@ -412,12 +369,6 @@
         return result;
     }
 
-    public void updateVersion( String version, Repository localRepository )
-    {
-        setResolvedVersion( version );
-        setFile( new File( localRepository.getDirectory(), localRepository.pathOf( this ) ) );
-    }
-
     public String getDownloadUrl()
     {
         return downloadUrl;
@@ -428,27 +379,11 @@
         this.downloadUrl = downloadUrl;
     }
 
-    public List<String> getDependencyTrail()
-    {
-        return dependencyTrail;
-    }
-
-    public void setDependencyTrail( List<String> dependencyTrail )
-    {
-        this.dependencyTrail = dependencyTrail;
-    }
-
     public void setScope( String scope )
     {
         this.scope = scope;
     }
 
-    public void selectVersion( String version )
-    {
-        this.version = version;
-        setBaseVersionInternal( version );
-    }
-
     public void setGroupId( String groupId )
     {
         this.groupId = groupId;
@@ -459,11 +394,6 @@
         this.artifactId = artifactId;
     }
 
-    public boolean isSnapshot()
-    {
-        return getBaseVersion() != null && ( getBaseVersion().endsWith( SNAPSHOT_VERSION ) || getBaseVersion().equals( LATEST_VERSION ) );
-    }
-
     public void setResolved( boolean resolved )
     {
         this.resolved = resolved;

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=660262&r1=660261&r2=660262&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 Mon May 26 11:24:00 2008
@@ -2,9 +2,12 @@
 
 import java.util.Collection;
 import java.util.List;
+import java.util.Set;
 
 import org.apache.maven.mercury.Artifact;
 import org.apache.maven.mercury.DefaultArtifact;
+import org.apache.maven.mercury.repository.LocalRepository;
+import org.apache.maven.mercury.repository.RemoteRepository;
 import org.apache.maven.mercury.repository.Repository;
 import org.apache.maven.mercury.retrieve.ArtifactRetriever;
 import org.apache.maven.mercury.retrieve.ResolutionRequest;
@@ -48,7 +51,7 @@
     }
 
     //------------------------------------------------------------------------
-    private MetadataTreeNode resolveMetadataTree( ArtifactMetadata query, MetadataTreeNode parent, Repository localRepository, List<Repository> remoteRepositories )
+    private MetadataTreeNode resolveMetadataTree( ArtifactMetadata query, MetadataTreeNode parent, LocalRepository localRepository, Set<RemoteRepository> remoteRepositories )
         throws MetadataResolutionException
     {
         try

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=660262&r1=660261&r2=660262&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 Mon May 26 11:24:00 2008
@@ -16,12 +16,10 @@
     protected LocalRepository localRepository;
     protected Set<RemoteRepository> remoteRepositories;
 
-    //--------------------------------------------------------------------
     public MetadataResolutionRequest()
     {
     }
 
-    //--------------------------------------------------------------------
     public MetadataResolutionRequest( ArtifactMetadata query,
                                       LocalRepository localRepository,
                                       Set<RemoteRepository> remoteRepositories )
@@ -31,7 +29,6 @@
         this.remoteRepositories = remoteRepositories;
     }
 
-    //--------------------------------------------------------------------
     public ArtifactMetadata getQuery()
     {
         return query;
@@ -43,7 +40,7 @@
         return this;
     }
 
-    public Repository getLocalRepository()
+    public LocalRepository getLocalRepository()
     {
         return localRepository;
     }
@@ -76,6 +73,4 @@
         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=660262&r1=660261&r2=660262&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 Mon May 26 11:24:00 2008
@@ -20,7 +20,10 @@
  */
 
 import java.util.List;
+import java.util.Set;
 
+import org.apache.maven.mercury.repository.LocalRepository;
+import org.apache.maven.mercury.repository.RemoteRepository;
 import org.apache.maven.mercury.repository.Repository;
 
 /**
@@ -35,7 +38,7 @@
     String ROLE = MetadataSource.class.getName();
 
     MetadataResolution retrieve( ArtifactMetadata artifact,
-                                 Repository localRepository,
-                                 List<Repository> remoteRepositories )
+                                 LocalRepository localRepository,
+                                 Set<RemoteRepository> remoteRepositories )
         throws MetadataRetrievalException;
 }
\ No newline at end of file

Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/AbstractRepository.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/AbstractRepository.java?rev=660262&r1=660261&r2=660262&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/AbstractRepository.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/AbstractRepository.java Mon May 26 11:24:00 2008
@@ -1,6 +1,7 @@
 package org.apache.maven.mercury.repository;
 
 import org.apache.maven.mercury.Artifact;
+import org.apache.maven.mercury.repository.layout.RepositoryLayout;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more contributor license

Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultLocalRepository.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultLocalRepository.java?rev=660262&r1=660261&r2=660262&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultLocalRepository.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultLocalRepository.java Mon May 26 11:24:00 2008
@@ -2,6 +2,8 @@
 
 import java.io.File;
 
+import org.apache.maven.mercury.repository.layout.RepositoryLayout;
+
 public class DefaultLocalRepository
     extends AbstractRepository
     implements LocalRepository

Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultRemoteRepository.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultRemoteRepository.java?rev=660262&r1=660261&r2=660262&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultRemoteRepository.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultRemoteRepository.java Mon May 26 11:24:00 2008
@@ -1,5 +1,7 @@
 package org.apache.maven.mercury.repository;
 
+import org.apache.maven.mercury.repository.layout.RepositoryLayout;
+
 public class DefaultRemoteRepository
     extends AbstractRepository
     implements RemoteRepository

Copied: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/DefaultRepositoryLayout.java (from r660105, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultRepositoryLayout.java)
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/DefaultRepositoryLayout.java?p2=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/DefaultRepositoryLayout.java&p1=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultRepositoryLayout.java&r1=660105&r2=660262&rev=660262&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultRepositoryLayout.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/DefaultRepositoryLayout.java Mon May 26 11:24:00 2008
@@ -1,4 +1,4 @@
-package org.apache.maven.mercury.repository;
+package org.apache.maven.mercury.repository.layout;
 
 import org.apache.maven.mercury.Artifact;
 

Copied: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/RepositoryLayout.java (from r660105, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/RepositoryLayout.java)
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/RepositoryLayout.java?p2=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/RepositoryLayout.java&p1=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/RepositoryLayout.java&r1=660105&r2=660262&rev=660262&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/RepositoryLayout.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/layout/RepositoryLayout.java Mon May 26 11:24:00 2008
@@ -1,4 +1,4 @@
-package org.apache.maven.mercury.repository;
+package org.apache.maven.mercury.repository.layout;
 
 import org.apache.maven.mercury.Artifact;
 

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=660262&r1=660261&r2=660262&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 Mon May 26 11:24:00 2008
@@ -21,9 +21,10 @@
 
 import java.io.File;
 
-import org.apache.maven.mercury.repository.DefaultRepositoryLayout;
+import org.apache.maven.mercury.repository.RemoteRepository;
 import org.apache.maven.mercury.repository.Repository;
-import org.apache.maven.mercury.repository.RepositoryLayout;
+import org.apache.maven.mercury.repository.layout.DefaultRepositoryLayout;
+import org.apache.maven.mercury.repository.layout.RepositoryLayout;
 import org.apache.maven.mercury.spi.http.client.Binding;
 import org.apache.maven.mercury.spi.http.client.MercuryException;
 import org.apache.maven.mercury.spi.http.client.retrieve.DefaultRetrievalRequest;
@@ -58,9 +59,9 @@
             result.addException( e );
             
             return result;
-        }
-                        
-        for ( Repository remoteRepository : request.getRemoteRepostories() )
+        }                            
+        
+        for ( RemoteRepository remoteRepository : request.getRemoteRepostories() )
         {
             RetrievalRequest rr = new DefaultRetrievalRequest();                
             String remoteUrl = remoteRepository.getUrl() + "/" + layout.pathOf( request.getArtifact() );            

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=660262&r1=660261&r2=660262&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 Mon May 26 11:24:00 2008
@@ -1,9 +1,10 @@
 package org.apache.maven.mercury.retrieve;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.Set;
 
 import org.apache.maven.mercury.Artifact;
+import org.apache.maven.mercury.repository.LocalRepository;
+import org.apache.maven.mercury.repository.RemoteRepository;
 import org.apache.maven.mercury.repository.Repository;
 
 /**
@@ -22,11 +23,9 @@
 
     private String version;
 
-    private Repository localRepository;
+    private LocalRepository localRepository;
 
-    private List<Repository> remoteRepostories;
-
-    private List listeners = new ArrayList();
+    private Set<RemoteRepository> remoteRepostories;
 
     public Artifact getArtifact()
     {
@@ -96,24 +95,24 @@
         return this;
     }
 
-    public Repository getLocalRepository()
+    public LocalRepository getLocalRepository()
     {
         return localRepository;
     }
 
-    public ResolutionRequest setLocalRepository( Repository localRepository )
+    public ResolutionRequest setLocalRepository( LocalRepository localRepository )
     {
         this.localRepository = localRepository;
 
         return this;
     }
 
-    public List<Repository> getRemoteRepostories()
+    public Set<RemoteRepository> getRemoteRepostories()
     {
         return remoteRepostories;
     }
 
-    public ResolutionRequest setRemoteRepostories( List<Repository> remoteRepostories )
+    public ResolutionRequest setRemoteRepostories( Set<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=660262&r1=660261&r2=660262&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 Mon May 26 11:24:00 2008
@@ -25,6 +25,7 @@
 import java.util.Set;
 
 import org.apache.maven.mercury.Artifact;
+import org.apache.maven.mercury.repository.RemoteRepository;
 import org.apache.maven.mercury.repository.Repository;
 
 /*
@@ -34,7 +35,7 @@
 {
     private Artifact artifact;
 
-    private List<Repository> repositories;
+    private Set<RemoteRepository> repositories;
 
     private List<Exception> exceptions;
 
@@ -48,12 +49,12 @@
         this.artifact = artifact;
     }
 
-    public List<Repository> getRepositories()
+    public Set<RemoteRepository> getRepositories()
     {
         return repositories;
     }
 
-    public void setRepositories( List<Repository> repositories )
+    public void setRepositories( Set<RemoteRepository> repositories )
     {
         this.repositories = repositories;
     }

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=660262&r1=660261&r2=660262&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 Mon May 26 11:24:00 2008
@@ -1,26 +1,46 @@
 package org.apache.maven.mercury.metadata;
 
 import java.io.File;
-import java.util.List;
+import java.util.Set;
 
+import org.apache.maven.mercury.Artifact;
 import org.apache.maven.mercury.repository.DefaultLocalRepository;
 import org.apache.maven.mercury.repository.DefaultRemoteRepository;
-import org.apache.maven.mercury.repository.DefaultRepositoryLayout;
 import org.apache.maven.mercury.repository.LocalRepository;
 import org.apache.maven.mercury.repository.RemoteRepository;
-import org.apache.maven.mercury.repository.Repository;
-import org.apache.maven.mercury.repository.RepositoryLayout;
+import org.apache.maven.mercury.repository.layout.DefaultRepositoryLayout;
+import org.apache.maven.mercury.repository.layout.RepositoryLayout;
 import org.apache.maven.mercury.retrieve.DefaultArtifactRetriever;
 import org.apache.maven.mercury.spi.http.server.SimpleTestServer;
 
 public class MetadataResolverTest
 {
+    protected File localRepositoryDirectory;
+    protected String remoteRepository;
     protected SimpleTestServer server;
+    protected File workDirectory;
+    
+    protected String localPathFragment;
+    protected String remotePathFragment;
+    protected String remoteRepositoryHostUrl;
 
     protected void setUp()
         throws Exception
     {
-        server = new SimpleTestServer();
+        if ( System.getProperty( "basedir" ) != null )
+        {
+            workDirectory = new File( System.getProperty( "basedir"), "target" );
+        }
+        else
+        {
+            workDirectory = new File( "", "target" );            
+        }
+        
+        localRepositoryDirectory = new File( workDirectory, "repository" );
+        localPathFragment = "/repo/";
+        remotePathFragment = "/repo/";
+        remoteRepositoryHostUrl = "http://localhost" + remotePathFragment;
+        server = new SimpleTestServer( localPathFragment, remotePathFragment );
     }
 
     public void testMetadataResolver()
@@ -33,26 +53,24 @@
         // obr
         MetadataSource source = new SimpleSource();
         RepositoryLayout layout = new DefaultRepositoryLayout();
-        
-        MetadataResolver metadataResolver = new DefaultMetadataResolver( new DefaultArtifactRetriever(), source );        
+
+        MetadataResolver metadataResolver = new DefaultMetadataResolver( new DefaultArtifactRetriever(), source );
         ArtifactMetadata metadata = new ArtifactMetadata( "a", "a", "1.0" );
+
+        LocalRepository localRepository = new DefaultLocalRepository( "local", layout, localRepositoryDirectory );
+        RemoteRepository remoteRepository = new DefaultRemoteRepository( "remote", layout, remoteRepositoryHostUrl );
+
+        MetadataResolutionRequest request = new MetadataResolutionRequest().setQuery( metadata ).setLocalRepository( localRepository ).addRemoteRepository( remoteRepository );
+
+        // Do we do this in memory, in which case the layout?
         
-        LocalRepository localRepository = new DefaultLocalRepository( "local", layout, new File( "" ) );
-        RemoteRepository remoteRepository = new DefaultRemoteRepository( "remote", layout, "");
-        
-        MetadataResolutionRequest request = new MetadataResolutionRequest()
-            .setQuery( metadata )
-            .setLocalRepository( localRepository )
-            .addRemoteRepository( remoteRepository );
-        
-        MetadataResolutionResult result = metadataResolver.resolve( request );    
+        MetadataResolutionResult result = metadataResolver.resolve( request );
     }
 
     class SimpleSource
         implements MetadataSource
     {
-
-        public MetadataResolution retrieve( ArtifactMetadata artifact, Repository localRepository, List<Repository> remoteRepositories )
+        public MetadataResolution retrieve( ArtifactMetadata artifact, LocalRepository localRepository, Set<RemoteRepository> remoteRepositories )
             throws MetadataRetrievalException
         {
             // TODO Auto-generated method stub
@@ -60,4 +78,13 @@
         }
 
     }
+
+    class SimpleLayout
+        implements RepositoryLayout
+    {
+        public String pathOf( Artifact artifact )
+        {
+            return artifact.getArtifactId() + "-" + artifact.getVersion() + ".txt";
+        }
+    }
 }

Modified: maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/server/SimpleTestServer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/server/SimpleTestServer.java?rev=660262&r1=660261&r2=660262&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/server/SimpleTestServer.java (original)
+++ maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/spi/http/server/SimpleTestServer.java Mon May 26 11:24:00 2008
@@ -1,20 +1,16 @@
 /**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file                                                                                            
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain a
+ * copy of the License at
  * 
- *   http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
  * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
  */
 
 package org.apache.maven.mercury.spi.http.server;
@@ -33,47 +29,54 @@
 import org.mortbay.jetty.servlet.DefaultServlet;
 import org.mortbay.util.IO;
 
-public class SimpleTestServer extends Server
+public class SimpleTestServer
+    extends Server
 {
-
     public SimpleTestServer()
         throws Exception
     {
-        super(0);
-        
+        this( "/testRepo/", "/maven2/repo" );
+    }
+
+    public SimpleTestServer( String localPathFragment, String remotePathFragment )
+        throws Exception
+    {
+        super( 0 );
+
         HandlerCollection handlers = new HandlerCollection();
-        setHandler(handlers);
-        
-        Context context = new Context(handlers,"/maven2/repo");
-        handlers.addHandler(new DefaultHandler());
-        
-        File base = File.createTempFile("simpleTestServer",null);
+        setHandler( handlers );
+
+        Context context = new Context( handlers, remotePathFragment );
+        handlers.addHandler( new DefaultHandler() );
+
+        File base = File.createTempFile( "simpleTestServer", null );
         base.delete();
         base.mkdir();
         base.deleteOnExit();
-        
-        
-        URL list = SimpleTestServer.class.getResource("/testRepo/");
-        LineNumberReader in = new LineNumberReader(new InputStreamReader(list.openStream()));
-        String file=null;
-        while ((file=in.readLine())!=null)
+
+        URL list = SimpleTestServer.class.getResource( localPathFragment );
+        LineNumberReader in = new LineNumberReader( new InputStreamReader( list.openStream() ) );
+        String file = null;
+        while ( ( file = in.readLine() ) != null )
         {
-            if (!file.startsWith("file"))
+            if ( !file.startsWith( "file" ) )
+            {
                 continue;
-            OutputStream out=new FileOutputStream(new File(base,file));
-            IO.copy(SimpleTestServer.class.getResource("/testRepo/"+file).openStream(),out);
+            }
+            OutputStream out = new FileOutputStream( new File( base, file ) );
+            IO.copy( SimpleTestServer.class.getResource( localPathFragment + file ).openStream(), out );
             out.close();
         }
-        context.addServlet(DefaultServlet.class,"/");
-        context.setResourceBase(base.getCanonicalPath());
+        context.addServlet( DefaultServlet.class, "/" );
+        context.setResourceBase( base.getCanonicalPath() );
     }
-    
+
     public int getPort()
     {
         return getConnectors()[0].getLocalPort();
     }
 
-    public static void main(String[] args)
+    public static void main( String[] args )
         throws Exception
     {
         SimpleTestServer server = new SimpleTestServer();