[jboss-cvs] JBossRemoting/src/tests/org/jboss/test/remoting/socketfactory ...
Ron Sigal
ron_sigal at yahoo.com
Tue Jan 16 18:30:34 EST 2007
User: rsigal
Date: 07/01/16 18:30:34
Modified: src/tests/org/jboss/test/remoting/socketfactory Tag:
remoting_2_x CreationListenerTestRoot.java
Log:
JBREM-298: Added callback test.
Revision Changes Path
No revision
No revision
1.1.2.2 +124 -21 JBossRemoting/src/tests/org/jboss/test/remoting/socketfactory/Attic/CreationListenerTestRoot.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: CreationListenerTestRoot.java
===================================================================
RCS file: /cvsroot/jboss/JBossRemoting/src/tests/org/jboss/test/remoting/socketfactory/Attic/CreationListenerTestRoot.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
--- CreationListenerTestRoot.java 16 Jan 2007 06:25:52 -0000 1.1.2.1
+++ CreationListenerTestRoot.java 16 Jan 2007 23:30:34 -0000 1.1.2.2
@@ -22,23 +22,16 @@
package org.jboss.test.remoting.socketfactory;
import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
-import java.net.SocketAddress;
-import java.net.SocketException;
-import java.net.UnknownHostException;
-import java.nio.channels.ServerSocketChannel;
-import java.nio.channels.SocketChannel;
import java.util.HashMap;
+import java.util.Map;
import javax.management.MBeanServer;
import javax.net.ServerSocketFactory;
import javax.net.SocketFactory;
-import javax.net.ssl.SSLSocketFactory;
import junit.framework.TestCase;
@@ -52,6 +45,8 @@
import org.jboss.remoting.Remoting;
import org.jboss.remoting.ServerInvocationHandler;
import org.jboss.remoting.ServerInvoker;
+import org.jboss.remoting.callback.Callback;
+import org.jboss.remoting.callback.HandleCallbackException;
import org.jboss.remoting.callback.InvokerCallbackHandler;
import org.jboss.remoting.socketfactory.CreationListenerServerSocketFactory;
import org.jboss.remoting.socketfactory.CreationListenerSocketFactory;
@@ -61,7 +56,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 10, 2007
* </p>
@@ -248,15 +243,19 @@
HashMap config = new HashMap();
config.put(InvokerLocator.FORCE_REMOTE, "true");
- TestListener listener = new TestListener();
- config.put(Remoting.SOCKET_CREATION_LISTENER, listener);
+ TestListener listener1 = new TestListener();
+ config.put(Remoting.SOCKET_CREATION_CLIENT_LISTENER, listener1);
+ TestListener listener2 = new TestListener();
+ config.put(Remoting.SOCKET_CREATION_SERVER_LISTENER, listener2);
Client client = new Client(locator, config);
- assertFalse(listener.visited());
+ assertFalse(listener1.visited());
+ assertFalse(listener1.visited());
client.connect();
Integer i = (Integer) client.invoke(new Integer(17));
assertEquals(18, i.intValue());
Thread.sleep(500);
- assertTrue(listener.visited());
+ assertTrue(listener1.visited());
+ assertFalse(listener2.visited());
client.disconnect();
connector.stop();
@@ -274,8 +273,10 @@
HashMap serverConfig = new HashMap();
ServerSocketFactory ssf = getServerSocketFactory();
serverConfig.put(Remoting.CUSTOM_SERVER_SOCKET_FACTORY, ssf);
- TestListener listener = new TestListener();
- serverConfig.put(Remoting.SOCKET_CREATION_LISTENER, listener);
+ TestListener listener1 = new TestListener();
+ serverConfig.put(Remoting.SOCKET_CREATION_SERVER_LISTENER, listener1);
+ TestListener listener2 = new TestListener();
+ serverConfig.put(Remoting.SOCKET_CREATION_CLIENT_LISTENER, listener2);
Connector connector = new Connector(locator, serverConfig);
connector.create();
connector.addInvocationHandler("test", new TestHandler());
@@ -288,7 +289,54 @@
Integer i = (Integer) client.invoke(new Integer(29));
assertEquals(30, i.intValue());
Thread.sleep(500);
- assertTrue(listener.visited());
+ assertTrue(listener1.visited());
+ assertFalse(listener2.visited());
+
+ client.disconnect();
+ connector.stop();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testCallbackListeners() throws Throwable
+ {
+ log.info("entering " + getName());
+ String host = InetAddress.getLocalHost().getHostAddress();
+ int port = PortUtil.findFreePort(host);
+ String locatorURI = getTransport() + "://" + host + ":" + port;
+ InvokerLocator locator = new InvokerLocator(locatorURI);
+ HashMap serverConfig = new HashMap();
+ serverConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ ServerSocketFactory ssf = getServerSocketFactory();
+ serverConfig.put(Remoting.CUSTOM_SERVER_SOCKET_FACTORY, ssf);
+ TestListener listener1 = new TestListener();
+ log.info("listener1: " + listener1);
+ serverConfig.put(Remoting.SOCKET_CREATION_SERVER_LISTENER, listener1);
+ TestListener listener2 = new TestListener();
+ log.info("listener2: " + listener2);
+ serverConfig.put(Remoting.SOCKET_CREATION_CLIENT_LISTENER, listener2);
+ addExtraServerConfig(serverConfig);
+ Connector connector = new Connector(locator, serverConfig);
+ connector.create();
+ connector.addInvocationHandler("test", new TestHandler());
+ connector.start();
+
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ TestListener listener3 = new TestListener();
+ log.info("listener3: " + listener3);
+ clientConfig.put(Remoting.SOCKET_CREATION_CLIENT_LISTENER, listener3);
+ TestListener listener4 = new TestListener();
+ log.info("listener4: " + listener4);
+ clientConfig.put(Remoting.SOCKET_CREATION_SERVER_LISTENER, listener4);
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(locator, clientConfig);
+ client.connect();
+ client.addListener(new TestCallbackHandler(), null, null, true);
+ Integer i = (Integer) client.invoke(new Integer(29));
+ assertEquals(30, i.intValue());
+ Thread.sleep(500);
+ assertTrue(checkListenersVisited(listener1, listener2, listener3, listener4));
client.disconnect();
connector.stop();
@@ -296,6 +344,19 @@
}
+ protected boolean checkListenersVisited(TestListener listener1, TestListener listener2,
+ TestListener listener3, TestListener listener4)
+ {
+ return listener1.visited() &&
+ listener2.visited() &&
+ listener3.visited() &&
+ listener4.visited() &&
+ !listener1.isClient() &&
+ listener2.isClient() &&
+ listener3.isClient() &&
+ !listener4.isClient();
+ }
+
public void testExceptionFromClientListener() throws Throwable
{
log.info("entering " + getName());
@@ -311,7 +372,7 @@
HashMap config = new HashMap();
config.put(InvokerLocator.FORCE_REMOTE, "true");
TestListener listener = new FailingTestListener();
- config.put(Remoting.SOCKET_CREATION_LISTENER, listener);
+ config.put(Remoting.SOCKET_CREATION_CLIENT_LISTENER, listener);
Client client = new Client(locator, config);
try
@@ -343,7 +404,7 @@
ServerSocketFactory ssf = getServerSocketFactory();
serverConfig.put(Remoting.CUSTOM_SERVER_SOCKET_FACTORY, ssf);
TestListener listener = new FailingTestListener();
- serverConfig.put(Remoting.SOCKET_CREATION_LISTENER, listener);
+ serverConfig.put(Remoting.SOCKET_CREATION_SERVER_LISTENER, listener);
Connector connector = new Connector(locator, serverConfig);
connector.create();
connector.addInvocationHandler("test", new TestHandler());
@@ -399,13 +460,30 @@
}
+ protected void addExtraClientConfig(Map config)
+ {
+ }
+
+
+ protected void addExtraServerConfig(Map config)
+ {
+ }
+
public class TestListener implements SocketCreationListener
{
private boolean visited;
+ private boolean client;
- public void socketCreated(Socket socket) throws IOException
+ public void socketCreated(Socket socket, Object source) throws IOException
{
visited = true;
+ if (source instanceof SocketFactory)
+ client = true;
+ else if (source instanceof ServerSocket)
+ client = false;
+ else
+ log.error("unrecognized socket source: " + source);
+ log.info(this + ": " + source);
}
public boolean visited()
@@ -413,6 +491,11 @@
return visited;
}
+ public boolean isClient()
+ {
+ return client;
+ }
+
public void reset()
{
visited = false;
@@ -422,7 +505,7 @@
public class FailingTestListener extends TestListener
{
- public void socketCreated(Socket socket) throws IOException
+ public void socketCreated(Socket socket, Object source) throws IOException
{
throw new IOException();
}
@@ -441,7 +524,27 @@
return new Integer(i.intValue() + 1);
}
- public void addListener(InvokerCallbackHandler callbackHandler) {}
+ public void addListener(InvokerCallbackHandler callbackHandler)
+ {
+ try
+ {
+ callbackHandler.handleCallback(new Callback("callback"));
+ }
+ catch (HandleCallbackException e)
+ {
+ log.error("error handling callback");
+ }
+ }
+
public void removeListener(InvokerCallbackHandler callbackHandler) {}
}
+
+
+ public class TestCallbackHandler implements InvokerCallbackHandler
+ {
+ public void handleCallback(Callback callback) throws HandleCallbackException
+ {
+ log.info("received callback: " + callback);
+ }
+ }
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list