Index: src/test/java/org/jboss/metadata/ejb/test/util/ChildrenListTestCase.java
===================================================================
--- src/test/java/org/jboss/metadata/ejb/test/util/ChildrenListTestCase.java (revision 105580)
+++ src/test/java/org/jboss/metadata/ejb/test/util/ChildrenListTestCase.java (working copy)
@@ -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 Carlo de Wolf
@@ -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());
+ }
+
+ }
}
Index: src/test/java/org/jboss/metadata/ejb/test/util/MockParent.java
===================================================================
--- src/test/java/org/jboss/metadata/ejb/test/util/MockParent.java (revision 105580)
+++ src/test/java/org/jboss/metadata/ejb/test/util/MockParent.java (working copy)
@@ -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 Carlo de Wolf
*/
-public class MockParent implements Parent
+public class MockParent implements Parent, Serializable
{
private List children = new ChildrenList(this);
Index: src/test/java/org/jboss/metadata/ejb/test/util/MockChild.java
===================================================================
--- src/test/java/org/jboss/metadata/ejb/test/util/MockChild.java (revision 105580)
+++ src/test/java/org/jboss/metadata/ejb/test/util/MockChild.java (working copy)
@@ -23,10 +23,12 @@
import org.jboss.metadata.ejb.util.Child;
+import java.io.Serializable;
+
/**
* @author Carlo de Wolf
*/
-public class MockChild implements Child
+public class MockChild implements Child, Serializable
{
private MockParent parent;
Index: src/main/java/org/jboss/metadata/ejb/util/ChildrenList.java
===================================================================
--- src/main/java/org/jboss/metadata/ejb/util/ChildrenList.java (revision 105580)
+++ src/main/java/org/jboss/metadata/ejb/util/ChildrenList.java (working copy)
@@ -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 Carlo de Wolf
*/
-public class ChildrenList extends AbstractList
+public class ChildrenList extends AbstractList implements Serializable
{
private static ChildClassAdapter, ?> defaultChildClassAdapter = new ChildClassAdapter, Parent>>() {
@Override
Index: src/main/java/org/jboss/metadata/ejb/util/ChildClassAdapter.java
===================================================================
--- src/main/java/org/jboss/metadata/ejb/util/ChildClassAdapter.java (revision 105580)
+++ src/main/java/org/jboss/metadata/ejb/util/ChildClassAdapter.java (working copy)
@@ -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 Carlo de Wolf
*/
-public interface ChildClassAdapter
+public interface ChildClassAdapter extends Serializable
{
P getParent(C child);