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
    {



--
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