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/11/04 21:54:17 UTC

svn commit: r711398 - in /maven/mercury/trunk/mercury-repo: ./ mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/ mercury-repo-local-flat/src/main/java/org/apache/maven/mercury/repository/local/flat/ mercury-repo-local-flat/src/tes...

Author: ogusakov
Date: Tue Nov  4 12:54:16 2008
New Revision: 711398

URL: http://svn.apache.org/viewvc?rev=711398&view=rev
Log:
flat repo functional, ut's pass

Added:
    maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/test/resources/ant-1.6.5.jar   (with props)
    maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/test/resources/antlr-2.7.7.jar   (with props)
Modified:
    maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepository.java
    maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Repository.java
    maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryManager.java
    maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/main/java/org/apache/maven/mercury/repository/local/flat/LocalRepositoryFlat.java
    maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/main/java/org/apache/maven/mercury/repository/local/flat/LocalRepositoryWriterFlat.java
    maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/test/java/org/apache/maven/mercury/repository/local/flat/LocalRepositoryFlatTest.java
    maven/mercury/trunk/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryM2.java
    maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryM2.java
    maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java
    maven/mercury/trunk/mercury-repo/mercury-repo-virtual/src/main/java/org/apache/maven/mercury/repository/virtual/VirtualRepositoryReader.java
    maven/mercury/trunk/mercury-repo/pom.xml

Modified: maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepository.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepository.java?rev=711398&r1=711397&r2=711398&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepository.java (original)
+++ maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepository.java Tue Nov  4 12:54:16 2008
@@ -61,8 +61,6 @@
   protected QualityRange       versionRangeQualityRange = QualityRange.ALL;
 
   protected DependencyProcessor dependencyProcessor;
-  protected RepositoryReader   reader;
-  protected RepositoryWriter   writer;
   
   protected Server server;
   

Modified: maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Repository.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Repository.java?rev=711398&r1=711397&r2=711398&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Repository.java (original)
+++ maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Repository.java Tue Nov  4 12:54:16 2008
@@ -45,10 +45,18 @@
   public boolean isLocal();
 
   /**
-   * Indicates whether it's even possible to write to this Repository. If there are multiple localRepo's and Artifact
-   * needs to be downloaded - it will be "written" to all "local" repositories that are not "readOnly".
+   * Indicates whether it's possible to read from this Repository. 
    */
-  public boolean isReadOnly();
+  public boolean isReadable();
+
+  /**
+   * Indicates whether it's possible to write to this Repository. Good example is the flat repo, which is used to
+   * only collect dependencies for some 3rd party reasons, but not read them.
+   * 
+   * If there are multiple localRepo's and Artifact needs to be downloaded - it will be "written" to all 
+   * "local" repositories that are writeable.
+   */
+  public boolean isWriteable();
 
   /**
    * Indicates whether this repository contains releases

Modified: maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryManager.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryManager.java?rev=711398&r1=711397&r2=711398&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryManager.java (original)
+++ maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryManager.java Tue Nov  4 12:54:16 2008
@@ -31,7 +31,7 @@
   {
     for( Repository r : _repoList )
     {
-      if( r.isLocal() && !r.isReadOnly() && r.isAcceptedQuality( aq ) )
+      if( r.isLocal() && !r.isReadable() && r.isAcceptedQuality( aq ) )
         return (LocalRepository)r;
     }
     return null;

Modified: maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/main/java/org/apache/maven/mercury/repository/local/flat/LocalRepositoryFlat.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/main/java/org/apache/maven/mercury/repository/local/flat/LocalRepositoryFlat.java?rev=711398&r1=711397&r2=711398&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/main/java/org/apache/maven/mercury/repository/local/flat/LocalRepositoryFlat.java (original)
+++ maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/main/java/org/apache/maven/mercury/repository/local/flat/LocalRepositoryFlat.java Tue Nov  4 12:54:16 2008
@@ -2,13 +2,11 @@
 
 import java.io.File;
 
-import org.apache.maven.mercury.builder.api.DependencyProcessor;
 import org.apache.maven.mercury.repository.api.AbstractRepository;
 import org.apache.maven.mercury.repository.api.LocalRepository;
 import org.apache.maven.mercury.repository.api.NonExistentProtocolException;
 import org.apache.maven.mercury.repository.api.RepositoryReader;
 import org.apache.maven.mercury.repository.api.RepositoryWriter;
-import org.apache.maven.mercury.transport.api.Server;
 
 public class LocalRepositoryFlat
 extends AbstractRepository
@@ -18,13 +16,16 @@
   
     private File directory;
     
-    private static final String METADATA_NAME = "maven-metadata-local.xml";
+    private boolean createPoms         = false;
+    private boolean createGroupFolders = false;
 
     //----------------------------------------------------------------------------------
-    public LocalRepositoryFlat( String id, File directory )
+    public LocalRepositoryFlat( String id, File directory, boolean createGroupFolders, boolean createPoms )
     {
         super( id, FLAT_REPOSITORY_TYPE );
         this.directory = directory;
+        this.createGroupFolders = createGroupFolders;
+        this.createPoms = createPoms;
     }
     //----------------------------------------------------------------------------------
     public File getDirectory()
@@ -44,10 +45,7 @@
     //----------------------------------------------------------------------------------
     public RepositoryWriter getWriter()
     {
-      if( writer == null )
-        writer = new LocalRepositoryWriterFlat(this);
-      
-      return writer;
+      return new LocalRepositoryWriterFlat(this);
     }
     //----------------------------------------------------------------------------------
     public RepositoryWriter getWriter( String protocol )
@@ -76,5 +74,22 @@
       return DEFAULT_REPOSITORY_TYPE;
     }
     //----------------------------------------------------------------------------------
+    public boolean isCreatePoms()
+    {
+      return createPoms;
+    }
+    public void setCreatePoms( boolean createPoms )
+    {
+      this.createPoms = createPoms;
+    }
+    public boolean isCreateGroupFolders()
+    {
+      return createGroupFolders;
+    }
+    public void setCreateGroupFolders( boolean createGroupFolders )
+    {
+      this.createGroupFolders = createGroupFolders;
+    }
+    //----------------------------------------------------------------------------------
     //----------------------------------------------------------------------------------
 }

Modified: maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/main/java/org/apache/maven/mercury/repository/local/flat/LocalRepositoryWriterFlat.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/main/java/org/apache/maven/mercury/repository/local/flat/LocalRepositoryWriterFlat.java?rev=711398&r1=711397&r2=711398&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/main/java/org/apache/maven/mercury/repository/local/flat/LocalRepositoryWriterFlat.java (original)
+++ maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/main/java/org/apache/maven/mercury/repository/local/flat/LocalRepositoryWriterFlat.java Tue Nov  4 12:54:16 2008
@@ -65,10 +65,6 @@
 
   private static final ArifactWriteData LAST_ARTIFACT = new ArifactWriteData( null, null );
   
-  
-  private boolean _updateMetadata    = false;
-  private boolean _createPoms        = false;
-  private boolean _createGroupFolder = false;
   //---------------------------------------------------------------------------------------------------------------
   public LocalRepositoryWriterFlat( LocalRepository repo )
   {
@@ -216,7 +212,7 @@
       }
     }
 
-    String relGroupPath = _createGroupFolder ? artifact.getGroupId() : "";
+    String relGroupPath = ((LocalRepositoryFlat)_repo).isCreateGroupFolders() ? artifact.getGroupId() : "";
     String versionPath = _repoDir.getAbsolutePath() + (Util.isEmpty( relGroupPath ) ? "" : "/"+relGroupPath);
     
     String lockDir = null;
@@ -258,9 +254,9 @@
       if( artifact.hasClassifier() )
         return;
       
-      if( _createPoms && hasPomBlob )
+      if( ((LocalRepositoryFlat)_repo).isCreatePoms() && hasPomBlob )
       {
-        FileUtil.writeAndSign( _repoDir.getAbsolutePath()+'/'+versionPath
+        FileUtil.writeAndSign( versionPath
                               +'/'+artifact.getArtifactId()+'-'+artifact.getVersion()+".pom", pomBlob, vFacs
                               );
       }

Modified: maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/test/java/org/apache/maven/mercury/repository/local/flat/LocalRepositoryFlatTest.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/test/java/org/apache/maven/mercury/repository/local/flat/LocalRepositoryFlatTest.java?rev=711398&r1=711397&r2=711398&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/test/java/org/apache/maven/mercury/repository/local/flat/LocalRepositoryFlatTest.java (original)
+++ maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/test/java/org/apache/maven/mercury/repository/local/flat/LocalRepositoryFlatTest.java Tue Nov  4 12:54:16 2008
@@ -1,11 +1,18 @@
 package org.apache.maven.mercury.repository.local.flat;
 
 import java.io.File;
-
-import org.apache.maven.mercury.util.FileUtil;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
 
 import junit.framework.TestCase;
 
+import org.apache.maven.mercury.artifact.Artifact;
+import org.apache.maven.mercury.artifact.ArtifactBasicMetadata;
+import org.apache.maven.mercury.artifact.DefaultArtifact;
+import org.apache.maven.mercury.repository.api.RepositoryWriter;
+import org.apache.maven.mercury.util.FileUtil;
+
 /**
  *
  *
@@ -16,20 +23,164 @@
 public class LocalRepositoryFlatTest
     extends TestCase
 {
+  private static final org.slf4j.Logger _log = org.slf4j.LoggerFactory.getLogger( LocalRepositoryFlatTest.class ); 
+
   File _dir;
   LocalRepositoryFlat _repo;
   
   String repoUrl = "http://repository.sonatype.org/content/groups/public";
+  
+  Artifact a;
+  Artifact b;
 
   @Override
   protected void setUp()
       throws Exception
   {
-    _dir = File.createTempFile( "test-repo-", "-flat" );
+    _dir = File.createTempFile( "test-flat-", "-repo" );
     _dir.delete();
     _dir.mkdirs();
     
-    _repo = new LocalRepositoryFlat("testFlatRepo", _dir );
+    _repo = new LocalRepositoryFlat("testFlatRepo", _dir, false, false );
+    
+    byte [] pomBlob = "pomblob".getBytes();
+    
+    a = new DefaultArtifact( new ArtifactBasicMetadata("a:a:1.0.0") );
+    
+    File ant = File.createTempFile( "test-flat", "-repo" );
+    InputStream in = LocalRepositoryFlatTest.class.getResourceAsStream( "/ant-1.6.5.jar" );
+    FileUtil.writeRawData( ant, in );
+    a.setFile( ant );
+    a.setPomBlob( pomBlob );
+    
+    b = new DefaultArtifact( new ArtifactBasicMetadata("b:b:1.0.0") );
+    
+    File antlr = File.createTempFile( "test-flat", "-repo" );
+    in = LocalRepositoryFlatTest.class.getResourceAsStream( "/antlr-2.7.7.jar" );
+    FileUtil.writeRawData( antlr, in );
+    b.setFile( antlr );
+    b.setPomBlob( pomBlob );
+  }
+  
+  public void testWriteFlat()
+  throws Exception
+  {
+    String test = "testWriteFlat()";
+    
+    System.out.println(test+": test repo is in "+_repo.getDirectory());
+
+    List<Artifact> artifacts = new ArrayList<Artifact>();
+    artifacts.add( a );
+    artifacts.add( b );
+    
+    RepositoryWriter rw = _repo.getWriter();
+    rw.writeArtifacts( artifacts );
+    
+    File af = new File ( _dir, "a-1.0.0.jar" );
+    
+    assertTrue( af.exists() );
+    assertEquals( 1034049L, af.length() );
+    
+    File bf = new File ( _dir, "b-1.0.0.jar" );
+
+    assertTrue( bf.exists() );
+    assertEquals( 445288L, bf.length() );
+  }
+  
+  
+  public void testWriteFlatWithPom()
+  throws Exception
+  {
+    String test = "testWriteFlatWithGroup()";
+    
+    _repo.setCreatePoms( true );
+    
+    System.out.println(test+": test repo is in "+_repo.getDirectory());
+
+    List<Artifact> artifacts = new ArrayList<Artifact>();
+    artifacts.add( a );
+    artifacts.add( b );
+    
+    RepositoryWriter rw = _repo.getWriter();
+    rw.writeArtifacts( artifacts );
+    
+    File af = new File ( _dir, "a-1.0.0.jar" );
+    
+    assertTrue( af.exists() );
+    assertEquals( 1034049L, af.length() );
+    
+    File ap = new File ( _dir, "a-1.0.0.pom" );
+    assertTrue( ap.exists() );
+    
+    File bf = new File ( _dir, "b-1.0.0.jar" );
+
+    assertTrue( bf.exists() );
+    assertEquals( 445288L, bf.length() );
+    
+    File bp = new File ( _dir, "b-1.0.0.pom" );
+    assertTrue( bp.exists() );
+  }
+  
+  public void testWriteFlatWithGroup()
+  throws Exception
+  {
+    String test = "testWriteFlatWithGroup()";
+    
+    _repo.setCreateGroupFolders( true );
+    
+    System.out.println(test+": test repo is in "+_repo.getDirectory());
+
+    List<Artifact> artifacts = new ArrayList<Artifact>();
+    artifacts.add( a );
+    artifacts.add( b );
+    
+    RepositoryWriter rw = _repo.getWriter();
+    rw.writeArtifacts( artifacts );
+    
+    File af = new File ( _dir, "a/a-1.0.0.jar" );
+    
+    assertTrue( af.exists() );
+    assertEquals( 1034049L, af.length() );
+    
+    File bf = new File ( _dir, "b/b-1.0.0.jar" );
+
+    assertTrue( bf.exists() );
+    assertEquals( 445288L, bf.length() );
   }
+  
+  public void testWriteFlatWithGroupAndPom()
+  throws Exception
+  {
+    String test = "testWriteFlatWithGroup()";
+    
+    _repo.setCreateGroupFolders( true );
+    _repo.setCreatePoms( true );
+    
+    System.out.println(test+": test repo is in "+_repo.getDirectory());
+
+    List<Artifact> artifacts = new ArrayList<Artifact>();
+    artifacts.add( a );
+    artifacts.add( b );
+    
+    RepositoryWriter rw = _repo.getWriter();
+    rw.writeArtifacts( artifacts );
+    
+    File af = new File ( _dir, "a/a-1.0.0.jar" );
+    
+    assertTrue( af.exists() );
+    assertEquals( 1034049L, af.length() );
+    
+    File ap = new File ( _dir, "a/a-1.0.0.pom" );
+    assertTrue( ap.exists() );
+    
+    File bf = new File ( _dir, "b/b-1.0.0.jar" );
+
+    assertTrue( bf.exists() );
+    assertEquals( 445288L, bf.length() );
+    
+    File bp = new File ( _dir, "b/b-1.0.0.pom" );
+    assertTrue( bp.exists() );
+  }
+  
 
 }

Added: maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/test/resources/ant-1.6.5.jar
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/test/resources/ant-1.6.5.jar?rev=711398&view=auto
==============================================================================
Binary file - no diff available.

Propchange: maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/test/resources/ant-1.6.5.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/test/resources/antlr-2.7.7.jar
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/test/resources/antlr-2.7.7.jar?rev=711398&view=auto
==============================================================================
Binary file - no diff available.

Propchange: maven/mercury/trunk/mercury-repo/mercury-repo-local-flat/src/test/resources/antlr-2.7.7.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: maven/mercury/trunk/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryM2.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryM2.java?rev=711398&r1=711397&r2=711398&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryM2.java (original)
+++ maven/mercury/trunk/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryM2.java Tue Nov  4 12:54:16 2008
@@ -65,10 +65,7 @@
     //----------------------------------------------------------------------------------
     public RepositoryReader getReader() 
     {
-      if( reader == null )
-        reader = new LocalRepositoryReaderM2( this, getDependencyProcessor() );
-
-      return reader;
+      return new LocalRepositoryReaderM2( this, getDependencyProcessor() );
     }
     //----------------------------------------------------------------------------------
     // TODO oleg: what happens in multi-threaded execution?? 
@@ -80,10 +77,7 @@
     // TODO oleg: what happens in multi-threaded execution?? 
     public RepositoryWriter getWriter()
     {
-      if( writer == null )
-        writer = new LocalRepositoryWriterM2(this);
-      
-      return writer;
+      return new LocalRepositoryWriterM2(this);
     }
     //----------------------------------------------------------------------------------
     public RepositoryWriter getWriter( String protocol )
@@ -97,9 +91,14 @@
       return true;
     }
     //----------------------------------------------------------------------------------
-    public boolean isReadOnly()
+    public boolean isReadable()
     {
-      return false;
+      return true;
+    }
+    //----------------------------------------------------------------------------------
+    public boolean isWriteable()
+    {
+      return true;
     }
     //----------------------------------------------------------------------------------
     public String getType()

Modified: maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryM2.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryM2.java?rev=711398&r1=711397&r2=711398&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryM2.java (original)
+++ maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryM2.java Tue Nov  4 12:54:16 2008
@@ -71,9 +71,14 @@
      return false;
     }
     //----------------------------------------------------------------------------------
-    public boolean isReadOnly()
+    public boolean isReadable()
     {
-      return false;
+      return true;
+    }
+    //----------------------------------------------------------------------------------
+    public boolean isWriteable()
+    {
+      return true;
     }
     //----------------------------------------------------------------------------------
     public String getType()
@@ -81,24 +86,14 @@
       return DEFAULT_REPOSITORY_TYPE;
     }
     //----------------------------------------------------------------------------------
-
     public RepositoryUpdatePolicy getUpdatePolicy()
     {
       return _updatePolicy;
     }
-
+    //----------------------------------------------------------------------------------
     public void setUpdatePolicy( RepositoryUpdatePolicy updatePolicy )
     {
       this._updatePolicy = updatePolicy;
     }
-    
     //----------------------------------------------------------------------------------
-    /* (non-Javadoc)
-     * @see org.apache.maven.mercury.repository.api.RemoteRepository#addLocalRepository(org.apache.maven.mercury.repository.api.LocalRepository)
-     */
-    public void addLocalRepository( LocalRepository localRepo )
-    {
-      // TODO Auto-generated method stub
-      
-    }
 }

Modified: maven/mercury/trunk/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/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java?rev=711398&r1=711397&r2=711398&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java (original)
+++ maven/mercury/trunk/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java Tue Nov  4 12:54:16 2008
@@ -329,7 +329,7 @@
   private File findLocalRoot( Quality vq )
   {
     for( LocalRepository lr : _localRepos )
-      if( !lr.isReadOnly() && lr.getVersionRangeQualityRange().isAcceptedQuality( vq ) )
+      if( !lr.isReadable() && lr.getVersionRangeQualityRange().isAcceptedQuality( vq ) )
         return lr.getDirectory();
 
     return _defaultRoot;

Modified: maven/mercury/trunk/mercury-repo/mercury-repo-virtual/src/main/java/org/apache/maven/mercury/repository/virtual/VirtualRepositoryReader.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-virtual/src/main/java/org/apache/maven/mercury/repository/virtual/VirtualRepositoryReader.java?rev=711398&r1=711397&r2=711398&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-repo/mercury-repo-virtual/src/main/java/org/apache/maven/mercury/repository/virtual/VirtualRepositoryReader.java (original)
+++ maven/mercury/trunk/mercury-repo/mercury-repo-virtual/src/main/java/org/apache/maven/mercury/repository/virtual/VirtualRepositoryReader.java Tue Nov  4 12:54:16 2008
@@ -137,7 +137,7 @@
     int i = 0;
     for( Repository r : _repositories )
     {
-      if( ! r.isLocal() )
+      if( ! r.isLocal() || ! r.isReadable() )
         continue;
       
       RepositoryReader rr = r.getReader();
@@ -146,7 +146,7 @@
       
       _repositoryReaders[ i++ ] = rr;
       
-      if( ! r.isReadOnly() )
+      if( ! r.isReadable() )
       {
         _localRepository = (LocalRepository)r.getReader().getRepository();
         _localRepositoryWriter = _localRepository.getWriter();
@@ -168,7 +168,7 @@
     // remote ones
     for( Repository r : _repositories )
     {
-      if( r.isLocal() )
+      if( r.isLocal() || ! r.isReadable() )
         continue;
       
       RepositoryReader rr = r.getReader();

Modified: maven/mercury/trunk/mercury-repo/pom.xml
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/pom.xml?rev=711398&r1=711397&r2=711398&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-repo/pom.xml (original)
+++ maven/mercury/trunk/mercury-repo/pom.xml Tue Nov  4 12:54:16 2008
@@ -13,6 +13,7 @@
   <modules>
     <module>mercury-repo-api</module>
     <module>mercury-repo-local-m2</module>
+    <module>mercury-repo-local-flat</module>
     <module>mercury-repo-remote-m2</module>
     <module>mercury-repo-cache-fs</module>
     <module>mercury-repo-virtual</module>