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/22 17:37:16 UTC

svn commit: r828753 - in /myfaces/extensions/scripting/trunk: core/core/src/main/java/org/apache/myfaces/scripting/core/util/ core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf/dynamicdecorators/implemetations/ core/myfaces2-extens...

Author: werpu
Date: Thu Oct 22 15:37:15 2009
New Revision: 828753

URL: http://svn.apache.org/viewvc?rev=828753&view=rev
Log:
converter now working
	new file:   examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestConverter1.java
	new file:   examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestConverter2.java
	new file:   examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator1.java
	new file:   examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator2.java
	modified:   examples/myfaces20-example/src/main/webapp/helloWorld.xhtml

Added:
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestConverter1.java
      - copied, changed from r826714, myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestConverter2.java
      - copied, changed from r826714, myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator1.java
      - copied, changed from r826714, myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator2.java
      - copied, changed from r826714, myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java
Modified:
    myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ProxyUtils.java
    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/BaseAnnotationScanListener.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/ConverterImplementationListener.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/RendererImplementationListener.java
    myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/ValidatorImplementationListener.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy-taglib.xml
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java
    myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/helloWorld.xhtml

Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ProxyUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ProxyUtils.java?rev=828753&r1=828752&r2=828753&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ProxyUtils.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/ProxyUtils.java Thu Oct 22 15:37:15 2009
@@ -140,6 +140,9 @@
      * @return the unproxied object
      */
     public static Object getDelegateFromProxy(Object o) {
+        if(o == null) {
+            return null;
+        }
         if (o instanceof Decorated)
             return ((Decorated) o).getDelegate();
 

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=828753&r1=828752&r2=828753&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 Thu Oct 22 15:37:15 2009
@@ -23,6 +23,8 @@
 import org.apache.myfaces.scripting.core.util.ProxyUtils;
 import org.apache.myfaces.scripting.jsf2.annotation.purged.PurgedResourceHandler;
 import org.apache.myfaces.scripting.jsf2.annotation.purged.PurgedComponent;
+import org.apache.myfaces.scripting.jsf2.annotation.purged.PurgedValidator;
+import org.apache.myfaces.scripting.jsf2.annotation.purged.PurgedConverter;
 
 import javax.el.*;
 import javax.faces.FacesException;
@@ -45,7 +47,7 @@
  * which should resolve our bean issues within a central
  * bean processing interceptor
  * <p/>
- *
+ * <p/>
  * TODO at component reload via annotations the component family is lost
  * locate where it is and then add the family handling here
  * so that it is set again!
@@ -56,6 +58,9 @@
 public class ApplicationProxy extends Application implements Decorated {
 
     Application _delegate = null;
+    private static final String ERR_CONV_ANN_MOVED = "Converter annotation moved but target was not found";
+    private static final String ERR_ANN_VAL_MOVED = "Annotation on validator removed but no replacement found";
+    private static final String ERR_ANN_COMP_MOVED = "Annotation on component removed but no replacement found";
 
     public ApplicationProxy(Application delegate) {
         _delegate = delegate;
@@ -64,7 +69,7 @@
 
     public void addELResolver(ELResolver elResolver) {
         weaveDelegate();
-        //TODO this can be problematic if several libraries add their own proxies
+        //This can be problematic if several libraries add their own proxies
         // that way then might get get a cyclic stack
         //under normal circumstances this should not happen
         //because addElResolver is called once and getElResolver
@@ -328,6 +333,19 @@
 
     public void addConverter(String converterId, String converterClass) {
         weaveDelegate();
+        if (converterClass.equals(PurgedConverter.class.getName())) {
+            //purged case we do a full rescane
+            ProxyUtils.getWeaver().fullAnnotationScan();
+            Converter componentToChange = _delegate.createConverter(converterId);
+            if (componentToChange instanceof PurgedConverter) {
+                //Null not allowed here, but we set a purted validator to make
+                //sure that we get errors on the proper level
+                _delegate.addConverter(converterId, PurgedConverter.class.getName());
+                throw new FacesException(ERR_CONV_ANN_MOVED);
+            }
+            return;
+        }
+
         _delegate.addConverter(converterId, converterClass);
     }
 
@@ -391,15 +409,27 @@
         _delegate.setSupportedLocales(locales);
     }
 
-    public void addValidator(String s, String s1) {
+    public void addValidator(String validatorId, String validatorClass) {
         weaveDelegate();
-        _delegate.addValidator(s, s1);
+        if (validatorClass.equals(PurgedValidator.class.getName())) {
+            //purged case we do a full rescane
+            ProxyUtils.getWeaver().fullAnnotationScan();
+            Validator componentToChange = _delegate.createValidator(validatorId);
+            if (componentToChange instanceof PurgedValidator) {
+                //Null not allowed here, but we set a purted validator to make
+                //sure that we get errors on the proper level
+                _delegate.addValidator(validatorId, PurgedValidator.class.getName());
+                throw new FacesException(ERR_ANN_VAL_MOVED);
+            }
+            return;
+        }
+        _delegate.addValidator(validatorId, validatorClass);
     }
 
-    public Validator createValidator(String s) throws FacesException {
+    public Validator createValidator(String validatorId) throws FacesException {
         weaveDelegate();
 
-        Validator retVal = _delegate.createValidator(s);
+        Validator retVal = _delegate.createValidator(validatorId);
         if (ProxyUtils.isDynamic(retVal.getClass()) && !Proxy.isProxyClass(retVal.getClass())) {
             retVal = (Validator) ProxyUtils.createMethodReloadingProxyFromObject(retVal, Validator.class);
         }
@@ -637,7 +667,7 @@
             //was registered after the reload because the annotation has been removed
             componentToChange = _delegate.createComponent(valueExpression, facesContext, s);
             if (componentToChange instanceof PurgedComponent) {
-                throw new FacesException("Annotation on component removed but no replacement found");
+                throw new FacesException(ERR_ANN_COMP_MOVED);
             }
             return componentToChange;
         }
@@ -653,7 +683,7 @@
             //was registered after the reload because the annotation has been removed
             componentToChange = _delegate.createComponent(componentType);
             if (componentToChange instanceof PurgedComponent) {
-                throw new FacesException("Annotation on component removed but no replacement found");
+                throw new FacesException(ERR_ANN_COMP_MOVED);
             }
             return componentToChange;
         }
@@ -668,7 +698,7 @@
             //was registered after the reload because the annotation has been removed
             componentToChange = _delegate.createComponent(valueBinding, context, componentType);
             if (componentToChange instanceof PurgedComponent) {
-                throw new FacesException("Annotation on component removed but no replacement found");
+                throw new FacesException(ERR_ANN_COMP_MOVED);
             }
             return componentToChange;
         }
@@ -683,7 +713,7 @@
             //was registered after the reload because the annotation has been removed
             componentToChange = _delegate.createComponent(context, resource);
             if (componentToChange instanceof PurgedComponent) {
-                throw new FacesException("Annotation on component removed but no replacement found");
+                throw new FacesException(ERR_ANN_COMP_MOVED);
             }
             return componentToChange;
         }
@@ -698,7 +728,7 @@
             //was registered after the reload because the annotation has been removed
             componentToChange = _delegate.createComponent(context, componentType, rendererType);
             if (componentToChange instanceof PurgedComponent) {
-                throw new FacesException("Annotation on component removed but no replacement found");
+                throw new FacesException(ERR_ANN_COMP_MOVED);
             }
             return componentToChange;
         }
@@ -716,7 +746,7 @@
 
             componentToChange = _delegate.createComponent(valueExpression, facesContext, s, s1);
             if (componentToChange instanceof PurgedComponent) {
-                throw new FacesException("Annotation on component removed but no replacement found");
+                throw new FacesException(ERR_ANN_COMP_MOVED);
             }
             return componentToChange;
         }

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BaseAnnotationScanListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BaseAnnotationScanListener.java?rev=828753&r1=828752&r2=828753&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BaseAnnotationScanListener.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/BaseAnnotationScanListener.java Thu Oct 22 15:37:15 2009
@@ -67,12 +67,14 @@
 
     protected Boolean getAnnotatedBolleanParam(Map<String, Object> propMap, String key) {
         AnnotationConstant propVal = (AnnotationConstant) propMap.get(key);
+        if(propVal == null) return null;
         Boolean val = (Boolean) propVal.getParameterValue();
         return val;
     }
 
     protected Class getAnnotatedClassParam(Map<String, Object> propMap, String key) {
         AnnotationConstant propVal = (AnnotationConstant) propMap.get(key);
+        if(propVal == null) return null;
         Class val = (Class) propVal.getParameterValue();
         return val;
     }

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=828753&r1=828752&r2=828753&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 Thu Oct 22 15:37:15 2009
@@ -86,7 +86,7 @@
         AnnotationEntry entry = new AnnotationEntry(value, forClass);
         _alreadyRegistered.put(clazz.getName(), entry);
 
-        getApplication().addValidator(entry.getValue(), clazz.getName());
+        getApplication().addConverter(entry.getValue(), clazz.getName());
     }
 
     @Override
@@ -97,7 +97,7 @@
         AnnotationEntry entry = new AnnotationEntry(value, forClass);
         _alreadyRegistered.put(clazz.getFullyQualifiedName(), entry);
 
-        getApplication().addValidator(entry.getValue(), clazz.getFullyQualifiedName());
+        getApplication().addConverter(entry.getValue(), clazz.getFullyQualifiedName());
     }
 
     @Override
@@ -142,8 +142,8 @@
             return;
         }
 
-        Application renderKit = getApplication();
-        renderKit.addConverter(entry.getValue(), PurgedConverter.class.getName());
+        Application application = getApplication();
+        application.addConverter(entry.getValue(), PurgedConverter.class.getName());
     }
 
 }

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/RendererImplementationListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/RendererImplementationListener.java?rev=828753&r1=828752&r2=828753&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/RendererImplementationListener.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/RendererImplementationListener.java Thu Oct 22 15:37:15 2009
@@ -20,10 +20,7 @@
 
 import com.thoughtworks.qdox.model.JavaClass;
 import org.apache.myfaces.scripting.api.AnnotationScanListener;
-import org.apache.myfaces.scripting.api.ScriptingWeaver;
-import org.apache.myfaces.scripting.core.util.ClassUtils;
 import org.apache.myfaces.scripting.core.util.ProxyUtils;
-import org.apache.myfaces.scripting.jsf2.annotation.purged.PurgedComponent;
 import org.apache.myfaces.scripting.jsf2.annotation.purged.PurgedRenderer;
 
 import javax.faces.FactoryFinder;
@@ -33,8 +30,6 @@
 import javax.faces.render.RenderKitFactory;
 import javax.faces.render.Renderer;
 import java.util.Map;
-import java.util.Iterator;
-import java.util.HashMap;
 
 /**
  * @author Werner Punz (latest modification by $Author$)

Modified: myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/ValidatorImplementationListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/ValidatorImplementationListener.java?rev=828753&r1=828752&r2=828753&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/ValidatorImplementationListener.java (original)
+++ myfaces/extensions/scripting/trunk/core/myfaces2-extensions/src/main/java/org/apache/myfaces/scripting/jsf2/annotation/ValidatorImplementationListener.java Thu Oct 22 15:37:15 2009
@@ -35,7 +35,7 @@
 public class ValidatorImplementationListener extends MapEntityAnnotationScanner implements AnnotationScanListener {
 
     private static final String PAR_VALUE = "value";
-    private static final String PAR_DEFAULT = "default";
+    private static final String PAR_DEFAULT = "isDefault";
 
 
     public ValidatorImplementationListener() {
@@ -52,22 +52,35 @@
             this.theDefault = theDefault;
         }
 
+
+
         public boolean equals(Object incoming) {
             if (!(incoming instanceof AnnotationEntry)) {
                 return false;
             }
             AnnotationEntry toCompare = (AnnotationEntry) incoming;
-            //handle null cases
-            if ((value == null && toCompare.getValue() != null) ||
-                (value != null && toCompare.getValue() == null) ||
-                (theDefault == null && toCompare.getTheDefault() != null) ||
-                (theDefault != null && toCompare.getTheDefault() == null)) {
+
+            if(incoming == null) {
                 return false;
-            } else if (value == null && toCompare.getValue() == null && theDefault == null && toCompare.getTheDefault() == null) {
-                return true;
             }
 
-            return value.equals(toCompare.getValue()) && theDefault.equals(toCompare.getValue());
+            boolean firstEquals = compareValuePair( value, toCompare.getValue());
+            boolean secondEquals = compareValuePair( theDefault, toCompare.getTheDefault());
+
+            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/groovy-taglib.xml
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy-taglib.xml?rev=828753&r1=828752&r2=828753&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy-taglib.xml (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/groovy-taglib.xml Thu Oct 22 15:37:15 2009
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE facelet-taglib PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" "facelet-taglib_1_0.dtd">
-<facelet-taglib version="2.0">
+<facelet-taglib version = "2.0">
     <!-- author: werner.punz@irian.at -->
 
     <namespace>http://myfaces.apache.org/groovy</namespace>
@@ -37,5 +37,17 @@
             <renderer-type>at.irian.JavaTestRenderer</renderer-type>
         </component>
     </tag>
+    <tag>
+        <tag-name>testValidator1</tag-name>
+        <validator>
+            <validator-id>at.irian.CustomValidator</validator-id>
+        </validator>
+    </tag>
+    <tag>
+        <tag-name>testConverter1</tag-name>
+        <converter>
+            <converter-id>at.irian.CustomConverter</converter-id>
+        </converter>
+    </tag>
 
 </facelet-taglib>

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.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/JavaTestRenderer1.java?rev=828753&r1=828752&r2=828753&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer1.java Thu Oct 22 15:37:15 2009
@@ -42,7 +42,6 @@
  * the annotation is dynamic you can change it on the fly or move it from one
  * class to the other
  */
-@FacesRenderer(componentFamily = "javax.faces.Input", rendererType = "at.irian.JavaTestRenderer")
 public class JavaTestRenderer1 extends HtmlTextRendererBase {
 
     static Log log = LogFactory.getLog(JavaTestRenderer1.class);

Modified: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.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/JavaTestRenderer2.java?rev=828753&r1=828752&r2=828753&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java Thu Oct 22 15:37:15 2009
@@ -32,6 +32,8 @@
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
  */
+@FacesRenderer(componentFamily = "javax.faces.Input", rendererType = "at.irian.JavaTestRenderer")
+
 public class JavaTestRenderer2 extends HtmlTextareaRendererBase {
 
     private static final String MSG = "Hello world from Renderer 2 sasdfasd ";

Copied: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestConverter1.java (from r826714, myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.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/TestConverter1.java?p2=myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestConverter1.java&p1=myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java&r1=826714&r2=828753&rev=828753&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestConverter1.java Thu Oct 22 15:37:15 2009
@@ -18,30 +18,23 @@
  */
 package org.apache.myfaces.javaloader.renderer;
 
-
-import org.apache.myfaces.shared_impl.renderkit.html.HtmlTextareaRendererBase;
-import org.apache.myfaces.scripting.core.util.ReflectUtil;
-
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+import javax.faces.convert.FacesConverter;
 import javax.faces.context.FacesContext;
-import javax.faces.context.ResponseWriter;
 import javax.faces.component.UIComponent;
-import javax.faces.render.FacesRenderer;
-import java.io.IOException;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
  */
-public class JavaTestRenderer2 extends HtmlTextareaRendererBase {
-
-    private static final String MSG = "Hello world from Renderer 2 sasdfasd ";
-
-    @Override
-    public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
-        super.encodeBegin(context, component);
-        ResponseWriter writer = context.getResponseWriter();
-        writer.write(MSG);
-        writer.write((String)ReflectUtil.executeMethod(component, "getMarker"));
+@FacesConverter(value="at.irian.CustomConverter")
+public class TestConverter1 implements Converter {
+    public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException {
+        return "hello from converter1";  //To change body of implemented methods use File | Settings | File Templates.
     }
 
+    public String getAsString(FacesContext context, UIComponent component, Object value) throws ConverterException {
+        return "hello from converter1";  //To change body of implemented methods use File | Settings | File Templates.
+    }
 }

Copied: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestConverter2.java (from r826714, myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.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/TestConverter2.java?p2=myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestConverter2.java&p1=myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java&r1=826714&r2=828753&rev=828753&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestConverter2.java Thu Oct 22 15:37:15 2009
@@ -18,30 +18,23 @@
  */
 package org.apache.myfaces.javaloader.renderer;
 
-
-import org.apache.myfaces.shared_impl.renderkit.html.HtmlTextareaRendererBase;
-import org.apache.myfaces.scripting.core.util.ReflectUtil;
-
 import javax.faces.context.FacesContext;
-import javax.faces.context.ResponseWriter;
 import javax.faces.component.UIComponent;
-import javax.faces.render.FacesRenderer;
-import java.io.IOException;
+import javax.faces.convert.ConverterException;
+import javax.faces.convert.Converter;
+import javax.faces.convert.FacesConverter;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
  */
-public class JavaTestRenderer2 extends HtmlTextareaRendererBase {
 
-    private static final String MSG = "Hello world from Renderer 2 sasdfasd ";
-
-    @Override
-    public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
-        super.encodeBegin(context, component);
-        ResponseWriter writer = context.getResponseWriter();
-        writer.write(MSG);
-        writer.write((String)ReflectUtil.executeMethod(component, "getMarker"));
+public class TestConverter2 implements Converter {
+    public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException {
+        return "hello from converter 2";
     }
 
+    public String getAsString(FacesContext context, UIComponent component, Object value) throws ConverterException {
+        return "hello from converter 2";
+    }
 }

Copied: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator1.java (from r826714, myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.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?p2=myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator1.java&p1=myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java&r1=826714&r2=828753&rev=828753&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator1.java Thu Oct 22 15:37:15 2009
@@ -18,30 +18,24 @@
  */
 package org.apache.myfaces.javaloader.renderer;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
-import org.apache.myfaces.shared_impl.renderkit.html.HtmlTextareaRendererBase;
-import org.apache.myfaces.scripting.core.util.ReflectUtil;
-
-import javax.faces.context.FacesContext;
-import javax.faces.context.ResponseWriter;
 import javax.faces.component.UIComponent;
-import javax.faces.render.FacesRenderer;
-import java.io.IOException;
+import javax.faces.context.FacesContext;
+import javax.faces.validator.FacesValidator;
+import javax.faces.validator.Validator;
+import javax.faces.validator.ValidatorException;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
  */
-public class JavaTestRenderer2 extends HtmlTextareaRendererBase {
 
-    private static final String MSG = "Hello world from Renderer 2 sasdfasd ";
-
-    @Override
-    public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
-        super.encodeBegin(context, component);
-        ResponseWriter writer = context.getResponseWriter();
-        writer.write(MSG);
-        writer.write((String)ReflectUtil.executeMethod(component, "getMarker"));
+@FacesValidator(value = "at.irian.CustomValidator")
+public class TestValidator1 implements Validator {
+    public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
+        Log log = LogFactory.getLog(TestValidator1.class);
+        log.info("Hello world from TestValidator1");
     }
-
 }

Copied: myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator2.java (from r826714, myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.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?p2=myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator2.java&p1=myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java&r1=826714&r2=828753&rev=828753&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/JavaTestRenderer2.java (original)
+++ myfaces/extensions/scripting/trunk/examples/myfaces20-example/src/main/webapp/WEB-INF/java/org/apache/myfaces/javaloader/renderer/TestValidator2.java Thu Oct 22 15:37:15 2009
@@ -18,30 +18,23 @@
  */
 package org.apache.myfaces.javaloader.renderer;
 
-
-import org.apache.myfaces.shared_impl.renderkit.html.HtmlTextareaRendererBase;
-import org.apache.myfaces.scripting.core.util.ReflectUtil;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 import javax.faces.context.FacesContext;
-import javax.faces.context.ResponseWriter;
 import javax.faces.component.UIComponent;
-import javax.faces.render.FacesRenderer;
-import java.io.IOException;
+import javax.faces.validator.ValidatorException;
+import javax.faces.validator.Validator;
 
 /**
  * @author Werner Punz (latest modification by $Author$)
  * @version $Revision$ $Date$
  */
-public class JavaTestRenderer2 extends HtmlTextareaRendererBase {
-
-    private static final String MSG = "Hello world from Renderer 2 sasdfasd ";
 
-    @Override
-    public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
-        super.encodeBegin(context, component);
-        ResponseWriter writer = context.getResponseWriter();
-        writer.write(MSG);
-        writer.write((String)ReflectUtil.executeMethod(component, "getMarker"));
+public class TestValidator2 implements Validator {
+    public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
+        Log log = LogFactory.getLog(TestValidator1.class);
+        log.info("Hello world from TestValidator2");
     }
 
 }

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=828753&r1=828752&r2=828753&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 Thu Oct 22 15:37:15 2009
@@ -21,6 +21,10 @@
                 <h:message id = "message1" for = "input1" />
                 <h:outputFormat value = "#{testbean.xxx}" />
                 <h:outputFormat value = "#{javatestbean.sayHello}" />
+                converter:
+                <h:inputText>
+                    <grv:testConverter1 />
+                </h:inputText>
                 <h:commandButton value = "Press me dynamic" action = "#{testbean.doit}" />
                  <grv:testcomponent2 />
             </h:panelGrid>