JBoss Ajax4JSF SVN: r78 - trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config.
by ajax4jsf-svn-commits@lists.jboss.org
Author: dbiatenia
Date: 2007-04-12 10:11:24 -0400 (Thu, 12 Apr 2007)
New Revision: 78
Modified:
trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/BuilderConfig.java
Log:
taghandler test commented
Modified: trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/BuilderConfig.java
===================================================================
--- trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/BuilderConfig.java 2007-04-12 00:37:30 UTC (rev 77)
+++ trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/BuilderConfig.java 2007-04-12 14:11:24 UTC (rev 78)
@@ -212,13 +212,13 @@
digester.addBeanPropertySetter(path+"/?");
digester.addSetProperties(path);
digester.addSetNext(path, "setTaghandler");
-
+/*
path = "components/component/taghandler/test";
digester.addObjectCreate(path, TestClassHolder.class);
digester.addBeanPropertySetter(path+"/?");
digester.addSetProperties(path);
digester.addSetNext(path, "setTest");
-
+*/
path = "components/component/facet";
digester.addObjectCreate(path, JsfBean.class);
digester.addBeanPropertySetter(path+"/?");
17 years
JBoss Ajax4JSF SVN: r77 - trunk/test/src/main/java/org/ajax4jsf/tests.
by ajax4jsf-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-04-11 20:37:30 -0400 (Wed, 11 Apr 2007)
New Revision: 77
Modified:
trunk/test/src/main/java/org/ajax4jsf/tests/AbstractAjax4JsfTestCase.java
Log:
sendResource() method is now used instead of getResourceAsStream() to handle Image2DResource
Modified: trunk/test/src/main/java/org/ajax4jsf/tests/AbstractAjax4JsfTestCase.java
===================================================================
--- trunk/test/src/main/java/org/ajax4jsf/tests/AbstractAjax4JsfTestCase.java 2007-04-11 22:32:46 UTC (rev 76)
+++ trunk/test/src/main/java/org/ajax4jsf/tests/AbstractAjax4JsfTestCase.java 2007-04-12 00:37:30 UTC (rev 77)
@@ -21,10 +21,14 @@
package org.ajax4jsf.tests;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.io.OutputStream;
+import java.io.PrintWriter;
import java.net.URL;
import java.util.Collections;
import java.util.Enumeration;
@@ -41,6 +45,7 @@
import javax.faces.render.RenderKitFactory;
import javax.faces.render.Renderer;
import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import org.ajax4jsf.framework.ajax.AjaxContext;
@@ -191,15 +196,25 @@
String testResourceContextPath = facesContext.getExternalContext().getRequestContextPath() +
AbstractAjax4JsfTestCase.SLASHED_RESOURCE_URI_PREFIX;
if (settings.getURL().getFile().startsWith(testResourceContextPath)) {
- InternetResource resource = InternetResourceBuilder.getInstance().getResource(
- settings.getURL().getFile().substring(testResourceContextPath.length()));
+ String uri = settings.getURL().getFile().substring(testResourceContextPath.length());
+
+ InternetResourceBuilder resourceBuilder = InternetResourceBuilder.getInstance();
+
+ InternetResource resource = resourceBuilder.getResourceForKey(uri);
+ Object resourceData = resourceBuilder.getResourceDataForKey(uri);
final MockFacesResourceContext resourceContext = new MockFacesResourceContext(facesContext);
+ resourceContext.setResourceData(resourceData);
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ response.setOutputStream(new MockServletOutputStream(baos));
+
resource.sendHeaders(resourceContext);
-
+ resource.send(resourceContext);
+
return new WebResponseImpl(
new WebResponseData(
- resource.getResourceAsStream(resourceContext),
+ new ByteArrayInputStream(baos.toByteArray()),
HttpServletResponse.SC_OK,
"OK",
resourceContext.getHeaders()),
17 years
JBoss Ajax4JSF SVN: r76 - trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config.
by ajax4jsf-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2007-04-11 18:32:46 -0400 (Wed, 11 Apr 2007)
New Revision: 76
Modified:
trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/BuilderConfig.java
Log:
Missing Digester "test" rules added
Modified: trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/BuilderConfig.java
===================================================================
--- trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/BuilderConfig.java 2007-04-11 19:09:26 UTC (rev 75)
+++ trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/BuilderConfig.java 2007-04-11 22:32:46 UTC (rev 76)
@@ -194,11 +194,31 @@
digester.addBeanPropertySetter(path+"/?");
digester.addSetProperties(path);
digester.addSetNext(path, "setTag");
+
+ path = "components/component/tag/test";
+ digester.addObjectCreate(path, TestClassHolder.class);
+ digester.addBeanPropertySetter(path+"/?");
+ digester.addSetProperties(path);
+ digester.addSetNext(path, "setTest");
+
+ path = "components/component/test";
+ digester.addObjectCreate(path, TestClassHolder.class);
+ digester.addBeanPropertySetter(path+"/?");
+ digester.addSetProperties(path);
+ digester.addSetNext(path, "setTest");
+
path = "components/component/taghandler";
digester.addObjectCreate(path, TagHandlerBean.class);
digester.addBeanPropertySetter(path+"/?");
digester.addSetProperties(path);
digester.addSetNext(path, "setTaghandler");
+
+ path = "components/component/taghandler/test";
+ digester.addObjectCreate(path, TestClassHolder.class);
+ digester.addBeanPropertySetter(path+"/?");
+ digester.addSetProperties(path);
+ digester.addSetNext(path, "setTest");
+
path = "components/component/facet";
digester.addObjectCreate(path, JsfBean.class);
digester.addBeanPropertySetter(path+"/?");
17 years
JBoss Ajax4JSF SVN: r75 - trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator.
by ajax4jsf-svn-commits@lists.jboss.org
Author: dbiatenia
Date: 2007-04-11 15:09:26 -0400 (Wed, 11 Apr 2007)
New Revision: 75
Added:
trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/ComponentTestGenerator.java
trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/TagTestGenerator.java
Log:
Added: trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/ComponentTestGenerator.java
===================================================================
--- trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/ComponentTestGenerator.java (rev 0)
+++ trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/ComponentTestGenerator.java 2007-04-11 19:09:26 UTC (rev 75)
@@ -0,0 +1,84 @@
+package org.ajax4jsf.builder.generator;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.Writer;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+
+import org.ajax4jsf.builder.config.BuilderConfig;
+import org.ajax4jsf.builder.config.ComponentBean;
+import org.ajax4jsf.builder.config.PropertyBean;
+import org.apache.velocity.Template;
+import org.apache.velocity.VelocityContext;
+
+public class ComponentTestGenerator extends InnerGenerator{
+
+ private static final String COMPONENT_FILE_TEMPLATE = "componenttest.vm";
+
+ public ComponentTestGenerator(JSFGeneratorConfiguration config, Logger log) {
+ super(config, log);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public void createFiles(BuilderConfig config) throws GeneratorException {
+ VelocityContext context = new VelocityContext();
+ Template template = getTemplate();
+ context.put("generator",this);
+ // Put common properties
+ for (Iterator iter = config.iterator(); iter.hasNext();) {
+ ComponentBean component = (ComponentBean) iter.next();
+ if(component.getTest() != null){
+ info("Create component test class file for component "+component.getClassname());
+ if (component.isGenerate()) {
+ context.put("component", component);
+ context.put("renderer", component.getRenderer());
+ context.put("package", component.getPackageName());
+ Set<String> importClasses = new HashSet<String>();
+ for (Iterator it = component.getProperties().iterator(); it
+ .hasNext();) {
+ PropertyBean property = (PropertyBean) it.next();
+ // For non-primitive types, add import declaration.
+ if (!property.isSimpleType() && !property.isExist()) {
+ importClasses.add(property.getClassname());
+ }
+ }
+ importClasses.add(component.getTest().getSuperclassname());
+ context.put("imports", importClasses);
+ String resultPath = component.getTest().getClassname().replace('.', '/')
+ + ".java";
+ File javaFile = new File(getDestDir(), resultPath);
+ File javaDir = javaFile.getParentFile();
+ if (!javaDir.exists()) {
+ javaDir.mkdirs();
+ }
+ try {
+ if (javaFile.exists()) {
+ javaFile.delete();
+ }
+ Writer out = new BufferedWriter(new FileWriter(javaFile));
+ template.merge(context, out);
+ out.flush();
+ out.close();
+ } catch (Exception e) {
+ throw new GeneratorException(
+ "Error create new Component Java file ", e);
+ }
+ }
+
+ }
+ }
+
+ }
+
+ @Override
+ protected String getDefaultTemplateName() {
+ // TODO Auto-generated method stub
+ return COMPONENT_FILE_TEMPLATE;
+ }
+
+
+}
Property changes on: trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/ComponentTestGenerator.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Author Id Revision Date
Name: svn:eol-style
+ native
Added: trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/TagTestGenerator.java
===================================================================
--- trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/TagTestGenerator.java (rev 0)
+++ trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/TagTestGenerator.java 2007-04-11 19:09:26 UTC (rev 75)
@@ -0,0 +1,91 @@
+package org.ajax4jsf.builder.generator;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.Writer;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+
+import org.ajax4jsf.builder.config.BuilderConfig;
+import org.ajax4jsf.builder.config.ComponentBean;
+import org.ajax4jsf.builder.config.PropertyBean;
+import org.ajax4jsf.builder.config.TagBean;
+import org.apache.velocity.Template;
+import org.apache.velocity.VelocityContext;
+
+public class TagTestGenerator extends InnerGenerator{
+
+ private static final String COMPONENT_FILE_TEMPLATE = "tagtest.vm";
+
+ public TagTestGenerator(JSFGeneratorConfiguration config, Logger log) {
+ super(config, log);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public void createFiles(BuilderConfig config) throws GeneratorException {
+ // TODO Auto-generated method stub
+ System.out.println("Preparing to generate test for tag class... ");
+ VelocityContext context = new VelocityContext();
+ context.put("generator",this);
+ Template template = getTemplate();
+ // Put common properties
+ for (Iterator iter = config.iterator(); iter.hasNext();) {
+ ComponentBean component = (ComponentBean) iter.next();
+ TagBean tag = component.getTag();
+ if ( null != tag && null !=tag.getClassname() && tag.isGenerate()
+ && tag.getTest() != null) {
+ info("Create test class file for tag " + component.getTag().getSimpleClassName());
+ context.put("component", component);
+ if (null != component.getRenderer()) {
+ context.put("renderer", component.getRenderer());
+ } else {
+ context.put("renderer",Boolean.FALSE);
+ }
+ context.put("tag", component.getTag());
+ context.put("package", component.getTag().getPackageName());
+ Set<String> importClasses = new HashSet<String>();
+ for (Iterator it = component.getProperties().iterator(); it
+ .hasNext();) {
+ PropertyBean property = (PropertyBean) it.next();
+ // For non-primitive types, add import declaration.
+ if (!property.isSimpleType() && !property.isHidden()) {
+ importClasses.add(property.getClassname());
+ }
+ }
+ importClasses.add(component.getTag().getTest().getSuperclassname());
+ context.put("imports", importClasses);
+ String resultPath = component.getTag().getTest().getClassname().replace('.', '/')
+ + ".java";
+ //System.out.println("resultPath - " + resultPath);
+ //System.out.println("getDestDir() - " + getDestDir());
+ File javaFile = new File(getDestDir(), resultPath);
+ File javaDir = javaFile.getParentFile();
+ if (!javaDir.exists()) {
+ javaDir.mkdirs();
+ }
+ try {
+ if (javaFile.exists()) {
+ javaFile.delete();
+ }
+ Writer out = new BufferedWriter(new FileWriter(javaFile));
+ template.merge(context, out);
+ out.flush();
+ out.close();
+ } catch (Exception e) {
+ throw new GeneratorException(
+ "Error create new Component JSP Tag Test Java file ", e);
+ }
+ }
+ }
+ }
+
+ @Override
+ protected String getDefaultTemplateName() {
+ // TODO Auto-generated method stub
+ return COMPONENT_FILE_TEMPLATE;
+ }
+
+}
Property changes on: trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/TagTestGenerator.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Author Id Revision Date
Name: svn:eol-style
+ native
17 years
JBoss Ajax4JSF SVN: r74 - trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config.
by ajax4jsf-svn-commits@lists.jboss.org
Author: dbiatenia
Date: 2007-04-11 15:09:01 -0400 (Wed, 11 Apr 2007)
New Revision: 74
Added:
trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/TestClassHolder.java
Log:
Added: trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/TestClassHolder.java
===================================================================
--- trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/TestClassHolder.java (rev 0)
+++ trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/TestClassHolder.java 2007-04-11 19:09:01 UTC (rev 74)
@@ -0,0 +1,43 @@
+package org.ajax4jsf.builder.config;
+
+/**
+ * Simple holder for test class name and test superclass name
+ * @author dbiatenia
+ *
+ */
+public class TestClassHolder {
+
+ private String _classname;
+
+ private String _superclassname;
+
+ public String getClassname() {
+ return _classname;
+ }
+
+ public void setClassname(String classname) {
+ this._classname = classname;
+ }
+
+ public String getSuperclassname() {
+ return _superclassname;
+ }
+
+ public void setSuperclassname(String superclassname) {
+ this._superclassname = superclassname;
+ }
+
+ /**
+ * Convert full class name to simple.
+ * @return class name without package name.
+ */
+ public String getSimpleClassName() {
+ int lastPoint = getClassname().lastIndexOf('.');
+ if (lastPoint>0) {
+ return getClassname().substring(lastPoint+1);
+ }
+ return getClassname();
+ }
+
+
+}
Property changes on: trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/TestClassHolder.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Author Id Revision Date
Name: svn:eol-style
+ native
17 years
JBoss Ajax4JSF SVN: r73 - in trunk/cdk/generator/src/main/resources/META-INF: templates12 and 1 other directory.
by ajax4jsf-svn-commits@lists.jboss.org
Author: dbiatenia
Date: 2007-04-11 14:27:44 -0400 (Wed, 11 Apr 2007)
New Revision: 73
Added:
trunk/cdk/generator/src/main/resources/META-INF/templates/componenttest.vm
trunk/cdk/generator/src/main/resources/META-INF/templates/tagtest.vm
trunk/cdk/generator/src/main/resources/META-INF/templates12/componenttest.vm
trunk/cdk/generator/src/main/resources/META-INF/templates12/tagtest.vm
Log:
new test templates for component and tag
Added: trunk/cdk/generator/src/main/resources/META-INF/templates/componenttest.vm
===================================================================
--- trunk/cdk/generator/src/main/resources/META-INF/templates/componenttest.vm (rev 0)
+++ trunk/cdk/generator/src/main/resources/META-INF/templates/componenttest.vm 2007-04-11 18:27:44 UTC (rev 73)
@@ -0,0 +1,143 @@
+/**
+ * License Agreement.
+ *
+ * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package $package;
+
+#foreach($import in $imports)
+import $import ;
+#end
+
+import com.gargoylesoftware.htmlunit.Page;
+import javax.faces.component.UIForm;
+import javax.faces.component.html.HtmlForm;
+import com.gargoylesoftware.htmlunit.html.HtmlPage;
+import com.gargoylesoftware.htmlunit.html.HtmlElement;
+import javax.faces.context.FacesContext;
+import javax.faces.el.ValueBinding;
+import javax.faces.component.UIViewRoot;
+//import ${component.classname};
+#if(${generator.key})
+
+import java.io.IOException;
+import javax.faces.FacesException;
+import org.ajax4jsf.framework.util.base64.Codec;
+#end
+
+public class $component.test.simpleClassName extends $component.test.superclassname {
+
+// public static final String COMPONENT_TYPE = "${component.name}";
+
+
+#set( $fiedCounter = 1 )
+#foreach( $prop in $component.properties )
+ #if( !$prop.exist )
+ #if($prop.simpleType)
+ private boolean _${prop.name}Set = false;
+ #set( $fiedCounter = $fiedCounter+2)
+ #else
+ #set( $fiedCounter = $fiedCounter+1)
+ #end
+#end
+#end
+
+ private $component.simpleClassName component;
+ private UIForm form;
+// private FacesContext context;
+
+ /**
+ * Constructor to init default renderers
+ */
+ public $component.test.simpleClassName (String name){
+ super(name);
+ }
+
+ /*
+ * setup the tets
+ */
+ public void setUp() throws Exception {
+ super.setUp();
+ component = new ${component.simpleClassName}();
+ form = new HtmlForm();
+ form.setId("form");
+ facesContext.getViewRoot().getChildren().add(form);
+
+ component.setId("component");
+#foreach( $prop in $component.properties )
+ #if(!$prop.exist)
+ component.${prop.setterName}( " __$prop.name" );
+ #end
+#end
+
+ form.getChildren().add(component);
+
+ }
+
+ /*
+ * setup the tets
+ */
+ public void tearDown() throws Exception{
+ super.tearDown();
+ component = null;
+ form = null;
+ }
+
+ public void testComponent() throws Exception {
+
+ HtmlPage renderedView = renderView();
+ assertNotNull(renderedView);
+ System.out.println(renderedView.getWebResponse().getContentAsString());
+ HtmlElement element = renderedView.getHtmlElementById(form.getId() + ":" + component.getId());
+ assertNotNull(element);
+
+// values[0] = component.saveState(facesContext);
+
+ }
+/*
+ public void testDefaultValues(){
+
+ }
+*/
+ public void testContext(){
+
+ Object state = component.saveState(facesContext);
+
+ UIViewRoot root = facesContext.getViewRoot();
+ root.processDecodes(facesContext);
+ root.processValidators(facesContext);
+ root.processUpdates(facesContext);
+ root.processApplication(facesContext);
+
+ testRestoreState(state);
+ }
+
+ private void testRestoreState(Object state){
+ ${component.simpleClassName} restoredComponent = new ${component.simpleClassName}();
+ restoredComponent.restoreState(facesContext, state);
+
+#foreach( $prop in $component.properties )
+ #if(!$prop.exist)
+ assertEquals(component.${prop.getterName}(), restoredComponent.${prop.getterName}());
+ #end
+#end
+
+ }
+
+}
\ No newline at end of file
Added: trunk/cdk/generator/src/main/resources/META-INF/templates/tagtest.vm
===================================================================
--- trunk/cdk/generator/src/main/resources/META-INF/templates/tagtest.vm (rev 0)
+++ trunk/cdk/generator/src/main/resources/META-INF/templates/tagtest.vm 2007-04-11 18:27:44 UTC (rev 73)
@@ -0,0 +1,142 @@
+/**
+ * GENERATED FILE - DO NOT EDIT
+ *
+ */
+package ${tag.packageName};
+
+#foreach($import in $imports)
+import $import ;
+#end
+import javax.faces.component.UIComponent;
+import javax.faces.webapp.UIComponentTag;
+import ${component.classname};
+
+import javax.servlet.Servlet;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequestWrapper;
+import javax.servlet.http.HttpSession;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.JspWriter;
+import javax.servlet.jsp.PageContext;
+import javax.servlet.jsp.el.ExpressionEvaluator;
+import javax.servlet.jsp.el.VariableResolver;
+import javax.servlet.jsp.tagext.Tag;
+import java.io.IOException;
+import java.util.Enumeration;
+
+
+
+/**
+ * @author shura (latest modification by $Author: alexsmirnov $)
+ * @version $Revision: 1.1.2.2 $ $Date: 2007/01/03 21:05:14 $
+ *
+ */
+public class $tag.test.simpleClassName extends $tag.test.superclassname {
+
+
+ private $tag.simpleClassName tag;
+
+ /**
+ * Constructor to init default renderers
+ */
+ public ${tag.test.simpleClassName} (String name){
+ super(name);
+ }
+
+
+ public void setUp() throws Exception {
+ super.setUp();
+ tag = new ${tag.simpleClassName}();
+ tag.setParent(new UIComponentTag(){
+
+ public String getComponentType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getRendererType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public int doStartTag() throws JspException {
+ // TODO Auto-generated method stub
+ return Tag.EVAL_BODY_INCLUDE;
+ }
+
+ public int doEndTag() throws JspException {
+ // TODO Auto-generated method stub
+ return Tag.EVAL_BODY_INCLUDE;
+ }
+
+ });
+
+ }
+
+ public void tearDown() throws Exception {
+ super.tearDown();
+ tag = null;
+ }
+
+
+ public void testSetPropertiesUIComponent() {
+ ${component.simpleClassName} component = new ${component.simpleClassName}();
+/*
+ #foreach( $prop in $component.properties )
+ #if( !$prop.existintag )
+ #if(!$prop.el)
+ if(isValueReference(this._${prop.name})){
+ throw new IllegalArgumentException("Component ${component.name} with Id " + component.getClientId(getFacesContext() +" not allowed EL expression for property ${prop.name}")
+ }
+ #end
+ #if($prop.name == "action")
+
+ setActionProperty(component, tag._${prop.name});
+ #elseif($prop.name == "actionListener")
+ setActionListenerProperty(component, this._${prop.name});
+ #elseif($prop.name == "converter")
+ setConverterProperty(component, this._${prop.name});
+ #elseif($prop.name == "validator")
+ setValidatorProperty(component, this._${prop.name});
+ #elseif($prop.name == "valueChangeListener")
+ setValueChangedListenerProperty(component, this._${prop.name});
+ #elseif($prop.name == "value")
+ setValueProperty(component, this._${prop.name});
+ #elseif($prop.elOnly || $prop.isInstanceof("javax.faces.el.ValueBinding") )
+ setValueBinding(component, "${prop.name}",this._${prop.name});
+ #elseif(${prop.simpleType})
+ // Simple type - ${prop.simpleClassName}
+ set${prop.boxingClass}Property(component, "${prop.name}",this._${prop.name});
+ #elseif($prop.classname == "java.lang.Boolean" || $prop.classname == "java.lang.Integer" || $prop.classname == "java.lang.Long")
+ set${prop.simpleClassName}Property(component, "${prop.name}",this._${prop.name});
+ #elseif( $prop.classname == "java.lang.String")
+ setStringProperty(component, "${prop.name}",this._${prop.name});
+ #elseif( $prop.classname == "java.lang.Object")
+ // TODO - handle object
+ setStringProperty(component, "${prop.name}",this._${prop.name});
+ #elseif( $prop.isInstanceof("javax.faces.el.MethodBinding") )
+ if(null != this._${prop.name}){
+ if (isValueReference(this._${prop.name}))
+ {
+ MethodBinding mb = getFacesContext().getApplication().createMethodBinding(this._${prop.name},
+ new Class[]{${prop.methodargs}});
+ ((${component.simpleClassName})component).${prop.setterName}(mb);
+ }
+ else
+ {
+ getFacesContext().getExternalContext().log("Component " + component.getClientId(getFacesContext()) + " has invalid ${prop.name} value: " + this._${prop.name});
+ }
+ }
+ #else
+ // TODO - setup properties for other cases.
+ // name ${prop.name} with type $prop.classname
+ #end
+ #end
+ #end
+*/
+ }
+}
Added: trunk/cdk/generator/src/main/resources/META-INF/templates12/componenttest.vm
===================================================================
--- trunk/cdk/generator/src/main/resources/META-INF/templates12/componenttest.vm (rev 0)
+++ trunk/cdk/generator/src/main/resources/META-INF/templates12/componenttest.vm 2007-04-11 18:27:44 UTC (rev 73)
@@ -0,0 +1,143 @@
+/**
+ * License Agreement.
+ *
+ * Ajax4jsf 1.1 - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package $package;
+
+#foreach($import in $imports)
+import $import ;
+#end
+
+import com.gargoylesoftware.htmlunit.Page;
+import javax.faces.component.UIForm;
+import javax.faces.component.html.HtmlForm;
+import com.gargoylesoftware.htmlunit.html.HtmlPage;
+import com.gargoylesoftware.htmlunit.html.HtmlElement;
+import javax.faces.context.FacesContext;
+import javax.faces.el.ValueBinding;
+import javax.faces.component.UIViewRoot;
+//import ${component.classname};
+#if(${generator.key})
+
+import java.io.IOException;
+import javax.faces.FacesException;
+import org.ajax4jsf.framework.util.base64.Codec;
+#end
+
+public class $component.test.simpleClassName extends $component.test.superclassname {
+
+// public static final String COMPONENT_TYPE = "${component.name}";
+
+
+#set( $fiedCounter = 1 )
+#foreach( $prop in $component.properties )
+ #if( !$prop.exist )
+ #if($prop.simpleType)
+ private boolean _${prop.name}Set = false;
+ #set( $fiedCounter = $fiedCounter+2)
+ #else
+ #set( $fiedCounter = $fiedCounter+1)
+ #end
+#end
+#end
+
+ private $component.simpleClassName component;
+ private UIForm form;
+// private FacesContext context;
+
+ /**
+ * Constructor to init default renderers
+ */
+ public $component.test.simpleClassName (String name){
+ super(name);
+ }
+
+ /*
+ * setup the tets
+ */
+ public void setUp() throws Exception {
+ super.setUp();
+ component = new ${component.simpleClassName}();
+ form = new HtmlForm();
+ form.setId("form");
+ facesContext.getViewRoot().getChildren().add(form);
+
+ component.setId("component");
+#foreach( $prop in $component.properties )
+ #if(!$prop.exist)
+ component.${prop.setterName}( " __$prop.name" );
+ #end
+#end
+
+ form.getChildren().add(component);
+
+ }
+
+ /*
+ * setup the tets
+ */
+ public void tearDown() throws Exception{
+ super.tearDown();
+ component = null;
+ form = null;
+ }
+
+ public void testComponent() throws Exception {
+
+ HtmlPage renderedView = renderView();
+ assertNotNull(renderedView);
+ System.out.println(renderedView.getWebResponse().getContentAsString());
+ HtmlElement element = renderedView.getHtmlElementById(form.getId() + ":" + component.getId());
+ assertNotNull(element);
+
+// values[0] = component.saveState(facesContext);
+
+ }
+/*
+ public void testDefaultValues(){
+
+ }
+*/
+ public void testContext(){
+
+ Object state = component.saveState(facesContext);
+
+ UIViewRoot root = facesContext.getViewRoot();
+ root.processDecodes(facesContext);
+ root.processValidators(facesContext);
+ root.processUpdates(facesContext);
+ root.processApplication(facesContext);
+
+ testRestoreState(state);
+ }
+
+ private void testRestoreState(Object state){
+ ${component.simpleClassName} restoredComponent = new ${component.simpleClassName}();
+ restoredComponent.restoreState(facesContext, state);
+
+#foreach( $prop in $component.properties )
+ #if(!$prop.exist)
+ assertEquals(component.${prop.getterName}(), restoredComponent.${prop.getterName}());
+ #end
+#end
+
+ }
+
+}
\ No newline at end of file
Added: trunk/cdk/generator/src/main/resources/META-INF/templates12/tagtest.vm
===================================================================
--- trunk/cdk/generator/src/main/resources/META-INF/templates12/tagtest.vm (rev 0)
+++ trunk/cdk/generator/src/main/resources/META-INF/templates12/tagtest.vm 2007-04-11 18:27:44 UTC (rev 73)
@@ -0,0 +1,142 @@
+/**
+ * GENERATED FILE - DO NOT EDIT
+ *
+ */
+package ${tag.packageName};
+
+#foreach($import in $imports)
+import $import ;
+#end
+import javax.faces.component.UIComponent;
+import javax.faces.webapp.UIComponentTag;
+import ${component.classname};
+
+import javax.servlet.Servlet;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequestWrapper;
+import javax.servlet.http.HttpSession;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.JspWriter;
+import javax.servlet.jsp.PageContext;
+import javax.servlet.jsp.el.ExpressionEvaluator;
+import javax.servlet.jsp.el.VariableResolver;
+import javax.servlet.jsp.tagext.Tag;
+import java.io.IOException;
+import java.util.Enumeration;
+
+
+
+/**
+ * @author shura (latest modification by $Author: alexsmirnov $)
+ * @version $Revision: 1.1.2.2 $ $Date: 2007/01/03 21:05:14 $
+ *
+ */
+public class $tag.test.simpleClassName extends $tag.test.superclassname {
+
+
+ private $tag.simpleClassName tag;
+
+ /**
+ * Constructor to init default renderers
+ */
+ public ${tag.test.simpleClassName} (String name){
+ super(name);
+ }
+
+
+ public void setUp() throws Exception {
+ super.setUp();
+ tag = new ${tag.simpleClassName}();
+ tag.setParent(new UIComponentTag(){
+
+ public String getComponentType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getRendererType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public int doStartTag() throws JspException {
+ // TODO Auto-generated method stub
+ return Tag.EVAL_BODY_INCLUDE;
+ }
+
+ public int doEndTag() throws JspException {
+ // TODO Auto-generated method stub
+ return Tag.EVAL_BODY_INCLUDE;
+ }
+
+ });
+
+ }
+
+ public void tearDown() throws Exception {
+ super.tearDown();
+ tag = null;
+ }
+
+
+ public void testSetPropertiesUIComponent() {
+ ${component.simpleClassName} component = new ${component.simpleClassName}();
+/*
+ #foreach( $prop in $component.properties )
+ #if( !$prop.existintag )
+ #if(!$prop.el)
+ if(isValueReference(this._${prop.name})){
+ throw new IllegalArgumentException("Component ${component.name} with Id " + component.getClientId(getFacesContext() +" not allowed EL expression for property ${prop.name}")
+ }
+ #end
+ #if($prop.name == "action")
+
+ setActionProperty(component, tag._${prop.name});
+ #elseif($prop.name == "actionListener")
+ setActionListenerProperty(component, this._${prop.name});
+ #elseif($prop.name == "converter")
+ setConverterProperty(component, this._${prop.name});
+ #elseif($prop.name == "validator")
+ setValidatorProperty(component, this._${prop.name});
+ #elseif($prop.name == "valueChangeListener")
+ setValueChangedListenerProperty(component, this._${prop.name});
+ #elseif($prop.name == "value")
+ setValueProperty(component, this._${prop.name});
+ #elseif($prop.elOnly || $prop.isInstanceof("javax.faces.el.ValueBinding") )
+ setValueBinding(component, "${prop.name}",this._${prop.name});
+ #elseif(${prop.simpleType})
+ // Simple type - ${prop.simpleClassName}
+ set${prop.boxingClass}Property(component, "${prop.name}",this._${prop.name});
+ #elseif($prop.classname == "java.lang.Boolean" || $prop.classname == "java.lang.Integer" || $prop.classname == "java.lang.Long")
+ set${prop.simpleClassName}Property(component, "${prop.name}",this._${prop.name});
+ #elseif( $prop.classname == "java.lang.String")
+ setStringProperty(component, "${prop.name}",this._${prop.name});
+ #elseif( $prop.classname == "java.lang.Object")
+ // TODO - handle object
+ setStringProperty(component, "${prop.name}",this._${prop.name});
+ #elseif( $prop.isInstanceof("javax.faces.el.MethodBinding") )
+ if(null != this._${prop.name}){
+ if (isValueReference(this._${prop.name}))
+ {
+ MethodBinding mb = getFacesContext().getApplication().createMethodBinding(this._${prop.name},
+ new Class[]{${prop.methodargs}});
+ ((${component.simpleClassName})component).${prop.setterName}(mb);
+ }
+ else
+ {
+ getFacesContext().getExternalContext().log("Component " + component.getClientId(getFacesContext()) + " has invalid ${prop.name} value: " + this._${prop.name});
+ }
+ }
+ #else
+ // TODO - setup properties for other cases.
+ // name ${prop.name} with type $prop.classname
+ #end
+ #end
+ #end
+*/
+ }
+}
17 years
JBoss Ajax4JSF SVN: r72 - trunk/cdk/generator/src/main/resources/META-INF/schema.
by ajax4jsf-svn-commits@lists.jboss.org
Author: dbiatenia
Date: 2007-04-11 14:26:03 -0400 (Wed, 11 Apr 2007)
New Revision: 72
Modified:
trunk/cdk/generator/src/main/resources/META-INF/schema/component-config.dtd
Log:
adding test* into component element
Modified: trunk/cdk/generator/src/main/resources/META-INF/schema/component-config.dtd
===================================================================
--- trunk/cdk/generator/src/main/resources/META-INF/schema/component-config.dtd 2007-04-11 18:24:31 UTC (rev 71)
+++ trunk/cdk/generator/src/main/resources/META-INF/schema/component-config.dtd 2007-04-11 18:26:03 UTC (rev 72)
@@ -4,7 +4,7 @@
<!-- Root element for components and renderers -->
<!ELEMENT components (component*,renderer*,listener*) >
<!-- Component description with common properties, tags and renderers descriptions -->
-<!ELEMENT component (name,family?,classname?,superclass?,description?,displayname?,icon?,facet*,renderer*,tag?,taghandler?,(include|properties|property)*)>
+<!ELEMENT component (name,family?,classname?,superclass?,test*,description?,displayname?,icon?,facet*,renderer*,tag?,taghandler?,(include|properties|property)*)>
<!-- components with generate=false not produce component class,
use for describe superclasses for other components -->
@@ -42,12 +42,16 @@
>
<!-- Define JSP tag for this component -->
-<!ELEMENT tag (name,classname,superclass?,taglib?,description?,displayname?,icon?)>
+<!ELEMENT tag (name,classname,superclass?,test*,taglib?,description?,displayname?,icon?)>
<!ATTLIST tag
generate (true|false) "true"
bodyContent (JSP|empty) "JSP"
>
+<!ELEMENT test (classname,superclassname)>
+<!--!ELEMENT classname (#PCDATA)-->
+<!ELEMENT superclassname (#PCDATA)>
+
<!-- Define JSP tag for this component -->
<!ELEMENT taghandler (name?,classname,superclass?,description?,displayname?,icon?)>
<!ATTLIST taghandler
17 years
JBoss Ajax4JSF SVN: r71 - trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config.
by ajax4jsf-svn-commits@lists.jboss.org
Author: dbiatenia
Date: 2007-04-11 14:24:31 -0400 (Wed, 11 Apr 2007)
New Revision: 71
Modified:
trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/JsfBean.java
Log:
adding _test property
Modified: trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/JsfBean.java
===================================================================
--- trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/JsfBean.java 2007-04-11 18:22:06 UTC (rev 70)
+++ trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/config/JsfBean.java 2007-04-11 18:24:31 UTC (rev 71)
@@ -66,7 +66,23 @@
private String _superclass;
private LoaderHolder _parent = null;
+
/**
+ * appropriate test class
+ */
+ private TestClassHolder _test;
+
+
+
+ public TestClassHolder getTest() {
+ return _test;
+ }
+
+ public void setTest(TestClassHolder test) {
+ this._test = test;
+ }
+
+ /**
* @return Returns the classname.
*/
public String getClassname() {
17 years
JBoss Ajax4JSF SVN: r70 - trunk/cdk/maven-cdk-plugin/src/main/java/org/ajax4jsf/builder/mojo.
by ajax4jsf-svn-commits@lists.jboss.org
Author: dbiatenia
Date: 2007-04-11 14:22:06 -0400 (Wed, 11 Apr 2007)
New Revision: 70
Modified:
trunk/cdk/maven-cdk-plugin/src/main/java/org/ajax4jsf/builder/mojo/GenerateMojo.java
Log:
mojo modification for test generaion purpose
Modified: trunk/cdk/maven-cdk-plugin/src/main/java/org/ajax4jsf/builder/mojo/GenerateMojo.java
===================================================================
--- trunk/cdk/maven-cdk-plugin/src/main/java/org/ajax4jsf/builder/mojo/GenerateMojo.java 2007-04-11 18:21:35 UTC (rev 69)
+++ trunk/cdk/maven-cdk-plugin/src/main/java/org/ajax4jsf/builder/mojo/GenerateMojo.java 2007-04-11 18:22:06 UTC (rev 70)
@@ -32,6 +32,7 @@
import org.ajax4jsf.builder.config.BuilderConfig;
import org.ajax4jsf.builder.config.ParsingException;
import org.ajax4jsf.builder.generator.ComponentGenerator;
+import org.ajax4jsf.builder.generator.ComponentTestGenerator;
import org.ajax4jsf.builder.generator.FaceletsTaglibGenerator;
import org.ajax4jsf.builder.generator.FacesConfigGenerator;
import org.ajax4jsf.builder.generator.GeneratorException;
@@ -41,6 +42,7 @@
import org.ajax4jsf.builder.generator.RendererGenerator;
import org.ajax4jsf.builder.generator.TagGenerator;
import org.ajax4jsf.builder.generator.TagHandlerGenerator;
+import org.ajax4jsf.builder.generator.TagTestGenerator;
import org.ajax4jsf.builder.generator.TaglibGenerator;
import org.ajax4jsf.builder.maven.MavenLogger;
import org.ajax4jsf.builder.velocity.BuilderContext;
@@ -72,7 +74,7 @@
* @parameter expression="${executedProject}"
* @readonly
*/
- private MavenProject executedProject;
+ protected MavenProject executedProject;
/*
* (non-Javadoc)
@@ -99,9 +101,22 @@
this, mavenLogger);
rendererGenerator.setSrcDir(templatesDirectory);
rendererGenerator.createFiles(config);
+ // GenerateMojo component test
+/*
+ ComponentTestGenerator componentTestGenerator = new ComponentTestGenerator(this, mavenLogger);
+ componentTestGenerator.setDestDir(outputTestsDirectory);
+ componentTestGenerator.createFiles(config);
+*/
// GenerateMojo tags
TagGenerator tagGenerator = new TagGenerator(this, mavenLogger);
tagGenerator.createFiles(config);
+
+ // GenerateMojo tag test
+/*
+ TagTestGenerator tagTestGenerator = new TagTestGenerator(this, mavenLogger);
+ tagTestGenerator.setDestDir(outputTestsDirectory);
+ tagTestGenerator.createFiles(config);
+*/
// GenerateMojo tag handlers
TagHandlerGenerator tagHandlerGenerator = new TagHandlerGenerator(
this, mavenLogger);
@@ -174,6 +189,8 @@
// for all images/scripts/css...
// Add generated sources and resources to project
project.addCompileSourceRoot(outputJavaDirectory.getPath());
+// project.addCompileSourceRoot(outputTestsDirectory.getPath());
+
Resource resource = new Resource();
resource.setDirectory(outputResourcesDirectory.getPath());
// resource.setTargetPath("META-INF");
@@ -187,7 +204,7 @@
}
- private BuilderConfig createConfig(ClassLoader generatiorLoader)
+ protected BuilderConfig createConfig(ClassLoader generatiorLoader)
throws ParsingException {
BuilderConfig builderConfig = new BuilderConfig(generatiorLoader,
new MavenLogger(getLog()));
17 years
JBoss Ajax4JSF SVN: r69 - trunk/cdk/maven-cdk-plugin/src/main/java/org/ajax4jsf/builder/mojo.
by ajax4jsf-svn-commits@lists.jboss.org
Author: dbiatenia
Date: 2007-04-11 14:21:35 -0400 (Wed, 11 Apr 2007)
New Revision: 69
Modified:
trunk/cdk/maven-cdk-plugin/src/main/java/org/ajax4jsf/builder/mojo/AbstractCDKMojo.java
Log:
mojo modification for test generaion purpose
Modified: trunk/cdk/maven-cdk-plugin/src/main/java/org/ajax4jsf/builder/mojo/AbstractCDKMojo.java
===================================================================
--- trunk/cdk/maven-cdk-plugin/src/main/java/org/ajax4jsf/builder/mojo/AbstractCDKMojo.java 2007-04-11 18:21:08 UTC (rev 68)
+++ trunk/cdk/maven-cdk-plugin/src/main/java/org/ajax4jsf/builder/mojo/AbstractCDKMojo.java 2007-04-11 18:21:35 UTC (rev 69)
@@ -92,7 +92,13 @@
* @parameter expression="${project.build.directory}/generated-component/java"
*/
protected File outputJavaDirectory;
+
/**
+ * @parameter expression="${project.build.directory}/generated-component/test"
+ */
+ protected File outputTestsDirectory;
+
+ /**
* Directory where the output Java Files will be located.
*
* @parameter expression="${project.build.directory}/generated-component/resources"
17 years