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/03/20 01:00:29 UTC

svn commit: r925491 - /myfaces/core/branches/1.1.x/impl/src/main/java/org/apache/myfaces/config/ManagedBeanBuilder.java

Author: lu4242
Date: Sat Mar 20 00:00:28 2010
New Revision: 925491

URL: http://svn.apache.org/viewvc?rev=925491&view=rev
Log:
ORCHESTRA-50 Unresolved dependency of org.apache.commons.el.Logger

Modified:
    myfaces/core/branches/1.1.x/impl/src/main/java/org/apache/myfaces/config/ManagedBeanBuilder.java

Modified: myfaces/core/branches/1.1.x/impl/src/main/java/org/apache/myfaces/config/ManagedBeanBuilder.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/1.1.x/impl/src/main/java/org/apache/myfaces/config/ManagedBeanBuilder.java?rev=925491&r1=925490&r2=925491&view=diff
==============================================================================
--- myfaces/core/branches/1.1.x/impl/src/main/java/org/apache/myfaces/config/ManagedBeanBuilder.java (original)
+++ myfaces/core/branches/1.1.x/impl/src/main/java/org/apache/myfaces/config/ManagedBeanBuilder.java Sat Mar 20 00:00:28 2010
@@ -18,19 +18,34 @@
  */
 package org.apache.myfaces.config;
 
-import org.apache.myfaces.config.element.*;
-import org.apache.myfaces.shared_impl.util.ClassUtils;
-import org.apache.commons.beanutils.PropertyUtils;
+import java.lang.reflect.Array;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
 
 import javax.faces.FacesException;
 import javax.faces.application.Application;
-import javax.faces.context.FacesContext;
 import javax.faces.context.ExternalContext;
+import javax.faces.context.FacesContext;
 import javax.faces.el.PropertyResolver;
 import javax.faces.el.ValueBinding;
 import javax.faces.webapp.UIComponentTag;
-import java.util.*;
-import java.lang.reflect.Array;
+import javax.servlet.jsp.el.ELException;
+
+import org.apache.commons.beanutils.PropertyUtils;
+import org.apache.commons.el.Coercions;
+import org.apache.commons.el.Logger;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.myfaces.config.element.ListEntries;
+import org.apache.myfaces.config.element.ListEntry;
+import org.apache.myfaces.config.element.ManagedBean;
+import org.apache.myfaces.config.element.ManagedProperty;
+import org.apache.myfaces.config.element.MapEntries;
+import org.apache.myfaces.config.element.MapEntry;
+import org.apache.myfaces.shared_impl.util.ClassUtils;
 
 
 /**
@@ -42,7 +57,8 @@ import java.lang.reflect.Array;
 public class ManagedBeanBuilder
 {
     private RuntimeConfig _runtimeConfig;
-
+    private static final Logger COERCION_LOGGER   = new Logger(System.out);
+    private static final Log log                  = LogFactory.getLog(ManagedBeanBuilder.class);
 
     public Object buildManagedBean(FacesContext facesContext, ManagedBean beanConfiguration) throws FacesException
     {
@@ -185,7 +201,20 @@ public class ManagedBeanBuilder
             if(null == propertyClass) {
               throw new IllegalArgumentException("unable to find the type of property " + property.getPropertyName());
             }
-            Object coercedValue = ClassUtils.convertToType(value, propertyClass);
+            Object coercedValue = null;
+            try
+            {
+                coercedValue = (value == null) ? null : Coercions
+                        .coerce(value, propertyClass, COERCION_LOGGER);
+            }
+            catch (ELException e)
+            {
+                String message = "Cannot coerce "
+                        + value.getClass().getName() + " to "
+                        + propertyClass.getName();
+                log.error(message, e);
+                throw new FacesException(message, e);
+            }              
             propertyResolver.setValue(
                 bean, property.getPropertyName(), coercedValue);
         }
@@ -386,7 +415,21 @@ public class ManagedBeanBuilder
 
             if (entry.isNullValue())
             {
-                map.put(ClassUtils.convertToType(key, keyClass), null);
+                Object coercedKey = null;
+                try
+                {
+                    coercedKey = (key == null) ? null : Coercions
+                            .coerce(key, keyClass, COERCION_LOGGER);
+                }
+                catch (ELException e)
+                {
+                    String message = "Cannot coerce "
+                            + key.getClass().getName() + " to "
+                            + keyClass.getName();
+                    log.error(message, e);
+                    throw new FacesException(message, e);
+                }              
+                map.put(coercedKey, null);
             }
             else
             {
@@ -396,7 +439,35 @@ public class ManagedBeanBuilder
                     valueBinding = application.createValueBinding((String) value);
                     value = valueBinding.getValue(facesContext);
                 }
-                map.put(ClassUtils.convertToType(key, keyClass), ClassUtils.convertToType(value, valueClass));
+                Object coercedKey = null;
+                try
+                {
+                    coercedKey = (key == null) ? null : Coercions
+                            .coerce(key, keyClass, COERCION_LOGGER);
+                }
+                catch (ELException e)
+                {
+                    String message = "Cannot coerce "
+                            + key.getClass().getName() + " to "
+                            + keyClass.getName();
+                    log.error(message, e);
+                    throw new FacesException(message, e);
+                }              
+                Object coercedValue = null;
+                try
+                {
+                    coercedValue = (value == null) ? null : Coercions
+                            .coerce(value, valueClass, COERCION_LOGGER);
+                }
+                catch (ELException e)
+                {
+                    String message = "Cannot coerce "
+                            + value.getClass().getName() + " to "
+                            + valueClass.getName();
+                    log.error(message, e);
+                    throw new FacesException(message, e);
+                }                 
+                map.put(coercedKey, coercedValue);
             }
         }
     }
@@ -423,7 +494,21 @@ public class ManagedBeanBuilder
                     valueBinding = application.createValueBinding((String) value);
                     value = valueBinding.getValue(facesContext);
                 }
-                list.add(ClassUtils.convertToType(value, valueClass));
+                Object coercedValue = null;
+                try
+                {
+                    coercedValue = (value == null) ? null : Coercions
+                            .coerce(value, valueClass, COERCION_LOGGER);
+                }
+                catch (ELException e)
+                {
+                    String message = "Cannot coerce "
+                            + value.getClass().getName() + " to "
+                            + valueClass.getName();
+                    log.error(message, e);
+                    throw new FacesException(message, e);
+                }                 
+                list.add(coercedValue);
             }
         }
     }