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/30 01:08:31 UTC

svn commit: r680873 - in /maven/sandbox/trunk/mercury: ./ src/main/java/org/apache/maven/mercury/ src/main/java/org/apache/maven/mercury/metadata/ src/main/java/org/apache/maven/mercury/repository/ src/main/java/org/apache/maven/mercury/repository/api/...

Author: ogusakov
Date: Tue Jul 29 16:08:30 2008
New Revision: 680873

URL: http://svn.apache.org/viewvc?rev=680873&view=rev
Log:
further preparations for project split. Implemented RemoteRepositoryReaderM2 with jetty client transport. No tests yet - waiting for jetty ..

Added:
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/ClasspathContainer.java   (contents, props changed)
      - copied, changed from r680513, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/transform/ClasspathContainer.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepository.java   (contents, props changed)
      - copied, changed from r680571, 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/api/LocalRepository.java   (contents, props changed)
      - copied, changed from r680571, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/LocalRepository.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/MetadataProcessingException.java   (contents, props changed)
      - copied, changed from r680571, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/MetadataProcessingException.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/MetadataProcessor.java   (contents, props changed)
      - copied, changed from r680571, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/MetadataProcessor.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/MetadataReader.java   (contents, props changed)
      - copied, changed from r680571, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/MetadataReader.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RemoteRepository.java   (contents, props changed)
      - copied, changed from r680571, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/RemoteRepository.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/Repository.java   (contents, props changed)
      - copied, changed from r680571, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/Repository.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryM2.java   (contents, props changed)
      - copied, changed from r680571, 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/remote/m2/RemoteRepositoryM2.java   (contents, props changed)
      - copied, changed from r680571, 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/repository/remote/m2/RemoteRepositoryReaderM2.java   (contents, props changed)
      - copied, changed from r680782, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java
Removed:
    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/repository/LocalRepository.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/MetadataProcessingException.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/MetadataProcessor.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/MetadataReader.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/RemoteRepository.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/Repository.java
Modified:
    maven/sandbox/trunk/mercury/pom.xml
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/Artifact.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/ArtifactMetadata.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/MetadataTree.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryCallback.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/VirtualRepositoryReader.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/transport/SHA1Verifier.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/transport/api/Binding.java
    maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/transport/api/TransportTransaction.java
    maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/AbstractSimpleTreeTest.java
    maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MetadataTreeTest.java
    maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java
    maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/repository/MetadataProcessorMock.java

Modified: maven/sandbox/trunk/mercury/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/pom.xml?rev=680873&r1=680872&r2=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/pom.xml (original)
+++ maven/sandbox/trunk/mercury/pom.xml Tue Jul 29 16:08:30 2008
@@ -150,5 +150,10 @@
     	<artifactId>slf4j-simple</artifactId>
     	<version>1.5.2</version>
     </dependency>
+    <dependency>
+    	<groupId>org.codehaus.plexus</groupId>
+    	<artifactId>plexus-i18n</artifactId>
+    	<version>1.0-beta-10-SNAPSHOT</version>
+    </dependency>
   </dependencies>
 </project>

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=680873&r1=680872&r2=680873&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 Tue Jul 29 16:08:30 2008
@@ -16,11 +16,8 @@
  */
 
 import java.io.File;
-import java.util.List;
 import java.util.regex.Pattern;
 
-import org.apache.maven.mercury.repository.Repository;
-
 /*
  * Description of an artifact.
  * 

Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/ArtifactMetadata.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/ArtifactMetadata.java?rev=680873&r1=680872&r2=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/ArtifactMetadata.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/ArtifactMetadata.java Tue Jul 29 16:08:30 2008
@@ -1,6 +1,5 @@
 package org.apache.maven.mercury;
 
-import java.util.Collection;
 import java.util.List;
 
 

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=680873&r1=680872&r2=680873&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 Tue Jul 29 16:08:30 2008
@@ -16,11 +16,8 @@
  */
 
 import java.io.File;
-import java.util.List;
-import java.util.regex.Matcher;
 
-import org.apache.maven.mercury.repository.Repository;
-import org.codehaus.plexus.util.StringUtils;
+import org.apache.maven.mercury.repository.api.Repository;
 
 /*
  * @author Jason van Zyl

Copied: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/ClasspathContainer.java (from r680513, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/transform/ClasspathContainer.java)
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/ClasspathContainer.java?p2=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/ClasspathContainer.java&p1=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/transform/ClasspathContainer.java&r1=680513&r2=680873&rev=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/transform/ClasspathContainer.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/ClasspathContainer.java Tue Jul 29 16:08:30 2008
@@ -1,4 +1,4 @@
-package org.apache.maven.mercury.metadata.transform;
+package org.apache.maven.mercury.metadata;
 
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -6,7 +6,6 @@
 
 import org.apache.maven.mercury.ArtifactMetadata;
 import org.apache.maven.mercury.ArtifactScopeEnum;
-import org.apache.maven.mercury.metadata.MetadataTreeNode;
 
 /*
  * classpath container that is aware of the classpath scope

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/ClasspathContainer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/ClasspathContainer.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/metadata/ClasspathContainer.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

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=680873&r1=680872&r2=680873&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 Tue Jul 29 16:08:30 2008
@@ -11,9 +11,7 @@
 import org.apache.maven.mercury.ArtifactScopeEnum;
 import org.apache.maven.mercury.metadata.sat.DefaultSatSolver;
 import org.apache.maven.mercury.metadata.sat.SatException;
-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.api.Repository;
 import org.apache.maven.mercury.repository.api.RepositoryException;
 import org.apache.maven.mercury.repository.api.VirtualRepositoryReader;
 

Copied: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepository.java (from r680571, 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/api/AbstractRepository.java?p2=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepository.java&p1=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/AbstractRepository.java&r1=680571&r2=680873&rev=680873&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/api/AbstractRepository.java Tue Jul 29 16:08:30 2008
@@ -1,4 +1,11 @@
-package org.apache.maven.mercury.repository;
+package org.apache.maven.mercury.repository.api;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.codehaus.plexus.i18n.DefaultLanguage;
+import org.codehaus.plexus.i18n.Language;
 
 
 /*
@@ -17,56 +24,155 @@
  */
 
 /**
- * parent of all repositories
+ * parent of all repositories and also a helper class for registration of readers/writers 
+ * 
+ * 
  */
 public abstract class AbstractRepository
 implements Repository
 {
-  public static final String DEFAULT_READ_PROTOCOL  = "http";
-  public static final String DEFAULT_WRITE_PROTOCOL = "http";
+  private static final Language lang = new DefaultLanguage( AbstractRepository.class );
+  //---------------------------------------------------------------------------
+  public static final String DEFAULT_REMOTE_READ_PROTOCOL  = "http";
+  public static final String DEFAULT_REMOTE_WRITE_PROTOCOL = "http";
 
   public static final String DEFAULT_LOCAL_READ_PROTOCOL  = "file";
   public static final String DEFAULT_LOCAL_WRITE_PROTOCOL = "file";
 
+  public static final String DEFAULT_REPOSITORY_TYPE = "m2";
+
   private String             id;
 
-  private String             defaultReadProtocol    = DEFAULT_READ_PROTOCOL;
+  private String             defaultReadProtocol    = DEFAULT_REMOTE_READ_PROTOCOL;
 
-  private String             defaultWriteProtocol   = DEFAULT_WRITE_PROTOCOL;
+  private String             defaultWriteProtocol   = DEFAULT_REMOTE_WRITE_PROTOCOL;
+  //---------------------------------------------------------------------------
+  private static Map< String, RepositoryReaderFactory > readerRegistry  = Collections.synchronizedMap( new HashMap<String, RepositoryReaderFactory>(4) );
+  private static Map< String, RepositoryWriterFactory > writerRegistry  = Collections.synchronizedMap( new HashMap<String, RepositoryWriterFactory>(4) );
+  //---------------------------------------------------------------------------
+  protected String             type = DEFAULT_REPOSITORY_TYPE;
   
   protected MetadataProcessor  processor;
-
-  public AbstractRepository( String id, MetadataProcessor processor )
+  protected RepositoryReader   reader;
+  protected RepositoryWriter   writer;
+  //---------------------------------------------------------------------------
+  public AbstractRepository( String id, String type, MetadataProcessor processor )
   {
     this.id = id;
     this.processor = processor;
   }
-
+  //---------------------------------------------------------------------------
   public String getId()
   {
     return id;
   }
-
+  //---------------------------------------------------------------------------
+  public MetadataProcessor getMetadataProcessor()
+  {
+    return processor;
+  }
+  //---------------------------------------------------------------------------
+  public void setMetadataProcessor( MetadataProcessor processor )
+  {
+    this.processor = processor;
+  }
+  //---------------------------------------------------------------------------
   public String getDefaultReadProtocol()
   {
     return defaultReadProtocol;
   }
-
+  //---------------------------------------------------------------------------
   public void setDefaultReadProtocol(
       String defaultReadProtocol )
   {
     this.defaultReadProtocol = defaultReadProtocol;
   }
-
+  //---------------------------------------------------------------------------
   public String getDefaultWriteProtocol()
   {
     return defaultWriteProtocol;
   }
-
-  public void setDefaultWriteProtocol(
-      String defaultWriteProtocol )
+  //---------------------------------------------------------------------------
+  public void setDefaultWriteProtocol( String defaultWriteProtocol )
   {
     this.defaultWriteProtocol = defaultWriteProtocol;
   }
-
+  //---------------------------------------------------------------------------
+  public static void register( String type, RepositoryReaderFactory readerFactory )
+  throws IllegalArgumentException
+  {
+    if( type == null || type.length() < 1 )
+      throw new IllegalArgumentException( lang.getMessage( "null.reader.type" ) );
+    
+    if( readerFactory == null )
+      throw new IllegalArgumentException( lang.getMessage( "null.reader.factory" ) );
+    
+    readerRegistry.put(  type, readerFactory );
+  }
+  //---------------------------------------------------------------------------
+  public static void register( String type, RepositoryWriterFactory writerFactory )
+  throws IllegalArgumentException
+  {
+    if( type == null || type.length() < 1 )
+      throw new IllegalArgumentException( lang.getMessage( "null.writer.type" ) );
+    
+    if( writerFactory == null )
+      throw new IllegalArgumentException( lang.getMessage( "null.writer.factory" ) );
+    
+    writerRegistry.put(  type, writerFactory );
+  }
+  //---------------------------------------------------------------------------
+  public static void upregisterReader( String type )
+  throws IllegalArgumentException
+  {
+    if( type == null || type.length() < 1 )
+      throw new IllegalArgumentException( lang.getMessage( "null.reader.type" ) );
+    
+    readerRegistry.remove( type );
+  }
+  //---------------------------------------------------------------------------
+  public static void upregisterWriter( String type )
+  throws IllegalArgumentException
+  {
+    if( type == null || type.length() < 1 )
+      throw new IllegalArgumentException( lang.getMessage( "null.writer.type" ) );
+    
+    writerRegistry.remove( type );
+  }
+  //---------------------------------------------------------------------------
+  public static RepositoryReader getReader( String type, Repository repo, MetadataProcessor mdProcessor )
+  throws IllegalArgumentException, RepositoryException
+  {
+    if( type == null || type.length() < 1 )
+      throw new IllegalArgumentException( lang.getMessage( "null.reader.type" ) );
+    
+    if( repo == null )
+      throw new IllegalArgumentException( lang.getMessage( "null.reader.repo" ) );
+    
+    RepositoryReaderFactory rf = readerRegistry.get( type );
+    
+    if( rf == null )
+      throw new RepositoryException( lang.getMessage( "null.reader.factory.found" ) );
+    
+    return rf.getReader( repo, mdProcessor );
+  }
+  //---------------------------------------------------------------------------
+  public static RepositoryWriter getWriter( String type, Repository repo, MetadataProcessor mdProcessor )
+  throws IllegalArgumentException, RepositoryException
+  {
+    if( type == null || type.length() < 1 )
+      throw new IllegalArgumentException( lang.getMessage( "null.writer.type" ) );
+    
+    if( repo == null )
+      throw new IllegalArgumentException( lang.getMessage( "null.writer.repo" ) );
+    
+    RepositoryWriterFactory wf = writerRegistry.get( type );
+    
+    if( wf == null )
+      throw new RepositoryException( lang.getMessage( "null.writer.factory.found" ) );
+    
+    return wf.getWriter( repo, mdProcessor );
+  }
+  //---------------------------------------------------------------------------
+  //---------------------------------------------------------------------------
 }

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepository.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepository.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepository.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Copied: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/LocalRepository.java (from r680571, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/LocalRepository.java)
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/LocalRepository.java?p2=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/LocalRepository.java&p1=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/LocalRepository.java&r1=680571&r2=680873&rev=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/LocalRepository.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/LocalRepository.java Tue Jul 29 16:08:30 2008
@@ -1,4 +1,4 @@
-package org.apache.maven.mercury.repository;
+package org.apache.maven.mercury.repository.api;
 
 import java.io.File;
 

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/LocalRepository.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/LocalRepository.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/LocalRepository.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Copied: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/MetadataProcessingException.java (from r680571, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/MetadataProcessingException.java)
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/MetadataProcessingException.java?p2=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/MetadataProcessingException.java&p1=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/MetadataProcessingException.java&r1=680571&r2=680873&rev=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/MetadataProcessingException.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/MetadataProcessingException.java Tue Jul 29 16:08:30 2008
@@ -1,4 +1,4 @@
-package org.apache.maven.mercury.repository;
+package org.apache.maven.mercury.repository.api;
 
 /**
  *

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/MetadataProcessingException.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Copied: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/MetadataProcessor.java (from r680571, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/MetadataProcessor.java)
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/MetadataProcessor.java?p2=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/MetadataProcessor.java&p1=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/MetadataProcessor.java&r1=680571&r2=680873&rev=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/MetadataProcessor.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/MetadataProcessor.java Tue Jul 29 16:08:30 2008
@@ -1,4 +1,4 @@
-package org.apache.maven.mercury.repository;
+package org.apache.maven.mercury.repository.api;
 
 import java.util.List;
 

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/MetadataProcessor.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Copied: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/MetadataReader.java (from r680571, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/MetadataReader.java)
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/MetadataReader.java?p2=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/MetadataReader.java&p1=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/MetadataReader.java&r1=680571&r2=680873&rev=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/MetadataReader.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/MetadataReader.java Tue Jul 29 16:08:30 2008
@@ -1,9 +1,35 @@
-package org.apache.maven.mercury.repository;
+package org.apache.maven.mercury.repository.api;
 
 import org.apache.maven.mercury.ArtifactBasicMetadata;
 
+/**
+ * This interface implementation is supplied to MetadataProcessor to simplify it's access to remote repositories
+ *
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
 public interface MetadataReader
 {
-  public byte [] readMetadata( ArtifactBasicMetadata md )
+  /**
+   * read content pointed by bmd. It will return POM bytes regardless of actual bmd type
+   * 
+   * @param bmd coordinates
+   * @param type - replaces the getType() from bmd if not null
+   * @return
+   * @throws MetadataProcessingException
+   */
+  public byte [] readRawData( ArtifactBasicMetadata bmd, String type )
+  throws MetadataProcessingException;
+
+  /**
+   * read metadata for the artifact, pointed by bmd. It will return POM bytes regardless of actual bmd type
+   * 
+   * @param bmd
+   * @return
+   * @throws MetadataProcessingException
+   */
+  public byte [] readMetadata( ArtifactBasicMetadata bmd )
   throws MetadataProcessingException;
 }

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/MetadataReader.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Copied: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RemoteRepository.java (from r680571, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/RemoteRepository.java)
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RemoteRepository.java?p2=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RemoteRepository.java&p1=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/RemoteRepository.java&r1=680571&r2=680873&rev=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/RemoteRepository.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RemoteRepository.java Tue Jul 29 16:08:30 2008
@@ -1,4 +1,6 @@
-package org.apache.maven.mercury.repository;
+package org.apache.maven.mercury.repository.api;
+
+import org.apache.maven.mercury.transport.api.Server;
 
 
 /*
@@ -23,7 +25,7 @@
 /**
  */
 public interface RemoteRepository
-    extends Repository
+extends Repository
 {
-    String getUrl();
+    Server getServer();
 }

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RemoteRepository.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RemoteRepository.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RemoteRepository.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Copied: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/Repository.java (from r680571, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/Repository.java)
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/Repository.java?p2=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/Repository.java&p1=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/Repository.java&r1=680571&r2=680873&rev=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/Repository.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/Repository.java Tue Jul 29 16:08:30 2008
@@ -1,8 +1,5 @@
-package org.apache.maven.mercury.repository;
+package org.apache.maven.mercury.repository.api;
 
-import org.apache.maven.mercury.repository.api.NonExistentProtocolException;
-import org.apache.maven.mercury.repository.api.RepositoryReader;
-import org.apache.maven.mercury.repository.api.RepositoryWriter;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -31,6 +28,12 @@
   
 
   /**
+   * repository type - m2, nexus, ivy, p2 - to name a few. It defines the RepositoryReader/Writer 
+   * that will be searched for in the registry.
+   */
+  public String getType();
+
+  /**
    * Indicates whether this is local Repository. This flag defines the necessity to download
    * the artifact, if it was cleared by the conflict resolver but not read from a localRepo.
    */

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/Repository.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/Repository.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/Repository.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryCallback.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryCallback.java?rev=680873&r1=680872&r2=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryCallback.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryCallback.java Tue Jul 29 16:08:30 2008
@@ -1,6 +1,5 @@
 package org.apache.maven.mercury.repository.api;
 
-import java.util.List;
 
 /**
  * This is a generic repository event callback. Used by all repository operations

Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java?rev=680873&r1=680872&r2=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java Tue Jul 29 16:08:30 2008
@@ -3,12 +3,9 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.maven.mercury.Artifact;
 import org.apache.maven.mercury.ArtifactBasicMetadata;
 import org.apache.maven.mercury.ArtifactMetadata;
 import org.apache.maven.mercury.DefaultArtifact;
-import org.apache.maven.mercury.repository.MetadataProcessor;
-import org.apache.maven.mercury.repository.Repository;
 
 /**
  * Repository reader API to be implemented by any repo implementation that wishes 
@@ -20,6 +17,7 @@
  *
  */
 public interface RepositoryReader
+extends RepositoryOperator, MetadataReader
 {
   /**
    * given basic coordinates query - instantiate all available matches as ArtifactBasicMetadata objects. 
@@ -68,4 +66,5 @@
    * Need if to trick circular dependency on maven-project, projectBuilder hides behind this processor
    */
   public void setMetadataProcessor( MetadataProcessor mdProcessor );
+  public MetadataProcessor getMetadataProcessor();
 }

Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java?rev=680873&r1=680872&r2=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java Tue Jul 29 16:08:30 2008
@@ -14,6 +14,7 @@
  *
  */
 public interface RepositoryWriter
+extends RepositoryOperator
 {
   /**
    * write (upload) given artifact to the repository

Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/VirtualRepositoryReader.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/VirtualRepositoryReader.java?rev=680873&r1=680872&r2=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/VirtualRepositoryReader.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/api/VirtualRepositoryReader.java Tue Jul 29 16:08:30 2008
@@ -1,17 +1,12 @@
 package org.apache.maven.mercury.repository.api;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import org.apache.maven.mercury.ArtifactBasicMetadata;
 import org.apache.maven.mercury.ArtifactMetadata;
-import org.apache.maven.mercury.metadata.MetadataTreeException;
-import org.apache.maven.mercury.repository.LocalRepository;
-import org.apache.maven.mercury.repository.RemoteRepository;
-import org.apache.maven.mercury.repository.Repository;
 
 /**
  * this helper class hides the necessity to talk to localRepo and a bunch of remoteRepos.
@@ -84,13 +79,24 @@
     
     _repositoryReaders = new RepositoryReader[ repositoryCount ];
     
+    // move local repo's upfront - they are faster!
     int i = 0;
     for( Repository r : _repositories )
     {
+      if( ! r.isLocal() )
+        continue;
+      
       _repositoryReaders[ i++ ] = r.getReader();
-      if( r.isLocal() )
+      if( ! r.isReadOnly() )
         _localRepository = (LocalRepository)r.getReader().getRepository();
     }
+    for( Repository r : _repositories )
+    {
+      if( r.isLocal() )
+        continue;
+
+      _repositoryReaders[ i++ ] = r.getReader();
+    }
     _initialized = true;
   }
   //----------------------------------------------------------------------------------------------------------------------------

Copied: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryM2.java (from r680571, 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/local/m2/LocalRepositoryM2.java?p2=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryM2.java&p1=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultLocalRepository.java&r1=680571&r2=680873&rev=680873&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/local/m2/LocalRepositoryM2.java Tue Jul 29 16:08:30 2008
@@ -1,30 +1,37 @@
-package org.apache.maven.mercury.repository;
+package org.apache.maven.mercury.repository.local.m2;
 
 import java.io.File;
 
+import org.apache.maven.mercury.repository.api.AbstractRepository;
+import org.apache.maven.mercury.repository.api.LocalRepository;
+import org.apache.maven.mercury.repository.api.MetadataProcessor;
 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.repository.local.m2.LocalRepositoryReaderM2;
 
-public class DefaultLocalRepository
+public class LocalRepositoryM2
 extends AbstractRepository
 implements LocalRepository
 {
     private File directory;
-    private RepositoryReader reader;
-    
-    public DefaultLocalRepository( String id, File directory, MetadataProcessor processor )
+    //----------------------------------------------------------------------------------
+    public LocalRepositoryM2( String id, File directory, MetadataProcessor processor )
     {
-        super( id, processor );
+        super( id, DEFAULT_REPOSITORY_TYPE, processor );
         this.directory = directory;
     }
-
+    //----------------------------------------------------------------------------------
+    public LocalRepositoryM2( String id, File directory, MetadataProcessor processor, String type )
+    {
+        super( id, type, processor );
+        this.directory = directory;
+    }
+    //----------------------------------------------------------------------------------
     public File getDirectory()
     {
         return directory;
     }
-
+    //----------------------------------------------------------------------------------
     public RepositoryReader getReader()
     {
       if( reader == null )
@@ -32,31 +39,38 @@
 
       return reader;
     }
-
+    //----------------------------------------------------------------------------------
     public RepositoryReader getReader( String protocol )
     {
        return getReader();
     }
-
+    //----------------------------------------------------------------------------------
     public RepositoryWriter getWriter()
     {
       // TODO Auto-generated method stub
       return null;
     }
-
+    //----------------------------------------------------------------------------------
     public RepositoryWriter getWriter( String protocol )
         throws NonExistentProtocolException
     {
       return null;
     }
-
+    //----------------------------------------------------------------------------------
     public boolean isLocal()
     {
       return true;
     }
-
+    //----------------------------------------------------------------------------------
     public boolean isReadOnly()
     {
       return false;
     }
+    //----------------------------------------------------------------------------------
+    public String getType()
+    {
+      return DEFAULT_REPOSITORY_TYPE;
+    }
+    //----------------------------------------------------------------------------------
+    //----------------------------------------------------------------------------------
 }

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryM2.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryM2.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryM2.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java?rev=680873&r1=680872&r2=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java Tue Jul 29 16:08:30 2008
@@ -12,25 +12,27 @@
 import org.apache.maven.mercury.DefaultArtifact;
 import org.apache.maven.mercury.metadata.version.VersionException;
 import org.apache.maven.mercury.metadata.version.VersionRange;
-import org.apache.maven.mercury.repository.LocalRepository;
-import org.apache.maven.mercury.repository.MetadataProcessingException;
-import org.apache.maven.mercury.repository.MetadataProcessor;
-import org.apache.maven.mercury.repository.MetadataReader;
-import org.apache.maven.mercury.repository.Repository;
+import org.apache.maven.mercury.repository.api.AbstracRepositoryReader;
+import org.apache.maven.mercury.repository.api.AbstractRepository;
+import org.apache.maven.mercury.repository.api.LocalRepository;
+import org.apache.maven.mercury.repository.api.MetadataProcessingException;
+import org.apache.maven.mercury.repository.api.MetadataProcessor;
+import org.apache.maven.mercury.repository.api.MetadataReader;
+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.RepositoryReader;
-import org.mortbay.log.Log;
 
 public class LocalRepositoryReaderM2
+extends AbstracRepositoryReader
 implements RepositoryReader, MetadataReader
 {
   private static final org.slf4j.Logger _log = org.slf4j.LoggerFactory.getLogger( LocalRepositoryReaderM2.class ); 
   //---------------------------------------------------------------------------------------------------------------
+  private static final String [] _protocols = new String [] { "file" };
+  
   LocalRepository _repo;
   File _repoDir;
-  
-  MetadataProcessor _mdProcessor;
   //---------------------------------------------------------------------------------------------------------------
   public LocalRepositoryReaderM2( LocalRepository repo, MetadataProcessor mdProcessor )
   {
@@ -172,17 +174,18 @@
     return res;
   }
   //---------------------------------------------------------------------------------------------------------------
-  public void setMetadataProcessor( MetadataProcessor mdProcessor )
+  public byte[] readMetadata( ArtifactBasicMetadata bmd )
+  throws MetadataProcessingException
   {
-    this._mdProcessor = mdProcessor;
+    return readRawData( bmd, "pom" );
   }
   //---------------------------------------------------------------------------------------------------------------
-  public byte[] readMetadata( ArtifactBasicMetadata bmd )
+  public byte[] readRawData( ArtifactBasicMetadata bmd, String type )
   throws MetadataProcessingException
   {
     String bmdPath = bmd.getGroupId().replace( '.', '/' )+"/"+bmd.getArtifactId()+"/"+bmd.getVersion();
     
-    File pomFile = new File( _repoDir, bmdPath+"/"+bmd.getBaseName()+".pom" );
+    File pomFile = new File( _repoDir, bmdPath+"/"+bmd.getBaseName()+'.' + (type == null ? bmd.getType() : type ) );
     
     if( ! pomFile.exists() )
       return null;
@@ -207,5 +210,18 @@
     }
   }
   //---------------------------------------------------------------------------------------------------------------
+  public boolean canHandle( String protocol )
+  {
+    return AbstractRepository.DEFAULT_LOCAL_READ_PROTOCOL.equals( protocol );
+  }
+  //---------------------------------------------------------------------------------------------------------------
+  public String[] getProtocols()
+  {
+    return _protocols;
+  }
+  //---------------------------------------------------------------------------------------------------------------
+  public void close()
+  {
+  }
   //---------------------------------------------------------------------------------------------------------------
 }

Copied: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryM2.java (from r680571, 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/remote/m2/RemoteRepositoryM2.java?p2=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryM2.java&p1=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/DefaultRemoteRepository.java&r1=680571&r2=680873&rev=680873&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/remote/m2/RemoteRepositoryM2.java Tue Jul 29 16:08:30 2008
@@ -1,57 +1,69 @@
-package org.apache.maven.mercury.repository;
+package org.apache.maven.mercury.repository.remote.m2;
 
+import org.apache.maven.mercury.repository.api.AbstractRepository;
+import org.apache.maven.mercury.repository.api.MetadataProcessor;
 import org.apache.maven.mercury.repository.api.NonExistentProtocolException;
+import org.apache.maven.mercury.repository.api.RemoteRepository;
 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 DefaultRemoteRepository
+
+public class RemoteRepositoryM2
 extends AbstractRepository
 implements RemoteRepository
 {
-    private String url;
-    
-    public DefaultRemoteRepository( String id, String url, MetadataProcessor processor  )
+    private Server _server;
+    //----------------------------------------------------------------------------------
+    public RemoteRepositoryM2( String id, Server server, MetadataProcessor processor  )
     {
-        super( id, processor );
-        this.url = url;
+        super( id, DEFAULT_REPOSITORY_TYPE, processor );
+        this._server = server;
     }
-
-    public String getUrl()
+    //----------------------------------------------------------------------------------
+    public Server getServer()
     {
-        return url;
+        return _server;
     }
-
+    //----------------------------------------------------------------------------------
     public RepositoryReader getReader()
     {
       return null;
     }
-
+    //----------------------------------------------------------------------------------
     public RepositoryReader getReader( String protocol )
     {
       // TODO Auto-generated method stub
       return null;
     }
-
+    //----------------------------------------------------------------------------------
     public RepositoryWriter getWriter()
     {
       // TODO Auto-generated method stub
       return null;
     }
-
+    //----------------------------------------------------------------------------------
     public RepositoryWriter getWriter( String protocol )
         throws NonExistentProtocolException
     {
       // TODO Auto-generated method stub
       return null;
     }
-
+    //----------------------------------------------------------------------------------
     public boolean isLocal()
     {
      return false;
     }
-
+    //----------------------------------------------------------------------------------
     public boolean isReadOnly()
     {
       return false;
     }
+    //----------------------------------------------------------------------------------
+    public String getType()
+    {
+      return DEFAULT_REPOSITORY_TYPE;
+    }
+    //----------------------------------------------------------------------------------
+    //----------------------------------------------------------------------------------
 }

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryM2.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryM2.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryM2.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Copied: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java (from r680782, maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java)
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java?p2=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java&p1=maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java&r1=680782&r2=680873&rev=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java Tue Jul 29 16:08:30 2008
@@ -1,5 +1,6 @@
 package org.apache.maven.mercury.repository.remote.m2;
 
+import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -12,44 +13,81 @@
 import org.apache.maven.mercury.DefaultArtifact;
 import org.apache.maven.mercury.metadata.version.VersionException;
 import org.apache.maven.mercury.metadata.version.VersionRange;
-import org.apache.maven.mercury.repository.LocalRepository;
-import org.apache.maven.mercury.repository.MetadataProcessingException;
-import org.apache.maven.mercury.repository.MetadataProcessor;
-import org.apache.maven.mercury.repository.MetadataReader;
-import org.apache.maven.mercury.repository.Repository;
+import org.apache.maven.mercury.repository.api.AbstracRepositoryReader;
+import org.apache.maven.mercury.repository.api.AbstractRepository;
+import org.apache.maven.mercury.repository.api.MetadataProcessingException;
+import org.apache.maven.mercury.repository.api.MetadataProcessor;
+import org.apache.maven.mercury.repository.api.MetadataReader;
+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.RepositoryReader;
-import org.mortbay.log.Log;
-
+import org.apache.maven.mercury.repository.metadata.Metadata;
+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.MercuryException;
+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.codehaus.plexus.i18n.DefaultLanguage;
+import org.codehaus.plexus.i18n.Language;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+/**
+ * implementation of M2 remote repository reader. Actual Transport used comes from RemoteRepository Server' URL
+ * 
+ *  Current implementation does not do the check and uses jetty-client directly. 
+ *  TODO - re-implements after jetty-client implements Transport 
+ *
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
 public class RemoteRepositoryReaderM2
+extends AbstracRepositoryReader
 implements RepositoryReader, MetadataReader
 {
   private static final org.slf4j.Logger _log = org.slf4j.LoggerFactory.getLogger( RemoteRepositoryReaderM2.class ); 
-  //---------------------------------------------------------------------------------------------------------------
-  LocalRepository _repo;
-  File _repoDir;
+  private static final Language _lang = new DefaultLanguage( RemoteRepositoryReaderM2.class );
+  // TODO - replace with known Transport's protocols. Should be similar to RepositoryReader/Writer registration
+  private static final String [] _protocols = new String [] { "http", "https" };
   
-  MetadataProcessor _mdProcessor;
+  // TODO replace with Transport
+  private DefaultRetriever _transport;
   //---------------------------------------------------------------------------------------------------------------
-  public RemoteRepositoryReaderM2( LocalRepository repo, MetadataProcessor mdProcessor )
+  RemoteRepository _repo;
+  //---------------------------------------------------------------------------------------------------------------
+  public RemoteRepositoryReaderM2( RemoteRepository repo, MetadataProcessor mdProcessor )
+  throws RepositoryException
   {
+    
     if( repo == null )
-      throw new IllegalArgumentException("localRepo cannot be null");
+      throw new IllegalArgumentException( _lang.getMessage( "bad.repository.null") );
     
-    _repoDir = repo.getDirectory();
-    if( _repoDir == null )
-      throw new IllegalArgumentException("localRepo directory cannot be null");
+    if( repo.getServer() == null )
+      throw new IllegalArgumentException( _lang.getMessage( "bad.repository.server.null") );
+    
+    if( repo.getServer().getURL() == null )
+      throw new IllegalArgumentException( _lang.getMessage( "bad.repository.server.url.null") );
     
-    if( !_repoDir.exists() )
-      throw new IllegalArgumentException("localRepo directory \""+_repoDir.getAbsolutePath()+"\" should exist");
-
     _repo = repo;
     
     if( mdProcessor == null )
       throw new IllegalArgumentException("MetadataProcessor cannot be null ");
     
     setMetadataProcessor(  mdProcessor );
+    
+    try
+    {
+      // TODO 2008-07-29 og: here I should analyze Server protocol
+      //                     and come with appropriate Transport implementation 
+      _transport = new DefaultRetriever();
+    }
+    catch( MercuryException e )
+    {
+      throw new RepositoryException(e);
+    }
   }
   //---------------------------------------------------------------------------------------------------------------
   public Repository getRepository()
@@ -77,25 +115,8 @@
 
     Map<ArtifactBasicMetadata, ArtifactMetadata> ror = new HashMap<ArtifactBasicMetadata, ArtifactMetadata>(16);
     
-    File pomFile = null;
     for( ArtifactBasicMetadata bmd : query )
     {
-      String pomPath = bmd.getGroupId().replace( '.', '/' )
-                      + "/" + bmd.getArtifactId()
-                      + "/" + bmd.getVersion()
-                      + "/" + bmd.getBaseName()
-                      + ".pom"
-                      ;
-      
-      pomFile = new File( _repoDir, pomPath );
-      if( ! pomFile.exists() )
-      {
-        _log.warn( "file \""+pomPath+"\" does not exist in local repo" );
-        continue;
-      }
-      
-      // TODO HIGH og: delegate POM processing to maven-project
-      // for testing purpose - I plug in my test processor
       try
       {
         List<ArtifactBasicMetadata> deps = _mdProcessor.getDependencies( bmd, this );
@@ -118,24 +139,50 @@
   /**
    * direct disk search, no redirects, first attempt
    */
-  public Map<ArtifactBasicMetadata, RepositoryOperationResult<ArtifactBasicMetadata>> readVersions(
-      List<? extends ArtifactBasicMetadata> query )
+  public Map<ArtifactBasicMetadata, RepositoryOperationResult<ArtifactBasicMetadata>> readVersions( List<? extends 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() );
     
-    File gaDir = null;
+    String gaPath = null;
     for( ArtifactBasicMetadata bmd : query )
     {
-      gaDir = new File( _repoDir, bmd.getGroupId().replace( '.', '/' )+"/"+bmd.getArtifactId() );
-      if( ! gaDir.exists() )
+      gaPath = bmd.getGroupId().replace( '.', '/' )+'/'+bmd.getArtifactId()+"/maven-metadata.xml";
+      
+      byte[] mavenMetadata;
+      try
+      {
+        mavenMetadata = readRawData( gaPath );
+      }
+      catch( MetadataProcessingException e )
+      {
         continue;
+      }
       
-      File [] versionFiles = gaDir.listFiles();
+      if( mavenMetadata == null )
+        continue;
       
+      MetadataXpp3Reader mmReader = new MetadataXpp3Reader();
+      Metadata mmd;
+      try
+      {
+        mmd = mmReader.read( new ByteArrayInputStream(mavenMetadata) );
+      }
+      catch( IOException e )
+      {
+        _log.warn( _lang.getMessage( "maven.metadata.xml.exception", e.getMessage(), gaPath, _repo.getId() ) );
+        continue;
+      }
+      catch( XmlPullParserException pe )
+      {
+        _log.error( pe.getMessage() );
+        throw new RepositoryException( pe );
+      }
+
       RepositoryOperationResult<ArtifactBasicMetadata> rr = null;
       VersionRange versionQuery;
       try
@@ -148,12 +195,14 @@
         continue;
       }
       
-      for( File vf : versionFiles )
+      for( Object vo : mmd.getVersioning().getVersions() )
       {
-        if( !vf.isDirectory() )
+        if( vo == null || !(vo instanceof String) )
           continue;
         
-        if( !versionQuery.includes(  vf.getName() )  )
+        String v = (String)vo;
+        
+        if( !versionQuery.includes(  v )  )
           continue;
         
         ArtifactBasicMetadata vmd = new ArtifactBasicMetadata();
@@ -161,7 +210,7 @@
         vmd.setArtifactId(  bmd.getArtifactId() );
         vmd.setClassifier( bmd.getClassifier() );
         vmd.setType( bmd.getType() );
-        vmd.setVersion( vf.getName() );
+        vmd.setVersion( v );
         
         rr = RepositoryOperationResult.add( rr, vmd );
       }
@@ -172,27 +221,45 @@
     return res;
   }
   //---------------------------------------------------------------------------------------------------------------
-  public void setMetadataProcessor( MetadataProcessor mdProcessor )
+  public byte[] readMetadata( ArtifactBasicMetadata bmd  )
+  throws MetadataProcessingException
   {
-    this._mdProcessor = mdProcessor;
+    return readRawData( bmd, "pom" );
   }
   //---------------------------------------------------------------------------------------------------------------
-  public byte[] readMetadata( ArtifactBasicMetadata bmd )
+  public byte[] readRawData( ArtifactBasicMetadata bmd, String type )
   throws MetadataProcessingException
   {
-    String bmdPath = bmd.getGroupId().replace( '.', '/' )+"/"+bmd.getArtifactId()+"/"+bmd.getVersion();
-    
-    File pomFile = new File( _repoDir, bmdPath+"/"+bmd.getBaseName()+".pom" );
-    
-    if( ! pomFile.exists() )
-      return null;
+    String bmdPath = bmd.getGroupId().replace( '.', '/' )
+                    + '/'+bmd.getArtifactId()
+                    + '/'+bmd.getVersion()
+                    + '/'+bmd.getBaseName()
+                    + '.' + (type == null ? bmd.getType() : type )
+                    ;
     
+    return readRawData( bmdPath );
+  }
+  //---------------------------------------------------------------------------------------------------------------
+  private byte[] readRawData( String path )
+  throws MetadataProcessingException
+  {
     FileInputStream fis = null;
-    
     try
     {
-      fis = new FileInputStream( pomFile );
-      int len = (int)pomFile.length();
+      File tempFile = File.createTempFile( "mercury", "readraw" );
+      Binding binding = new Binding( _repo.getServer().getURL().toString()+'/'+path , tempFile, false );
+      DefaultRetrievalRequest request = new DefaultRetrievalRequest();
+      request.addBinding( binding );
+      
+      RetrievalResponse response = _transport.retrieve( request );
+      
+      if( response.hasExceptions() )
+      {
+        throw new MetadataProcessingException( response.getExceptions().toString() );
+      }
+    
+      fis = new FileInputStream( tempFile );
+      int len = (int)tempFile.length();
       byte [] pom = new byte [ len ];
       fis.read( pom );
       return pom;
@@ -207,5 +274,20 @@
     }
   }
   //---------------------------------------------------------------------------------------------------------------
+  public boolean canHandle(
+      String protocol )
+  {
+    return AbstractRepository.DEFAULT_REMOTE_READ_PROTOCOL.equals( protocol );
+  }
+  //---------------------------------------------------------------------------------------------------------------
   //---------------------------------------------------------------------------------------------------------------
+  public void close()
+  {
+    // TODO Auto-generated method stub
+    
+  }
+  public String[] getProtocols()
+  {
+    return _protocols;
+  }
 }

Propchange: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/transport/SHA1Verifier.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/transport/SHA1Verifier.java?rev=680873&r1=680872&r2=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/transport/SHA1Verifier.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/transport/SHA1Verifier.java Tue Jul 29 16:08:30 2008
@@ -21,7 +21,6 @@
 
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
-import java.util.Arrays;
 
 import org.apache.maven.mercury.transport.api.Verifier;
 

Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/transport/api/Binding.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/transport/api/Binding.java?rev=680873&r1=680872&r2=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/transport/api/Binding.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/transport/api/Binding.java Tue Jul 29 16:08:30 2008
@@ -19,7 +19,9 @@
 
 package org.apache.maven.mercury.transport.api;
 
+import java.io.ByteArrayOutputStream;
 import java.io.File;
+import java.io.InputStream;
 import java.net.URI;
 
 import org.apache.maven.mercury.repository.api.RepositoryException;
@@ -35,7 +37,16 @@
   
   protected URI                 remoteResource;
   protected File                localFile;
-  protected byte []             localBuffer;
+  /** 
+   * inbound in-memory binding for reading remote content.
+   * It is created by the constructor
+   */
+  protected ByteArrayOutputStream localOS;
+  /**
+   * this is outbound in-memory binding. IS is passed by the client
+   */
+  protected InputStream         localIS;
+
   protected boolean             lenientChecksum = true;
 
   protected RepositoryException error;
@@ -54,13 +65,24 @@
     this.lenientChecksum = lenientChecksum;
   }
 
-  public Binding(
-      URI remoteUrl,
-      byte [] localbuffer,
-      boolean lenientChecksum )
+  /** 
+   * this is in-memory binding for writing remote content into localOS
+   * 
+   * @param remoteUrl
+   * @param lenientChecksum
+   */
+  public Binding( URI remoteUrl, boolean lenientChecksum )
+  {
+    this.remoteResource = remoteUrl;
+    // let's assume 4k on average
+    this.localOS = new ByteArrayOutputStream( 4*1024 );
+    this.lenientChecksum = lenientChecksum;
+  }
+
+  public Binding( URI remoteUrl, InputStream is, boolean lenientChecksum )
   {
     this.remoteResource = remoteUrl;
-    this.localBuffer = localbuffer;
+    this.localIS = is;
     this.lenientChecksum = lenientChecksum;
   }
 
@@ -69,8 +91,7 @@
     return lenientChecksum;
   }
 
-  public void setLenientChecksum(
-      boolean leniantChecksum )
+  public void setLenientChecksum( boolean leniantChecksum )
   {
     this.lenientChecksum = leniantChecksum;
   }
@@ -99,12 +120,20 @@
   
   public boolean isInMemory()
   {
-    return localBuffer != null;
+    return localIS != null || localOS != null;
   }
   
   public boolean isFile()
   {
     return localFile != null;
   }
+  
+  public byte [] getInboundContent()
+  {
+    if( localOS != null )
+      return localOS.toByteArray();
+    
+    return null;
+  }
 
 }

Modified: maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/transport/api/TransportTransaction.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/transport/api/TransportTransaction.java?rev=680873&r1=680872&r2=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/transport/api/TransportTransaction.java (original)
+++ maven/sandbox/trunk/mercury/src/main/java/org/apache/maven/mercury/transport/api/TransportTransaction.java Tue Jul 29 16:08:30 2008
@@ -1,6 +1,8 @@
 package org.apache.maven.mercury.transport.api;
 
+import java.io.ByteArrayInputStream;
 import java.io.File;
+import java.io.InputStream;
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -60,11 +62,20 @@
     return this;
   }
   //------------------------------------------------------------------------------------------------
-  public TransportTransaction add( URI remoteResource, byte [] localResource, boolean lenientChecksum )
+  public TransportTransaction add( URI remoteResource, boolean lenientChecksum )
   {
     init();
     
-    _bindings.add( new Binding( remoteResource, localResource, lenientChecksum ) );
+    _bindings.add( new Binding( remoteResource, lenientChecksum ) );
+    
+    return this;
+  }
+  //------------------------------------------------------------------------------------------------
+  public TransportTransaction add( URI remoteResource, InputStream is, boolean lenientChecksum )
+  {
+    init();
+    
+    _bindings.add( new Binding( remoteResource, is, lenientChecksum ) );
     
     return this;
   }
@@ -82,7 +93,7 @@
   {
     init();
     
-    _bindings.add( new Binding( remoteResource, localResource, true ) );
+    _bindings.add( new Binding( remoteResource, new ByteArrayInputStream(localResource), true ) );
     
     return this;
   }

Modified: maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/AbstractSimpleTreeTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/AbstractSimpleTreeTest.java?rev=680873&r1=680872&r2=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/AbstractSimpleTreeTest.java (original)
+++ maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/AbstractSimpleTreeTest.java Tue Jul 29 16:08:30 2008
@@ -1,9 +1,9 @@
 package org.apache.maven.mercury.metadata;
 
-import org.apache.maven.mercury.ArtifactMetadata;
-
 import junit.framework.TestCase;
 
+import org.apache.maven.mercury.ArtifactMetadata;
+
 public abstract class AbstractSimpleTreeTest
 extends TestCase
 {

Modified: maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MetadataTreeTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MetadataTreeTest.java?rev=680873&r1=680872&r2=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MetadataTreeTest.java (original)
+++ maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/MetadataTreeTest.java Tue Jul 29 16:08:30 2008
@@ -10,10 +10,10 @@
 import org.apache.commons.logging.impl.LogFactoryImpl;
 import org.apache.maven.mercury.ArtifactMetadata;
 import org.apache.maven.mercury.ArtifactScopeEnum;
-import org.apache.maven.mercury.repository.DefaultLocalRepository;
-import org.apache.maven.mercury.repository.MetadataProcessor;
 import org.apache.maven.mercury.repository.MetadataProcessorMock;
-import org.apache.maven.mercury.repository.Repository;
+import org.apache.maven.mercury.repository.api.MetadataProcessor;
+import org.apache.maven.mercury.repository.api.Repository;
+import org.apache.maven.mercury.repository.local.m2.LocalRepositoryM2;
 
 
 /**
@@ -32,7 +32,7 @@
   File repoDir = new File("./target/test-classes/controlledRepo");
   
   MetadataTree mt;
-  DefaultLocalRepository localRepo;
+  LocalRepositoryM2 localRepo;
   List<Repository> reps;
   MetadataProcessor processor;
   //----------------------------------------------------------------------------------------------
@@ -42,7 +42,7 @@
   {
 System.out.println("Current dir is "+ new File(".").getCanonicalPath() );
     processor = new MetadataProcessorMock();
-    localRepo = new DefaultLocalRepository( "local", repoDir, processor );
+    localRepo = new LocalRepositoryM2( "local", repoDir, processor );
     
     reps = new ArrayList<Repository>(4);
     reps.add(  localRepo );

Modified: maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java?rev=680873&r1=680872&r2=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java (original)
+++ maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java Tue Jul 29 16:08:30 2008
@@ -6,14 +6,14 @@
 import java.util.List;
 import java.util.Map;
 
+import junit.framework.TestCase;
+
 import org.apache.maven.mercury.ArtifactMetadata;
 import org.apache.maven.mercury.ArtifactScopeEnum;
 import org.apache.maven.mercury.metadata.ClassicDepthComparator;
 import org.apache.maven.mercury.metadata.ClassicVersionComparator;
 import org.apache.maven.mercury.metadata.MetadataTreeNode;
 
-import junit.framework.TestCase;
-
 /**
  * @author <a href="oleg@codehaus.org">Oleg Gusakov</a>
  */

Modified: maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/repository/MetadataProcessorMock.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/repository/MetadataProcessorMock.java?rev=680873&r1=680872&r2=680873&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/repository/MetadataProcessorMock.java (original)
+++ maven/sandbox/trunk/mercury/src/test/java/org/apache/maven/mercury/repository/MetadataProcessorMock.java Tue Jul 29 16:08:30 2008
@@ -1,14 +1,15 @@
 package org.apache.maven.mercury.repository;
 
 import java.io.ByteArrayInputStream;
-import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.commons.digester.Digester;
 import org.apache.maven.mercury.ArtifactBasicMetadata;
-import org.apache.maven.mercury.ArtifactMetadata;
+import org.apache.maven.mercury.repository.api.MetadataProcessingException;
+import org.apache.maven.mercury.repository.api.MetadataProcessor;
+import org.apache.maven.mercury.repository.api.MetadataReader;
 import org.xml.sax.SAXException;
 
 /**