Author: nicolas
Date: Thu Jan 31 03:16:17 2008
New Revision: 617102

URL: http://svn.apache.org/viewvc?rev=617102&view=rev
Log:
MRM-678 : cache 404 errors in UrlFailureCache
testcase fixed to check for cache (not) to be used when cachefailure is 
(disabled /) enabled

Modified:
    
maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java
    
maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java

Modified: 
maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java?rev=617102&r1=617101&r2=617102&view=diff
==============================================================================
--- 
maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java
 (original)
+++ 
maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java
 Thu Jan 31 03:16:17 2008
@@ -550,7 +550,7 @@
         }
         catch ( NotFoundException e )
         {
-            // Do not cache url here.
+            urlFailureCache.cacheFailure( url );
             throw e;
         }
         catch ( NotModifiedException e )

Modified: 
maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java?rev=617102&r1=617101&r2=617102&view=diff
==============================================================================
--- 
maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java
 (original)
+++ 
maven/archiva/trunk/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/CacheFailuresTransferTest.java
 Thu Jan 31 03:16:17 2008
@@ -56,7 +56,7 @@
 
         // Configure Repository (usually done within archiva.xml configuration)
         saveRemoteRepositoryConfig( "badproxied1", "Bad Proxied 1", 
"test://bad.machine.com/repo/", "default" );
-        saveRemoteRepositoryConfig( "badproxied2", "Bad Proxied 2", 
"test://bad.machine.com/repo/", "default" );
+        saveRemoteRepositoryConfig( "badproxied2", "Bad Proxied 2", 
"test://bad.machine.com/anotherrepo/", "default" );
 
         // Configure Connector (usually done within archiva.xml configuration)
         saveConnector( ID_DEFAULT_MANAGED, "badproxied1", ChecksumPolicy.FIX, 
ReleasesPolicy.ALWAYS,
@@ -71,8 +71,12 @@
 
         File downloadedFile = proxyHandler.fetchFromProxies( 
managedDefaultRepository, artifact );
 
-        // TODO: test failure is cached!
-
+        wagonMockControl.verify();
+               
+               // Second attempt to download same artifact use cache
+        wagonMockControl.reset();
+        wagonMockControl.replay();
+               downloadedFile = proxyHandler.fetchFromProxies( 
managedDefaultRepository, artifact );
         wagonMockControl.verify();
         
         assertNotDownloaded( downloadedFile );
@@ -92,7 +96,7 @@
 
         // Configure Repository (usually done within archiva.xml configuration)
         saveRemoteRepositoryConfig( "badproxied1", "Bad Proxied 1", 
"test://bad.machine.com/repo/", "default" );
-        saveRemoteRepositoryConfig( "badproxied2", "Bad Proxied 2", 
"test://bad.machine.com/repo/", "default" );
+        saveRemoteRepositoryConfig( "badproxied2", "Bad Proxied 2", 
"test://bad.machine.com/anotherrepo/", "default" );
 
         // Configure Connector (usually done within archiva.xml configuration)
         saveConnector( ID_DEFAULT_MANAGED, "badproxied1", ChecksumPolicy.FIX, 
ReleasesPolicy.ALWAYS,
@@ -107,10 +111,18 @@
 
         File downloadedFile = proxyHandler.fetchFromProxies( 
managedDefaultRepository, artifact );
 
-        // TODO: test failure is not cached!
-
         wagonMockControl.verify();
 
+               // Second attempt to download same artifact DOES NOT use cache
+        wagonMockControl.reset();
+        wagonMock.get( path, new File( expectedFile.getParentFile(), 
expectedFile.getName() + ".tmp" ) );
+        wagonMockControl.setThrowable( new ResourceDoesNotExistException( 
"resource does not exist." ), 2 );
+        wagonMockControl.replay();
+               
+               downloadedFile = proxyHandler.fetchFromProxies( 
managedDefaultRepository, artifact );
+               
+        wagonMockControl.verify();
+               
         assertNotDownloaded( downloadedFile );
         assertNoTempFiles( expectedFile );
     }


Reply via email to