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>


Reply via email to