[jboss-cvs] JBossAS SVN: r105584 - in projects/metadata/ejb/trunk/src: test/java/org/jboss/metadata/ejb/test/util and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Jun 2 13:48:38 EDT 2010
Author: smarlow at redhat.com
Date: 2010-06-02 13:48:38 -0400 (Wed, 02 Jun 2010)
New Revision: 105584
Modified:
projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/ejb/util/ChildClassAdapter.java
projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/ejb/util/ChildrenList.java
projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/util/ChildrenListTestCase.java
projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/util/MockChild.java
projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/util/MockParent.java
Log:
JBMETA-288 make ChildrenList serializable
Modified: projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/ejb/util/ChildClassAdapter.java
===================================================================
--- projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/ejb/util/ChildClassAdapter.java 2010-06-02 15:45:25 UTC (rev 105583)
+++ projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/ejb/util/ChildClassAdapter.java 2010-06-02 17:48:38 UTC (rev 105584)
@@ -21,13 +21,15 @@
*/
package org.jboss.metadata.ejb.util;
+import java.io.Serializable;
+
/**
* Because the child object might not implement Child, we need
* a ChildClassAdapter.
*
* @author <a href="cdewolf at redhat.com">Carlo de Wolf</a>
*/
-public interface ChildClassAdapter<C, P>
+public interface ChildClassAdapter<C, P> extends Serializable
{
P getParent(C child);
Modified: projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/ejb/util/ChildrenList.java
===================================================================
--- projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/ejb/util/ChildrenList.java 2010-06-02 15:45:25 UTC (rev 105583)
+++ projects/metadata/ejb/trunk/src/main/java/org/jboss/metadata/ejb/util/ChildrenList.java 2010-06-02 17:48:38 UTC (rev 105584)
@@ -21,6 +21,7 @@
*/
package org.jboss.metadata.ejb.util;
+import java.io.Serializable;
import java.util.AbstractList;
import java.util.ArrayList;
import java.util.List;
@@ -33,7 +34,7 @@
*
* @author <a href="cdewolf at redhat.com">Carlo de Wolf</a>
*/
-public class ChildrenList<E, P> extends AbstractList<E>
+public class ChildrenList<E, P> extends AbstractList<E> implements Serializable
{
private static ChildClassAdapter<?, ?> defaultChildClassAdapter = new ChildClassAdapter<Child<Parent>, Parent<?>>() {
@Override
Modified: projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/util/ChildrenListTestCase.java
===================================================================
--- projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/util/ChildrenListTestCase.java 2010-06-02 15:45:25 UTC (rev 105583)
+++ projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/util/ChildrenListTestCase.java 2010-06-02 17:48:38 UTC (rev 105584)
@@ -23,8 +23,15 @@
import org.junit.Test;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
/**
* @author <a href="cdewolf at redhat.com">Carlo de Wolf</a>
@@ -42,4 +49,28 @@
assertTrue(success);
assertEquals(parent, child.getParent());
}
+
+ @Test
+ public void testSerializable()
+ {
+ MockParent parent = new MockParent();
+ MockChild child = new MockChild();
+ parent.getChildren().add(child);
+
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+
+ try {
+ ObjectOutputStream out = new ObjectOutputStream(bos);
+ out.writeObject(parent);
+ out.close();
+ byte[] buf = bos.toByteArray();
+
+ ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(buf));
+ MockParent parent2 = (MockParent)in.readObject();
+ } catch (Exception e) {
+ e.printStackTrace();
+ fail("unexpected exception " + e.getClass().getName() + ":" + e.getMessage());
+ }
+
+ }
}
Modified: projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/util/MockChild.java
===================================================================
--- projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/util/MockChild.java 2010-06-02 15:45:25 UTC (rev 105583)
+++ projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/util/MockChild.java 2010-06-02 17:48:38 UTC (rev 105584)
@@ -23,10 +23,12 @@
import org.jboss.metadata.ejb.util.Child;
+import java.io.Serializable;
+
/**
* @author <a href="cdewolf at redhat.com">Carlo de Wolf</a>
*/
-public class MockChild implements Child<MockParent>
+public class MockChild implements Child<MockParent>, Serializable
{
private MockParent parent;
Modified: projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/util/MockParent.java
===================================================================
--- projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/util/MockParent.java 2010-06-02 15:45:25 UTC (rev 105583)
+++ projects/metadata/ejb/trunk/src/test/java/org/jboss/metadata/ejb/test/util/MockParent.java 2010-06-02 17:48:38 UTC (rev 105584)
@@ -24,13 +24,14 @@
import org.jboss.metadata.ejb.util.ChildrenList;
import org.jboss.metadata.ejb.util.Parent;
+import java.io.Serializable;
import java.util.Collection;
import java.util.List;
/**
* @author <a href="cdewolf at redhat.com">Carlo de Wolf</a>
*/
-public class MockParent implements Parent<MockChild>
+public class MockParent implements Parent<MockChild>, Serializable
{
private List<MockChild> children = new ChildrenList<MockChild, MockParent>(this);
More information about the jboss-cvs-commits
mailing list