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 2009/10/27 08:26:25 UTC

svn commit: r830083 - in /myfaces/extensions/scripting/trunk: core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/...

Author: werpu
Date: Tue Oct 27 07:26:24 2009
New Revision: 830083

URL: http://svn.apache.org/viewvc?rev=830083&view=rev
Log:
https://issues.apache.org/jira/browse/EXTSCRIPT-26
converters and validators now working with annotations

Modified:
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/ConverterImplementationListener.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator1.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator2.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/helloWorld.xhtml

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java?rev=830083&r1=830082&r2=830083&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ApplicationProxy.java Tue Oct 27 07:26:24 2009
@@ -216,6 +216,7 @@
         weaveDelegate();
         //defined in the setter to speed things up a little
         NavigationHandler retVal = _delegate.getNavigationHandler();
+        //TODO add annotatiom support for the navigation handler as well
         if (retVal != null && ProxyUtils.isDynamic(retVal.getClass()))
             retVal = new NavigationHandlerProxy(retVal);
         return retVal;
@@ -223,6 +224,7 @@
 
     public void setNavigationHandler(NavigationHandler navigationHandler) {
         weaveDelegate();
+        //TODO add annotatiom support for the navigation handler as well
         if (navigationHandler != null && ProxyUtils.isDynamic(navigationHandler.getClass()))
             navigationHandler = new NavigationHandlerProxy(navigationHandler);
         _delegate.setNavigationHandler(navigationHandler);
@@ -346,7 +348,7 @@
             ProxyUtils.getWeaver().fullAnnotationScan();
             Converter componentToChange = _delegate.createConverter(converterId);
             if (componentToChange instanceof PurgedConverter) {
-                //Null not allowed here, but we set a purted validator to make
+                //Null not allowed here, but we set a purted converter to make
                 //sure that we get errors on the proper level
                 _delegate.addConverter(converterId, PurgedConverter.class.getName());
                 throw new FacesException(ERR_CONV_ANN_MOVED);

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/ConverterImplementationListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/ConverterImplementationListener.java?rev=830083&r1=830082&r2=830083&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/ConverterImplementationListener.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/ConverterImplementationListener.java Tue Oct 27 07:26:24 2009
@@ -48,21 +48,32 @@
         }
 
         public boolean equals(Object incoming) {
-            if (!(incoming instanceof AnnotationEntry)) {
+             if (!(incoming instanceof AnnotationEntry)) {
                 return false;
             }
             AnnotationEntry toCompare = (AnnotationEntry) incoming;
-            //handle null cases
-            if ((value == null && toCompare.getValue() != null) ||
-                (value != null && toCompare.getValue() == null) ||
-                (forClass == null && toCompare.getForClass() != null) ||
-                (forClass != null && toCompare.getForClass() == null)) {
+
+            if(incoming == null) {
                 return false;
-            } else if (value == null && toCompare.getValue() == null && forClass == null && toCompare.getForClass() == null) {
-                return true;
             }
 
-            return value.equals(toCompare.getValue()) && forClass.equals(toCompare.getValue());
+            boolean firstEquals = compareValuePair( value, toCompare.getValue());
+            boolean secondEquals = compareValuePair( forClass, toCompare.getForClass());
+
+            return firstEquals && secondEquals;
+        }
+
+        protected boolean compareValuePair(Object val1, Object val2) {
+            boolean retVal = false;
+            if(val1 == null ) {
+                if(val2 != null) retVal = false;
+                if(val2 == null) {
+                    retVal = true;
+                }
+            } else {
+                retVal = val1.equals(val2);
+            }
+            return retVal;
         }
 
         public String getValue() {

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator1.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator1.java?rev=830083&r1=830082&r2=830083&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator1.java (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator1.java Tue Oct 27 07:26:24 2009
@@ -31,7 +31,6 @@
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
  */
-
 @FacesValidator(value = "at.irian.CustomValidator")
 public class TestValidator1 implements Validator {
     public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator2.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator2.java?rev=830083&r1=830082&r2=830083&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator2.java (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator2.java Tue Oct 27 07:26:24 2009
@@ -25,12 +25,12 @@
 import javax.faces.component.UIComponent;
 import javax.faces.validator.ValidatorException;
 import javax.faces.validator.Validator;
+import javax.faces.validator.FacesValidator;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
  */
-
 public class TestValidator2 implements Validator {
     public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
         Log log = LogFactory.getLog(TestValidator1.class);

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/helloWorld.xhtml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/helloWorld.xhtml?rev=830083&r1=830082&r2=830083&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/helloWorld.xhtml (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/helloWorld.xhtml Tue Oct 27 07:26:24 2009
@@ -24,6 +24,7 @@
                 converter:
                 <h:inputText>
                     <grv:testConverter1 />
+                    <grv:testValidator1 />
                 </h:inputText>
                 <h:commandButton value = "Press me dynamic" action = "#{testbean.doit}" />
                  <grv:testcomponent2 />