You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2010/09/24 02:42:09 UTC

svn commit: r1000676 - in /myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces: application/ApplicationImpl.java config/FacesConfigurator.java config/RuntimeConfig.java

Author: lu4242
Date: Fri Sep 24 00:42:08 2010
New Revision: 1000676

URL: http://svn.apache.org/viewvc?rev=1000676&view=rev
Log:
MYFACES-2928 FacesConfigurator cast for ApplicationImpl directly to load converter configuration, instead use RuntimeConfig object

Modified:
    myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java
    myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java
    myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/config/RuntimeConfig.java

Modified: myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java?rev=1000676&r1=1000675&r2=1000676&view=diff
==============================================================================
--- myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java (original)
+++ myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/application/ApplicationImpl.java Fri Sep 24 00:42:08 2010
@@ -113,7 +113,6 @@ public class ApplicationImpl extends App
     // synchronize, uses ConcurrentHashMap to allow concurrent read of map
     private final Map<String, Class> _converterIdToClassMap = new ConcurrentHashMap<String, Class>();
     private final Map<Class, String> _converterClassNameToClassMap = new ConcurrentHashMap<Class, String>();
-    private final Map<String, org.apache.myfaces.config.impl.digester.elements.Converter> _converterClassNameToConfigurationMap = new ConcurrentHashMap<String, org.apache.myfaces.config.impl.digester.elements.Converter>();
     private final Map<String, Class> _componentClassMap = new ConcurrentHashMap<String, Class>();
     private final Map<String, Class> _validatorClassMap = new ConcurrentHashMap<String, Class>();
 
@@ -621,16 +620,6 @@ public class ApplicationImpl extends App
         }
     }
 
-    public final void addConverterConfiguration(final String converterClassName,
-            final org.apache.myfaces.config.impl.digester.elements.Converter configuration)
-    {
-        checkNull(converterClassName, "converterClassName");
-        checkEmpty(converterClassName, "converterClassName");
-        checkNull(configuration, "configuration");
-
-        _converterClassNameToConfigurationMap.put(converterClassName, configuration);
-    }
-
     @Override
     public final void addValidator(final String validatorId, final String validatorClass)
     {
@@ -882,8 +871,8 @@ public class ApplicationImpl extends App
 
     private void setConverterProperties(final Class converterClass, final Converter converter)
     {
-        final org.apache.myfaces.config.impl.digester.elements.Converter converterConfig = _converterClassNameToConfigurationMap
-                .get(converterClass.getName());
+        final org.apache.myfaces.config.impl.digester.elements.Converter converterConfig = _runtimeConfig
+                .getConverterConfiguration(converterClass.getName());
 
         if (converterConfig != null)
         {

Modified: myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java?rev=1000676&r1=1000675&r2=1000676&view=diff
==============================================================================
--- myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java (original)
+++ myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java Fri Sep 24 00:42:08 2010
@@ -821,17 +821,6 @@ public class FacesConfigurator
             }
         }
 
-        if (application instanceof ApplicationImpl)
-        {
-            for (Iterator it = dispenser.getConverterConfigurationByClassName(); it.hasNext();)
-            {
-                String converterClassName = (String) it.next();
-
-                ((ApplicationImpl) application).addConverterConfiguration(converterClassName, dispenser
-                        .getConverterConfiguration(converterClassName));
-            }
-        }
-
         for (Iterator it = dispenser.getValidatorIds(); it.hasNext();)
         {
             String validatorId = (String) it.next();
@@ -946,6 +935,14 @@ public class FacesConfigurator
 
         }
 
+        for (Iterator<String> it = _dispenser.getConverterConfigurationByClassName(); it.hasNext();)
+        {
+            String converterClassName = (String) it.next();
+
+            runtimeConfig.addConverterConfiguration(converterClassName,
+                                                                      _dispenser.getConverterConfiguration(converterClassName));
+        }
+
         for (Iterator<ResourceBundle> iter = dispenser.getResourceBundles(); iter.hasNext();)
         {
             runtimeConfig.addResourceBundle(iter.next());

Modified: myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/config/RuntimeConfig.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/config/RuntimeConfig.java?rev=1000676&r1=1000675&r2=1000676&view=diff
==============================================================================
--- myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/config/RuntimeConfig.java (original)
+++ myfaces/core/branches/1.2.x/impl/src/main/java/org/apache/myfaces/config/RuntimeConfig.java Fri Sep 24 00:42:08 2010
@@ -18,9 +18,14 @@
  */
 package org.apache.myfaces.config;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
-import javax.el.CompositeELResolver;
 import javax.el.ELResolver;
 import javax.el.ExpressionFactory;
 import javax.faces.context.ExternalContext;
@@ -66,6 +71,9 @@ public class RuntimeConfig
 
     private VariableResolver _variableResolverChainHead;
 
+    private final Map<String, org.apache.myfaces.config.impl.digester.elements.Converter> _converterClassNameToConfigurationMap =
+        new ConcurrentHashMap<String, org.apache.myfaces.config.impl.digester.elements.Converter>();
+
     public static RuntimeConfig getCurrentInstance(ExternalContext externalContext)
     {
         RuntimeConfig runtimeConfig = (RuntimeConfig) externalContext.getApplicationMap().get(
@@ -85,6 +93,7 @@ public class RuntimeConfig
         _oldManagedBeans.putAll(_managedBeans);
         _managedBeans.clear();
         _navigationRulesChanged = false;
+        _converterClassNameToConfigurationMap.clear();
     }
 
     /**
@@ -136,6 +145,38 @@ public class RuntimeConfig
             _oldManagedBeans.remove(name);
     }
 
+    
+    public final void addConverterConfiguration(final String converterClassName,
+            final org.apache.myfaces.config.impl.digester.elements.Converter configuration)
+    {
+        checkNull(converterClassName, "converterClassName");
+        checkEmpty(converterClassName, "converterClassName");
+        checkNull(configuration, "configuration");
+
+        _converterClassNameToConfigurationMap.put(converterClassName, configuration);
+    }
+    
+    public org.apache.myfaces.config.impl.digester.elements.Converter getConverterConfiguration(String converterClassName)
+    {
+        return (org.apache.myfaces.config.impl.digester.elements.Converter)_converterClassNameToConfigurationMap.get(converterClassName);
+    }
+    
+    private void checkNull(final Object param, final String paramName)
+    {
+        if (param == null)
+        {
+            throw new NullPointerException(paramName + " can not be null.");
+        }
+    }
+
+    private void checkEmpty(final String param, final String paramName)
+    {
+        if (param.length() == 0)
+        {
+            throw new NullPointerException("String " + paramName + " can not be empty.");
+        }
+    }
+
     /**
      * Return the resourcebundle which was configured in faces config by var name
      *