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