Author: nicolas
Date: Thu Jan 10 03:00:35 2008
New Revision: 610758

URL: http://svn.apache.org/viewvc?rev=610758&view=rev
Log:
skip when URL is in failure cache
cache proxy failures (404) for better performances

Modified:
    
maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.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=610758&r1=610757&r2=610758&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 10 03:00:35 2008
@@ -524,10 +524,15 @@
             getLogger().info( emsg );
             return null;
         }
-
+       
+               if ( urlFailureCache.hasFailedBefore( url ) )
+               {
+                       throw new NotFoundException( "Url has failed before and 
cache-failure is enabled on this connector" );
+               }
+                       
         Wagon wagon = null;
         try
-        {
+        {      
             RepositoryURL repoUrl = remoteRepository.getURL();
             String protocol = repoUrl.getProtocol();
             wagon = (Wagon) wagons.get( protocol );
@@ -547,7 +552,10 @@
         }
         catch ( NotFoundException e )
         {
-            // Do not cache url here.
+                       // public repositories may be slow to access, and many 
request will fail when 
+                       // muliple repositories are "merged" by archiva via 
proxies.
+                       // so caching "not found" is usefull here to enhance 
archiva response-time
+            urlFailureCache.cacheFailure( url );                       
             throw e;
         }
         catch ( NotModifiedException e )


Reply via email to