[jboss-cvs] JBossRemoting/src/tests/org/jboss/test/remoting/transport/socket/timeout/oneway ...
Tom Elrod
tom.elrod at jboss.com
Mon Jan 29 13:26:38 EST 2007
User: telrod
Date: 07/01/29 13:26:38
Added: src/tests/org/jboss/test/remoting/transport/socket/timeout/oneway
Tag: remoting_2_x TimeoutTestCase.java
TimeoutServerTest.java TimeoutTestHandler.java
TimeoutClientTest.java
Log:
Adding test case to verify that oneway calls can work even after an initial connection has timed out.
Revision Changes Path
No revision
No revision
1.1.2.1 +37 -0 JBossRemoting/src/tests/org/jboss/test/remoting/transport/socket/timeout/oneway/Attic/TimeoutTestCase.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: TimeoutTestCase.java
===================================================================
RCS file: TimeoutTestCase.java
diff -N TimeoutTestCase.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ TimeoutTestCase.java 29 Jan 2007 18:26:38 -0000 1.1.2.1
@@ -0,0 +1,37 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.remoting.transport.socket.timeout.oneway;
+
+import org.jboss.jrunit.harness.TestDriver;
+
+/**
+ * @author <a href="mailto:tom at jboss.org">Tom Elrod</a>
+ */
+public class TimeoutTestCase extends TestDriver
+{
+ public void declareTestClasses()
+ {
+ addTestClasses(TimeoutClientTest.class.getName(),
+ 1,
+ TimeoutServerTest.class.getName());
+ }
+}
\ No newline at end of file
1.1.2.1 +84 -0 JBossRemoting/src/tests/org/jboss/test/remoting/transport/socket/timeout/oneway/Attic/TimeoutServerTest.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: TimeoutServerTest.java
===================================================================
RCS file: TimeoutServerTest.java
diff -N TimeoutServerTest.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ TimeoutServerTest.java 29 Jan 2007 18:26:38 -0000 1.1.2.1
@@ -0,0 +1,84 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.remoting.transport.socket.timeout.oneway;
+
+import org.jboss.remoting.transport.Connector;
+import org.jboss.logging.XLevel;
+import org.jboss.jrunit.extensions.ServerTestCase;
+import org.apache.log4j.Logger;
+import org.apache.log4j.Level;
+import org.apache.log4j.PatternLayout;
+import org.apache.log4j.ConsoleAppender;
+
+/**
+ * @author <a href="mailto:tom at jboss.org">Tom Elrod</a>
+ */
+public class TimeoutServerTest extends ServerTestCase
+{
+ private Connector connector = null;
+
+ private String timeout = "5000";
+
+ public void setUp() throws Exception
+ {
+ String locator = "socket://localhost:5700/?timeout=" + timeout;
+ connector = new Connector(locator);
+ connector.create();
+ connector.addInvocationHandler("timeout_test", new TimeoutTestHandler());
+ connector.start();
+ }
+
+ public void tearDown()
+ {
+ if(connector != null)
+ {
+ connector.stop();
+ connector.destroy();
+ }
+ }
+
+ public static void main(String[] args)
+ {
+
+// Logger.getLogger("org.jboss.remoting").setLevel(Level.DEBUG);
+ Logger.getLogger("org.jboss.remoting").setLevel(XLevel.TRACE);
+ 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);
+
+ TimeoutServerTest test = new TimeoutServerTest();
+ try
+ {
+ test.setUp();
+
+ Thread.currentThread().sleep(600000);
+
+ test.tearDown();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+}
\ No newline at end of file
1.1.2.1 +65 -0 JBossRemoting/src/tests/org/jboss/test/remoting/transport/socket/timeout/oneway/Attic/TimeoutTestHandler.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: TimeoutTestHandler.java
===================================================================
RCS file: TimeoutTestHandler.java
diff -N TimeoutTestHandler.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ TimeoutTestHandler.java 29 Jan 2007 18:26:38 -0000 1.1.2.1
@@ -0,0 +1,65 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.remoting.transport.socket.timeout.oneway;
+
+import org.jboss.remoting.ServerInvocationHandler;
+import org.jboss.remoting.ServerInvoker;
+import org.jboss.remoting.InvocationRequest;
+import org.jboss.remoting.callback.InvokerCallbackHandler;
+
+import javax.management.MBeanServer;
+
+/**
+ * @author <a href="mailto:tom at jboss.org">Tom Elrod</a>
+ */
+public class TimeoutTestHandler implements ServerInvocationHandler
+{
+ private InvokerCallbackHandler callbackHandler;
+ private int callCounter = 0;
+
+ public void setMBeanServer(MBeanServer server)
+ {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ public void setInvoker(ServerInvoker invoker)
+ {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ public Object invoke(InvocationRequest invocation) throws Throwable
+ {
+ System.out.println("received invocation of " + invocation.getParameter());
+ callCounter++;
+ return new Integer(callCounter);
+ }
+
+ public void addListener(InvokerCallbackHandler callbackHandler)
+ {
+ this.callbackHandler = callbackHandler;
+ }
+
+ public void removeListener(InvokerCallbackHandler callbackHandler)
+ {
+ this.callbackHandler = null;
+ }
+}
\ No newline at end of file
1.1.2.1 +84 -0 JBossRemoting/src/tests/org/jboss/test/remoting/transport/socket/timeout/oneway/Attic/TimeoutClientTest.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: TimeoutClientTest.java
===================================================================
RCS file: TimeoutClientTest.java
diff -N TimeoutClientTest.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ TimeoutClientTest.java 29 Jan 2007 18:26:38 -0000 1.1.2.1
@@ -0,0 +1,84 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.remoting.transport.socket.timeout.oneway;
+
+import org.jboss.remoting.InvokerLocator;
+import org.jboss.remoting.Client;
+import org.jboss.logging.XLevel;
+import org.apache.log4j.Logger;
+import org.apache.log4j.Level;
+import org.apache.log4j.PatternLayout;
+import org.apache.log4j.ConsoleAppender;
+import junit.framework.TestCase;
+
+/**
+ * @author <a href="mailto:tom at jboss.org">Tom Elrod</a>
+ */
+public class TimeoutClientTest extends TestCase
+{
+ public void testClientCalls()
+ {
+ try
+ {
+ String locatorUrl = new String("socket://localhost:5700");
+ InvokerLocator locator = new InvokerLocator(locatorUrl);
+ Client client = new Client(locator);
+ client.connect();
+
+ client.invokeOneway("cheese");
+
+ Thread.currentThread().sleep(8000);
+
+ client.invokeOneway("poofs");
+
+ Thread.currentThread().sleep(2000);
+
+ Object ret = client.invoke("crackers");
+
+ client.disconnect();
+
+ // server should be incrementing call count for every invocation (regardless of type)
+ // so ret should equal 3, for 3 invocations it received.
+ assertEquals(3, ((Integer)ret).intValue());
+
+ }
+ catch (Throwable throwable)
+ {
+ throwable.printStackTrace();
+ }
+ }
+
+ public static void main(String[] args)
+ {
+
+// Logger.getLogger("org.jboss.remoting").setLevel(Level.DEBUG);
+ Logger.getLogger("org.jboss.remoting").setLevel(XLevel.TRACE);
+ 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);
+
+ TimeoutClientTest test = new TimeoutClientTest();
+ test.testClientCalls();
+ }
+}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list