Author: maksimkaszynski
Date: 2008-03-14 07:15:48 -0400 (Fri, 14 Mar 2008)
New Revision: 6801
Added:
trunk/framework/test/src/main/java/org/ajax4jsf/tests/ConstantlyFailingLiteralValueExpression.java
trunk/framework/test/src/main/java/org/ajax4jsf/tests/EnumSupportExpressionFactoryWrapper.java
trunk/framework/test/src/main/java/org/ajax4jsf/tests/JsfMock.java
trunk/framework/test/src/main/java/org/ajax4jsf/tests/LiteralValueExpression.java
trunk/framework/test/src/main/java/org/ajax4jsf/tests/MockApplication.java
Modified:
trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/TestDataGenerator.java
trunk/cdk/generator/src/main/resources/META-INF/templates12/tag.vm
trunk/cdk/generator/src/main/resources/META-INF/templates12/tagtest.vm
trunk/framework/api/src/main/java/org/richfaces/model/Ordering.java
trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/taglib/HtmlComponentTagBase.java
trunk/framework/test/pom.xml
trunk/framework/test/src/main/java/org/ajax4jsf/tests/AbstractAjax4JsfTestCase.java
trunk/framework/test/src/main/java/org/ajax4jsf/tests/AbstractJspTestCase.java
trunk/framework/test/src/main/java/org/ajax4jsf/tests/MockMethodExpression.java
trunk/samples/inplaceInput-sample/
trunk/samples/inplaceSelect-sample/
trunk/samples/richfaces-ear-demo/ejb/
trunk/samples/richfaces-ear-demo/richfacesEAR/
trunk/samples/richfaces-ear-demo/webapp/
trunk/samples/seamEAR/
trunk/samples/seamEAR/ear/
trunk/samples/seamEAR/ejbs/
trunk/samples/seamEAR/primary-source/
trunk/samples/seamEAR/projects/logging/
trunk/samples/seamEAR/wars/seamWebapp/
trunk/ui/combobox/
trunk/ui/componentControl/
trunk/ui/contextMenu/
trunk/ui/core/
trunk/ui/dataFilterSlider/
trunk/ui/dataTable/
trunk/ui/datascroller/
trunk/ui/dropdown-menu/
trunk/ui/effect/
trunk/ui/fileUpload/
trunk/ui/gmap/
trunk/ui/inplaceInput/
trunk/ui/inplaceSelect/
trunk/ui/insert/
trunk/ui/jQuery/
trunk/ui/listShuttle/
trunk/ui/menu-components/
trunk/ui/message/
trunk/ui/modal-panel/
trunk/ui/orderingList/
trunk/ui/panelbar/
trunk/ui/panelmenu/
trunk/ui/pickList/
trunk/ui/progressBAR/
trunk/ui/scrollableDataTable/
trunk/ui/simpleTogglePanel/
trunk/ui/suggestionbox/
trunk/ui/togglePanel/
trunk/ui/toolBar/
trunk/ui/treeModel/
trunk/ui/virtualEarth/
Log:
improved tag tests
Modified:
trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/TestDataGenerator.java
===================================================================
---
trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/TestDataGenerator.java 2008-03-14
10:00:29 UTC (rev 6800)
+++
trunk/cdk/generator/src/main/java/org/ajax4jsf/builder/generator/TestDataGenerator.java 2008-03-14
11:15:48 UTC (rev 6801)
@@ -129,7 +129,7 @@
}
try {
- Class<?> clazz = Class.forName(className);
+ Class<?> clazz = Class.forName(className, false, loader);
if (clazz.isAssignableFrom(String.class)) {
if (number == 0) {
return "\"" + propertyName + "\"";
@@ -161,7 +161,7 @@
}
private String enumToString(Enum<?> e) {
- return e.getClass().getName() + "." + e;
+ return e.getDeclaringClass().getName() + "." + e;
}
public String getTestData(PropertyBean propertyBean) {
@@ -178,6 +178,29 @@
*/
public boolean isNativelySupported(PropertyBean propertyBean) {
String classname = propertyBean.getClassname();
- return testData.containsKey(classname) ||
"java.lang.String".equals(classname);
+ return testData.containsKey(classname) || isAssignabelFromString(propertyBean) ||
isEnum(propertyBean);
+
}
+
+ protected boolean isAssignabelFromString(PropertyBean bean) {
+ String classname = bean.getClassname();
+ Class<?> class1;
+ try {
+ class1 = Class.forName(classname, false, loader);
+ } catch (ClassNotFoundException e) {
+ return false;
+ }
+ return class1.isAssignableFrom(String.class);
+ }
+
+ protected boolean isEnum(PropertyBean bean) {
+ String classname = bean.getClassname();
+ Class<?> class1;
+ try {
+ class1 = Class.forName(classname, false, loader);
+ } catch (ClassNotFoundException e) {
+ return false;
+ }
+ return class1.isEnum();
+ }
}
Modified: trunk/cdk/generator/src/main/resources/META-INF/templates12/tag.vm
===================================================================
--- trunk/cdk/generator/src/main/resources/META-INF/templates12/tag.vm 2008-03-14 10:00:29
UTC (rev 6800)
+++ trunk/cdk/generator/src/main/resources/META-INF/templates12/tag.vm 2008-03-14 11:15:48
UTC (rev 6801)
@@ -11,8 +11,8 @@
import ${component.classname};
/**
- * @author shura (latest modification by $Author: alexsmirnov $)
- * @version $Revision: 1.1.2.2 $ $Date: 2007/01/03 21:05:14 $
+ * @author shura (latest modification by Maksim Kaszynski)
+ * @version 3.2.0
*
*/
public class $tag.simpleClassName extends $tag.superclass {
Modified: trunk/cdk/generator/src/main/resources/META-INF/templates12/tagtest.vm
===================================================================
--- trunk/cdk/generator/src/main/resources/META-INF/templates12/tagtest.vm 2008-03-14
10:00:29 UTC (rev 6800)
+++ trunk/cdk/generator/src/main/resources/META-INF/templates12/tagtest.vm 2008-03-14
11:15:48 UTC (rev 6801)
@@ -4,9 +4,13 @@
*/
package ${tag.packageName};
+import static org.easymock.classextension.EasyMock.*;
+import static org.ajax4jsf.tests.JsfMock.*;
+
#foreach($import in $imports)
import $import ;
#end
+
import javax.faces.convert.Converter ;
import javax.faces.context.FacesContext ;
import javax.faces.component.UIComponent;
@@ -42,8 +46,8 @@
import org.ajax4jsf.tests.Condition;
/**
- * @author shura (latest modification by $Author: alexsmirnov $)
- * @version $Revision: 1.1.2.2 $ $Date: 2007/01/03 21:05:14 $
+ * @author Maksim Kaszynski
+ * @since 3.2.0
*
*/
public class $tag.test.simpleClassName extends $tag.test.superclassname {
@@ -74,29 +78,6 @@
application.addConverter(this.getClass().getName(), MyConverter.class.getName());
tag = new ${tag.simpleClassName}();
tag.setPageContext(pageContext);
- tag.setParent(new UIComponentELTag(){
-
- 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;
- }
-
- });
}
@@ -109,355 +90,209 @@
#foreach( $prop in $component.properties )
#if( !$prop.existintag && !$prop.hidden)
public void ${generator.getSetterTestName($prop)}() {
- ${component.simpleClassName} component = new ${component.simpleClassName}();
+ ${component.simpleClassName} component =
createNiceMock(${component.simpleClassName}.class);
#if($prop.name == 'actionListener')
- final Condition condition0 = new Condition("Expecting addActionListener
call");
- final List<ActionListener> listeners = new ArrayList<ActionListener>();
- component = new ${component.simpleClassName}() {
- @Override
- public void addActionListener(ActionListener listener) {
- condition0.setTrue();
- listeners.add(listener);
- super.addActionListener(listener);
- }
- };
-
String expression = "#{bean.actionListener}";
MockMethodExpression _actionListener = new MockMethodExpression(expression, null,
null);
tag.setActionListener(_actionListener);
+ component.addActionListener(meActionListener(_actionListener));
+ expectLastCall().once();
+ replay(component);
tag.setProperties(component);
- //Check addListener method is called
- evaluate(condition0);
- //Check listener was really added
- assertFalse(listeners.isEmpty());
- //Now try to invoke listener to see that underlying method expression is triggered
- ActionEvent event = new ActionEvent(component);
- for (ActionListener actionListener : listeners) {
- try {
- actionListener.processAction(event);
- } catch(Exception e) {
- //ignore any exceptions in listeners
- }
- }
- List<Object[]> invocationArgs = _actionListener.getInvocationArgs();
- assertNotNull(invocationArgs);
- assertFalse(invocationArgs.isEmpty());
- assertEquals(1, invocationArgs.size());
- Object[] objects = invocationArgs.get(0);
- assertEquals(1, objects.length);
- assertEquals(event, objects[0]);
-
+ verify(component);
+
#elseif($prop.name == 'action')
- final String expression = "#{bean.action}";
- final MockMethodExpression action = new MockMethodExpression(expression, null, null);
- final Condition conditionA = new Condition("expecting setActionExpression to be
called");
- component = new ${component.simpleClassName}(){
- @Override
- public void setActionExpression(MethodExpression actionExpression) {
- assertNotNull(actionExpression);
- assertEquals(expression, actionExpression.getExpressionString());
- conditionA.setTrue();
- super.setActionExpression(actionExpression);
- }
- };
+ String expression = "#{bean.action}";
+ MockMethodExpression action = new MockMethodExpression(expression, null, null);
+ component.setActionExpression(same(action));
+ expectLastCall().once();
tag.setAction(action);
+ replay(component);
tag.setProperties(component);
- evaluate(conditionA);
+ verify(component);
#elseif($prop.name == 'valueChangeListener')
- final Condition condition0 = new Condition("Expecting addValueChangeListener
call");
- final List<ValueChangeListener> listeners = new
ArrayList<ValueChangeListener>();
- component = new ${component.simpleClassName}() {
- @Override
- public void addValueChangeListener(ValueChangeListener listener) {
- condition0.setTrue();
- listeners.add(listener);
- super.addValueChangeListener(listener);
- }
- };
-
String expression = "#{bean.actionListener}";
MockMethodExpression valueChangeListener = new MockMethodExpression(expression, null,
null);
tag.setValueChangeListener(valueChangeListener);
+ component.addValueChangeListener(meValueChangeListener(valueChangeListener));
+ expectLastCall().once();
+ replay(component);
tag.setProperties(component);
- //Check addListener method is called
- evaluate(condition0);
- //Check listener was really added
- assertFalse(listeners.isEmpty());
- //Now try to invoke listener to see that underlying method expression is triggered
- ValueChangeEvent event = new ValueChangeEvent(component, new Object(), new Object());
- for (ValueChangeListener listener : listeners) {
- try {
- listener.processValueChange(event);
- } catch(Exception e) {
- //ignore any exceptions in listeners
- }
- }
- List<Object[]> invocationArgs = valueChangeListener.getInvocationArgs();
- assertNotNull(invocationArgs);
- assertFalse(invocationArgs.isEmpty());
- assertEquals(1, invocationArgs.size());
- Object[] objects = invocationArgs.get(0);
- assertEquals(1, objects.length);
- assertEquals(event, objects[0]);
+ verify(component);
#elseif($prop.name == 'validator')
- final Condition condition0 = new Condition(
- "Expecting addValidator call");
- final List<Validator> validators = new ArrayList<Validator>();
- component = new ${component.simpleClassName}() {
- @Override
- public void addValidator(Validator validator) {
- condition0.setTrue();
- validators.add(validator);
- super.addValidator(validator);
- }
- };
-
String expression = "#{bean.validate}";
- MockMethodExpression validator = new MockMethodExpression(
- expression, null, null);
+ MockMethodExpression validator = new MockMethodExpression(expression, null, null);
tag.setValidator(validator);
+ component.addValidator(meValidator(validator));
+ expectLastCall().once();
+ replay(component);
tag.setProperties(component);
- // Check addValidator method is called
- evaluate(condition0);
- // Check validator was really added
- assertFalse(validators.isEmpty());
- // Now try to invoke validator to see that underlying method expression
- // is triggered
- Object value = new Object();
-
- for (Validator validatorItem : validators) {
- try {
- validatorItem.validate(facesContext, component, value);
- } catch (Exception e) {
- //Ignore
- }
- }
-
- List<Object[]> invocationArgs = validator.getInvocationArgs();
- assertNotNull(invocationArgs);
- assertFalse(invocationArgs.isEmpty());
- assertEquals(1, invocationArgs.size());
- Object[] objects = invocationArgs.get(0);
- assertEquals(3, objects.length);
- assertEquals(facesContext, objects[0]);
- assertEquals(component, objects[1]);
- assertEquals(value, objects[2]);
+ verify(component);
#elseif($prop.isInstanceof("javax.el.MethodExpression") ||
$prop.isInstanceof("javax.faces.el.MethodBinding"))
- final String expression = "#{bean.${prop.name}}";
- final MockMethodExpression _${prop.name} = new MockMethodExpression(expression, null,
null);
- final Condition conditionMB = new Condition("expecting ${prop.setterName} to be
called");
- component = new ${component.simpleClassName}(){
- @Override
- public void ${prop.setterName}(${prop.classname} __${prop.name}) {
- assertNotNull(__${prop.name});
- assertEquals(expression, __${prop.name}.getExpressionString());
- conditionMB.setTrue();
- super.${prop.setterName}(__${prop.name});
- }
- };
+ #if($prop.isInstanceof("javax.el.MethodExpression"))
+ #set($matcher = 'meEqToMe')
+ #else
+ #set($matcher = 'mbEqToMe')
+ #end
+ String expression = "#{bean.${prop.name}}";
+ MockMethodExpression _${prop.name} = new MockMethodExpression(expression, null, null);
+ component.${prop.setterName}(${matcher}(_${prop.name}));
+ replay(component);
tag.${prop.setterName}(_${prop.name});
tag.setProperties(component);
- evaluate(conditionMB);
+ verify(component);
#elseif($prop.isInstanceof("javax.el.ValueExpression"))
- final ValueExpression expression = expressionFactory.createValueExpression(elContext,
"#{bean.${prop.name}}", Object.class);
- final Condition conditionVE = new Condition("expecting ${prop.setterName} to be
called");
- component = new ${component.simpleClassName}(){
- @Override
- public void ${prop.setterName}(ValueExpression ve) {
- assertNotNull(ve);
- if (ve.equals(expression)) {
- conditionVE.setTrue();
- }
- super.${prop.setterName}(ve);
- }
- };
- //Then test literal one
+ final ValueExpression expression = new
org.ajax4jsf.tests.MockValueExpression("#{bean.${prop.name}}");
+ component.${prop.setterName}(same(expression));
+ expectLastCall().once();
+ replay(component);
tag.${prop.setterName}(expression);
tag.setProperties(component);
- evaluate(conditionVE);
+ verify(component);
#elseif($prop.isInstanceof("javax.faces.el.ValueBinding"))
- final ValueExpression expression = expressionFactory.createValueExpression(elContext,
"#{bean.${prop.name}}", Object.class);
- final Condition conditionVB = new Condition("expecting ${prop.setterName} to be
called");
- component = new ${component.simpleClassName}(){
- @Override
- public void ${prop.setterName}(javax.faces.el.ValueBinding vb) {
- assertNotNull(vb);
- if (vb.getExpressionString().equals(expression.getExpressionString())) {
- conditionVB.setTrue();
- }
- super.${prop.setterName}(vb);
- }
- };
+ final ValueExpression expression = new
org.ajax4jsf.tests.MockValueExpression("#{bean.${prop.name}}");
+ component.${prop.setterName}(vbEqToVe(expression));
//Then test literal one
+ expectLastCall().once();
+
+ replay(component);
tag.${prop.setterName}(expression);
tag.setProperties(component);
- evaluate(conditionVB);
+ verify(component);
#elseif($prop.el)
//el=true
- final Condition condition = new Condition("expecting
setValueExpression(\"${prop.name}\") to be called");
- component = new ${component.simpleClassName}() {
- @Override
- public void setValueExpression(String name, ValueExpression binding) {
- if (name.equals("${prop.name}")) {
- condition.setTrue();
- }
- super.setValueExpression(name, binding);
- }
- };
- ValueExpression expression = expressionFactory.createValueExpression(elContext,
"#{bean.${prop.name}}", ${prop.classname}.class);
+ ValueExpression expression = new
org.ajax4jsf.tests.MockValueExpression("#{bean.${prop.name}}");
+ component.setValueExpression(eq("${prop.name}"), same(expression));
+ expectLastCall().once();
+ replay(component);
tag.${prop.setterName}(expression);
tag.setProperties(component);
- evaluate(condition);
+ verify(component);
#if($prop.name == 'converter')
String converterType = this.getClass().getName();
- final Condition conditionC = new Condition("expecting call to
setConverter");
- component = new ${component.simpleClassName}(){
- @Override
- public void setConverter(Converter converter) {
- assertTrue(converter instanceof MyConverter);
- conditionC.setTrue();
- super.setConverter(converter);
- }
- };
- expression = expressionFactory.createValueExpression(elContext, converterType,
String.class);
+ expression = new org.ajax4jsf.tests.LiteralValueExpression(converterType);
+ reset(component);
+ component.setConverter(isA(MyConverter.class));
tag.setConverter(expression);
+ replay(component);
tag.setProperties(component);
- evaluate(conditionC);
-
+ verify(component);
#elseif(!$prop.elonly && ${testDataGenerator.isNativelySupported($prop)})
//In case of literal VE
- final Condition condition2 = new Condition("expecting ${prop.setterName} to be
called");
- final ${prop.classname} _${prop.name} = ${testDataGenerator.getTestVeData($prop)};
- component = new ${component.simpleClassName}(){
- @Override
- public void ${prop.setterName}(${prop.classname} __${prop.name}) {
- assertEquals(__${prop.name}, _${prop.name});
- condition2.setTrue();
- super.${prop.setterName}(__${prop.name});
- }
- };
- expression = expressionFactory.createValueExpression(elContext,
String.valueOf(_${prop.name}), ${prop.classname}.class);
+ ${prop.classname} _${prop.name} = ${testDataGenerator.getTestVeData($prop)};
+ reset(component);
+ expression = new org.ajax4jsf.tests.LiteralValueExpression(_${prop.name});
+ component.${prop.setterName}(eq(_${prop.name}));
+ expectLastCall().once();
+
tag.${prop.setterName}(expression);
+ replay(component);
tag.setProperties(component);
- evaluate(condition2);
- //Then test literal one
+ verify(component);
+
+ try {
+ //Now test evaluation of literal
+ expression = new org.ajax4jsf.tests.ConstantlyFailingLiteralValueExpression();
+ tag.${prop.setterName}(expression);
+ tag.setProperties(component);
+ fail("An exception should be thrown");
+ } catch(javax.faces.FacesException e) {
+ //It's ok to throw faces Exception, but its cause should be ELException
+ assertTrue(e.getCause() instanceof javax.el.ELException);
+ }
#end
#else
- //Case of el="false"
- final Condition condition3 = new Condition("expecting ${prop.setterName} to be
called");
- final ${prop.classname} _${prop.name} = ${testDataGenerator.getTestVeData($prop)};
- component = new ${component.simpleClassName}(){
- @Override
- public void ${prop.setterName}(${prop.classname} __${prop.name}) {
- condition3.setTrue();
- assertEquals(__${prop.name},_${prop.name});
- super.${prop.setterName}(__${prop.name});
- }
- };
- //Then test literal one
+ ${prop.classname} _${prop.name} = ${testDataGenerator.getTestVeData($prop)};
+ reset(component);
+ component.${prop.setterName}(eq(_${prop.name}));
+ expectLastCall().once();
+
tag.${prop.setterName}(String.valueOf(_${prop.name}));
+ replay(component);
tag.setProperties(component);
- evaluate(condition3);
+ verify(component);
+
#end
}
#end
#end
-
-
-/**
-#foreach( $prop in $component.properties )
- #if( !$prop.existintag && !$prop.hidden)
- #if($prop.name == "action")
- setActionProperty(comp, this._${prop.name});
- #elseif($prop.name == "actionListener")
- setActionListenerProperty(comp, this._${prop.name});
- #elseif($prop.name == "converter")
- setConverterProperty(comp, this._${prop.name});
- #elseif($prop.name == "validator")
- setValidatorProperty(comp, this._${prop.name});
- #elseif($prop.name == "valueChangeListener")
- setValueChangeListenerProperty(comp, this._${prop.name});
- #elseif( $prop.isInstanceof("javax.faces.el.MethodBinding") )
- if(null != this._${prop.name}){
- if (!this._${prop.name}.isLiteralText())
- {
- MethodBinding mb = new
MethodBindingMethodExpressionAdaptor(this._${prop.name});
- ((${component.simpleClassName})component).${prop.setterName}(mb);
- }
- else
- {
- getFacesContext().getExternalContext().log("Component " +
component.getClientId(getFacesContext()) + " has invalid ${prop.name} value: " +
this._${prop.name});
- }
- }
- #elseif($prop.isInstanceof("javax.faces.el.ValueBinding") )
- if(null != this._${prop.name}){
- ValueBinding vb = new ValueBindingValueExpressionAdaptor(this._${prop.name});
- ((${component.simpleClassName})component).${prop.setterName}(vb);
- }
- #elseif($prop.isInstanceof("javax.el.MethodExpression") )
- if(null != this._${prop.name}){
- ((${component.simpleClassName})component).${prop.setterName}(this._${prop.name});
- }
- #else
- #if($prop.elonly)
- if(null != this._${prop.name} && this._${prop.name}.isLiteralText()){
- throw new IllegalArgumentException("Component ${component.name} with Id "
+ component.getClientId(getFacesContext()) +" allows only EL expressions for property
${prop.name}");
- }
- #end
-
- #if ($prop.el)
- if (this._${prop.name} != null) {
- if (this._${prop.name}.isLiteralText()) {
- try {
- #if (${prop.simpleType})
- #set ($propertyClass = ${prop.boxingClass})
- #else
- #set ($propertyClass = ${prop.classname})
- #end
-
- $propertyClass __${prop.name} = ($propertyClass) getFacesContext().
- getApplication().
- getExpressionFactory().
- coerceToType(this._${prop.name}.getExpressionString(),
- ${propertyClass}.class);
-
- #if (${prop.simpleType})
- comp.${prop.setterName}(__${prop.name}.${prop.classname}Value());
- #else
- comp.${prop.setterName}(__${prop.name});
- #end
- } catch (ELException e) {
- throw new FacesException(e);
- }
- } else {
- component.setValueExpression("${prop.name}", this._${prop.name});
- }
- }
- #else
- #if (!${prop.simpleType})
- if (this._${prop.name} != null) {
- #end
+ public void testRelease() {
+ ${component.simpleClassName} component =
createMock(${component.simpleClassName}.class);
+
+ try {
+ java.lang.reflect.Method [] methodsToMock = {
+ #foreach( $prop in $component.properties )
+ #if( !$prop.existintag && !$prop.hidden)
+ ${component.simpleClassName}.class.getMethod("${prop.setterName}",
${prop.classname}.class),
+ #end
+ #end //We mock set rendered to work around easy mock's limitation
+ ${component.simpleClassName}.class.getMethod("setValueExpression",
String.class, ValueExpression.class)
- comp.${prop.setterName}(this._${prop.name});
+ };
- #if (!${prop.simpleType})
- }
- #end
- #end
- #end
- #end
-#end
-*/
+ component = createMock(${component.simpleClassName}.class, methodsToMock);
+ } catch(NoSuchMethodException e) {
+ fail("NoSuchMethod" + e.getMessage());
+ }
+
+ #foreach( $prop in $component.properties )
+ #if( !$prop.existintag && !$prop.hidden)
+ //First check EL-properties (value and method expressions)
+ #if($prop.isInstanceof("javax.el.MethodExpression") ||
$prop.isInstanceof("javax.faces.el.MethodBinding"))
+ MethodExpression ${prop.name}Me = new
org.ajax4jsf.tests.MockMethodExpression("#{bean.${prop.name}}", null, null);
+ tag.${prop.setterName}(${prop.name}Me);
+ #elseif ($prop.el)
+ ValueExpression ${prop.name}Ve = new
org.ajax4jsf.tests.MockValueExpression("#{bean.${prop.name}}");
+ tag.${prop.setterName}(${prop.name}Ve);
+ #end
+ #end
+ #end
+ tag.release();
+
+ replay(component);
+ tag.setProperties(component);
+ verify(component);
+ reset(component);
+
+ //Then check for literal and non-el properties
+
+ #foreach( $prop in $component.properties )
+ #if( !$prop.existintag && !$prop.hidden)
+ //First check EL-properties (value and method expressions)
+ #if($prop.isInstanceof("javax.el.MethodExpression") ||
$prop.isInstanceof("javax.faces.el.MethodBinding"))
+ #if (!$prop.elonly)
+ tag.${prop.setterName}(new
org.ajax4jsf.tests.MockMethodExpression("${prop.name}", null, null));
+ #end
+ #elseif ($prop.el && !$prop.elonly &&
${testDataGenerator.isNativelySupported($prop)})
+ tag.${prop.setterName}(new
org.ajax4jsf.tests.LiteralValueExpression(String.valueOf(${testDataGenerator.getTestVeData($prop)})));
+ #elseif (!$prop.el && ${testDataGenerator.isNativelySupported($prop)})
+ tag.${prop.setterName}(String.valueOf(${testDataGenerator.getTestVeData($prop)}));
+ #end
+ #end
+ #end
+ tag.release();
+
+ replay(component);
+
+ tag.setProperties(component);
+ verify(component);
+ }
+
+
public void testGetRendererType(){
- //assertEquals(tag.getRendererType(), $);
+ #if(${component.renderer.name})
+ assertEquals(tag.getRendererType(), "${component.renderer.name}");
+ #else
+ assertEquals(tag.getRendererType(), null);
+ #end
}
public void testGetComponentType(){
Modified: trunk/framework/api/src/main/java/org/richfaces/model/Ordering.java
===================================================================
--- trunk/framework/api/src/main/java/org/richfaces/model/Ordering.java 2008-03-14
10:00:29 UTC (rev 6800)
+++ trunk/framework/api/src/main/java/org/richfaces/model/Ordering.java 2008-03-14
11:15:48 UTC (rev 6801)
@@ -5,7 +5,7 @@
*
*/
public enum Ordering {
- ASCENDING {},
- DESCENDING {},
- UNSORTED {}
+ ASCENDING,
+ DESCENDING,
+ UNSORTED
}
Modified:
trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/taglib/HtmlComponentTagBase.java
===================================================================
---
trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/taglib/HtmlComponentTagBase.java 2008-03-14
10:00:29 UTC (rev 6800)
+++
trunk/framework/impl/src/main/java/org/ajax4jsf/webapp/taglib/HtmlComponentTagBase.java 2008-03-14
11:15:48 UTC (rev 6801)
@@ -77,21 +77,21 @@
protected void setProperties(UIComponent component)
{
super.setProperties(component);
- component.setValueExpression(HTML.dir_ATTRIBUTE, _dir);
- component.setValueExpression(HTML.lang_ATTRIBUTE, _lang);
- component.setValueExpression(HTML.style_ATTRIBUTE, _style);
- component.setValueExpression(HTML.title_ATTRIBUTE, _title);
- component.setValueExpression(HTML.STYLE_CLASS_ATTR, _styleClass);
- component.setValueExpression(HTML.onclick_ATTRIBUTE, _onclick);
- component.setValueExpression(HTML.ondblclick_ATTRIBUTE, _ondblclick);
- component.setValueExpression(HTML.onmousedown_ATTRIBUTE, _onmousedown);
- component.setValueExpression(HTML.onmouseup_ATTRIBUTE, _onmouseup);
- component.setValueExpression(HTML.onmouseover_ATTRIBUTE, _onmouseover);
- component.setValueExpression(HTML.onmousemove_ATTRIBUTE, _onmousemove);
- component.setValueExpression(HTML.onmouseout_ATTRIBUTE, _onmouseout);
- component.setValueExpression(HTML.onkeypress_ATTRIBUTE, _onkeypress);
- component.setValueExpression(HTML.onkeydown_ATTRIBUTE, _onkeydown);
- component.setValueExpression(HTML.onkeyup_ATTRIBUTE, _onkeyup);
+ setProperty(component, HTML.dir_ATTRIBUTE, _dir);
+ setProperty(component, HTML.lang_ATTRIBUTE, _lang);
+ setProperty(component, HTML.style_ATTRIBUTE, _style);
+ setProperty(component, HTML.title_ATTRIBUTE, _title);
+ setProperty(component, HTML.STYLE_CLASS_ATTR, _styleClass);
+ setProperty(component, HTML.onclick_ATTRIBUTE, _onclick);
+ setProperty(component, HTML.ondblclick_ATTRIBUTE, _ondblclick);
+ setProperty(component, HTML.onmousedown_ATTRIBUTE, _onmousedown);
+ setProperty(component, HTML.onmouseup_ATTRIBUTE, _onmouseup);
+ setProperty(component, HTML.onmouseover_ATTRIBUTE, _onmouseover);
+ setProperty(component, HTML.onmousemove_ATTRIBUTE, _onmousemove);
+ setProperty(component, HTML.onmouseout_ATTRIBUTE, _onmouseout);
+ setProperty(component, HTML.onkeypress_ATTRIBUTE, _onkeypress);
+ setProperty(component, HTML.onkeydown_ATTRIBUTE, _onkeydown);
+ setProperty(component, HTML.onkeyup_ATTRIBUTE, _onkeyup);
}
public void setStyleClass(ValueExpression styleClass)
Modified: trunk/framework/test/pom.xml
===================================================================
--- trunk/framework/test/pom.xml 2008-03-14 10:00:29 UTC (rev 6800)
+++ trunk/framework/test/pom.xml 2008-03-14 11:15:48 UTC (rev 6801)
@@ -60,13 +60,11 @@
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>2.2</version>
- <optional>true</optional>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymockclassextension</artifactId>
<version>2.2.1</version>
- <optional>true</optional>
</dependency>
<dependency>
<groupId>rhino</groupId>
Modified:
trunk/framework/test/src/main/java/org/ajax4jsf/tests/AbstractAjax4JsfTestCase.java
===================================================================
---
trunk/framework/test/src/main/java/org/ajax4jsf/tests/AbstractAjax4JsfTestCase.java 2008-03-14
10:00:29 UTC (rev 6800)
+++
trunk/framework/test/src/main/java/org/ajax4jsf/tests/AbstractAjax4JsfTestCase.java 2008-03-14
11:15:48 UTC (rev 6801)
@@ -55,6 +55,7 @@
import org.ajax4jsf.tests.org.apache.shale.test.config.ConfigParser;
import org.ajax4jsf.webapp.WebXml;
import org.apache.shale.test.base.AbstractJsfTestCase;
+import org.apache.shale.test.mock.MockApplication12;
import org.apache.shale.test.mock.MockPrintWriter;
import org.apache.shale.test.mock.MockResponseWriter;
import org.apache.shale.test.mock.MockServletOutputStream;
@@ -110,6 +111,19 @@
// This method MUST BE OVERRIDEN in any subclasses - since Junit see for it in class
for call
super.setUp();
+
+ /*
+ * Don't know yet how to support enums
+ *
+ * expressionFactory = new
EnumSupportExpressionFactoryWrapper(application.getExpressionFactory());
+ application = new MockApplication12() {
+ @Override
+ public ExpressionFactory getExpressionFactory() {
+ return expressionFactory;
+ }
+ };
+ facesContext.setApplication(application);
+ */
// Setup FacesContext with necessary init parameters.
this.servletContext.addInitParameter(SkinFactory.SKIN_PARAMETER, getSkinName());
// setup VCP renderKit, create renderers.
@@ -185,7 +199,7 @@
ConfigParser parser = new ConfigParser();
parser.parse(parser.getPlatformURLs());
- Enumeration resources =
getClass().getClassLoader().getResources("META-INF/faces-config.xml");
+ Enumeration<URL> resources =
getClass().getClassLoader().getResources("META-INF/faces-config.xml");
while (resources.hasMoreElements()) {
parser.parse((URL) resources.nextElement());
}
Modified: trunk/framework/test/src/main/java/org/ajax4jsf/tests/AbstractJspTestCase.java
===================================================================
---
trunk/framework/test/src/main/java/org/ajax4jsf/tests/AbstractJspTestCase.java 2008-03-14
10:00:29 UTC (rev 6800)
+++
trunk/framework/test/src/main/java/org/ajax4jsf/tests/AbstractJspTestCase.java 2008-03-14
11:15:48 UTC (rev 6801)
@@ -10,6 +10,8 @@
import java.util.Map;
import javax.el.ELContext;
+import javax.faces.component.UIOutput;
+import javax.faces.webapp.UIComponentELTag;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.jsp.PageContext;
@@ -22,6 +24,7 @@
protected PageContext pageContext = null;
+ protected UIComponentELTag rootTag;
/**
* @param name
*/
@@ -103,12 +106,32 @@
}
}
};
+
+
+ rootTag = new UIComponentELTag() {
+
+ @Override
+ public String getComponentType() {
+ // TODO Auto-generated method stub
+ return UIOutput.COMPONENT_TYPE;
+ }
+
+ @Override
+ public String getRendererType() {
+ return null;
+ }
+
+ };
+
+ rootTag.setPageContext(pageContext);
+ rootTag.doStartTag();
}
@Override
public void tearDown() throws Exception {
pageContext = null;
+ rootTag = null;
super.tearDown();
}
}
Added:
trunk/framework/test/src/main/java/org/ajax4jsf/tests/ConstantlyFailingLiteralValueExpression.java
===================================================================
---
trunk/framework/test/src/main/java/org/ajax4jsf/tests/ConstantlyFailingLiteralValueExpression.java
(rev 0)
+++
trunk/framework/test/src/main/java/org/ajax4jsf/tests/ConstantlyFailingLiteralValueExpression.java 2008-03-14
11:15:48 UTC (rev 6801)
@@ -0,0 +1,92 @@
+/**
+ *
+ */
+package org.ajax4jsf.tests;
+
+import javax.el.ELContext;
+import javax.el.ELException;
+import javax.el.ValueExpression;
+
+/**
+ * Value expression failing when trying
+ * to coerce its expression string to any type
+ * Needed to test tags throw FacesException in that case
+ * @author Maksim Kaszynski
+ *
+ */
+@SuppressWarnings("serial")
+public class ConstantlyFailingLiteralValueExpression extends ValueExpression {
+
+ /* (non-Javadoc)
+ * @see javax.el.ValueExpression#getExpectedType()
+ */
+ @Override
+ public Class<?> getExpectedType() {
+ throw new ELException("Everything is a stub here");
+ }
+
+ /* (non-Javadoc)
+ * @see javax.el.ValueExpression#getType(javax.el.ELContext)
+ */
+ @Override
+ public Class<?> getType(ELContext context) {
+ throw new ELException("Everything is a stub here");
+ }
+
+ /* (non-Javadoc)
+ * @see javax.el.ValueExpression#getValue(javax.el.ELContext)
+ */
+ @Override
+ public Object getValue(ELContext context) {
+ throw new ELException("Everything is a stub here");
+ }
+
+ /* (non-Javadoc)
+ * @see javax.el.ValueExpression#isReadOnly(javax.el.ELContext)
+ */
+ @Override
+ public boolean isReadOnly(ELContext context) {
+ throw new ELException("Everything is a stub here");
+ }
+
+ /* (non-Javadoc)
+ * @see javax.el.ValueExpression#setValue(javax.el.ELContext, java.lang.Object)
+ */
+ @Override
+ public void setValue(ELContext context, Object value) {
+ throw new ELException("Everything is a stub here");
+ }
+
+ /* (non-Javadoc)
+ * @see javax.el.Expression#equals(java.lang.Object)
+ */
+ @Override
+ public boolean equals(Object obj) {
+ throw new ELException("Everything is a stub here");
+ }
+
+ /* (non-Javadoc)
+ * @see javax.el.Expression#getExpressionString()
+ */
+ @Override
+ public String getExpressionString() {
+ throw new ELException("Everything is a stub here");
+ }
+
+ /* (non-Javadoc)
+ * @see javax.el.Expression#hashCode()
+ */
+ @Override
+ public int hashCode() {
+ throw new ELException("Everything is a stub here");
+ }
+
+ /* (non-Javadoc)
+ * @see javax.el.Expression#isLiteralText()
+ */
+ @Override
+ public boolean isLiteralText() {
+ return true;
+ }
+
+}
Added:
trunk/framework/test/src/main/java/org/ajax4jsf/tests/EnumSupportExpressionFactoryWrapper.java
===================================================================
---
trunk/framework/test/src/main/java/org/ajax4jsf/tests/EnumSupportExpressionFactoryWrapper.java
(rev 0)
+++
trunk/framework/test/src/main/java/org/ajax4jsf/tests/EnumSupportExpressionFactoryWrapper.java 2008-03-14
11:15:48 UTC (rev 6801)
@@ -0,0 +1,81 @@
+/**
+ *
+ */
+package org.ajax4jsf.tests;
+
+import javax.el.ELContext;
+import javax.el.ExpressionFactory;
+import javax.el.MethodExpression;
+import javax.el.ValueExpression;
+
+/**
+ * @author Maksim Kaszynski
+ *
+ */
+public class EnumSupportExpressionFactoryWrapper extends ExpressionFactory {
+
+ private ExpressionFactory factory;
+ /**
+ *
+ */
+ public EnumSupportExpressionFactoryWrapper(ExpressionFactory factory) {
+ this.factory = factory;
+ }
+
+ /* (non-Javadoc)
+ * @see javax.el.ExpressionFactory#coerceToType(java.lang.Object, java.lang.Class)
+ */
+ @Override
+ public Object coerceToType(Object obj, Class<?> targetType) {
+ if (targetType.isEnum()) {
+ return coerceToEnum(obj, (Class<?>) targetType);
+ }
+ return factory.coerceToType(obj, targetType);
+ }
+
+ @SuppressWarnings("unchecked")
+ private Enum<?> coerceToEnum(Object o, Class clazz) {
+ if (o == null || "".equals(o)) {
+ return null;
+ }
+
+ if (clazz.isInstance(o)) {
+ return (Enum<?>) o;
+ }
+
+ if (o instanceof String) {
+ return Enum.valueOf(clazz, (String) o);
+ }
+
+ throw new IllegalArgumentException("Cannot convert " + o + " of
class " + o.getClass() + " to type " + clazz);
+ }
+
+ /* (non-Javadoc)
+ * @see javax.el.ExpressionFactory#createMethodExpression(javax.el.ELContext,
java.lang.String, java.lang.Class, java.lang.Class<?>[])
+ */
+ @Override
+ public MethodExpression createMethodExpression(ELContext context,
+ String expression, Class<?> expectedReturnType,
+ Class<?>[] expectedParamTypes) {
+ return factory.createMethodExpression(context, expression, expectedReturnType,
expectedParamTypes);
+ }
+
+ /* (non-Javadoc)
+ * @see javax.el.ExpressionFactory#createValueExpression(java.lang.Object,
java.lang.Class)
+ */
+ @Override
+ public ValueExpression createValueExpression(Object instance,
+ Class<?> expectedType) {
+ return factory.createValueExpression(instance, expectedType);
+ }
+
+ /* (non-Javadoc)
+ * @see javax.el.ExpressionFactory#createValueExpression(javax.el.ELContext,
java.lang.String, java.lang.Class)
+ */
+ @Override
+ public ValueExpression createValueExpression(ELContext context,
+ String expression, Class<?> expectedType) {
+ return factory.createValueExpression(context, expression, expectedType);
+ }
+
+}
Added: trunk/framework/test/src/main/java/org/ajax4jsf/tests/JsfMock.java
===================================================================
--- trunk/framework/test/src/main/java/org/ajax4jsf/tests/JsfMock.java
(rev 0)
+++ trunk/framework/test/src/main/java/org/ajax4jsf/tests/JsfMock.java 2008-03-14 11:15:48
UTC (rev 6801)
@@ -0,0 +1,172 @@
+/**
+ *
+ */
+package org.ajax4jsf.tests;
+
+import javax.el.Expression;
+import javax.el.MethodExpression;
+import javax.el.ValueExpression;
+import javax.faces.component.UICommand;
+import javax.faces.component.UIComponent;
+import javax.faces.component.UIInput;
+import javax.faces.context.FacesContext;
+import javax.faces.el.MethodBinding;
+import javax.faces.el.ValueBinding;
+import javax.faces.event.ActionEvent;
+import javax.faces.event.ActionListener;
+import javax.faces.event.ValueChangeEvent;
+import javax.faces.event.ValueChangeListener;
+import javax.faces.validator.Validator;
+
+import org.easymock.IArgumentMatcher;
+import org.easymock.classextension.EasyMock;
+
+/**
+ * @author Administrator
+ *
+ */
+@SuppressWarnings("deprecation")
+public class JsfMock {
+
+ public static <T extends Expression> T expressionStringEq(T t) {
+ EasyMock.reportMatcher(new ExpressionEq(t){});
+ return null;
+ }
+
+
+ public static ValueBinding vbEqToVe(ValueExpression expression) {
+ EasyMock.reportMatcher(new ExpressionEq(expression){});
+ return null;
+ }
+
+ public static MethodBinding mbEqToMe(MethodExpression expression) {
+ EasyMock.reportMatcher(new ExpressionEq(expression){});
+ return null;
+ }
+
+ public static MethodExpression meEqToMe(MethodExpression expression) {
+ EasyMock.reportMatcher(new ExpressionEq(expression){});
+ return null;
+ }
+
+ public static Validator meValidator(MockMethodExpression expression) {
+ EasyMock.reportMatcher(new MethodValidatorMatcher(expression));
+ return null;
+ }
+
+ public static ActionListener meActionListener(MockMethodExpression expression) {
+ EasyMock.reportMatcher(new MethodActionListenerMatcher(expression));
+ return null;
+ }
+
+ public static ValueChangeListener meValueChangeListener(MockMethodExpression expression)
{
+ EasyMock.reportMatcher(new MethodValueChangeListenerMatcher(expression));
+ return null;
+ }
+
+// public static ValueExpression expressionStringEq(ValueExpression expression) {
+// EasyMock.reportMatcher(new ExpressionEq(expression) {});
+// return null;
+// }
+
+ public abstract static class ExpressionEq implements IArgumentMatcher{
+ private Expression expression;
+
+ public ExpressionEq(Expression expression) {
+ super();
+ this.expression = expression;
+ }
+
+ public void appendTo(StringBuffer buffer) {
+ buffer.append("Expression expected to have expression string ")
+ .append(expression.getExpressionString());
+ }
+ public boolean matches(Object argument) {
+ if (argument instanceof Expression) {
+ Expression e2 = (Expression) argument;
+ return e2.getExpressionString().equals(expression.getExpressionString());
+ } else if (argument instanceof ValueBinding) {
+ ValueBinding binding = (ValueBinding) argument;
+ return binding.getExpressionString().equals(expression.getExpressionString());
+ } else if (argument instanceof MethodBinding) {
+ MethodBinding binding = (MethodBinding) argument;
+ return binding.getExpressionString().equals(expression.getExpressionString());
+ }
+ return false;
+ }
+ }
+
+
+
+ public static class MethodActionListenerMatcher implements IArgumentMatcher{
+ private MockMethodExpression expression;
+
+ public MethodActionListenerMatcher(MockMethodExpression expression) {
+ super();
+ this.expression = expression;
+ }
+ public void appendTo(StringBuffer buffer) {
+ buffer
+ .append("Action Listener is supposed to evaluate method")
+ .append(expression.getExpressionString());
+ }
+ public boolean matches(Object argument) {
+ if (argument instanceof ActionListener) {
+ ActionListener listener = (ActionListener) argument;
+ ActionEvent event = new ActionEvent(new UICommand());
+ listener.processAction(event);
+ return expression.lastInvocationMatched(event);
+ }
+ return false;
+ }
+ }
+
+ public static class MethodValueChangeListenerMatcher implements IArgumentMatcher{
+ private MockMethodExpression expression;
+
+ public MethodValueChangeListenerMatcher(MockMethodExpression expression) {
+ super();
+ this.expression = expression;
+ }
+ public void appendTo(StringBuffer buffer) {
+ buffer
+ .append("ValueChangeListener Listener is supposed to evaluate method")
+ .append(expression.getExpressionString());
+ }
+ public boolean matches(Object argument) {
+ if (argument instanceof ValueChangeListener) {
+ ValueChangeListener listener = (ValueChangeListener) argument;
+ ValueChangeEvent event = new ValueChangeEvent(new UIInput(), new Object(), new
Object());
+ listener.processValueChange(event);
+ return expression.lastInvocationMatched(event);
+ }
+ return false;
+ }
+ }
+
+ public static class MethodValidatorMatcher implements IArgumentMatcher{
+ private MockMethodExpression expression;
+
+ public MethodValidatorMatcher(MockMethodExpression expression) {
+ super();
+ this.expression = expression;
+ }
+ public void appendTo(StringBuffer buffer) {
+ buffer
+ .append("Validator is supposed to evaluate method")
+ .append(expression.getExpressionString());
+ }
+ public boolean matches(Object argument) {
+ if (argument instanceof Validator) {
+ Validator validator = (Validator) argument;
+ FacesContext context = FacesContext.getCurrentInstance();
+ UIComponent component = new UIInput();
+ Object value = new Object();
+ validator.validate(context, component, value);
+ return expression.lastInvocationMatched(context, component, value);
+ }
+ return false;
+ }
+ }
+
+}
Added: trunk/framework/test/src/main/java/org/ajax4jsf/tests/LiteralValueExpression.java
===================================================================
--- trunk/framework/test/src/main/java/org/ajax4jsf/tests/LiteralValueExpression.java
(rev 0)
+++
trunk/framework/test/src/main/java/org/ajax4jsf/tests/LiteralValueExpression.java 2008-03-14
11:15:48 UTC (rev 6801)
@@ -0,0 +1,23 @@
+/**
+ *
+ */
+package org.ajax4jsf.tests;
+
+/**
+ * @author Administrator
+ *
+ */
+@SuppressWarnings("serial")
+public class LiteralValueExpression extends MockValueExpression {
+
+ public LiteralValueExpression(Object o) {
+ super(o);
+ // TODO Auto-generated constructor stub
+ }
+
+ @Override
+ public boolean isLiteralText() {
+ // TODO Auto-generated method stub
+ return true;
+ }
+}
Added: trunk/framework/test/src/main/java/org/ajax4jsf/tests/MockApplication.java
===================================================================
--- trunk/framework/test/src/main/java/org/ajax4jsf/tests/MockApplication.java
(rev 0)
+++ trunk/framework/test/src/main/java/org/ajax4jsf/tests/MockApplication.java 2008-03-14
11:15:48 UTC (rev 6801)
@@ -0,0 +1,28 @@
+/**
+ *
+ */
+package org.ajax4jsf.tests;
+
+import javax.el.ExpressionFactory;
+
+import org.apache.shale.test.el.MockExpressionFactory;
+import org.apache.shale.test.mock.MockApplication12;
+
+/**
+ * @author Administrator
+ *
+ */
+public class MockApplication extends MockApplication12 {
+
+ private ExpressionFactory expressionFactory;
+
+ public MockApplication() {
+ expressionFactory =
+ new EnumSupportExpressionFactoryWrapper(new MockExpressionFactory());
+ }
+
+ @Override
+ public ExpressionFactory getExpressionFactory() {
+ return expressionFactory;
+ }
+}
Modified: trunk/framework/test/src/main/java/org/ajax4jsf/tests/MockMethodExpression.java
===================================================================
---
trunk/framework/test/src/main/java/org/ajax4jsf/tests/MockMethodExpression.java 2008-03-14
10:00:29 UTC (rev 6800)
+++
trunk/framework/test/src/main/java/org/ajax4jsf/tests/MockMethodExpression.java 2008-03-14
11:15:48 UTC (rev 6801)
@@ -4,6 +4,7 @@
package org.ajax4jsf.tests;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import javax.el.ELContext;
@@ -102,4 +103,12 @@
public void reset() {
invocationArgs.clear();
}
+
+ public boolean lastInvocationMatched(Object ...objects) {
+ if (!invocationArgs.isEmpty()) {
+ Object[] argz = invocationArgs.get(invocationArgs.size() - 1);
+ return Arrays.equals(objects, argz);
+ }
+ return false;
+ }
}
Property changes on: trunk/samples/inplaceInput-sample
___________________________________________________________________
Name: svn:ignore
- target
+ target
.settings
.classpath
.project
Property changes on: trunk/samples/inplaceSelect-sample
___________________________________________________________________
Name: svn:ignore
- target
+ target
.settings
.classpath
.project
Property changes on: trunk/samples/richfaces-ear-demo/ejb
___________________________________________________________________
Name: svn:ignore
- target
+ target
.settings
.classpath
.project
Property changes on: trunk/samples/richfaces-ear-demo/richfacesEAR
___________________________________________________________________
Name: svn:ignore
- target
+ target
.settings
.project
Property changes on: trunk/samples/richfaces-ear-demo/webapp
___________________________________________________________________
Name: svn:ignore
- target
+ target
.settings
.classpath
.project
Property changes on: trunk/samples/seamEAR
___________________________________________________________________
Name: svn:ignore
+ target
Property changes on: trunk/samples/seamEAR/ear
___________________________________________________________________
Name: svn:ignore
- target
+ target
.settings
.project
Property changes on: trunk/samples/seamEAR/ejbs
___________________________________________________________________
Name: svn:ignore
- target
+ target
.settings
.classpath
.project
Property changes on: trunk/samples/seamEAR/primary-source
___________________________________________________________________
Name: svn:ignore
- target
+ target
.settings
.classpath
.project
Property changes on: trunk/samples/seamEAR/projects/logging
___________________________________________________________________
Name: svn:ignore
- target
+ target
.settings
.project
.classpath
Property changes on: trunk/samples/seamEAR/wars/seamWebapp
___________________________________________________________________
Name: svn:ignore
- target
+ target
.classpath
.project
.settings
Property changes on: trunk/ui/combobox
___________________________________________________________________
Name: svn:ignore
- target
.classpath
.project
.settings
+ target
.classpath
.project
.settings
.clover
Property changes on: trunk/ui/componentControl
___________________________________________________________________
Name: svn:ignore
- .classpath
.project
.settings
target
+ .classpath
.project
.settings
target
.clover
Property changes on: trunk/ui/contextMenu
___________________________________________________________________
Name: svn:ignore
- target
.classpath
.project
.settings
.jsdtscope
+ target
.classpath
.project
.settings
.jsdtscope
.clover
Property changes on: trunk/ui/core
___________________________________________________________________
Name: svn:ignore
- .classpath
.project
.settings
target
+ .classpath
.project
.settings
target
.clover
Property changes on: trunk/ui/dataFilterSlider
___________________________________________________________________
Name: svn:ignore
- target
.settings
.classpath
.project
+ target
.settings
.classpath
.project
.clover
Property changes on: trunk/ui/dataTable
___________________________________________________________________
Name: svn:ignore
- target
.settings
.classpath
.project
.buildpath
.externalToolBuilders
bin
+ target
.settings
.classpath
.project
.buildpath
.externalToolBuilders
bin
.clover
Property changes on: trunk/ui/datascroller
___________________________________________________________________
Name: svn:ignore
- target
.settings
.classpath
.project
+ target
.settings
.classpath
.project
.clover
Property changes on: trunk/ui/dropdown-menu
___________________________________________________________________
Name: svn:ignore
- .classpath
.project
.settings
target
+ .classpath
.project
.settings
target
.clover
Property changes on: trunk/ui/effect
___________________________________________________________________
Name: svn:ignore
- target
.settings
.classpath
.project
+ target
.settings
.classpath
.project
.clover
Property changes on: trunk/ui/fileUpload
___________________________________________________________________
Name: svn:ignore
- .settings
target
.project
.classpath
+ .settings
target
.project
.classpath
.clover
Property changes on: trunk/ui/gmap
___________________________________________________________________
Name: svn:ignore
- target
.settings
.classpath
.project
+ target
.settings
.classpath
.project
.clover
Property changes on: trunk/ui/inplaceInput
___________________________________________________________________
Name: svn:ignore
- target
.settings
.classpath
.project
+ target
.settings
.classpath
.project
.clover
Property changes on: trunk/ui/inplaceSelect
___________________________________________________________________
Name: svn:ignore
- target
.settings
.classpath
.project
+ target
.settings
.classpath
.project
.clover
Property changes on: trunk/ui/insert
___________________________________________________________________
Name: svn:ignore
- .classpath
.project
.settings
target
+ .classpath
.project
.settings
target
.clover
Property changes on: trunk/ui/jQuery
___________________________________________________________________
Name: svn:ignore
- .classpath
.project
.settings
target
+ .classpath
.project
.settings
target
.clover
Property changes on: trunk/ui/listShuttle
___________________________________________________________________
Name: svn:ignore
- .classpath
.project
.settings
target
+ .classpath
.project
.settings
target
.clover
Property changes on: trunk/ui/menu-components
___________________________________________________________________
Name: svn:ignore
- .classpath
.project
target
.settings
+ .classpath
.project
target
.settings
.clover
Property changes on: trunk/ui/message
___________________________________________________________________
Name: svn:ignore
- .classpath
.project
.settings
target
+ .classpath
.project
.settings
target
.clover
Property changes on: trunk/ui/modal-panel
___________________________________________________________________
Name: svn:ignore
- target
.settings
.classpath
.project
+ target
.settings
.classpath
.project
.clover
Property changes on: trunk/ui/orderingList
___________________________________________________________________
Name: svn:ignore
- .classpath
.project
.settings
target
bin
+ .classpath
.project
.settings
target
bin
.clover
Property changes on: trunk/ui/panelbar
___________________________________________________________________
Name: svn:ignore
- target
.settings
.classpath
.project
+ target
.settings
.classpath
.project
.clover
Property changes on: trunk/ui/panelmenu
___________________________________________________________________
Name: svn:ignore
- target
.settings
.project
.classpath
+ target
.settings
.project
.classpath
.clover
Property changes on: trunk/ui/pickList
___________________________________________________________________
Name: svn:ignore
- target
.classpath
.project
.settings
+ target
.classpath
.project
.settings
.clover
Property changes on: trunk/ui/progressBAR
___________________________________________________________________
Name: svn:ignore
- target
.classpath
.project
.settings
+ target
.classpath
.project
.settings
.clover
Property changes on: trunk/ui/scrollableDataTable
___________________________________________________________________
Name: svn:ignore
- target
.classpath
.project
.settings
bin
+ target
.classpath
.project
.settings
bin
.clover
Property changes on: trunk/ui/simpleTogglePanel
___________________________________________________________________
Name: svn:ignore
- target
.settings
.classpath
.project
+ target
.settings
.classpath
.project
.clover
Property changes on: trunk/ui/suggestionbox
___________________________________________________________________
Name: svn:ignore
- target
.settings
.classpath
.project
+ target
.settings
.classpath
.project
.clover
Property changes on: trunk/ui/togglePanel
___________________________________________________________________
Name: svn:ignore
- target
.settings
.classpath
.project
+ target
.settings
.classpath
.project
.clover
Property changes on: trunk/ui/toolBar
___________________________________________________________________
Name: svn:ignore
- target
.settings
.classpath
.project
+ target
.settings
.classpath
.project
.clover
Property changes on: trunk/ui/treeModel
___________________________________________________________________
Name: svn:ignore
- .classpath
.project
.settings
target
+ .classpath
.project
.settings
target
.clover
Property changes on: trunk/ui/virtualEarth
___________________________________________________________________
Name: svn:ignore
- target
.classpath
.project
.settings
+ target
.classpath
.project
.settings
.clover