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/10/08 05:20:31 UTC

svn commit: r702685 - in /maven/sandbox/trunk/mercury: mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ mercury-md/mercury-md-sat/ mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ mercury-repo/mercury-repo-api...

Author: ogusakov
Date: Tue Oct  7 20:20:30 2008
New Revision: 702685

URL: http://svn.apache.org/viewvc?rev=702685&view=rev
Log:
first changes towards repository metadata processing

Added:
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepositoryWriter.java
Modified:
    maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactCoordinates.java
    maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/pom.xml
    maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstracRepositoryReader.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Messages.properties
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAMetadata.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAVMetadata.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryMetadataCache.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/VirtualRepositoryReader.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/ArtifactLocation.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryWriterM2.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java
    maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryWriterM2.java

Modified: maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactCoordinates.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactCoordinates.java?rev=702685&r1=702684&r2=702685&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactCoordinates.java (original)
+++ maven/sandbox/trunk/mercury/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactCoordinates.java Tue Oct  7 20:20:30 2008
@@ -1,5 +1,6 @@
 package org.apache.maven.mercury.artifact;
 
+
 /**
  *
  *
@@ -9,7 +10,6 @@
  */
 public class ArtifactCoordinates
 {
-  
   /** 
    * standard glorified artifact coordinates
    */

Modified: maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/pom.xml?rev=702685&r1=702684&r2=702685&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/pom.xml (original)
+++ maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/pom.xml Tue Oct  7 20:20:30 2008
@@ -14,7 +14,6 @@
     
     <sat4j.version>2.0.0</sat4j.version>
     <commons.digester.version>1.8</commons.digester.version>
-    <mercury.version>1.0.0-alpha-2-SNAPSHOT</mercury.version>
 
   </properties>
 
@@ -57,31 +56,31 @@
   	<dependency>
   		<groupId>org.apache.maven.mercury</groupId>
   		<artifactId>mercury-md-shared</artifactId>
-  		<version>${mercury.version}</version>
+  		<version>${project.version}</version>
   	</dependency>
   	<dependency>
   		<groupId>org.apache.maven.mercury</groupId>
   		<artifactId>mercury-repo-api</artifactId>
-  		<version>${mercury.version}</version>
+  		<version>${project.version}</version>
   	</dependency>
 	<!--  test deps -->
     <dependency>
       <groupId>org.apache.maven.mercury</groupId>
       <artifactId>mercury-repo-local-m2</artifactId>
-      <version>${mercury.version}</version>
+      <version>${project.version}</version>
       <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.mercury</groupId>
       <artifactId>mercury-repo-local-m2</artifactId>
-      <version>${mercury.version}</version>
+      <version>${project.version}</version>
       <classifier>tests</classifier>
       <scope>test</scope>
     </dependency>
   	<dependency>
   		<groupId>org.apache.maven.mercury</groupId>
   		<artifactId>mercury-repo-remote-m2</artifactId>
-  		<version>${mercury.version}</version>
+  		<version>${project.version}</version>
   		<scope>test</scope>
   	</dependency>
   </dependencies>

Modified: maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java?rev=702685&r1=702684&r2=702685&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java (original)
+++ maven/sandbox/trunk/mercury/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java Tue Oct  7 20:20:30 2008
@@ -78,7 +78,7 @@
     if( processors != null )
       _processors = processors;
     
-    this._reader = new VirtualRepositoryReader( repositories, processor );
+    this._reader = new VirtualRepositoryReader( repositories, processor, null );
   }
   //------------------------------------------------------------------------
   /**

Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstracRepositoryReader.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstracRepositoryReader.java?rev=702685&r1=702684&r2=702685&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstracRepositoryReader.java (original)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstracRepositoryReader.java Tue Oct  7 20:20:30 2008
@@ -18,16 +18,33 @@
 {
   protected DependencyProcessor _mdProcessor;
   
-  public void setMetadataProcessor( DependencyProcessor mdProcessor )
+  protected RepositoryMetadataCache _mdCache;
+  
+  public void setDependencyProcessor( DependencyProcessor mdProcessor )
   {
     _mdProcessor = mdProcessor;
   }
   
-  public DependencyProcessor getMetadataProcessor()
+  public DependencyProcessor getDependencyProcessor()
   {
     return _mdProcessor;
   }
   
+  public void setMetadataCache( RepositoryMetadataCache mdCache )
+  {
+    this._mdCache = mdCache;
+  }
+  
+  public RepositoryMetadataCache getMetadataCache()
+  {
+    return _mdCache;
+  }
+  
+  public boolean hasMetadataCache()
+  {
+    return _mdCache != null;
+  }
+  
   public byte[] readMetadata( ArtifactBasicMetadata bmd  )
   throws MetadataReaderException
   {

Added: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepositoryWriter.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepositoryWriter.java?rev=702685&view=auto
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepositoryWriter.java (added)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/AbstractRepositoryWriter.java Tue Oct  7 20:20:30 2008
@@ -0,0 +1,31 @@
+package org.apache.maven.mercury.repository.api;
+
+
+/**
+ * helper class for writing repository writers
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
+public class AbstractRepositoryWriter
+extends Thread
+{
+  
+  protected RepositoryMetadataCache _mdCache;
+  
+  public void setMetadataCache( RepositoryMetadataCache mdCache )
+  {
+    this._mdCache = mdCache;
+  }
+  
+  public RepositoryMetadataCache getMetadataCache()
+  {
+    return _mdCache;
+  }
+  
+  public boolean hasMetadataCache()
+  {
+    return _mdCache != null;
+  }
+}

Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Messages.properties
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Messages.properties?rev=702685&r1=702684&r2=702685&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Messages.properties (original)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/Messages.properties Tue Oct  7 20:20:30 2008
@@ -10,3 +10,5 @@
 empty.policy=repository update policy cannot be empty: {0}
 bad.policy=cannot parse repository update policy: {0}
 bad.interval.policy=cannot parse interval repository update policy: {0}
+
+empty.mdbytes=cannot initialize metadata object from empty byte array
\ No newline at end of file

Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAMetadata.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAMetadata.java?rev=702685&r1=702684&r2=702685&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAMetadata.java (original)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAMetadata.java Tue Oct  7 20:20:30 2008
@@ -1,12 +1,18 @@
 package org.apache.maven.mercury.repository.api;
 
 import java.util.Collection;
+import java.util.List;
 import java.util.TreeSet;
 
 import org.apache.maven.mercury.artifact.ArtifactCoordinates;
 import org.apache.maven.mercury.artifact.version.VersionComparator;
+import org.apache.maven.mercury.repository.metadata.Metadata;
+import org.apache.maven.mercury.repository.metadata.MetadataBuilder;
+import org.apache.maven.mercury.repository.metadata.MetadataException;
 import org.apache.maven.mercury.util.TimeUtil;
 import org.apache.maven.mercury.util.Util;
+import org.codehaus.plexus.lang.DefaultLanguage;
+import org.codehaus.plexus.lang.Language;
 
 /**
  * This is a data object to carry GA level repository 
@@ -18,6 +24,8 @@
  */
 public class RepositoryGAMetadata
 {
+  private static final Language _lang = new DefaultLanguage( RepositoryGAVMetadata.class );
+  
   ArtifactCoordinates ga;
 
   /** a list of last discovered versions, ordered ascending */
@@ -41,6 +49,35 @@
     this.lastCheck = TimeUtil.getUTCTimestampAsLong();
   }
 
+  /**
+   * @param versions
+   * @param lastCheck
+   * @throws MetadataException 
+   */
+  public RepositoryGAMetadata( byte [] mdBytes )
+  throws MetadataException
+  {
+    if( Util.isEmpty( mdBytes ) )
+      throw new IllegalArgumentException( _lang.getMessage( "empty.mdbytes" ) );
+    
+    Metadata md = MetadataBuilder.getMetadata( mdBytes );
+    
+    this.ga = new ArtifactCoordinates( md.getGroupId(), md.getArtifactId(), md.getVersion() );
+
+    this.versions = new TreeSet<String>( new VersionComparator() );
+    
+    List<String> vers = null;
+    
+    if( md.getVersioning() != null )
+    {
+      vers = md.getVersioning().getVersions();
+      this.versions.addAll( vers );
+    }
+      
+    
+    this.lastCheck = TimeUtil.getUTCTimestampAsLong();
+  }
+
   public TreeSet<String> getVersions()
   {
     return versions;

Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAVMetadata.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAVMetadata.java?rev=702685&r1=702684&r2=702685&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAVMetadata.java (original)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryGAVMetadata.java Tue Oct  7 20:20:30 2008
@@ -1,12 +1,18 @@
 package org.apache.maven.mercury.repository.api;
 
 import java.util.Collection;
+import java.util.List;
 import java.util.TreeSet;
 
 import org.apache.maven.mercury.artifact.ArtifactCoordinates;
 import org.apache.maven.mercury.artifact.version.VersionComparator;
+import org.apache.maven.mercury.repository.metadata.Metadata;
+import org.apache.maven.mercury.repository.metadata.MetadataBuilder;
+import org.apache.maven.mercury.repository.metadata.MetadataException;
 import org.apache.maven.mercury.util.TimeUtil;
 import org.apache.maven.mercury.util.Util;
+import org.codehaus.plexus.lang.DefaultLanguage;
+import org.codehaus.plexus.lang.Language;
 
 /**
  * This is a data object to carry GA level repository 
@@ -18,6 +24,8 @@
  */
 public class RepositoryGAVMetadata
 {
+  private static final Language _lang = new DefaultLanguage( RepositoryGAVMetadata.class );
+  
   ArtifactCoordinates gav;
   
   /** a list of last discovered snapshots, ordered descending */
@@ -30,6 +38,8 @@
   protected long lastCheck;
 
   /**
+   * initialization of md object from scratch
+   * 
    * @param versions
    * @param lastCheck
    */
@@ -45,6 +55,35 @@
     this.classifiers = classifiers;
     this.lastCheck = TimeUtil.getUTCTimestampAsLong();
   }
+  /**
+   * initialization of md object from old metadata object bytes
+   * 
+   * @param versions
+   * @param lastCheck
+   * @throws MetadataException 
+   */
+  public RepositoryGAVMetadata( byte [] mdBytes )
+  throws MetadataException
+  {
+    if( Util.isEmpty( mdBytes ) )
+      throw new IllegalArgumentException( _lang.getMessage( "empty.mdbytes" ) );
+    
+    Metadata md = MetadataBuilder.getMetadata( mdBytes );
+    
+    this.gav = new ArtifactCoordinates( md.getGroupId(), md.getArtifactId(), md.getVersion() );
+
+    this.snapshots = new TreeSet<String>( new VersionComparator() );
+    
+    List<String> versions = null;
+    
+    if( md.getVersioning() != null )
+      versions = md.getVersioning().getVersions(); 
+      
+    if( !Util.isEmpty( versions ) && md.getVersioning().getSnapshot() != null )
+      this.snapshots.addAll( versions );
+    
+    this.lastCheck = TimeUtil.getUTCTimestampAsLong();
+  }
 
   public TreeSet<String> getSnapshots()
   {

Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryMetadataCache.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryMetadataCache.java?rev=702685&r1=702684&r2=702685&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryMetadataCache.java (original)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryMetadataCache.java Tue Oct  7 20:20:30 2008
@@ -26,9 +26,18 @@
   public void init( Collection<RemoteRepository> repos );
   
   /**
+   * check if GA level metadata exists in this cache
    * 
-   * @param bmd
+   * @param bmd - bare GA coordinates of the requisted metadata
    * @return 
    */
-  public Metadata findGA( ArtifactBasicMetadata bmd );
+  public RepositoryGAMetadata findGA( ArtifactBasicMetadata bmd );
+  
+  /**
+   * check if GAV level metadata exists in this cache
+   * 
+   * @param bmd - bare GAV coordinates of the requisted metadata
+   * @return 
+   */
+  public RepositoryGAMetadata findGAV( ArtifactBasicMetadata bmd );
 }

Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java?rev=702685&r1=702684&r2=702685&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java (original)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryReader.java Tue Oct  7 20:20:30 2008
@@ -62,10 +62,17 @@
   public Repository getRepository();
 
   /**
-   * Need if to trick circular dependency on maven-project, projectBuilder hides behind this processor
+   * Abstracted POM reader. First projectBuilder, then any type of dependency reader
    */
-  public void setMetadataProcessor( DependencyProcessor mdProcessor );
-  public DependencyProcessor getMetadataProcessor();
+  public void setDependencyProcessor( DependencyProcessor mdProcessor );
+  public DependencyProcessor getDependencyProcessor();
+
+  /**
+   * Abstracted metadata cache is used to store/retrieve metadata faster. It usually implements 
+   * repository update policy
+   */
+  public void setMetadataCache( RepositoryMetadataCache mdCache );
+  public RepositoryMetadataCache getMetadataCache();
   
   /**
    * read content pointed by relative path. It will return content bytes

Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java?rev=702685&r1=702684&r2=702685&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java (original)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryWriter.java Tue Oct  7 20:20:30 2008
@@ -26,4 +26,7 @@
    */
   public void writeArtifact( Collection<Artifact> artifact )
   throws RepositoryException;
+  
+  public void setMetadataCache( RepositoryMetadataCache mdCache );
+  public RepositoryMetadataCache getMetadataCache();
 }

Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/VirtualRepositoryReader.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/VirtualRepositoryReader.java?rev=702685&r1=702684&r2=702685&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/VirtualRepositoryReader.java (original)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/VirtualRepositoryReader.java Tue Oct  7 20:20:30 2008
@@ -31,6 +31,8 @@
   private LocalRepository       _localRepository;
   
   private DependencyProcessor     _processor;
+  
+  RepositoryMetadataCache         _mdCache;
 
   private Map<String,ArtifactListProcessor>   _processors;
   
@@ -40,6 +42,7 @@
                   LocalRepository localRepository
                 , List<RemoteRepository> remoteRepositories
                 , DependencyProcessor processor
+                , RepositoryMetadataCache mdCache
                           )
   throws RepositoryException
   {
@@ -56,9 +59,11 @@
     
     if( remoteRepositories != null && remoteRepositories.size() > 0 )
       this._repositories.addAll( remoteRepositories );
+    
+    this._mdCache = mdCache;
   }
   //----------------------------------------------------------------------------------------------------------------------------
-  public VirtualRepositoryReader( List<Repository> repositories, DependencyProcessor processor  )
+  public VirtualRepositoryReader( List<Repository> repositories, DependencyProcessor processor, RepositoryMetadataCache mdCache  )
   throws RepositoryException
   {
     if( processor == null )
@@ -67,6 +72,8 @@
 
     if( repositories != null && repositories.size() > 0 )
       this._repositories.addAll( repositories );
+    
+    this._mdCache = mdCache;
   }
   //----------------------------------------------------------------------------------------------------------------------------
   public VirtualRepositoryReader( Repository... repositories )

Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/ArtifactLocation.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/ArtifactLocation.java?rev=702685&r1=702684&r2=702685&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/ArtifactLocation.java (original)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/ArtifactLocation.java Tue Oct  7 20:20:30 2008
@@ -3,6 +3,14 @@
 import org.apache.maven.mercury.artifact.ArtifactBasicMetadata;
 import org.apache.maven.mercury.artifact.version.DefaultArtifactVersion;
 
+/**
+ * artifact relative location data object - used by repositories to hold on to intermediate path calculations 
+ *
+ *
+ * @author Oleg Gusakov
+ * @version $Id$
+ *
+ */
 public class ArtifactLocation
 {
   public static final String SEP = "/";

Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java?rev=702685&r1=702684&r2=702685&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java (original)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java Tue Oct  7 20:20:30 2008
@@ -63,7 +63,7 @@
     if( mdProcessor == null )
       throw new IllegalArgumentException("MetadataProcessor cannot be null ");
     
-    setMetadataProcessor(  mdProcessor );
+    setDependencyProcessor(  mdProcessor );
   }
   //---------------------------------------------------------------------------------------------------------------
   public Repository getRepository()

Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryWriterM2.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryWriterM2.java?rev=702685&r1=702684&r2=702685&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryWriterM2.java (original)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryWriterM2.java Tue Oct  7 20:20:30 2008
@@ -19,6 +19,7 @@
 import org.apache.maven.mercury.crypto.api.StreamObserverException;
 import org.apache.maven.mercury.crypto.api.StreamVerifierFactory;
 import org.apache.maven.mercury.repository.api.AbstractRepository;
+import org.apache.maven.mercury.repository.api.AbstractRepositoryWriter;
 import org.apache.maven.mercury.repository.api.LocalRepository;
 import org.apache.maven.mercury.repository.api.Repository;
 import org.apache.maven.mercury.repository.api.RepositoryException;
@@ -39,7 +40,7 @@
 import org.codehaus.plexus.lang.Language;
 
 public class LocalRepositoryWriterM2
-extends Thread
+extends AbstractRepositoryWriter
 implements RepositoryWriter
 {
   public static final String SYSTEM_PROPERTY_PARALLEL_WORKERS = "mercury.local.repo.workers";
@@ -53,7 +54,7 @@
   public static final long SLEEP_FOR_LOCK_TICK = 5l;
 
   private static final org.slf4j.Logger _log = org.slf4j.LoggerFactory.getLogger( LocalRepositoryWriterM2.class ); 
-  private static final Language _lang = new DefaultLanguage( LocalRepositoryReaderM2.class );
+  private static final Language _lang = new DefaultLanguage( LocalRepositoryWriterM2.class );
   //---------------------------------------------------------------------------------------------------------------
   private static final String [] _protocols = new String [] { "file" };
   

Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java?rev=702685&r1=702684&r2=702685&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java (original)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryReaderM2.java Tue Oct  7 20:20:30 2008
@@ -61,6 +61,7 @@
 {
   private static final org.slf4j.Logger _log = org.slf4j.LoggerFactory.getLogger( RemoteRepositoryReaderM2.class ); 
   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", "dav", "webdav" };
   
@@ -95,7 +96,7 @@
     if( mdProcessor == null )
       throw new IllegalArgumentException("MetadataProcessor cannot be null ");
     
-    setMetadataProcessor(  mdProcessor );
+    setDependencyProcessor(  mdProcessor );
     
     try
     {
@@ -205,6 +206,7 @@
     
     String mdPath = loc.getGavPath()+'/'+_repo.getMetadataName();
 
+    
     byte [] mdBytes = readRawData( mdPath );
     if( mdBytes == null )
     {

Modified: maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryWriterM2.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryWriterM2.java?rev=702685&r1=702684&r2=702685&view=diff
==============================================================================
--- maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryWriterM2.java (original)
+++ maven/sandbox/trunk/mercury/mercury-repo/mercury-repo-remote-m2/src/main/java/org/apache/maven/mercury/repository/remote/m2/RemoteRepositoryWriterM2.java Tue Oct  7 20:20:30 2008
@@ -21,6 +21,7 @@
 import org.apache.maven.mercury.builder.api.MetadataReaderException;
 import org.apache.maven.mercury.crypto.api.StreamVerifierFactory;
 import org.apache.maven.mercury.repository.api.AbstractRepository;
+import org.apache.maven.mercury.repository.api.AbstractRepositoryWriter;
 import org.apache.maven.mercury.repository.api.RemoteRepository;
 import org.apache.maven.mercury.repository.api.Repository;
 import org.apache.maven.mercury.repository.api.RepositoryException;
@@ -45,12 +46,13 @@
 import org.codehaus.plexus.lang.Language;
 
 public class RemoteRepositoryWriterM2
+extends AbstractRepositoryWriter
 implements RepositoryWriter
 {
   private static final org.slf4j.Logger _log = org.slf4j.LoggerFactory.getLogger( RemoteRepositoryWriterM2.class ); 
   private static final Language _lang = new DefaultLanguage( RemoteRepositoryWriterM2.class );
   //---------------------------------------------------------------------------------------------------------------
-  private static final String [] _protocols = new String [] { "http", "dav", "webdav" };
+  private static final String [] _protocols = new String [] { "http", "https", "dav", "webdav" };
   
   RemoteRepository _repo;
   Server _server;