[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