[jboss-cvs] JBossRemoting/src/tests/org/jboss/test/remoting/marshall/preferredstream ...
Ron Sigal
ron_sigal at yahoo.com
Sun Feb 4 23:03:51 EST 2007
User: rsigal
Date: 07/02/04 23:03:51
Modified: src/tests/org/jboss/test/remoting/marshall/preferredstream
Tag: remoting_2_x TestMarshaller.java
PreferredStreamMarshallerTestCase.java
TestUnMarshaller.java
Added: src/tests/org/jboss/test/remoting/marshall/preferredstream
Tag: remoting_2_x TestObjectOutputStream.java
TestObjectInputStream.java
Log:
JBREM-692: Expanded and corrected unit test.
Revision Changes Path
No revision
No revision
1.1.2.2 +2 -4 JBossRemoting/src/tests/org/jboss/test/remoting/marshall/preferredstream/TestMarshaller.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: TestMarshaller.java
===================================================================
RCS file: /cvsroot/jboss/JBossRemoting/src/tests/org/jboss/test/remoting/marshall/preferredstream/TestMarshaller.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -b -r1.1.2.1 -r1.1.2.2
--- TestMarshaller.java 31 Jan 2007 06:18:02 -0000 1.1.2.1
+++ TestMarshaller.java 5 Feb 2007 04:03:51 -0000 1.1.2.2
@@ -21,9 +21,7 @@
*/
package org.jboss.test.remoting.marshall.preferredstream;
-import java.io.BufferedOutputStream;
import java.io.IOException;
-import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.util.Map;
@@ -32,7 +30,7 @@
/**
* @author <a href="ron.sigal at jboss.com">Ron Sigal</a>
- * @version $Revision: 1.1.2.1 $
+ * @version $Revision: 1.1.2.2 $
* <p>
* Copyright Jan 29, 2007
* </p>
@@ -47,7 +45,7 @@
public OutputStream getMarshallingStream(OutputStream outputStream, Map config)
throws IOException
{
- return new BufferedOutputStream(outputStream);
+ return new TestObjectOutputStream(outputStream);
}
public Marshaller cloneMarshaller() throws CloneNotSupportedException
1.1.2.2 +115 -8 JBossRemoting/src/tests/org/jboss/test/remoting/marshall/preferredstream/PreferredStreamMarshallerTestCase.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: PreferredStreamMarshallerTestCase.java
===================================================================
RCS file: /cvsroot/jboss/JBossRemoting/src/tests/org/jboss/test/remoting/marshall/preferredstream/PreferredStreamMarshallerTestCase.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -b -r1.1.2.1 -r1.1.2.2
--- PreferredStreamMarshallerTestCase.java 4 Feb 2007 23:16:23 -0000 1.1.2.1
+++ PreferredStreamMarshallerTestCase.java 5 Feb 2007 04:03:51 -0000 1.1.2.2
@@ -21,13 +21,16 @@
*/
package org.jboss.test.remoting.marshall.preferredstream;
+import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
+import java.io.OutputStream;
import java.lang.reflect.Field;
import java.net.InetAddress;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import javax.management.MBeanServer;
@@ -46,14 +49,18 @@
import org.jboss.remoting.transport.Connector;
import org.jboss.remoting.transport.PortUtil;
import org.jboss.remoting.transport.socket.ClientSocketWrapper;
+import org.jboss.remoting.transport.socket.LRUPool;
import org.jboss.remoting.transport.socket.MicroSocketClientInvoker;
+import org.jboss.remoting.transport.socket.ServerSocketWrapper;
+import org.jboss.remoting.transport.socket.ServerThread;
+import org.jboss.remoting.transport.socket.SocketServerInvoker;
/**
* This test verifies that the socket transport caches and reuses object streams
* provided by PreferredStream(Un)Marshallers.
*
* @author <a href="ron.sigal at jboss.com">Ron Sigal</a>
- * @version $Revision: 1.1.2.1 $
+ * @version $Revision: 1.1.2.2 $
* <p>
* Copyright Jan 10, 2007
* </p>
@@ -86,8 +93,8 @@
String host = InetAddress.getLocalHost().getHostAddress();
int port = PortUtil.findFreePort(host);
String locatorURI = getTransport() + "://" + host + ":" + port;
- locatorURI += "/?marshaller=org.jboss.remoting.marshall.serializable.SerializableMarshaller";
- locatorURI += "&unmarshaller=org.jboss.remoting.marshall.serializable.SerializableUnMarshaller";
+ locatorURI += "/?marshaller=org.jboss.remoting.marshal.serializable.SerializableMarshaller";
+ locatorURI += "&unmarshaller=org.jboss.remoting.marshal.serializable.SerializableUnMarshaller";
InvokerLocator locator = new InvokerLocator(locatorURI);
Connector connector = new Connector(locator);
connector.create();
@@ -101,6 +108,7 @@
Integer i = (Integer) client.invoke(new Integer(17));
assertEquals(18, i.intValue());
+ // Make sure client has object streams.
assertTrue(client.getInvoker() instanceof MicroSocketClientInvoker);
MicroSocketClientInvoker clientInvoker = (MicroSocketClientInvoker) client.getInvoker();
Field field = MicroSocketClientInvoker.class.getDeclaredField("pool");
@@ -110,10 +118,59 @@
ClientSocketWrapper csw = (ClientSocketWrapper) pool.get(0);
field = ClientSocketWrapper.class.getDeclaredField("in");
field.setAccessible(true);
- assertTrue(field.get(csw) instanceof ObjectInputStream);
+ InputStream client_in1 = (InputStream) field.get(csw);
+ assertTrue(client_in1 instanceof ObjectInputStream);
field = ClientSocketWrapper.class.getDeclaredField("out");
field.setAccessible(true);
- assertTrue(field.get(csw) instanceof ObjectOutputStream);
+ OutputStream client_out1 = (OutputStream) field.get(csw);
+ assertTrue(client_out1 instanceof ObjectOutputStream);
+
+ // Make sure server has object streams.
+ assertTrue(connector.getServerInvoker() instanceof SocketServerInvoker);
+ SocketServerInvoker ssi = (SocketServerInvoker) connector.getServerInvoker();
+ field = SocketServerInvoker.class.getDeclaredField("clientpool");
+ field.setAccessible(true);
+ LRUPool clientpool = (LRUPool) field.get(ssi);
+ assertEquals(1, clientpool.size());
+ Set threads = clientpool.getContents();
+ ServerThread serverThread = (ServerThread) threads.iterator().next();
+ field = ServerThread.class.getDeclaredField("socketWrapper");
+ field.setAccessible(true);
+ ServerSocketWrapper ssw = (ServerSocketWrapper) field.get(serverThread);
+ field = ClientSocketWrapper.class.getDeclaredField("in");
+ field.setAccessible(true);
+ InputStream server_in1 = (InputStream) field.get(ssw);
+ assertTrue(server_in1 instanceof ObjectInputStream);
+ field = ClientSocketWrapper.class.getDeclaredField("out");
+ field.setAccessible(true);
+ OutputStream server_out1 = (OutputStream) field.get(ssw);
+ assertTrue(server_out1 instanceof ObjectOutputStream);
+
+ // Do another invocation.
+ i = (Integer) client.invoke(new Integer(19));
+ assertEquals(20, i.intValue());
+
+ // Make sure client and server reused the cached streams.
+ field = ClientSocketWrapper.class.getDeclaredField("in");
+ field.setAccessible(true);
+ InputStream client_in2 = (InputStream) field.get(csw);
+ assertTrue(client_in2 instanceof ObjectInputStream);
+ field = ClientSocketWrapper.class.getDeclaredField("out");
+ field.setAccessible(true);
+ OutputStream client_out2 = (OutputStream) field.get(csw);
+ assertTrue(client_out2 instanceof ObjectOutputStream);
+ field = ClientSocketWrapper.class.getDeclaredField("in");
+ field.setAccessible(true);
+ InputStream server_in2 = (InputStream) field.get(ssw);
+ assertTrue(server_in2 instanceof ObjectInputStream);
+ field = ClientSocketWrapper.class.getDeclaredField("out");
+ field.setAccessible(true);
+ OutputStream server_out2 = (OutputStream) field.get(ssw);
+ assertTrue(server_out2 instanceof ObjectOutputStream);
+ assertEquals(client_in1, client_in2);
+ assertEquals(client_out1, client_out2);
+ assertEquals(server_in1, server_in2);
+ assertEquals(server_out1, server_out2);
client.disconnect();
connector.stop();
@@ -127,8 +184,8 @@
String host = InetAddress.getLocalHost().getHostAddress();
int port = PortUtil.findFreePort(host);
String locatorURI = getTransport() + "://" + host + ":" + port;
- locatorURI += "/?marshaller=org.jboss.test.remoting.marshall.preferredstream.Marshaller";
- locatorURI += "&unmarshaller=org.jboss.test.remoting.marshall.preferredstream.UnMarshaller";
+ locatorURI += "/?marshaller=org.jboss.test.remoting.marshall.preferredstream.TestMarshaller";
+ locatorURI += "&unmarshaller=org.jboss.test.remoting.marshall.preferredstream.TestUnMarshaller";
InvokerLocator locator = new InvokerLocator(locatorURI);
Connector connector = new Connector(locator);
connector.create();
@@ -142,6 +199,7 @@
Integer i = (Integer) client.invoke(new Integer(17));
assertEquals(18, i.intValue());
+ // Make sure client has object streams from test directory.
assertTrue(client.getInvoker() instanceof MicroSocketClientInvoker);
MicroSocketClientInvoker clientInvoker = (MicroSocketClientInvoker) client.getInvoker();
Field field = MicroSocketClientInvoker.class.getDeclaredField("pool");
@@ -151,10 +209,59 @@
ClientSocketWrapper csw = (ClientSocketWrapper) pool.get(0);
field = ClientSocketWrapper.class.getDeclaredField("in");
field.setAccessible(true);
- assertTrue(field.get(csw) instanceof ObjectInputStream);
+ InputStream client_in1 = (InputStream) field.get(csw);
+ assertTrue(client_in1 instanceof TestObjectInputStream);
+ field = ClientSocketWrapper.class.getDeclaredField("out");
+ field.setAccessible(true);
+ OutputStream client_out1 = (OutputStream) field.get(csw);
+ assertTrue(client_out1 instanceof TestObjectOutputStream);
+
+ // Make sure server has object streams from test directory.
+ assertTrue(connector.getServerInvoker() instanceof SocketServerInvoker);
+ SocketServerInvoker ssi = (SocketServerInvoker) connector.getServerInvoker();
+ field = SocketServerInvoker.class.getDeclaredField("clientpool");
+ field.setAccessible(true);
+ LRUPool clientpool = (LRUPool) field.get(ssi);
+ assertEquals(1, clientpool.size());
+ Set threads = clientpool.getContents();
+ ServerThread serverThread = (ServerThread) threads.iterator().next();
+ field = ServerThread.class.getDeclaredField("socketWrapper");
+ field.setAccessible(true);
+ ServerSocketWrapper ssw = (ServerSocketWrapper) field.get(serverThread);
+ field = ClientSocketWrapper.class.getDeclaredField("in");
+ field.setAccessible(true);
+ InputStream server_in1 = (InputStream) field.get(ssw);
+ assertTrue(server_in1 instanceof TestObjectInputStream);
+ field = ClientSocketWrapper.class.getDeclaredField("out");
+ field.setAccessible(true);
+ OutputStream server_out1 = (OutputStream) field.get(ssw);
+ assertTrue(server_out1 instanceof TestObjectOutputStream);
+
+ // Do another invocation.
+ i = (Integer) client.invoke(new Integer(19));
+ assertEquals(20, i.intValue());
+
+ // Make sure client and server reused the cached streams.
+ field = ClientSocketWrapper.class.getDeclaredField("in");
+ field.setAccessible(true);
+ InputStream client_in2 = (InputStream) field.get(csw);
+ assertTrue(client_in2 instanceof ObjectInputStream);
+ field = ClientSocketWrapper.class.getDeclaredField("out");
+ field.setAccessible(true);
+ OutputStream client_out2 = (OutputStream) field.get(csw);
+ assertTrue(client_out2 instanceof ObjectOutputStream);
+ field = ClientSocketWrapper.class.getDeclaredField("in");
+ field.setAccessible(true);
+ InputStream server_in2 = (InputStream) field.get(ssw);
+ assertTrue(server_in2 instanceof TestObjectInputStream);
field = ClientSocketWrapper.class.getDeclaredField("out");
field.setAccessible(true);
- assertTrue(field.get(csw) instanceof ObjectOutputStream);
+ OutputStream server_out2 = (OutputStream) field.get(ssw);
+ assertTrue(server_out2 instanceof TestObjectOutputStream);
+ assertEquals(client_in1, client_in2);
+ assertEquals(client_out1, client_out2);
+ assertEquals(server_in1, server_in2);
+ assertEquals(server_out1, server_out2);
client.disconnect();
connector.stop();
1.1.2.2 +3 -4 JBossRemoting/src/tests/org/jboss/test/remoting/marshall/preferredstream/TestUnMarshaller.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: TestUnMarshaller.java
===================================================================
RCS file: /cvsroot/jboss/JBossRemoting/src/tests/org/jboss/test/remoting/marshall/preferredstream/TestUnMarshaller.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -b -r1.1.2.1 -r1.1.2.2
--- TestUnMarshaller.java 31 Jan 2007 06:18:02 -0000 1.1.2.1
+++ TestUnMarshaller.java 5 Feb 2007 04:03:51 -0000 1.1.2.2
@@ -21,7 +21,6 @@
*/
package org.jboss.test.remoting.marshall.preferredstream;
-import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
@@ -31,7 +30,7 @@
/**
* @author <a href="ron.sigal at jboss.com">Ron Sigal</a>
- * @version $Revision: 1.1.2.1 $
+ * @version $Revision: 1.1.2.2 $
* <p>
* Copyright Jan 29, 2007
* </p>
@@ -43,10 +42,10 @@
public TestUnMarshaller() {}
- public InputStream getMarshalledStream(InputStream inputStream, Map config)
+ public InputStream getMarshallingStream(InputStream inputStream, Map config)
throws IOException
{
- return new BufferedInputStream(inputStream);
+ return new TestObjectInputStream(inputStream);
}
public UnMarshaller cloneUnMarshaller() throws CloneNotSupportedException
No revision
No revision
1.1.2.1 +18 -0 JBossRemoting/src/tests/org/jboss/test/remoting/marshall/preferredstream/Attic/TestObjectOutputStream.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: TestObjectOutputStream.java
===================================================================
RCS file: TestObjectOutputStream.java
diff -N TestObjectOutputStream.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ TestObjectOutputStream.java 5 Feb 2007 04:03:51 -0000 1.1.2.1
@@ -0,0 +1,18 @@
+package org.jboss.test.remoting.marshall.preferredstream;
+
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+
+public class TestObjectOutputStream extends ObjectOutputStream
+{
+ public TestObjectOutputStream(OutputStream out) throws IOException
+ {
+ super(out);
+ }
+
+ public TestObjectOutputStream() throws IOException, SecurityException
+ {
+ super();
+ }
+}
1.1.2.1 +18 -0 JBossRemoting/src/tests/org/jboss/test/remoting/marshall/preferredstream/Attic/TestObjectInputStream.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: TestObjectInputStream.java
===================================================================
RCS file: TestObjectInputStream.java
diff -N TestObjectInputStream.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ TestObjectInputStream.java 5 Feb 2007 04:03:51 -0000 1.1.2.1
@@ -0,0 +1,18 @@
+package org.jboss.test.remoting.marshall.preferredstream;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+
+public class TestObjectInputStream extends ObjectInputStream
+{
+ public TestObjectInputStream(InputStream in) throws IOException
+ {
+ super(in);
+ }
+
+ public TestObjectInputStream() throws IOException, SecurityException
+ {
+ super();
+ }
+}
More information about the jboss-cvs-commits
mailing list