Author: olamy
Date: Fri Dec  7 15:04:08 2012
New Revision: 1418347

URL: http://svn.apache.org/viewvc?rev=1418347&view=rev
Log:
fix bean mapping BeanReplicator does not replicate automatically object field

Modified:
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/LdapConfiguration.java
    
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/js/archiva/general-admin.js

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java?rev=1418347&r1=1418346&r2=1418347&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/ArchivaRuntimeConfiguration.java
 Fri Dec  7 15:04:08 2012
@@ -20,14 +20,16 @@ package org.apache.archiva.admin.model.b
 
 import javax.xml.bind.annotation.XmlRootElement;
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
  * @author Olivier Lamy
  * @since 1.4-M4
  */
-@XmlRootElement(name = "redbackRuntimeConfiguration")
+@XmlRootElement( name = "redbackRuntimeConfiguration" )
 public class ArchivaRuntimeConfiguration
     implements Serializable
 {
@@ -42,6 +44,11 @@ public class ArchivaRuntimeConfiguration
 
     private Map<String, String> configurationProperties;
 
+    /**
+     * field to ease json mapping wrapper on 
<code>configurationProperties</code> field
+     */
+    private List<PropertyEntry> configurationPropertiesEntries;
+
     public ArchivaRuntimeConfiguration()
     {
         // no op
@@ -91,6 +98,29 @@ public class ArchivaRuntimeConfiguration
         this.configurationProperties = configurationProperties;
     }
 
+    public List<PropertyEntry> getConfigurationPropertiesEntries()
+    {
+        configurationPropertiesEntries = new ArrayList<PropertyEntry>( 
getConfigurationProperties().size() );
+        for ( Map.Entry<String, String> entry : 
getConfigurationProperties().entrySet() )
+        {
+            configurationPropertiesEntries.add( new PropertyEntry( 
entry.getKey(), entry.getValue() ) );
+        }
+        return configurationPropertiesEntries;
+    }
+
+    public void setConfigurationPropertiesEntries( List<PropertyEntry> 
configurationPropertiesEntries )
+    {
+        this.configurationPropertiesEntries = configurationPropertiesEntries;
+        if ( configurationPropertiesEntries != null )
+        {
+            this.configurationProperties = new HashMap<String, String>( 
configurationPropertiesEntries.size() );
+            for ( PropertyEntry propertyEntry : configurationPropertiesEntries 
)
+            {
+                this.configurationProperties.put( propertyEntry.getKey(), 
propertyEntry.getValue() );
+            }
+        }
+    }
+
     @Override
     public String toString()
     {

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/LdapConfiguration.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/LdapConfiguration.java?rev=1418347&r1=1418346&r2=1418347&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/LdapConfiguration.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-api/src/main/java/org/apache/archiva/admin/model/beans/LdapConfiguration.java
 Fri Dec  7 15:04:08 2012
@@ -19,7 +19,9 @@ package org.apache.archiva.admin.model.b
  */
 
 import javax.xml.bind.annotation.XmlRootElement;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -81,6 +83,11 @@ public class LdapConfiguration
      */
     private Map<String, String> extraProperties = new HashMap<String, 
String>();
 
+    /**
+     * field to ease json mapping wrapper on <code>extraProperties</code> field
+     */
+    private List<PropertyEntry> extraPropertiesEntries;
+
     public LdapConfiguration()
     {
         // no op
@@ -185,4 +192,26 @@ public class LdapConfiguration
     {
         this.bindAuthenticatorEnabled = bindAuthenticatorEnabled;
     }
+
+    public List<PropertyEntry> getExtraPropertiesEntries()
+    {
+        extraPropertiesEntries = new ArrayList<PropertyEntry>( 
getExtraProperties().size() );
+        for ( Map.Entry<String, String> entry : 
getExtraProperties().entrySet() )
+        {
+            extraPropertiesEntries.add( new PropertyEntry( entry.getKey(), 
entry.getValue() ) );
+        }
+        return extraPropertiesEntries;
+    }
+
+    public void setExtraPropertiesEntries( List<PropertyEntry> 
extraPropertiesEntries )
+    {
+        this.extraPropertiesEntries = extraPropertiesEntries;
+        if ( extraPropertiesEntries != null )
+        {
+            for ( PropertyEntry propertyEntry : extraPropertiesEntries )
+            {
+                this.extraProperties.put( propertyEntry.getKey(), 
propertyEntry.getValue() );
+            }
+        }
+    }
 }

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=1418347&r1=1418346&r2=1418347&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
 Fri Dec  7 15:04:08 2012
@@ -142,6 +142,13 @@ public class DefaultArchivaRuntimeConfig
         ArchivaRuntimeConfiguration archivaRuntimeConfiguration =
             new BeanReplicator().replicateBean( runtimeConfiguration, 
ArchivaRuntimeConfiguration.class );
 
+        if ( runtimeConfiguration.getLdapConfiguration() != null )
+        {
+            archivaRuntimeConfiguration.setLdapConfiguration(
+                new BeanReplicator().replicateBean( 
runtimeConfiguration.getLdapConfiguration(),
+                                                    LdapConfiguration.class ) 
);
+        }
+
         if ( archivaRuntimeConfiguration.getLdapConfiguration() == null )
         {
             // prevent NPE

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/general-admin.js
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/general-admin.js?rev=1418347&r1=1418346&r2=1418347&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/general-admin.js
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/general-admin.js
 Fri Dec  7 15:04:08 2012
@@ -1151,28 +1151,28 @@ define("archiva.general-admin",["jquery"
   }
 
 
-  
ArchivaRuntimeConfiguration=function(userManagerImpl,archivaLdapConfiguration,migratedFromRedbackConfiguration,configurationProperties){
+  
ArchivaRuntimeConfiguration=function(userManagerImpl,ldapConfiguration,migratedFromRedbackConfiguration,configurationPropertiesEntries){
     this.userManagerImpl=ko.observable(userManagerImpl);
-    this.archivaLdapConfiguration=ko.observable(archivaLdapConfiguration);
+    this.ldapConfiguration=ko.observable(ldapConfiguration);
     
this.migratedFromRedbackConfiguration=ko.observable(migratedFromRedbackConfiguration);
-    
this.configurationProperties=ko.observableArray(configurationProperties?configurationProperties:[]);
+    
this.configurationPropertiesEntries=ko.observableArray(configurationPropertiesEntries?configurationPropertiesEntries:[]);
   }
 
   mapArchivaRuntimeConfiguration=function(data){
 
-    var configurationProperties = data.configurationProperties == null ? []: 
$.each(data.configurationProperties,function(item){
+    var configurationPropertiesEntries = data.configurationPropertiesEntries 
== null ? []: $.each(data.configurationPropertiesEntries,function(item){
       return new Entry(item.key, item.value);
     });
-    if (!$.isArray(configurationProperties)){
-        configurationProperties=[];
+    if (!$.isArray(configurationPropertiesEntries)){
+        configurationPropertiesEntries=[];
     }
 
     return new 
ArchivaRuntimeConfiguration(data.userManagerImpl,mapLdapConfiguration(data.ldapConfiguration),data.migratedFromRedbackConfiguration,
-                                           configurationProperties);
+                                           configurationPropertiesEntries);
   }
 
   
LdapConfiguration=function(hostName,port,ssl,baseDn,contextFactory,bindDn,password,authenticationMethod,
-                                    extraProperties){
+                             extraPropertiesEntries){
     //private String hostName;
     this.hostName=ko.observable(hostName);
 
@@ -1197,20 +1197,19 @@ define("archiva.general-admin",["jquery"
     //private String authenticationMethod;
     this.authenticationMethod=ko.observable(authenticationMethod);
 
-    //private Map<String, String> extraProperties = new HashMap<String, 
String>();
-    this.extraProperties=ko.observableArray(extraProperties);
+    this.extraPropertiesEntries=ko.observableArray(extraPropertiesEntries);
   }
 
   mapLdapConfiguration=function(data){
       if(data){
-        var extraProperties = data.extraProperties == null ? []: 
$.each(data.extraProperties,function(item){
+        var extraPropertiesEntries = data.extraPropertiesEntries == null ? []: 
$.each(data.extraPropertiesEntries,function(item){
             return new Entry(item.key, item.value);
         });
-        if (!$.isArray(extraProperties)){
-            extraProperties=[];
+        if (!$.isArray(extraPropertiesEntries)){
+            extraPropertiesEntries=[];
         }
-        return new 
ArchivaLdapConfiguration(data.hostName,data.port,data.ssl,data.baseDn,data.contextFactory,data.bindDn,data.password,
-                                    data.authenticationMethod,extraProperties);
+        return new 
LdapConfiguration(data.hostName,data.port,data.ssl,data.baseDn,data.contextFactory,data.bindDn,data.password,
+                                    
data.authenticationMethod,extraPropertiesEntries);
       }
       return null;
   }


Reply via email to