Author: joakime
Date: Thu Nov  8 08:19:05 2007
New Revision: 593220

URL: http://svn.apache.org/viewvc?rev=593220&view=rev
Log:
[MRM-582] Remote Repositories with empty <username> and <password> fields 
shouldn't be created in configuration.
Implemented on-load cleanup of remote repo username/password (instead of 
on-save)
Implemented proper check for blank username/password in proxy connectors.


Modified:
    
maven/archiva/trunk/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
    
maven/archiva/trunk/archiva-base/archiva-configuration/src/test/conf/repository-manager.xml
    
maven/archiva/trunk/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java
    
maven/archiva/trunk/archiva-base/archiva-proxy/src/main/java/org/apache/maven/archiva/proxy/DefaultRepositoryProxyConnectors.java

Modified: 
maven/archiva/trunk/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java?rev=593220&r1=593219&r2=593220&view=diff
==============================================================================
--- 
maven/archiva/trunk/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
 (original)
+++ 
maven/archiva/trunk/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
 Thu Nov  8 08:19:05 2007
@@ -22,6 +22,7 @@
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang.StringUtils;
 import 
org.apache.maven.archiva.configuration.functors.ProxyConnectorConfigurationOrderComparator;
 import 
org.apache.maven.archiva.configuration.io.registry.ConfigurationRegistryReader;
 import 
org.apache.maven.archiva.configuration.io.registry.ConfigurationRegistryWriter;
@@ -41,7 +42,6 @@
 import org.codehaus.plexus.registry.Registry;
 import org.codehaus.plexus.registry.RegistryException;
 import org.codehaus.plexus.registry.RegistryListener;
-import org.codehaus.plexus.util.StringUtils;
 
 import java.io.File;
 import java.io.IOException;
@@ -195,6 +195,24 @@
             config.getRepositories().clear();
 
             registry.removeSubset( KEY + ".repositories" );
+        }
+        
+        if ( !CollectionUtils.isEmpty( config.getRemoteRepositories() ) )
+        {
+            List<RemoteRepositoryConfiguration> remoteRepos = 
config.getRemoteRepositories();
+            for ( RemoteRepositoryConfiguration repo : remoteRepos )
+            {
+                // [MRM-582] Remote Repositories with empty <username> and 
<password> fields shouldn't be created in configuration.
+                if( StringUtils.isBlank( repo.getUsername() ) )
+                {
+                    repo.setUsername( null );
+                }
+                
+                if( StringUtils.isBlank( repo.getPassword() ) )
+                {
+                    repo.setPassword( null );
+                }
+            }
         }
 
         if ( !config.getProxyConnectors().isEmpty() )

Modified: 
maven/archiva/trunk/archiva-base/archiva-configuration/src/test/conf/repository-manager.xml
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-configuration/src/test/conf/repository-manager.xml?rev=593220&r1=593219&r2=593220&view=diff
==============================================================================
--- 
maven/archiva/trunk/archiva-base/archiva-configuration/src/test/conf/repository-manager.xml
 (original)
+++ 
maven/archiva/trunk/archiva-base/archiva-configuration/src/test/conf/repository-manager.xml
 Thu Nov  8 08:19:05 2007
@@ -54,6 +54,8 @@
       <name>Java.net Repository for Maven 2</name>
       <url>https://maven2-repository.dev.java.net/nonav/repository</url>
       <layout>default</layout>
+      <username></username>
+      <password></password>
     </remoteRepository>
   </remoteRepositories>
 
@@ -62,17 +64,21 @@
       <sourceRepoId>internal</sourceRepoId>
       <targetRepoId>central</targetRepoId>
       <proxyId/>
-      <snapshotsPolicy>disabled</snapshotsPolicy>
-      <releasePolicy>never</releasePolicy>
-      <failurePolicy>not-found</failurePolicy>
+      <policies>
+        <releases>ignored</releases>
+        <snapshots>disabled</snapshots>
+        <cache-failures>cached</cache-failures>
+      </policies>
     </proxyConnector>
     <proxyConnector>
       <sourceRepoId>internal</sourceRepoId>
       <targetRepoId>maven2-repository.dev.java.net</targetRepoId>
       <proxyId/>
-      <snapshotsPolicy>disabled</snapshotsPolicy>
-      <releasePolicy>never</releasePolicy>
-      <failurePolicy>not-found</failurePolicy>
+      <policies>
+        <releases>ignored</releases>
+        <snapshots>disabled</snapshots>
+        <cache-failures>cached</cache-failures>
+      </policies>
       <whiteListPatterns>
         <whiteListPattern>javax/**</whiteListPattern>
       </whiteListPatterns>

Modified: 
maven/archiva/trunk/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java?rev=593220&r1=593219&r2=593220&view=diff
==============================================================================
--- 
maven/archiva/trunk/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java
 (original)
+++ 
maven/archiva/trunk/archiva-base/archiva-configuration/src/test/java/org/apache/maven/archiva/configuration/ArchivaConfigurationTest.java
 Thu Nov  8 08:19:05 2007
@@ -636,4 +636,29 @@
 
         assertEquals( "check cron expression", "0 0,20 0 * * ?", 
repository.getRefreshCronExpression() );
     }
+
+    /**
+     * [MRM-582] Remote Repositories with empty <username> and <password> 
fields shouldn't be created in configuration.
+     */
+    public void testGetConfigurationFixEmptyRemoteRepoUsernamePassword()
+        throws Exception
+    {
+        ArchivaConfiguration archivaConfiguration = (ArchivaConfiguration) 
lookup(
+                                                                               
    ArchivaConfiguration.class.getName(),
+                                                                               
    "test-configuration" );
+
+        Configuration configuration = archivaConfiguration.getConfiguration();
+        assertConfiguration( configuration );
+        assertEquals( "check remote repositories", 2, 
configuration.getRemoteRepositories().size() );
+
+        RemoteRepositoryConfiguration repository = 
(RemoteRepositoryConfiguration) configuration
+            .getRemoteRepositoriesAsMap().get( 
"maven2-repository.dev.java.net" );
+
+        assertEquals( "remote repository.url", 
"https://maven2-repository.dev.java.net/nonav/repository";, repository.getUrl() 
);
+        assertEquals( "remote repository.name", "Java.net Repository for Maven 
2", repository.getName() );
+        assertEquals( "remote repository.id", 
"maven2-repository.dev.java.net", repository.getId() );
+        assertEquals( "remote repository.layout", "default", 
repository.getLayout() );
+        assertNull( "remote repository.username == null", 
repository.getUsername() );
+        assertNull( "remote repository.password == null", 
repository.getPassword() );
+    }
 }

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=593220&r1=593219&r2=593220&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 Nov  8 08:19:05 2007
@@ -792,10 +792,10 @@
             AuthenticationInfo authInfo = null;
             String username = remoteRepository.getRepository().getUsername();
             String password = remoteRepository.getRepository().getPassword();
-            if ( username != null && password != null )
+            
+            if ( StringUtils.isNotBlank( username ) && StringUtils.isNotBlank( 
password ) )
             {
-                getLogger().debug(
-                                   "Using username " + username + " to connect 
to remote repository "
+                getLogger().debug( "Using username " + username + " to connect 
to remote repository "
                                        + remoteRepository.getURL() );
                 authInfo = new AuthenticationInfo();
                 authInfo.setUserName( username );


Reply via email to