[jboss-cvs] JBossRemoting/src/tests/org/jboss/test/remoting/transport/bisocket ...
Ron Sigal
ron_sigal at yahoo.com
Fri Dec 29 01:46:30 EST 2006
User: rsigal
Date: 06/12/29 01:46:30
Modified: src/tests/org/jboss/test/remoting/transport/bisocket Tag:
remoting_2_x BisocketTestCase.java
Log:
JBREM-650: Added test method for restarted Connector.
Revision Changes Path
No revision
No revision
1.1.2.4 +107 -3 JBossRemoting/src/tests/org/jboss/test/remoting/transport/bisocket/BisocketTestCase.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: BisocketTestCase.java
===================================================================
RCS file: /cvsroot/jboss/JBossRemoting/src/tests/org/jboss/test/remoting/transport/bisocket/BisocketTestCase.java,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -b -r1.1.2.3 -r1.1.2.4
--- BisocketTestCase.java 20 Dec 2006 08:57:15 -0000 1.1.2.3
+++ BisocketTestCase.java 29 Dec 2006 06:46:30 -0000 1.1.2.4
@@ -36,7 +36,12 @@
import junit.framework.TestCase;
-import org.jboss.logging.Logger;
+import org.apache.log4j.BasicConfigurator;
+import org.apache.log4j.Category;
+import org.apache.log4j.ConsoleAppender;
+import org.apache.log4j.Level;
+import org.apache.log4j.PatternLayout;
+import org.apache.log4j.Logger;
import org.jboss.remoting.Client;
import org.jboss.remoting.InvocationRequest;
import org.jboss.remoting.InvokerLocator;
@@ -55,7 +60,7 @@
/**
* @author <a href="ron.sigal at jboss.com">Ron Sigal</a>
- * @version $Revision: 1.1.2.3 $
+ * @version $Revision: 1.1.2.4 $
* <p>
* Copyright Nov 25, 2006
* </p>
@@ -79,6 +84,8 @@
private Connector connector;
private SampleInvocationHandler invocationHandler;
+ private boolean firstTime = true;
+
/**
@@ -86,6 +93,17 @@
*/
public void setUp() throws Exception
{
+ if (firstTime)
+ {
+ firstTime = false;
+ Logger.getLogger("org.jboss.remoting").setLevel(Level.DEBUG);
+ Logger.getLogger("org.jboss.test.remoting").setLevel(Level.DEBUG);
+ String pattern = "[%d{ABSOLUTE}] [%t] %5p (%F:%L) - %m%n";
+ PatternLayout layout = new PatternLayout(pattern);
+ ConsoleAppender consoleAppender = new ConsoleAppender(layout);
+ Logger.getRootLogger().addAppender(consoleAppender);
+ }
+
String locatorURI = getTransport() + "://" + InetAddress.getLocalHost().getHostAddress() + ":" + port;
InvokerLocator serverLocator = new InvokerLocator(locatorURI);
System.out.println("Starting remoting server with locator uri of: " + locatorURI);
@@ -269,7 +287,7 @@
client.invokeOneway(CALLBACK_TEST);
}
- Thread.sleep(100);
+ Thread.sleep(500);
assertEquals(invocationCount, callbackHandler.callbackCounter);
assertEquals(0, pool.size());
usedPooled = (Long) field.get(clientInvoker);
@@ -1147,6 +1165,7 @@
field.setAccessible(true);
Socket controlSocket = (Socket) field.get(clientInvoker);
controlSocket.close();
+ log.info("CLOSED CONTROL SOCKET");
Thread.sleep(TEST_PING_FREQUENCY * 2);
client.invoke(CALLBACK_TEST);
@@ -1226,6 +1245,7 @@
field.setAccessible(true);
Socket clientSideControlSocket = (Socket) field.get(controlConnectionThread);
clientSideControlSocket.close();
+ log.info("CLOSED CONTROL SOCKET");
Thread.sleep(TEST_PING_FREQUENCY * 2);
client.invoke(CALLBACK_TEST);
@@ -1243,6 +1263,90 @@
}
+ public void testNoControlConnectionRestart() throws Throwable
+ {
+ log.info("entering " + getName());
+ String host = InetAddress.getLocalHost().getHostName();
+ String locatorURI = getTransport() + "://" + host + ":" + port;
+ InvokerLocator serverLocator = new InvokerLocator(locatorURI);
+ log.info("Connecting to: " + serverLocator);
+ HashMap config = new HashMap();
+ config.put(InvokerLocator.FORCE_REMOTE, "true");
+ config.put(Bisocket.IS_CALLBACK_SERVER, "true");
+ config.put(Bisocket.PING_FREQUENCY, TEST_PING_FREQUENCY_STRING);
+ addExtraClientConfig(config);
+ Client client = new Client(serverLocator, config);
+ client.connect();
+ log.info("client is connected");
+ assertTrue(client.getInvoker() instanceof BisocketClientInvoker);
+
+ SimpleCallbackHandler callbackHandler = new SimpleCallbackHandler();
+ client.addListener(callbackHandler, new HashMap());
+ log.info("client added callback handler");
+
+ Iterator it = invocationHandler.callbackHandlers.iterator();
+ ServerInvokerCallbackHandler serverInvokerCallbackHandler = (ServerInvokerCallbackHandler) it.next();
+ Client callbackClient = serverInvokerCallbackHandler.getCallbackClient();
+ assertTrue(callbackClient.getInvoker() instanceof BisocketClientInvoker);
+ MicroSocketClientInvoker clientInvoker = (MicroSocketClientInvoker) callbackClient.getInvoker();
+ Field field = BisocketClientInvoker.class.getDeclaredField("controlSocket");
+ field.setAccessible(true);
+ Socket controlSocketBefore = (Socket) field.get(clientInvoker);
+
+ Thread.sleep(4 * TEST_PING_FREQUENCY);
+ Socket controlSocketAfter = (Socket) field.get(clientInvoker);
+ assertEquals(controlSocketBefore, controlSocketAfter);
+ log.info("control socket: " + controlSocketBefore);
+
+ client.removeListener(callbackHandler);
+ client.disconnect();
+ }
+
+
+ public void testServerRestart() throws Throwable
+ {
+ log.info("entering " + getName());
+ String host = InetAddress.getLocalHost().getHostName();
+ String locatorURI = getTransport() + "://" + host + ":" + port;
+ InvokerLocator serverLocator = new InvokerLocator(locatorURI);
+ log.info("Connecting to: " + serverLocator);
+ HashMap config = new HashMap();
+ config.put(InvokerLocator.FORCE_REMOTE, "true");
+ config.put(Bisocket.IS_CALLBACK_SERVER, "true");
+ config.put(Bisocket.PING_FREQUENCY, TEST_PING_FREQUENCY_STRING);
+ addExtraClientConfig(config);
+ Client client = new Client(serverLocator, config);
+ client.connect();
+ log.info("client is connected");
+ assertTrue(client.getInvoker() instanceof BisocketClientInvoker);
+ SimpleCallbackHandler callbackHandler = new SimpleCallbackHandler();
+ client.addListener(callbackHandler, new HashMap());
+ log.info("client added callback handler");
+ client.invoke(CALLBACK_TEST);
+ assertEquals(1, callbackHandler.callbackCounter);
+
+ Connector oldConnector = connector;
+ connector.stop();
+ log.info("STOPPED CONNECTOR");
+ setUp();
+ log.info("RESTARTED CONNECTOR");
+ assertTrue(!connector.equals(oldConnector));
+
+ Thread.sleep(TEST_PING_FREQUENCY * 3);
+
+ // It is beyond the scope of Remoting to fail over to a new server,
+ // complete with registered callback handlers.
+ client.addListener(callbackHandler, new HashMap());
+ log.info("client added callback handler");
+
+ client.invoke(CALLBACK_TEST);
+ assertEquals(2, callbackHandler.callbackCounter);
+
+ client.removeListener(callbackHandler);
+ client.disconnect();
+ }
+
+
public static void main(String[] args)
{
BisocketTestCase testCase = new BisocketTestCase();
More information about the jboss-cvs-commits
mailing list