You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2008/09/10 20:30:48 UTC

svn commit: r693921 - in /maven/components/branches/maven-2.0.x/maven-artifact-manager/src: main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java

Author: jdcasey
Date: Wed Sep 10 11:30:48 2008
New Revision: 693921

URL: http://svn.apache.org/viewvc?rev=693921&view=rev
Log:
Fixing unit tests in maven-artifact-manager.

Modified:
    maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
    maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java

Modified: maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java?rev=693921&r1=693920&r2=693921&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java Wed Sep 10 11:30:48 2008
@@ -24,6 +24,7 @@
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -417,13 +418,17 @@
         // TODO: configure on repository
         ChecksumObserver md5ChecksumObserver;
         ChecksumObserver sha1ChecksumObserver;
+        
+        List checksumObservers = new ArrayList( 2 );
         try
         {
             md5ChecksumObserver = new ChecksumObserver( "MD5" );
             wagon.addTransferListener( md5ChecksumObserver );
+            checksumObservers.add( md5ChecksumObserver );
 
             sha1ChecksumObserver = new ChecksumObserver( "SHA-1" );
             wagon.addTransferListener( sha1ChecksumObserver );
+            checksumObservers.add( sha1ChecksumObserver );
         }
         catch ( NoSuchAlgorithmException e )
         {
@@ -474,6 +479,11 @@
                         downloaded = true;
                     }
                 }
+                else
+                {
+                    wagon.get( remotePath, temp );
+                    downloaded = true;
+                }
 
                 if ( downloaded )
                 {
@@ -486,7 +496,7 @@
                     // try to verify the SHA-1 checksum for this file.
                     try
                     {
-                        verifyChecksum( sha1ChecksumObserver, destination, temp, remotePath, ".sha1", wagon );
+                        verifyChecksum( sha1ChecksumObserver, destination, temp, remotePath, ".sha1", wagon, checksumObservers );
                     }
                     catch ( ChecksumFailedException e )
                     {
@@ -512,7 +522,7 @@
                         // file...we'll try again with the MD5 checksum.
                         try
                         {
-                            verifyChecksum( md5ChecksumObserver, destination, temp, remotePath, ".md5", wagon );
+                            verifyChecksum( md5ChecksumObserver, destination, temp, remotePath, ".md5", wagon, checksumObservers );
                         }
                         catch ( ChecksumFailedException e )
                         {
@@ -645,9 +655,19 @@
                                  File tempDestination,
                                  String remotePath,
                                  String checksumFileExtension,
-                                 Wagon wagon )
+                                 Wagon wagon, 
+                                 List checksumObservers )
         throws ResourceDoesNotExistException, TransferFailedException, AuthorizationException
     {
+        // FIXME: We need to be able to disable/retrieve/manipulate existing checksum observers on wagon instances.
+        // Otherwise, each time a checksum GET throws ResourceNotFoundException, all other checksum data in other
+        // observers for the main artifact have their actual checksums destroyed.
+        for ( Iterator it = checksumObservers.iterator(); it.hasNext(); )
+        {
+            ChecksumObserver observer = (ChecksumObserver) it.next();
+            wagon.removeTransferListener( observer );
+        }
+        
         try
         {
             // grab it first, because it's about to change...
@@ -697,6 +717,14 @@
         {
             throw new ChecksumFailedException( "Invalid checksum file", e );
         }
+        finally
+        {
+            for ( Iterator it = checksumObservers.iterator(); it.hasNext(); )
+            {
+                ChecksumObserver observer = (ChecksumObserver) it.next();
+                wagon.addTransferListener( observer );
+            }
+        }
     }
 
     

Modified: maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java?rev=693921&r1=693920&r2=693921&view=diff
==============================================================================
--- maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java (original)
+++ maven/components/branches/maven-2.0.x/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java Wed Sep 10 11:30:48 2008
@@ -41,6 +41,7 @@
 import org.apache.maven.wagon.observers.Debug;
 import org.apache.maven.wagon.repository.Repository;
 import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 import org.easymock.MockControl;
@@ -62,6 +63,8 @@
         throws Exception
     {
         super.setUp();
+        
+        getContainer().getLoggerManager().setThreshold( Logger.LEVEL_DEBUG );
 
         wagonManager = (DefaultWagonManager) lookup( WagonManager.ROLE );
         
@@ -395,6 +398,7 @@
         }
         catch ( ChecksumFailedException e )
         {
+            e.printStackTrace();
             fail( "Checksum verification did not pass: " + e.getMessage() );
         }