Author: ogusakov
Date: Mon Nov 10 15:45:18 2008
New Revision: 712876

URL: http://svn.apache.org/viewvc?rev=712876&view=rev
Log:
http://jira.codehaus.org/browse/MERCURY-24

Modified:
    
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Artifact.java
    
maven/mercury/trunk/mercury-maven/mercury-compare-plugin/src/main/java/org/sonatype/maven/plugins/mercury/compare/MercuryCompareMojo.java
    
maven/mercury/trunk/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java
    
maven/mercury/trunk/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryWriterM2.java
    
maven/mercury/trunk/mercury-repo/mercury-repo-virtual/src/main/java/org/apache/maven/mercury/repository/virtual/VirtualRepositoryReader.java

Modified: 
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Artifact.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Artifact.java?rev=712876&r1=712875&r2=712876&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Artifact.java
 (original)
+++ 
maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Artifact.java
 Mon Nov 10 15:45:18 2008
@@ -77,6 +77,7 @@
 
     File getFile();
     
+    // in case binary is supplied as a Stream, not a File
     InputStream getStream();
 
     void setFile( File destination );

Modified: 
maven/mercury/trunk/mercury-maven/mercury-compare-plugin/src/main/java/org/sonatype/maven/plugins/mercury/compare/MercuryCompareMojo.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-maven/mercury-compare-plugin/src/main/java/org/sonatype/maven/plugins/mercury/compare/MercuryCompareMojo.java?rev=712876&r1=712875&r2=712876&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-maven/mercury-compare-plugin/src/main/java/org/sonatype/maven/plugins/mercury/compare/MercuryCompareMojo.java
 (original)
+++ 
maven/mercury/trunk/mercury-maven/mercury-compare-plugin/src/main/java/org/sonatype/maven/plugins/mercury/compare/MercuryCompareMojo.java
 Mon Nov 10 15:45:18 2008
@@ -7,7 +7,6 @@
 import java.util.Collection;
 import java.util.List;
 import java.util.Set;
-import java.util.TreeSet;
 
 import org.apache.maven.artifact.factory.ArtifactFactory;
 import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
@@ -16,19 +15,13 @@
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
 import org.apache.maven.execution.MavenSession;
-import org.apache.maven.mercury.artifact.Artifact;
 import org.apache.maven.mercury.artifact.ArtifactBasicMetadata;
-import org.apache.maven.mercury.artifact.ArtifactCoordinates;
 import org.apache.maven.mercury.artifact.ArtifactMetadata;
-import org.apache.maven.mercury.artifact.ArtifactScopeEnum;
 import org.apache.maven.mercury.metadata.DependencyBuilder;
 import org.apache.maven.mercury.metadata.DependencyBuilderFactory;
-import org.apache.maven.mercury.metadata.DependencyTreeBuilderTest;
 import org.apache.maven.mercury.metadata.MetadataTreeException;
 import org.apache.maven.mercury.metadata.MetadataTreeNode;
-import org.apache.maven.mercury.repository.api.LocalRepository;
 import org.apache.maven.mercury.repository.api.Repository;
-import org.apache.maven.mercury.repository.api.RepositoryUpdateIntervalPolicy;
 import org.apache.maven.mercury.repository.local.m2.LocalRepositoryM2;
 import org.apache.maven.mercury.repository.remote.m2.RemoteRepositoryM2;
 import org.apache.maven.mercury.transport.api.Server;
@@ -41,7 +34,6 @@
 import org.apache.maven.project.ProjectBuildingException;
 import org.apache.maven.project.artifact.InvalidDependencyVersionException;
 import org.codehaus.plexus.PlexusContainer;
-import 
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
 import 
org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
 import org.mortbay.jetty.plugin.RuntimeDependencyResolver;

Modified: 
maven/mercury/trunk/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/mercury/trunk/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java?rev=712876&r1=712875&r2=712876&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java
 (original)
+++ 
maven/mercury/trunk/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryReaderM2.java
 Mon Nov 10 15:45:18 2008
@@ -206,7 +206,11 @@
       try // reading pom if one exists
       {
         if( checkFile( binary, vFacs ) )
+        {
           da.setFile( binary );
+          da.setTracker( this._repo );
+        }
+        
 
         if( "pom".equals( bmd.getType() ) ) 
         {

Modified: 
maven/mercury/trunk/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/mercury/trunk/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryWriterM2.java?rev=712876&r1=712875&r2=712876&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryWriterM2.java
 (original)
+++ 
maven/mercury/trunk/mercury-repo/mercury-repo-local-m2/src/main/java/org/apache/maven/mercury/repository/local/m2/LocalRepositoryWriterM2.java
 Mon Nov 10 15:45:18 2008
@@ -224,7 +224,7 @@
 
     try
     {
-      
+
       if( isPom )
       {
         if( in == null && !hasPomBlob )

Modified: 
maven/mercury/trunk/mercury-repo/mercury-repo-virtual/src/main/java/org/apache/maven/mercury/repository/virtual/VirtualRepositoryReader.java
URL: 
http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-virtual/src/main/java/org/apache/maven/mercury/repository/virtual/VirtualRepositoryReader.java?rev=712876&r1=712875&r2=712876&view=diff
==============================================================================
--- 
maven/mercury/trunk/mercury-repo/mercury-repo-virtual/src/main/java/org/apache/maven/mercury/repository/virtual/VirtualRepositoryReader.java
 (original)
+++ 
maven/mercury/trunk/mercury-repo/mercury-repo-virtual/src/main/java/org/apache/maven/mercury/repository/virtual/VirtualRepositoryReader.java
 Mon Nov 10 15:45:18 2008
@@ -149,6 +149,10 @@
       
       if( r.isWriteable() )
       {
+        // we select the first writable repo in the list
+        if( _localRepository != null )
+          continue;
+        
         _localRepository = (LocalRepository)r.getReader().getRepository();
         _localRepositoryWriter = _localRepository.getWriter();
         
@@ -350,6 +354,8 @@
       if( RepositoryReader.NULL_READER.equals( rr ) )
         continue;
       
+      String repoId = rr.getRepository().getId();
+      
       List<ArtifactBasicMetadata> rrQuery = buckets.get( rr );
       
       ArtifactResults rrRes = rr.readArtifacts( rrQuery );
@@ -367,6 +373,10 @@
 
           res.addAll( bm, al );
           
+          // don't write local artifacts back to the same repo
+          if( _localRepository != null && repoId.equals( 
_localRepository.getId() ) )
+            continue;
+
           if( _localRepositoryWriter != null )
             _localRepositoryWriter.writeArtifacts( al );
         }
@@ -380,6 +390,8 @@
         if( rejects.isEmpty() )
           break;
         
+        String repoId = rr.getRepository().getId();
+        
         ArtifactResults rrRes = rr.readArtifacts( rejects );
         
         if( rrRes.hasResults() )
@@ -394,6 +406,10 @@
             
             rejects.remove( bm );
             
+            // don't write local artifacts back to the same repo
+            if( _localRepository != null && repoId.equals( 
_localRepository.getId() ) )
+              continue;
+
             if( _localRepositoryWriter != null )
               _localRepositoryWriter.writeArtifacts( al );
 


Reply via email to