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