You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2008/07/08 22:36:15 UTC

svn commit: r674941 - in /maven/artifact/trunk/src: main/java/org/apache/maven/artifact/manager/ main/java/org/apache/maven/artifact/repository/ test/java/org/apache/maven/artifact/manager/

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
     {



Re: svn commit: r674941 - in /maven/artifact/trunk/src: main/java/org/apache/maven/artifact/manager/ main/java/org/apache/maven/artifact/repository/ test/java/org/apache/maven/artifact/manager/

Posted by Jason van Zyl <ja...@maven.org>.
On 9-Jul-08, at 6:43 PM, Brett Porter wrote:

>
> On 09/07/2008, at 9:18 PM, Jason van Zyl wrote:
>
>> I don't see it in JIRA anymore, but did someone take care of  
>> snapshot repositories being queried over and over again?
>
> I think this is what John's update check does, and I added some  
> tests in this space yesterday.
>
> If you have more information, a JIRA, or a specific example let us  
> know and we can take a look.
>
>> Other then that I want Hudson up on at least Linux, Solaris,  
>> Windows, have everything pass and then I would say it's good to go.  
>> I'll have the Windows Hudson setup today if all goes well.
>
> So we're all set then?
>

I don't have a clean run yet across the three platforms. I also have  
17 people who have volunteered to give the hudson setup a try which  
will incorporate the Maven artifact build. The ITs will help rat out  
anything in maven-artifact.

> - Brett
>
>>
>>
>> On 9-Jul-08, at 1:56 AM, Brett Porter wrote:
>>
>>>
>>> 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, jvanzyl@apache.org 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: dev-unsubscribe@maven.apache.org
>>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>>
>>>
>>> --
>>> Brett Porter
>>> brett@apache.org
>>> http://blogs.exist.com/bporter/
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>
>>
>> Thanks,
>>
>> Jason
>>
>> ----------------------------------------------------------
>> Jason van Zyl
>> Founder,  Apache Maven
>> jason at sonatype dot com
>> ----------------------------------------------------------
>>
>> We know what we are, but know not what we may be.
>>
>> -- Shakespeare
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>>
>
> --
> Brett Porter
> brett@apache.org
> http://blogs.exist.com/bporter/
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
jason at sonatype dot com
----------------------------------------------------------

People develop abstractions by generalizing from concrete examples.
Every attempt to determine the correct abstraction on paper without
actually developing a running system is doomed to failure. No one
is that smart. A framework is a resuable design, so you develop it by
looking at the things it is supposed to be a design of. The more  
examples
you look at, the more general your framework will be.

   -- Ralph Johnson & Don Roberts, Patterns for Evolving Frameworks


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: svn commit: r674941 - in /maven/artifact/trunk/src: main/java/org/apache/maven/artifact/manager/ main/java/org/apache/maven/artifact/repository/ test/java/org/apache/maven/artifact/manager/

Posted by Brett Porter <br...@apache.org>.
On 09/07/2008, at 9:18 PM, Jason van Zyl wrote:

> I don't see it in JIRA anymore, but did someone take care of  
> snapshot repositories being queried over and over again?

I think this is what John's update check does, and I added some tests  
in this space yesterday.

If you have more information, a JIRA, or a specific example let us  
know and we can take a look.

> Other then that I want Hudson up on at least Linux, Solaris,  
> Windows, have everything pass and then I would say it's good to go.  
> I'll have the Windows Hudson setup today if all goes well.

So we're all set then?

- Brett

>
>
> On 9-Jul-08, at 1:56 AM, Brett Porter wrote:
>
>>
>> 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, jvanzyl@apache.org 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: dev-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: dev-help@maven.apache.org
>>>
>>
>> --
>> Brett Porter
>> brett@apache.org
>> http://blogs.exist.com/bporter/
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>>
>
> Thanks,
>
> Jason
>
> ----------------------------------------------------------
> Jason van Zyl
> Founder,  Apache Maven
> jason at sonatype dot com
> ----------------------------------------------------------
>
> We know what we are, but know not what we may be.
>
>  -- Shakespeare
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>

--
Brett Porter
brett@apache.org
http://blogs.exist.com/bporter/


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: svn commit: r674941 - in /maven/artifact/trunk/src: main/java/org/apache/maven/artifact/manager/ main/java/org/apache/maven/artifact/repository/ test/java/org/apache/maven/artifact/manager/

Posted by Jason van Zyl <ja...@maven.org>.
I don't see it in JIRA anymore, but did someone take care of snapshot  
repositories being queried over and over again?

Other then that I want Hudson up on at least Linux, Solaris, Windows,  
have everything pass and then I would say it's good to go. I'll have  
the Windows Hudson setup today if all goes well.

On 9-Jul-08, at 1:56 AM, Brett Porter wrote:

>
> 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, jvanzyl@apache.org 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: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>>
>
> --
> Brett Porter
> brett@apache.org
> http://blogs.exist.com/bporter/
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder,  Apache Maven
jason at sonatype dot com
----------------------------------------------------------

We know what we are, but know not what we may be.

   -- Shakespeare


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: svn commit: r674941 - in /maven/artifact/trunk/src: main/java/org/apache/maven/artifact/manager/ main/java/org/apache/maven/artifact/repository/ test/java/org/apache/maven/artifact/manager/

Posted by Brett Porter <br...@apache.org>.
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, jvanzyl@apache.org 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: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>

--
Brett Porter
brett@apache.org
http://blogs.exist.com/bporter/


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: svn commit: r674941 - in /maven/artifact/trunk/src: main/java/org/apache/maven/artifact/manager/ main/java/org/apache/maven/artifact/repository/ test/java/org/apache/maven/artifact/manager/

Posted by Igor Fedorenko <ig...@ifedorenko.com>.
This is not related to the concerns I have about current solution of 
MARTIFACT-25. Unfortunately, I do not have time to have another look at 
MARTIFACT-25 right now and cannot tell if caching missing pom.xml is 
good enough. 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.

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, jvanzyl@apache.org 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: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: svn commit: r674941 - in /maven/artifact/trunk/src: main/java/org/apache/maven/artifact/manager/ main/java/org/apache/maven/artifact/repository/ test/java/org/apache/maven/artifact/manager/

Posted by Brett Porter <br...@apache.org>.
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, jvanzyl@apache.org 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
brett@apache.org
http://blogs.exist.com/bporter/


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org