Author: alexsmirnov
Date: 2009-12-21 19:12:16 -0500 (Mon, 21 Dec 2009)
New Revision: 16183
Added:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/model/RenderKitIdAdapter.java
root/cdk/trunk/plugins/generator/src/test/resources/org/richfaces/cdk/xmlconfig/renderkit.xml
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/model/RenderKitBean.java
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/FacesConfigTest.java
Log:
Fix render-kit-id marshal/unmarshal
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/model/RenderKitBean.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/model/RenderKitBean.java 2009-12-21
23:59:12 UTC (rev 16182)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/model/RenderKitBean.java 2009-12-22
00:12:16 UTC (rev 16183)
@@ -45,24 +45,32 @@
* @author asmirnov(a)exadel.com
*/
public class RenderKitBean extends ExtensibleBean<RenderKitBean.RenderKitExtension>
implements MapEntry<RenderKit.Id> {
- @XmlElement(name = "render-kit-id", namespace =
ComponentLibrary.FACES_CONFIG_NAMESPACE)
- private String id = RenderKitFactory.HTML_BASIC_RENDER_KIT;
- @XmlElement(name = "renderer", namespace =
ComponentLibrary.FACES_CONFIG_NAMESPACE)
- @XmlJavaTypeAdapter(RendererAdapter.class)
+
private List<Renderer> renderers = Lists.newArrayList();
- @XmlElement(name = "client-behavior-renderer", namespace =
ComponentLibrary.FACES_CONFIG_NAMESPACE)
- @XmlJavaTypeAdapter(BehaviorRendererAdapter.class)
private List<BehaviorRenderer> behaviorRenderers = Lists.newArrayList();
- @XmlElement(name = "render-kit-class", namespace =
ComponentLibrary.FACES_CONFIG_NAMESPACE)
- @XmlJavaTypeAdapter(ClassAdapter.class)
private ClassDescription renderkitClass;
- private Id key;
+ private Id key = new Id(RenderKitFactory.HTML_BASIC_RENDER_KIT);
+
+ @Override
+ @XmlElement(name = "render-kit-id", namespace =
ComponentLibrary.FACES_CONFIG_NAMESPACE)
+ @XmlJavaTypeAdapter(RenderKitIdAdapter.class)
+ public Id getKey() {
+ return key;
+ }
+
+ @Override
+ public void setKey(Id key) {
+ this.key = key;
+ }
+
/**
* <p class="changed_added_4_0"></p>
*
* @return the renderkitClass
*/
+ @XmlElement(name = "render-kit-class", namespace =
ComponentLibrary.FACES_CONFIG_NAMESPACE)
+ @XmlJavaTypeAdapter(ClassAdapter.class)
public ClassDescription getRenderkitClass() {
return renderkitClass;
}
@@ -79,55 +87,39 @@
/**
* <p class="changed_added_4_0"></p>
*
- * @return the id
+ * @return the renderers
*/
- public String getId() {
- return id;
+ @XmlElement(name = "renderer", namespace =
ComponentLibrary.FACES_CONFIG_NAMESPACE)
+ @XmlJavaTypeAdapter(RendererAdapter.class)
+ public List<Renderer> getRenderers() {
+ return renderers;
}
/**
* <p class="changed_added_4_0"></p>
*
- * @param id the id to set
+ * @param renderers the renderers to set
*/
- public void setId(String id) {
- this.id = id;
- this.key = new Id(id);
+ public void setRenderers(List<Renderer> renderers) {
+ this.renderers = renderers;
}
- @Override
- public Id getKey() {
- return key;
- }
-
- @Override
- public void setKey(Id key) {
- this.key = key;
-
- //TODO: Alex, please review fixed NPE
- if (key != null) {
- this.id = key.toString();
- } else {
- this.id = null;
- }
- }
-
/**
* <p class="changed_added_4_0"></p>
- *
- * @return the renderers
+ * @return the behaviorRenderers
*/
- public List<Renderer> getRenderers() {
- return renderers;
+ @XmlElement(name = "client-behavior-renderer", namespace =
ComponentLibrary.FACES_CONFIG_NAMESPACE)
+ @XmlJavaTypeAdapter(BehaviorRendererAdapter.class)
+ public List<BehaviorRenderer> getBehaviorRenderers() {
+ return this.behaviorRenderers;
}
/**
* <p class="changed_added_4_0"></p>
- *
- * @param renderers the renderers to set
+ * @param behaviorRenderers the behaviorRenderers to set
*/
- public void setRenderers(List<Renderer> renderers) {
- this.renderers = renderers;
+ public void setBehaviorRenderers(List<BehaviorRenderer> behaviorRenderers) {
+ this.behaviorRenderers = behaviorRenderers;
}
/**
Added:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/model/RenderKitIdAdapter.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/model/RenderKitIdAdapter.java
(rev 0)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/model/RenderKitIdAdapter.java 2009-12-22
00:12:16 UTC (rev 16183)
@@ -0,0 +1,48 @@
+/*
+ * $Id$
+ *
+ * License Agreement.
+ *
+ * Rich Faces - 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 org.richfaces.cdk.xmlconfig.model;
+
+import javax.xml.bind.annotation.adapters.XmlAdapter;
+
+import org.richfaces.cdk.model.RenderKit;
+import org.richfaces.cdk.model.RenderKit.Id;
+
+/**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public class RenderKitIdAdapter extends XmlAdapter<String, RenderKit.Id>{
+
+ @Override
+ public String marshal(Id v) throws Exception {
+ return v.toString();
+ }
+
+ @Override
+ public Id unmarshal(String v) throws Exception {
+ return new Id(v);
+ }
+
+}
Property changes on:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/model/RenderKitIdAdapter.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/FacesConfigTest.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/FacesConfigTest.java 2009-12-21
23:59:12 UTC (rev 16182)
+++
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/FacesConfigTest.java 2009-12-22
00:12:16 UTC (rev 16183)
@@ -21,13 +21,12 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-
-
package org.richfaces.cdk.xmlconfig;
import static org.junit.Assert.*;
import java.util.Collection;
+import java.util.List;
import java.util.Map;
import org.junit.Test;
@@ -38,25 +37,26 @@
import org.richfaces.cdk.model.ComponentLibrary;
import org.richfaces.cdk.model.Facet;
import org.richfaces.cdk.model.Property;
+import org.richfaces.cdk.model.RenderKit;
import org.richfaces.cdk.xmlconfig.model.FacesConfigBean;
+import org.richfaces.cdk.xmlconfig.model.RenderKitBean;
import com.google.common.collect.Iterables;
/**
- * <p class="changed_added_4_0"></p>
+ * <p class="changed_added_4_0">
+ * </p>
+ *
* @author asmirnov(a)exadel.com
- *
+ *
*/
public class FacesConfigTest extends CdkTestBase {
@Test
public void testComponentUnmarshal() throws Exception {
- CdkContextBase contextBase = new CdkContextBase(createClassLoader());
- JAXBBinding jaxbBinding = new JAXBBinding();
+ JAXBBinding jaxbBinding = createJAXB();
- jaxbBinding.init(contextBase);
-
FacesConfigBean library =
jaxbBinding.unmarshal("urn:resource:org/richfaces/cdk/xmlconfig/component.xml",
- ComponentLibrary.FACES_CONFIG_SCHEMA_LOCATION,
FacesConfigBean.class);
+ ComponentLibrary.FACES_CONFIG_SCHEMA_LOCATION, FacesConfigBean.class);
assertEquals(1, library.getComponents().size());
@@ -81,4 +81,31 @@
assertEquals(3, attributes.size());
}
+
+ @Test
+ public void testRenderKitUnmarshall() throws Exception {
+ JAXBBinding jaxbBinding = createJAXB();
+
+ FacesConfigBean library =
jaxbBinding.unmarshal("urn:resource:org/richfaces/cdk/xmlconfig/renderkit.xml",
+ ComponentLibrary.FACES_CONFIG_SCHEMA_LOCATION, FacesConfigBean.class);
+ List<RenderKitBean> renderKits = library.getRenderKits();
+ assertEquals(2, renderKits.size());
+ assertEquals(new RenderKit.Id("HTML_BASIC"),
renderKits.get(0).getKey());
+ assertEquals(new RenderKit.Id("RDFa"), renderKits.get(1).getKey());
+ }
+
+ /**
+ * <p class="changed_added_4_0">
+ * </p>
+ *
+ * @return
+ * @throws Exception
+ */
+ protected JAXBBinding createJAXB() throws Exception {
+ CdkContextBase contextBase = new CdkContextBase(createClassLoader());
+ JAXBBinding jaxbBinding = new JAXBBinding();
+
+ jaxbBinding.init(contextBase);
+ return jaxbBinding;
+ }
}
Added:
root/cdk/trunk/plugins/generator/src/test/resources/org/richfaces/cdk/xmlconfig/renderkit.xml
===================================================================
---
root/cdk/trunk/plugins/generator/src/test/resources/org/richfaces/cdk/xmlconfig/renderkit.xml
(rev 0)
+++
root/cdk/trunk/plugins/generator/src/test/resources/org/richfaces/cdk/xmlconfig/renderkit.xml 2009-12-22
00:12:16 UTC (rev 16183)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xi="http://www.w3.org/2001/XInclude"
+
xmlns:cdk="http://richfaces.org/cdk/extensions"
+
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
+ version="2.0">
+
+ <render-kit>
+ <renderer>
+ <component-family>foo.BarFamily</component-family>
+ <renderer-type>foo.Bar</renderer-type>
+ <renderer-class>foo.BarRenderer</renderer-class>
+ <renderer-extension>
+ </renderer-extension>
+ </renderer>
+ </render-kit>
+ <render-kit>
+ <render-kit-id>RDFa</render-kit-id>
+ <render-kit-class>foo.RdfaRenderKit</render-kit-class>
+ <renderer>
+ <component-family>foo.BarFamily</component-family>
+ <renderer-type>foo.Bar</renderer-type>
+ <renderer-class>foo.rdfa.BarRenderer</renderer-class>
+ <renderer-extension>
+ </renderer-extension>
+ </renderer>
+ </render-kit>
+</faces-config>
\ No newline at end of file
Property changes on:
root/cdk/trunk/plugins/generator/src/test/resources/org/richfaces/cdk/xmlconfig/renderkit.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain