Author: gvanmatre Date: Fri Jun 16 16:15:06 2006 New Revision: 414953 URL: http://svn.apache.org/viewvc?rev=414953&view=rev Log: Fix for issues SHALE-187 and SHALE-179
Removed: struts/shale/branches/mvn_reorg/shale-clay/src/test/java/org/apache/shale/clay/config/TestActionListener.java struts/shale/branches/mvn_reorg/shale-clay/src/test/java/org/apache/shale/clay/config/TestValueChangeListener.java struts/shale/branches/mvn_reorg/shale-clay/src/test/java/org/apache/shale/clay/config/address-config.xml struts/shale/branches/mvn_reorg/shale-clay/src/test/java/org/apache/shale/clay/config/address-fullxml.xml struts/shale/branches/mvn_reorg/shale-clay/src/test/java/org/apache/shale/clay/config/address.xml struts/shale/branches/mvn_reorg/shale-clay/src/test/java/org/apache/shale/clay/config/address1.html struts/shale/branches/mvn_reorg/shale-clay/src/test/java/org/apache/shale/clay/config/address2.html struts/shale/branches/mvn_reorg/shale-clay/src/test/java/org/apache/shale/clay/config/address3.html struts/shale/branches/mvn_reorg/shale-clay/src/test/java/org/apache/shale/clay/config/address4.html struts/shale/branches/mvn_reorg/shale-clay/src/test/java/org/apache/shale/clay/config/address5.html struts/shale/branches/mvn_reorg/shale-clay/src/test/java/org/apache/shale/clay/config/comment.html struts/shale/branches/mvn_reorg/shale-clay/src/test/java/org/apache/shale/clay/config/duplicate1.html struts/shale/branches/mvn_reorg/shale-clay/src/test/java/org/apache/shale/clay/config/duplicate2.html struts/shale/branches/mvn_reorg/shale-clay/src/test/java/org/apache/shale/clay/config/layout.html Modified: struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/AbstractBean.java struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ActionListenerBean.java struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/AttributeBean.java struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ElementBean.java struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/InnerComponentBean.java struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ValidatorBean.java struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ValueChangeListenerBean.java struts/shale/branches/mvn_reorg/shale-clay/src/test/java/org/apache/shale/clay/config/DesigntimeTestCase.java Modified: struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/AbstractBean.java URL: http://svn.apache.org/viewvc/struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/AbstractBean.java?rev=414953&r1=414952&r2=414953&view=diff ============================================================================== --- struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/AbstractBean.java (original) +++ struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/AbstractBean.java Fri Jun 16 16:15:06 2006 @@ -19,13 +19,15 @@ package org.apache.shale.clay.config.beans; +import java.io.Serializable; + /** * <p>Abstract class that provides a <code>description</code> property * that is populated from the clay configuration file * when design time tool support is enabled.</p> * */ -public abstract class AbstractBean { +public abstract class AbstractBean implements Serializable { /** * <p>Metadata description provided in the clay configuration.</p> */ Modified: struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ActionListenerBean.java URL: http://svn.apache.org/viewvc/struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ActionListenerBean.java?rev=414953&r1=414952&r2=414953&view=diff ============================================================================== --- struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ActionListenerBean.java (original) +++ struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ActionListenerBean.java Fri Jun 16 16:15:06 2006 @@ -18,11 +18,13 @@ package org.apache.shale.clay.config.beans; +import java.io.Serializable; + /** * This meta component will be used to construct a JSF <code>ActionListener</code>. It is * a subclass of [EMAIL PROTECTED] ComponentBean} where this class acts like an enumerated type. */ -public class ActionListenerBean extends InnerComponentBean { +public class ActionListenerBean extends InnerComponentBean implements Serializable { private static final long serialVersionUID = 3256723996136716338L; Modified: struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/AttributeBean.java URL: http://svn.apache.org/viewvc/struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/AttributeBean.java?rev=414953&r1=414952&r2=414953&view=diff ============================================================================== --- struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/AttributeBean.java (original) +++ struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/AttributeBean.java Fri Jun 16 16:15:06 2006 @@ -18,13 +18,15 @@ package org.apache.shale.clay.config.beans; +import java.io.Serializable; + /** * <p>Represents a value for a component property or a tag attribute. * Instances of this class will be placed in the [EMAIL PROTECTED] ComponentBean} * <code>attributes</code> collection.</p> */ -public class AttributeBean extends SymbolBean { +public class AttributeBean extends SymbolBean implements Serializable { private static final long serialVersionUID = 3102689599088266442L; Modified: struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ElementBean.java URL: http://svn.apache.org/viewvc/struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ElementBean.java?rev=414953&r1=414952&r2=414953&view=diff ============================================================================== --- struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ElementBean.java (original) +++ struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ElementBean.java Fri Jun 16 16:15:06 2006 @@ -18,12 +18,14 @@ package org.apache.shale.clay.config.beans; +import java.io.Serializable; + /** * <p>This bean represents the composition of a complex component. The renderId * uniquely sequences it within a top-level [EMAIL PROTECTED] ComponentBean}.</p> */ -public class ElementBean extends InnerComponentBean implements Comparable { +public class ElementBean extends InnerComponentBean implements Comparable, Serializable { private static final long serialVersionUID = 3690760596346123828L; Modified: struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/InnerComponentBean.java URL: http://svn.apache.org/viewvc/struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/InnerComponentBean.java?rev=414953&r1=414952&r2=414953&view=diff ============================================================================== --- struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/InnerComponentBean.java (original) +++ struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/InnerComponentBean.java Fri Jun 16 16:15:06 2006 @@ -18,11 +18,13 @@ package org.apache.shale.clay.config.beans; +import java.io.Serializable; + /** * <p>This class should be a base to all components that are contained * within a owing [EMAIL PROTECTED] ComponentBean}. */ -public class InnerComponentBean extends ComponentBean { +public class InnerComponentBean extends ComponentBean implements Serializable { private static final long serialVersionUID = 3257283630291301426L; Modified: struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ValidatorBean.java URL: http://svn.apache.org/viewvc/struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ValidatorBean.java?rev=414953&r1=414952&r2=414953&view=diff ============================================================================== --- struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ValidatorBean.java (original) +++ struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ValidatorBean.java Fri Jun 16 16:15:06 2006 @@ -18,11 +18,13 @@ package org.apache.shale.clay.config.beans; +import java.io.Serializable; + /** * This meta component will be used to construct a JSF <code>Validator</code>. It is * a subclass of [EMAIL PROTECTED] ComponentBean} where this class acts like an enumerated type. */ -public class ValidatorBean extends InnerComponentBean { +public class ValidatorBean extends InnerComponentBean implements Serializable { private static final long serialVersionUID = 4050763771565782322L; Modified: struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ValueChangeListenerBean.java URL: http://svn.apache.org/viewvc/struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ValueChangeListenerBean.java?rev=414953&r1=414952&r2=414953&view=diff ============================================================================== --- struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ValueChangeListenerBean.java (original) +++ struts/shale/branches/mvn_reorg/shale-clay/src/main/java/org/apache/shale/clay/config/beans/ValueChangeListenerBean.java Fri Jun 16 16:15:06 2006 @@ -18,11 +18,13 @@ package org.apache.shale.clay.config.beans; +import java.io.Serializable; + /** * This meta component will be used to construct a JSF <code>ValueChangeListener</code>. It is * a subclass of [EMAIL PROTECTED] ComponentBean} where this class acts like an enumerated type. */ -public class ValueChangeListenerBean extends InnerComponentBean { +public class ValueChangeListenerBean extends InnerComponentBean implements Serializable{ private static final long serialVersionUID = 3256718472791536436L; Modified: struts/shale/branches/mvn_reorg/shale-clay/src/test/java/org/apache/shale/clay/config/DesigntimeTestCase.java URL: http://svn.apache.org/viewvc/struts/shale/branches/mvn_reorg/shale-clay/src/test/java/org/apache/shale/clay/config/DesigntimeTestCase.java?rev=414953&r1=414952&r2=414953&view=diff ============================================================================== --- struts/shale/branches/mvn_reorg/shale-clay/src/test/java/org/apache/shale/clay/config/DesigntimeTestCase.java (original) +++ struts/shale/branches/mvn_reorg/shale-clay/src/test/java/org/apache/shale/clay/config/DesigntimeTestCase.java Fri Jun 16 16:15:06 2006 @@ -15,6 +15,11 @@ */ package org.apache.shale.clay.config; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; + import junit.framework.Test; import junit.framework.TestSuite; @@ -128,4 +133,34 @@ } + + public void testSerializable() throws Exception { + // test the object serialization of the metadata beans + + ((ComponentConfigBean) standardConfigBean).setDesigntime(true); + loadConfigFiles(null, null); + + ComponentBean live = standardConfigBean.getElement("h:outputText"); + assertNotNull(live); + + ByteArrayOutputStream os = new ByteArrayOutputStream(); + ObjectOutputStream out = new ObjectOutputStream(os); + out.writeObject(live); + out.close(); + + + ByteArrayInputStream is = new ByteArrayInputStream(os.toByteArray()); + ObjectInputStream in = new ObjectInputStream(is); + + ComponentBean memorex = (ComponentBean) in.readObject(); + in.close(); + + assertNotNull(memorex); + + assertEquals(live.getDescription(), memorex.getDescription()); + assertEquals(live.getJsfid(), memorex.getJsfid()); + assertEquals(live.getAttribute("styleClass").getValue(), memorex.getAttribute("styleClass").getValue()); + assertEquals(live.getSymbol("class").getValue(), memorex.getSymbol("class").getValue()); + + } }