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