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>