dev@javaserverfaces.java.net

[Review] Fix for JSFRI 154

From: Jayashri Visvanathan <Jayashri.Visvanathan_at_Sun.COM>
Date: Tue, 02 Aug 2005 12:23:35 -0700

Fix for JSF RI Issue 154
M com/sun/faces/config/ManagedBeanFactory.java
  add a getter for managedBeanBean.

M com/sun/faces/el/ManagedBeanELResolver.java
  Apply the same logic used by ResourceBundleELResolver to get the
  locale. This is required for getDeatureDescriptor() to work correctly
  during design time.

M com/sun/faces/el/VariableResolverImpl.java
  remove redundant imports.


Index: com/sun/faces/config/ManagedBeanFactory.java
===================================================================
RCS file: /cvs/javaserverfaces-sources/jsf-ri/src/com/sun/faces/config/ManagedBeanFactory.java,v
retrieving revision 1.32
diff -u -r1.32 ManagedBeanFactory.java
--- com/sun/faces/config/ManagedBeanFactory.java 29 Jul 2005 17:42:21 -0000 1.32
+++ com/sun/faces/config/ManagedBeanFactory.java 2 Aug 2005 19:15:42 -0000
@@ -151,6 +151,10 @@
             scope = managedBean.getManagedBeanScope();
         }
     }
+
+ public ManagedBeanBean getManagedBeanBean() {
+ return this.managedBean;
+ }
 
     public Map getManagedBeanFactoryMap() {
         if (null == managedBeanFactoryMap) {
Index: com/sun/faces/el/ManagedBeanELResolver.java
===================================================================
RCS file: /cvs/javaserverfaces-sources/jsf-ri/src/com/sun/faces/el/ManagedBeanELResolver.java,v
retrieving revision 1.5
diff -u -r1.5 ManagedBeanELResolver.java
--- com/sun/faces/el/ManagedBeanELResolver.java 20 Jul 2005 17:03:53 -0000 1.5
+++ com/sun/faces/el/ManagedBeanELResolver.java 2 Aug 2005 19:15:42 -0000
@@ -12,6 +12,7 @@
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Locale;
 
 import javax.el.ELContext;
 import javax.el.ELException;
@@ -22,6 +23,9 @@
 
 import com.sun.faces.application.ApplicationAssociate;
 import com.sun.faces.config.ManagedBeanFactory;
+import com.sun.faces.config.beans.DescriptionBean;
+import com.sun.faces.config.beans.DisplayNameBean;
+import com.sun.faces.config.beans.ManagedBeanBean;
 import com.sun.faces.util.Util;
 
 public class ManagedBeanELResolver extends ELResolver {
@@ -127,19 +131,31 @@
         for (Iterator i = mbMap.entrySet().iterator(); i.hasNext(); ) {
             Map.Entry entry = (Map.Entry) i.next();
             String managedBeanName = (String) entry.getKey();
- ManagedBeanFactory managedBean = (ManagedBeanFactory)
+ ManagedBeanFactory managedBeanFactory = (ManagedBeanFactory)
                 entry.getValue();
+ ManagedBeanBean managedBean = managedBeanFactory.getManagedBeanBean();
+
             if ( managedBean != null) {
- String desc =
- managedBean.getBeanDescription((
- facesContext.getViewRoot().getLocale()).toString());
- if (desc == null) {
+ Locale curLocale = Util.getLocaleFromContextOrSystem(facesContext);
+ String locale = curLocale.toString();
+ DescriptionBean descBean = managedBean.getDescription(locale);
+ DisplayNameBean displayNameBean = managedBean.getDisplayName(locale);
+ String desc = "",
+ displayName = "";
+ descBean = (null != descBean) ? descBean :
+ managedBean.getDescription("");
+ if (null != descBean) {
                     // handle the case where the lang or xml:lang attributes
                     // are not specified on the description
- desc = managedBean.getBeanDescription("");
+ desc = descBean.getDescription();
+ }
+ displayNameBean = (null != displayNameBean) ? displayNameBean :
+ managedBean.getDisplayName("");
+ if (null != displayNameBean) {
+ displayName = displayNameBean.getDisplayName();
                 }
                 list.add(Util.getFeatureDescriptor(managedBeanName,
- managedBeanName, desc,false, false, true,
+ displayName, desc, false, false, true,
                     managedBean.getManagedBeanClass(), Boolean.TRUE));
             }
         }
Index: com/sun/faces/el/VariableResolverImpl.java
===================================================================
RCS file: /cvs/javaserverfaces-sources/jsf-ri/src/com/sun/faces/el/VariableResolverImpl.java,v
retrieving revision 1.23
diff -u -r1.23 VariableResolverImpl.java
--- com/sun/faces/el/VariableResolverImpl.java 18 May 2005 17:33:46 -0000 1.23
+++ com/sun/faces/el/VariableResolverImpl.java 2 Aug 2005 19:15:42 -0000
@@ -14,9 +14,6 @@
 import com.sun.faces.application.ApplicationAssociate;
 import com.sun.faces.el.ELConstants;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
 import javax.faces.context.ExternalContext;
 import javax.faces.context.FacesContext;
 import javax.faces.el.EvaluationException;
@@ -35,9 +32,6 @@
  */
 
 public class VariableResolverImpl extends VariableResolver {
-
- private static final Log log = LogFactory
- .getLog(VariableResolverImpl.class);
     
     private ELResolver elResolver = null;