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() ); }