Author: epunzalan
Date: Sun Feb 19 19:42:00 2006
New Revision: 379010

URL: http://svn.apache.org/viewcvs?rev=379010&view=rev
Log:
PR: MRM-97

Added hardfail configuration option in ProxyRepository and implemented it in 
DefaultProxyManager

Modified:
    
maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/DefaultProxyManager.java
    
maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/configuration/ProxyConfiguration.java
    
maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/repository/ProxyRepository.java

Modified: 
maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/DefaultProxyManager.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/DefaultProxyManager.java?rev=379010&r1=379009&r2=379010&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/DefaultProxyManager.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/DefaultProxyManager.java
 Sun Feb 19 19:42:00 2006
@@ -283,7 +283,8 @@
             }
             catch ( TransferFailedException e )
             {
-                getLogger().info( "Skipping repository " + repository.getUrl() 
+ ": " + e.getMessage() );
+                String message = "Skipping repository " + repository.getUrl() 
+ ": " + e.getMessage();
+                processRepositoryFailure( repository, message, e );
             }
             catch ( ResourceDoesNotExistException e )
             {
@@ -292,12 +293,14 @@
             }
             catch ( AuthorizationException e )
             {
-                getLogger().info( "Skipping repository " + repository.getUrl() 
+ ": " + e.getMessage() );
+                String message = "Skipping repository " + repository.getUrl() 
+ ": " + e.getMessage();
+                processRepositoryFailure( repository, message, e );
             }
             catch ( UnsupportedProtocolException e )
             {
-                getLogger().info( "Skipping repository " + repository.getUrl() 
+ ": no wagonManager configured " +
-                    "for protocol " + repository.getProtocol() );
+                String message = "Skipping repository " + repository.getUrl() 
+ ": no wagonManager configured " +
+                    "for protocol " + repository.getProtocol();
+                processRepositoryFailure( repository, message, e );
             }
             finally
             {
@@ -556,6 +559,20 @@
         catch ( ConnectionException e )
         {
             getLogger().error( "Problem disconnecting from wagonManager - 
ignoring: " + e.getMessage() );
+        }
+    }
+
+    private void processRepositoryFailure( ProxyRepository repository, String 
message, Throwable t )
+        throws ProxyException
+    {
+        if ( repository.isHardfail() )
+        {
+            throw new ProxyException(
+                "An error occurred in hardfailing repository " + 
repository.getName() + "...\n    " + message, t );
+        }
+        else
+        {
+            getLogger().debug( message, t );
         }
     }
 }

Modified: 
maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/configuration/ProxyConfiguration.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/configuration/ProxyConfiguration.java?rev=379010&r1=379009&r2=379010&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/configuration/ProxyConfiguration.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/configuration/ProxyConfiguration.java
 Sun Feb 19 19:42:00 2006
@@ -170,13 +170,14 @@
                 ProxyRepository repo = new ProxyRepository( 
repoConfig.getKey(), repoConfig.getUrl(), layout );
                 repo.setCacheFailures( repoConfig.getCacheFailures() );
                 repo.setCachePeriod( repoConfig.getCachePeriod() );
+                repo.setHardfail( repoConfig.getHardFail() );
 
                 if ( repoConfig instanceof HttpRepoConfiguration )
                 {
                     HttpRepoConfiguration httpRepo = (HttpRepoConfiguration) 
repoConfig;
                     MavenProxyConfiguration httpProxy = httpRepo.getProxy();
-                    repo.setProxy( httpProxy.getHost(), httpProxy.getPort(),
-                                   httpProxy.getUsername(), 
httpProxy.getPassword() );
+                    repo.setProxy( httpProxy.getHost(), httpProxy.getPort(), 
httpProxy.getUsername(),
+                                   httpProxy.getPassword() );
                 }
 
                 repoList.add( repo );

Modified: 
maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/repository/ProxyRepository.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/repository/ProxyRepository.java?rev=379010&r1=379009&r2=379010&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/repository/ProxyRepository.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-proxy/src/main/java/org/apache/maven/repository/proxy/repository/ProxyRepository.java
 Sun Feb 19 19:42:00 2006
@@ -34,6 +34,8 @@
 
     private boolean cacheFailures = false;
 
+    private boolean hardfail = false;
+
     private ProxyInfo proxy;
 
     public ProxyRepository( String id, String url, ArtifactRepositoryLayout 
layout, boolean cacheFailures,
@@ -117,5 +119,26 @@
     public void setProxy( ProxyInfo proxy )
     {
         this.proxy = proxy;
+    }
+
+    /**
+     * Checks the repository hardfail setting.
+     *
+     * @return true if the hardfail is enabled, otherwise, returns false.
+     */
+    public boolean isHardfail()
+    {
+        return hardfail;
+    }
+
+    /**
+     * If hardfail is set to true, then any unexpected errors from retrieving 
files from this repository
+     * will cause the download to fail.
+     *
+     * @param hardfail set to true to enable hard failures
+     */
+    public void setHardfail( boolean hardfail )
+    {
+        this.hardfail = hardfail;
     }
 }


Reply via email to