Author: olamy
Date: Thu Dec 6 16:23:47 2012
New Revision: 1417978
URL: http://svn.apache.org/viewvc?rev=1417978&view=rev
Log:
fix NPE and add alias
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/WEB-INF/applicationContext.xml
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java?rev=1417978&r1=1417977&r2=1417978&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java
(original)
+++
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultArchivaRuntimeConfigurationAdmin.java
Thu Dec 6 16:23:47 2012
@@ -29,6 +29,7 @@ import org.apache.archiva.configuration.
import org.apache.archiva.configuration.RedbackRuntimeConfiguration;
import org.apache.archiva.redback.components.registry.RegistryException;
import org.apache.archiva.redback.configuration.UserConfiguration;
+import org.apache.archiva.redback.configuration.UserConfigurationException;
import org.apache.archiva.redback.configuration.UserConfigurationKeys;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
@@ -36,69 +37,78 @@ import org.springframework.stereotype.Se
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Named;
+import java.util.List;
/**
* @author Olivier Lamy
* @since 1.4-M4
*/
-@Service("archivaRuntimeConfigurationAdmin#default")
+@Service( "userConfiguration#archiva" )
public class DefaultArchivaRuntimeConfigurationAdmin
extends AbstractRepositoryAdmin
- implements ArchivaRuntimeConfigurationAdmin
+ implements ArchivaRuntimeConfigurationAdmin, UserConfiguration
{
@Inject
- @Named(value = "userConfiguration#redback")
+ @Named( value = "userConfiguration#redback" )
UserConfiguration userConfiguration;
@PostConstruct
public void initialize()
- throws RepositoryAdminException
+ throws UserConfigurationException
{
-
- ArchivaRuntimeConfiguration archivaRuntimeConfiguration =
getArchivaRuntimeConfiguration();
- // migrate or not data from redback
- if ( !archivaRuntimeConfiguration.isMigratedFromRedbackConfiguration()
)
- {
- // so migrate if available
- String userManagerImpl = userConfiguration.getString(
UserConfigurationKeys.USER_MANAGER_IMPL );
- if ( StringUtils.isNotEmpty( userManagerImpl ) )
- {
- archivaRuntimeConfiguration.setUserManagerImpl(
userManagerImpl );
- }
-
- // now ldap
-
- ArchivaLdapConfiguration archivaLdapConfiguration =
- archivaRuntimeConfiguration.getArchivaLdapConfiguration();
- if ( archivaLdapConfiguration == null )
+ try
+ {
+ ArchivaRuntimeConfiguration archivaRuntimeConfiguration =
getArchivaRuntimeConfiguration();
+ // migrate or not data from redback
+ if (
!archivaRuntimeConfiguration.isMigratedFromRedbackConfiguration() )
{
- archivaLdapConfiguration = new ArchivaLdapConfiguration();
- archivaRuntimeConfiguration.setArchivaLdapConfiguration(
archivaLdapConfiguration );
- }
+ // so migrate if available
+ String userManagerImpl = userConfiguration.getString(
UserConfigurationKeys.USER_MANAGER_IMPL );
+ if ( StringUtils.isNotEmpty( userManagerImpl ) )
+ {
+ archivaRuntimeConfiguration.setUserManagerImpl(
userManagerImpl );
+ }
+
+ // now ldap
+
+ ArchivaLdapConfiguration archivaLdapConfiguration =
+ archivaRuntimeConfiguration.getArchivaLdapConfiguration();
+ if ( archivaLdapConfiguration == null )
+ {
+ archivaLdapConfiguration = new ArchivaLdapConfiguration();
+ archivaRuntimeConfiguration.setArchivaLdapConfiguration(
archivaLdapConfiguration );
+ }
+
+ archivaLdapConfiguration.setHostName(
+ userConfiguration.getString(
UserConfigurationKeys.LDAP_HOSTNAME, null ) );
+ archivaLdapConfiguration.setPort( userConfiguration.getInt(
UserConfigurationKeys.LDAP_PORT, -1 ) );
+ archivaLdapConfiguration.setSsl(
+ userConfiguration.getBoolean(
UserConfigurationKeys.LDAP_SSL, false ) );
+ archivaLdapConfiguration.setBaseDn(
+ userConfiguration.getConcatenatedList(
UserConfigurationKeys.LDAP_BASEDN, null ) );
+ archivaLdapConfiguration.setContextFactory(
+ userConfiguration.getString(
UserConfigurationKeys.LDAP_CONTEX_FACTORY, null ) );
+ archivaLdapConfiguration.setBindDn(
+ userConfiguration.getConcatenatedList(
UserConfigurationKeys.LDAP_BINDDN, null ) );
+ archivaLdapConfiguration.setPassword(
+ userConfiguration.getString(
UserConfigurationKeys.LDAP_PASSWORD, null ) );
+ archivaLdapConfiguration.setAuthenticationMethod(
+ userConfiguration.getString(
UserConfigurationKeys.LDAP_AUTHENTICATION_METHOD, null ) );
- archivaLdapConfiguration.setHostName(
- userConfiguration.getString(
UserConfigurationKeys.LDAP_HOSTNAME, null ) );
- archivaLdapConfiguration.setPort( userConfiguration.getInt(
UserConfigurationKeys.LDAP_PORT, -1 ) );
- archivaLdapConfiguration.setSsl( userConfiguration.getBoolean(
UserConfigurationKeys.LDAP_SSL, false ) );
- archivaLdapConfiguration.setBaseDn(
userConfiguration.getConcatenatedList( "ldap.config.base.dn", null ) );
- archivaLdapConfiguration.setContextFactory(
- userConfiguration.getString(
UserConfigurationKeys.LDAP_CONTEX_FACTORY, null ) );
- archivaLdapConfiguration.setBindDn(
userConfiguration.getConcatenatedList( "ldap.config.bind.dn", null ) );
- archivaLdapConfiguration.setPassword(
- userConfiguration.getString(
UserConfigurationKeys.LDAP_PASSWORD, null ) );
- archivaLdapConfiguration.setAuthenticationMethod(
- userConfiguration.getString(
UserConfigurationKeys.LDAP_AUTHENTICATION_METHOD, null ) );
+
archivaRuntimeConfiguration.setMigratedFromRedbackConfiguration( true );
- archivaRuntimeConfiguration.setMigratedFromRedbackConfiguration(
true );
+ updateArchivaRuntimeConfiguration( archivaRuntimeConfiguration
);
- updateArchivaRuntimeConfiguration( archivaRuntimeConfiguration );
+ }
+ }
+ catch ( RepositoryAdminException e )
+ {
+ throw new UserConfigurationException( e.getMessage(), e );
}
-
}
public ArchivaRuntimeConfiguration getArchivaRuntimeConfiguration()
- throws RepositoryAdminException
{
return build(
getArchivaConfiguration().getConfiguration().getRedbackRuntimeConfiguration() );
}
@@ -132,4 +142,233 @@ public class DefaultArchivaRuntimeConfig
{
return new BeanReplicator().replicateBean(
archivaRuntimeConfiguration, RedbackRuntimeConfiguration.class );
}
+
+ // wrapper for UserConfiguration to intercept values (and store it not yet
migrated
+
+
+ public String getString( String key )
+ {
+ if ( UserConfigurationKeys.USER_MANAGER_IMPL.equals( key ) )
+ {
+ return getArchivaRuntimeConfiguration().getUserManagerImpl();
+ }
+
+ ArchivaRuntimeConfiguration conf = getArchivaRuntimeConfiguration();
+
+ if ( conf.getConfigurationProperties().containsKey( key ) )
+ {
+ return conf.getConfigurationProperties().get( key );
+ }
+
+ String value = userConfiguration.getString( key );
+ if ( value == null )
+ {
+ return null;
+ }
+ conf.getConfigurationProperties().put( key, value );
+
+ try
+ {
+ updateArchivaRuntimeConfiguration( conf );
+ }
+ catch ( RepositoryAdminException e )
+ {
+ log.error( "fail to save ArchivaRuntimeConfiguration: {}",
e.getMessage(), e );
+ throw new RuntimeException( e.getMessage(), e );
+ }
+
+ return value;
+ }
+
+ public String getString( String key, String defaultValue )
+ {
+ if ( UserConfigurationKeys.LDAP_HOSTNAME.equals( key ) )
+ {
+ return
getArchivaRuntimeConfiguration().getArchivaLdapConfiguration().getHostName();
+ }
+ if ( UserConfigurationKeys.LDAP_CONTEX_FACTORY.equals( key ) )
+ {
+ return
getArchivaRuntimeConfiguration().getArchivaLdapConfiguration().getContextFactory();
+ }
+ if ( UserConfigurationKeys.LDAP_PASSWORD.equals( key ) )
+ {
+ return
getArchivaRuntimeConfiguration().getArchivaLdapConfiguration().getPassword();
+ }
+ if ( UserConfigurationKeys.LDAP_AUTHENTICATION_METHOD.equals( key ) )
+ {
+ return
getArchivaRuntimeConfiguration().getArchivaLdapConfiguration().getAuthenticationMethod();
+ }
+
+ ArchivaRuntimeConfiguration conf = getArchivaRuntimeConfiguration();
+
+ if ( conf.getConfigurationProperties().containsKey( key ) )
+ {
+ return conf.getConfigurationProperties().get( key );
+ }
+
+ String value = userConfiguration.getString( key, defaultValue );
+
+ if ( value == null )
+ {
+ return null;
+ }
+
+ conf.getConfigurationProperties().put( key, value );
+ try
+ {
+ updateArchivaRuntimeConfiguration( conf );
+ }
+ catch ( RepositoryAdminException e )
+ {
+ log.error( "fail to save ArchivaRuntimeConfiguration: {}",
e.getMessage(), e );
+ throw new RuntimeException( e.getMessage(), e );
+ }
+
+ return value;
+ }
+
+ public int getInt( String key )
+ {
+ ArchivaRuntimeConfiguration conf = getArchivaRuntimeConfiguration();
+
+ if ( conf.getConfigurationProperties().containsKey( key ) )
+ {
+ return Integer.valueOf( conf.getConfigurationProperties().get( key
) );
+ }
+
+ int value = userConfiguration.getInt( key );
+
+ conf.getConfigurationProperties().put( key, Integer.toString( value )
);
+ try
+ {
+ updateArchivaRuntimeConfiguration( conf );
+ }
+ catch ( RepositoryAdminException e )
+ {
+ log.error( "fail to save ArchivaRuntimeConfiguration: {}",
e.getMessage(), e );
+ throw new RuntimeException( e.getMessage(), e );
+ }
+
+ return value;
+ }
+
+ public int getInt( String key, int defaultValue )
+ {
+ if ( UserConfigurationKeys.LDAP_PORT.equals( key ) )
+ {
+ return
getArchivaRuntimeConfiguration().getArchivaLdapConfiguration().getPort();
+ }
+
+
+ ArchivaRuntimeConfiguration conf = getArchivaRuntimeConfiguration();
+
+ if ( conf.getConfigurationProperties().containsKey( key ) )
+ {
+ return Integer.valueOf( conf.getConfigurationProperties().get( key
) );
+ }
+
+ int value = userConfiguration.getInt( key, defaultValue );
+
+ conf.getConfigurationProperties().put( key, Integer.toString( value )
);
+ try
+ {
+ updateArchivaRuntimeConfiguration( conf );
+ }
+ catch ( RepositoryAdminException e )
+ {
+ log.error( "fail to save ArchivaRuntimeConfiguration: {}",
e.getMessage(), e );
+ throw new RuntimeException( e.getMessage(), e );
+ }
+
+ return value;
+ }
+
+ public boolean getBoolean( String key )
+ {
+ ArchivaRuntimeConfiguration conf = getArchivaRuntimeConfiguration();
+
+ if ( conf.getConfigurationProperties().containsKey( key ) )
+ {
+ return Boolean.valueOf( conf.getConfigurationProperties().get( key
) );
+ }
+
+ boolean value = userConfiguration.getBoolean( key );
+
+ conf.getConfigurationProperties().put( key, Boolean.toString( value )
);
+ try
+ {
+ updateArchivaRuntimeConfiguration( conf );
+ }
+ catch ( RepositoryAdminException e )
+ {
+ log.error( "fail to save ArchivaRuntimeConfiguration: {}",
e.getMessage(), e );
+ throw new RuntimeException( e.getMessage(), e );
+ }
+
+ return value;
+ }
+
+ public boolean getBoolean( String key, boolean defaultValue )
+ {
+ if ( UserConfigurationKeys.LDAP_SSL.equals( key ) )
+ {
+ return
getArchivaRuntimeConfiguration().getArchivaLdapConfiguration().isSsl();
+ }
+
+ ArchivaRuntimeConfiguration conf = getArchivaRuntimeConfiguration();
+
+ if ( conf.getConfigurationProperties().containsKey( key ) )
+ {
+ return Boolean.valueOf( conf.getConfigurationProperties().get( key
) );
+ }
+
+ boolean value = userConfiguration.getBoolean( key );
+
+
+ conf.getConfigurationProperties().put( key, Boolean.toString( value )
);
+ try
+ {
+ updateArchivaRuntimeConfiguration( conf );
+ }
+ catch ( RepositoryAdminException e )
+ {
+ log.error( "fail to save ArchivaRuntimeConfiguration: {}",
e.getMessage(), e );
+ throw new RuntimeException( e.getMessage(), e );
+ }
+
+ return value;
+ }
+
+ public List<String> getList( String key )
+ {
+ List<String> value = userConfiguration.getList( key );
+
+ ArchivaRuntimeConfiguration conf = getArchivaRuntimeConfiguration();
+ // TODO concat values
+ conf.getConfigurationProperties().put( key, "" );
+ try
+ {
+ updateArchivaRuntimeConfiguration( conf );
+ }
+ catch ( RepositoryAdminException e )
+ {
+ log.error( "fail to save ArchivaRuntimeConfiguration: {}",
e.getMessage(), e );
+ throw new RuntimeException( e.getMessage(), e );
+ }
+
+ return value;
+ }
+
+ public String getConcatenatedList( String key, String defaultValue )
+ {
+ if ( UserConfigurationKeys.LDAP_BASEDN.equals( key ) )
+ {
+ return
getArchivaRuntimeConfiguration().getArchivaLdapConfiguration().getBaseDn();
+ }
+ if ( UserConfigurationKeys.LDAP_BINDDN.equals( key ) )
+ {
+ return
getArchivaRuntimeConfiguration().getArchivaLdapConfiguration().getBindDn();
+ }
+ return userConfiguration.getConcatenatedList( key, defaultValue );
+ }
}
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/WEB-INF/applicationContext.xml
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/WEB-INF/applicationContext.xml?rev=1417978&r1=1417977&r2=1417978&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/WEB-INF/applicationContext.xml
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/WEB-INF/applicationContext.xml
Thu Dec 6 16:23:47 2012
@@ -21,7 +21,6 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:task="http://www.springframework.org/schema/task"
- xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
@@ -31,6 +30,8 @@
<context:property-placeholder location="classpath:application.properties"/>
+ <alias name="userConfiguration#archiva" alias="userConfiguration#default" />
+
<bean id="loggerManager"
class="org.codehaus.plexus.logging.slf4j.Slf4jLoggerManager"
init-method="initialize"/>
@@ -139,7 +140,7 @@
<alias name="userManager#archiva" alias="userManager#configurable"/>
<bean name="ldapConnectionFactory"
class="org.apache.archiva.redback.common.ldap.connection.ConfigurableLdapConnectionFactory">
- <property name="userConf" ref="userConfiguration"/>
+ <property name="userConf" ref="userConfiguration#default"/>
</bean>
<!-- <component>