On 09/07/2008, at 11:32 AM, Igor Fedorenko wrote:

Personally, I think maven should obey repository update policy (i.e. never/daily/etc) and force (i.e. -U) flag for all missing release artifacts.

It doesn't have to right now because it doesn't cache missing release artifacts. As I said in my other reply, I'm not sure that's a good idea.

Should we proceed with the release and look to address this in a future release then?

- Brett



Brett Porter wrote:
Hehe, got to watch out for those Java 5 for loop conversions :)
Was this regression the one Igor was referring to, or is there still more work being done on MARTIFACT-25?
Thanks,
Brett
On 09/07/2008, at 6:36 AM, [EMAIL PROTECTED] wrote:
Author: jvanzyl
Date: Tue Jul  8 13:36:14 2008
New Revision: 674941

URL: http://svn.apache.org/viewvc?rev=674941&view=rev
Log:
MARTIFACT-29: Prevent checking from all remote repositories once the artifact is found.
Submitted by: Igor Fedorenko

Modified:
maven/artifact/trunk/src/main/java/org/apache/maven/artifact/ manager/DefaultWagonManager.java maven/artifact/trunk/src/main/java/org/apache/maven/artifact/ repository/DefaultArtifactRepository.java maven/artifact/trunk/src/test/java/org/apache/maven/artifact/ manager/DefaultWagonManagerTest.java

Modified: maven/artifact/trunk/src/main/java/org/apache/maven/ artifact/manager/DefaultWagonManager.java
URL: 
http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java?rev=674941&r1=674940&r2=674941&view=diff
= = = = = = = = = = ==================================================================== --- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/ manager/DefaultWagonManager.java (original) +++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/ manager/DefaultWagonManager.java Tue Jul 8 13:36:14 2008
@@ -333,14 +333,15 @@
                            boolean force )
       throws TransferFailedException, ResourceDoesNotExistException
   {
-        boolean successful = false;
-
       for (ArtifactRepository repository : remoteRepositories) {
           try
           {
               getArtifact( artifact, repository, force );

-                successful = artifact.isResolved();
+                if (artifact.isResolved())
+                {
+                    break;
+                }
           }
           catch ( ResourceDoesNotExistException e )
           {
@@ -358,7 +359,7 @@
       }

// if it already exists locally we were just trying to force it - ignore the update
-        if ( !successful && !artifact.getFile().exists() )
+        if ( !artifact.getFile().exists() )
       {
throw new ResourceDoesNotExistException( "Unable to download the artifact from any repository" );
       }

Modified: maven/artifact/trunk/src/main/java/org/apache/maven/ artifact/repository/DefaultArtifactRepository.java
URL: 
http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java?rev=674941&r1=674940&r2=674941&view=diff
= = = = = = = = = = ==================================================================== --- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/ repository/DefaultArtifactRepository.java (original) +++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/ repository/DefaultArtifactRepository.java Tue Jul 8 13:36:14 2008
@@ -35,7 +35,7 @@
   extends Repository
   implements ArtifactRepository
{
-    private final ArtifactRepositoryLayout layout;
+    private ArtifactRepositoryLayout layout;

   private ArtifactRepositoryPolicy snapshots;


Modified: maven/artifact/trunk/src/test/java/org/apache/maven/ artifact/manager/DefaultWagonManagerTest.java
URL: 
http://svn.apache.org/viewvc/maven/artifact/trunk/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java?rev=674941&r1=674940&r2=674941&view=diff
= = = = = = = = = = ==================================================================== --- maven/artifact/trunk/src/test/java/org/apache/maven/artifact/ manager/DefaultWagonManagerTest.java (original) +++ maven/artifact/trunk/src/test/java/org/apache/maven/artifact/ manager/DefaultWagonManagerTest.java Tue Jul 8 13:36:14 2008
@@ -21,6 +21,8 @@

import java.io.File;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;

import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.DefaultArtifact;
@@ -31,13 +33,16 @@
import org.apache.maven.artifact.repository.DefaultArtifactRepository; import org .apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
+import org.apache.maven.artifact.resolver.TestTransferListener;
import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.wagon.ResourceDoesNotExistException;
import org.apache.maven.wagon.TransferFailedException;
import org.apache.maven.wagon.UnsupportedProtocolException;
import org.apache.maven.wagon.Wagon;
import org.apache.maven.wagon.authorization.AuthorizationException;
+import org.apache.maven.wagon.events.TransferEvent;
import org.apache.maven.wagon.events.TransferListener;
+import org.apache.maven.wagon.observers.AbstractTransferListener;
import org.apache.maven.wagon.observers.Debug;
import org.apache.maven.wagon.repository.Repository;
import org.codehaus.plexus.PlexusTestCase;
@@ -68,6 +73,32 @@

artifactFactory = (ArtifactFactory) lookup( ArtifactFactory.ROLE );
   }
+
+ public void testUnnecessaryRepositoryLookup() throws Exception { + Artifact artifact = createTestPomArtifact( "target/test- data/get-missing-pom" );
+
+ List<ArtifactRepository> repos = new ArrayList<ArtifactRepository>(); + repos.add(new DefaultArtifactRepository( "repo1", "noop:// url1", new ArtifactRepositoryLayoutStub() )); + repos.add(new DefaultArtifactRepository( "repo2", "noop:// url2", new ArtifactRepositoryLayoutStub() ));
+
+ StringWagon wagon = (StringWagon) wagonManager.getWagon( "noop" ); + wagon .addExpectedContent( repos.get(0).getLayout().pathOf( artifact ), "expected" ); + wagon .addExpectedContent( repos.get(1).getLayout().pathOf( artifact ), "expected" );
+
+        class TransferListener extends AbstractTransferListener {
+ public List<TransferEvent> events = new ArrayList<TransferEvent>();
+            @Override
+ public void transferInitiated(TransferEvent transferEvent) {
+                events.add(transferEvent);
+            }
+        };
+        TransferListener listener = new TransferListener();
+
+        wagonManager.setDownloadMonitor(listener);
+        wagonManager.getArtifact( artifact, repos, false );
+
+        assertEquals(1, listener.events.size());
+    }

public void testGetMissingPomUncached() throws TransferFailedException, UnsupportedProtocolException, IOException
   {



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


--
Brett Porter
[EMAIL PROTECTED]
http://blogs.exist.com/bporter/


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to