Author: Alex.Kolonitsky
Date: 2010-01-18 04:57:23 -0500 (Mon, 18 Jan 2010)
New Revision: 16315
Modified:
root/cdk/trunk/plugins/annotations/src/main/java/org/richfaces/cdk/annotations/Converter.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/ValidatorProcessor.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ClassDescription.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ConverterModel.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ValidatorModel.java
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/testmodel/ConverterBeanTest.java
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/testmodel/ModelBeanTest.java
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/testmodel/ValidatorBeanTest.java
root/cdk/trunk/plugins/generator/src/test/resources/org/richfaces/cdk/xmlconfig/testmodel/ConverterBeanTest.xml
Log:
https://jira.jboss.org/jira/browse/RF-8232
Tags support - Attributs for convertor & validator, validate tests results by xsd
Modified:
root/cdk/trunk/plugins/annotations/src/main/java/org/richfaces/cdk/annotations/Converter.java
===================================================================
---
root/cdk/trunk/plugins/annotations/src/main/java/org/richfaces/cdk/annotations/Converter.java 2010-01-17
18:49:35 UTC (rev 16314)
+++
root/cdk/trunk/plugins/annotations/src/main/java/org/richfaces/cdk/annotations/Converter.java 2010-01-18
09:57:23 UTC (rev 16315)
@@ -42,13 +42,6 @@
public static final String NAME =
"org.richfaces.cdk.annotations.Converter";
- /**
- * <p class="changed_added_4_0">
- * Type of the renderer. If this value an empty, component type will be inferred from
class name.
- * </p>
- *
- * @return converter type.
- */
public String id() default "";
public Class<?> forClass() default Object.class;
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/ValidatorProcessor.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/ValidatorProcessor.java 2010-01-17
18:49:35 UTC (rev 16314)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/ValidatorProcessor.java 2010-01-18
09:57:23 UTC (rev 16315)
@@ -28,6 +28,7 @@
import javax.annotation.processing.SupportedAnnotationTypes;
import javax.lang.model.element.TypeElement;
+import javax.lang.model.element.Modifier;
import java.lang.annotation.Annotation;
/**
@@ -42,6 +43,9 @@
Validator validator = element.getAnnotation(Validator.class);
ValidatorModel validatorModel = new ValidatorModel(validator.id(), new
ClassDescription(element.getQualifiedName().toString()));
+ if (element.getModifiers().contains(Modifier.ABSTRACT)) {
+ validatorModel.setGenerate(true);
+ }
setDescription(element, validatorModel);
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ClassDescription.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ClassDescription.java 2010-01-17
18:49:35 UTC (rev 16314)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ClassDescription.java 2010-01-18
09:57:23 UTC (rev 16315)
@@ -40,16 +40,19 @@
* <p class="changed_added_4_0"></p>
*/
private static final long serialVersionUID = -846623207703750456L;
+
private static final ImmutableMap<String, String> PRIMITIVE_TYPES =
- ImmutableMap.<String, String>builder().put(boolean.class.getName(),
- Boolean.class.getName()).put(byte.class.getName(),
- Byte.class.getName()).put(char.class.getName(),
- Character.class.getName()).put(short.class.getName(),
- Short.class.getName()).put(int.class.getName(),
- Integer.class.getName()).put(long.class.getName(),
- Long.class.getName()).put(float.class.getName(),
- Float.class.getName()).put(double.class.getName(),
- Double.class.getName()).build();
+ ImmutableMap.<String, String>builder()
+ .put(boolean.class.getName(), Boolean.class.getName())
+ .put(byte.class.getName(), Byte.class.getName())
+ .put(char.class.getName(), Character.class.getName())
+ .put(short.class.getName(), Short.class.getName())
+ .put(int.class.getName(), Integer.class.getName())
+ .put(long.class.getName(), Long.class.getName())
+ .put(float.class.getName(), Float.class.getName())
+ .put(double.class.getName(), Double.class.getName())
+ .build();
+
private final String boxingClassName;
private final String fullName;
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ConverterModel.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ConverterModel.java 2010-01-17
18:49:35 UTC (rev 16314)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ConverterModel.java 2010-01-18
09:57:23 UTC (rev 16315)
@@ -25,6 +25,10 @@
import org.richfaces.cdk.CdkException;
+import javax.xml.bind.annotation.XmlElements;
+import javax.xml.bind.annotation.XmlElement;
+import java.util.Map;
+
/**
* <p class="changed_added_4_0"></p>
* @author asmirnov(a)exadel.com
@@ -40,6 +44,8 @@
private ClassDescription converterForClass;
+ private final ModelMap<String,Property> attributes =
ModelMap.<String,Property>create();
+
public ConverterModel() {
}
@@ -74,6 +80,30 @@
this.converterClass = converterClass;
}
+
+ /**
+ * <p class="changed_added_4_0">
+ * Represents JSF component attributes and properties.
+ * </p>
+ *
+ * @return the attributes
+ */
+ @XmlElements({@XmlElement(name = "property", type = Property.class) ,
+ @XmlElement(name = "attribute", type = AttributeModel.class)
})
+ public Map<String,Property> getAttributes() {
+ return attributes;
+ }
+
+ public Property addAttribute(String attributeName) {
+ Property attribute = attributes.get(attributeName);
+ if (null == attribute) {
+ attribute = new Property();
+ attributes.put(attributeName, attribute);
+ }
+
+ return attribute;
+ }
+
@Override
public <R, P> R accept(LibraryVisitor<R, P> visitor, P param) throws
CdkException {
return visitor.visit(this, param);
@@ -82,6 +112,8 @@
@Override
public void merge(ConverterModel other) {
ComponentLibrary.merge(this, other);
+
+ attributes.putAll(other.getAttributes());
}
@Override
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ValidatorModel.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ValidatorModel.java 2010-01-17
18:49:35 UTC (rev 16314)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ValidatorModel.java 2010-01-18
09:57:23 UTC (rev 16315)
@@ -25,6 +25,8 @@
import org.richfaces.cdk.CdkException;
+import java.util.Map;
+
/**
* <p class="changed_added_4_0"></p>
* @author asmirnov(a)exadel.com
@@ -33,10 +35,14 @@
public class ValidatorModel extends ModelElementBase implements
ModelElement<ValidatorModel> {
private static final long serialVersionUID = -6097027070372673266L;
+ private boolean generate = false;
+
private String validatorId;
private ClassDescription validatorClass;
+ private final ModelMap<String,Property> attributes =
ModelMap.<String,Property>create();
+
public ValidatorModel() {
}
@@ -45,6 +51,14 @@
setValidatorClass(validatorClass);
}
+ public boolean isGenerate() {
+ return generate;
+ }
+
+ public void setGenerate(boolean generate) {
+ this.generate = generate;
+ }
+
public String getValidatorId() {
return validatorId;
}
@@ -62,6 +76,23 @@
this.validatorClass = validatorClass;
}
+ public Map<String,Property> getAttributes() {
+ return attributes;
+ }
+
+ public Property addAttribute(String attributeName) {
+ Property attribute;
+
+ attribute = attributes.get(attributeName);
+ if(null == attribute){
+ attribute = new Property();
+ attributes.put(attributeName, attribute);
+ }
+
+ return attribute;
+ }
+
+
@Override
public <R, P> R accept(LibraryVisitor<R, P> visitor, P param) throws
CdkException {
return visitor.visit(this, param);
@@ -70,6 +101,8 @@
@Override
public void merge(ValidatorModel other) {
ComponentLibrary.merge(this, other);
+
+ attributes.putAll(other.getAttributes());
}
@Override
Modified:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/testmodel/ConverterBeanTest.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/testmodel/ConverterBeanTest.java 2010-01-17
18:49:35 UTC (rev 16314)
+++
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/testmodel/ConverterBeanTest.java 2010-01-18
09:57:23 UTC (rev 16315)
@@ -41,11 +41,6 @@
public void testMarshalResultStringT() throws Exception {
ComponentLibrary library = new ComponentLibrary();
- ComponentModel component = new ComponentModel(new
ComponentModel.Type("foo.bar"));
- library.getComponents().add(component);
- RenderKitModel renderKit = library.addRenderKit("HTML");
- RendererModel renderer = new RendererModel(new
RendererModel.Type("foo.Renderer"));
- renderKit.getRenderers().add(renderer);
ConverterModel converterModel = new ConverterModel("my_converter", new
ClassDescription(Object.class));
library.getConverters().add(converterModel);
@@ -54,6 +49,6 @@
// Checks
checkXmlStructure(facesConfig);
-// validateXml(facesConfig);
+ validateXml(facesConfig);
}
}
Modified:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/testmodel/ModelBeanTest.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/testmodel/ModelBeanTest.java 2010-01-17
18:49:35 UTC (rev 16314)
+++
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/testmodel/ModelBeanTest.java 2010-01-18
09:57:23 UTC (rev 16315)
@@ -24,22 +24,23 @@
import org.custommonkey.xmlunit.Diff;
import org.custommonkey.xmlunit.Validator;
import org.junit.Assert;
+import org.richfaces.cdk.CdkContext;
import org.richfaces.cdk.CdkContextBase;
import org.richfaces.cdk.model.ComponentLibrary;
+import org.richfaces.cdk.xmlconfig.CdkEntityResolver;
import org.richfaces.cdk.xmlconfig.FacesConfigGenerator;
import org.richfaces.cdk.xmlconfig.JAXBBinding;
import org.richfaces.cdk.xmlconfig.JaxbTestBase;
import org.richfaces.cdk.xmlconfig.model.FacesConfigAdapter;
-import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
+import org.xml.sax.InputSource;
import javax.xml.transform.stream.StreamResult;
-import java.io.File;
import java.io.IOException;
import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.StringReader;
import java.io.StringWriter;
+import java.io.StringReader;
+import java.io.InputStreamReader;
/**
* @author akolonitsky
@@ -47,19 +48,12 @@
*/
public abstract class ModelBeanTest extends JaxbTestBase {
- protected void validateXml(StringWriter facesConfig) throws SAXException {
- InputSource is = new InputSource(facesConfig.toString());
+ protected void validateXml(StringWriter facesConfig) throws SAXException, IOException
{
+ InputSource is = new InputSource(new StringReader(facesConfig.toString()));
Validator validator = new Validator(is);
validator.useXMLSchema(true);
- File source = null;
-// try {
-// source = null; //new InputStream(new
URL(ComponentLibrary.FACES_CONFIG_SCHEMA_LOCATION));
-// } catch (MalformedURLException e) {
-// e.printStackTrace(); //To change body of catch statement use File |
Settings | File Templates.
-// }
- if (source == null) {
- return;
- }
+ InputSource source = new CdkEntityResolver(null)
+ .resolveEntity(null, ComponentLibrary.FACES_CONFIG_SCHEMA_LOCATION);
validator.setJAXP12SchemaSource(source);
validator.assertIsValid();
Modified:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/testmodel/ValidatorBeanTest.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/testmodel/ValidatorBeanTest.java 2010-01-17
18:49:35 UTC (rev 16314)
+++
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/testmodel/ValidatorBeanTest.java 2010-01-18
09:57:23 UTC (rev 16315)
@@ -46,8 +46,6 @@
// Checks
checkXmlStructure(facesConfig);
-// validateXml(facesConfig);
+ validateXml(facesConfig);
}
-
-
-}
+}
\ No newline at end of file
Modified:
root/cdk/trunk/plugins/generator/src/test/resources/org/richfaces/cdk/xmlconfig/testmodel/ConverterBeanTest.xml
===================================================================
---
root/cdk/trunk/plugins/generator/src/test/resources/org/richfaces/cdk/xmlconfig/testmodel/ConverterBeanTest.xml 2010-01-17
18:49:35 UTC (rev 16314)
+++
root/cdk/trunk/plugins/generator/src/test/resources/org/richfaces/cdk/xmlconfig/testmodel/ConverterBeanTest.xml 2010-01-18
09:57:23 UTC (rev 16315)
@@ -1,25 +1,9 @@
<?xml version="1.0" encoding="UTF-8"
standalone="yes"?>
-<faces-config metadata-complete="false" version="2.0"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:cdk="http://richfaces.org/cdk/extensions"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <component>
- <component-type>foo.bar</component-type>
- <component-extension>
- <cdk:generate>false</cdk:generate>
- </component-extension>
- </component>
+<faces-config version="2.0" metadata-complete="false"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:cdk="http://richfaces.org/cdk/extensions"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<converter>
<converter-id>my_converter</converter-id>
<converter-class>java.lang.Object</converter-class>
<converter-extension/>
</converter>
<faces-config-extension/>
- <render-kit>
- <render-kit-id>HTML</render-kit-id>
- <renderer>
- <renderer-type>foo.Renderer</renderer-type>
- <renderer-extension>
- <cdk:renders-children>false</cdk:renders-children>
- </renderer-extension>
- </renderer>
- <render-kit-extension/>
- </render-kit>
</faces-config>
\ No newline at end of file