You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by we...@apache.org on 2010/03/23 11:44:03 UTC

svn commit: r926524 - in /myfaces/extensions/scripting/trunk: core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/ examples/myfaces20-example/src/main/webapp/ examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/a...

Author: werpu
Date: Tue Mar 23 10:44:03 2010
New Revision: 926524

URL: http://svn.apache.org/viewvc?rev=926524&view=rev
Log:
https://issues.apache.org/jira/browse/EXTSCRIPT-97

fixed

Modified:
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BeanImplementationListener.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/instantbean/HelloBean.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/helloWorld2.xhtml

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BeanImplementationListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BeanImplementationListener.java?rev=926524&r1=926523&r2=926524&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BeanImplementationListener.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BeanImplementationListener.java Tue Mar 23 10:44:03 2010
@@ -18,6 +18,7 @@
  */
 package org.apache.myfaces.scripting.jsf2.annotation;
 
+import org.apache.commons.lang.StringUtils;
 import org.apache.myfaces.config.RuntimeConfig;
 import org.apache.myfaces.config.element.NavigationRule;
 import org.apache.myfaces.config.impl.digester.elements.ManagedBean;
@@ -54,7 +55,6 @@ public class BeanImplementationListener 
         return annotation.equals(javax.faces.bean.ManagedBean.class);
     }
 
-
     public void register(Class clazz, java.lang.annotation.Annotation ann) {
         String annotationName = ann.getClass().getName();
 
@@ -63,6 +63,9 @@ public class BeanImplementationListener 
         javax.faces.bean.ManagedBean annCasted = (javax.faces.bean.ManagedBean) ann;
 
         String beanName = annCasted.name();
+        if (StringUtils.isBlank(beanName)) {
+            beanName = normalizeName(clazz.getName());
+        }
 
         beanName = beanName.replaceAll("\"", "");
         //we need to reregister for every bean due to possible managed prop
@@ -105,13 +108,13 @@ public class BeanImplementationListener 
     private void handleManagedpropertiesCompiled(ManagedBean mbean, Field[] fields) {
         for (Field field : fields) {
             if (log.isLoggable(Level.FINEST)) {
-                log.log(Level.FINEST,"  Scanning field '" + field.getName() + "'");
+                log.log(Level.FINEST, "  Scanning field '" + field.getName() + "'");
             }
             javax.faces.bean.ManagedProperty property = (javax.faces.bean.ManagedProperty) field
                     .getAnnotation(javax.faces.bean.ManagedProperty.class);
             if (property != null) {
                 if (log.isLoggable(Level.FINE)) {
-                    log.log(Level.FINE,"  Field '" + field.getName()
+                    log.log(Level.FINE, "  Field '" + field.getName()
                             + "' has a @ManagedProperty annotation");
                 }
 
@@ -156,6 +159,19 @@ public class BeanImplementationListener 
         return mbean == null || !mbean.getManagedBeanClassName().equals(clazz.getName());
     }
 
+    /**
+     * name normalizer for automated name mapping
+     * (aka if no name attribute is given in the annotation)
+     *
+     * @param className the classname to be mapped (can be with package=
+     * @return the normalized jsf bean name
+     */
+    private String normalizeName(String className) {
+        String name = className.substring(className.lastIndexOf(".") + 1);
+
+        return name.substring(0, 1).toLowerCase() + name.substring(1);
+    }
+
     @SuppressWarnings("unchecked")
     public void purge(String className) {
         RuntimeConfig config = getRuntimeConfig();

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/instantbean/HelloBean.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/instantbean/HelloBean.java?rev=926524&r1=926523&r2=926524&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/instantbean/HelloBean.java (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/instantbean/HelloBean.java Tue Mar 23 10:44:03 2010
@@ -27,7 +27,7 @@ import javax.faces.bean.RequestScoped;
  * @version $Revision$ $Date$
  */
 
-@ManagedBean(name="hello")
+@ManagedBean
 @RequestScoped
 public class HelloBean {
     private String hello = "Hello world from an instant bean";
@@ -37,7 +37,7 @@ public class HelloBean {
     }
 
     public String getHello() {
-        return hello + addedMethod();
+        return hello;
     }
 
     public void setHello(String hello) {

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/helloWorld2.xhtml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/helloWorld2.xhtml?rev=926524&r1=926523&r2=926524&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/helloWorld2.xhtml (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/helloWorld2.xhtml Tue Mar 23 10:44:03 2010
@@ -10,7 +10,7 @@
 <ui:composition template="/template.xhtml">
     <ui:define name="body">
         <h1 style="color: yellow;">
-           <h:outputText value="#{hello.hello}" />  
+           <h:outputText value="#{helloBean.hello}" />  
         </h1>
     </ui:define>
 </ui:composition>