JBoss Remoting SVN: r4883 - remoting2/branches/2.2/src/tests/org/jboss/test/remoting/connection/params.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2009-03-20 02:40:57 -0400 (Fri, 20 Mar 2009)
New Revision: 4883
Modified:
remoting2/branches/2.2/src/tests/org/jboss/test/remoting/connection/params/UseLocatorParamsTestCase.java
Log:
JBREM-1082: Added several test methods.
Modified: remoting2/branches/2.2/src/tests/org/jboss/test/remoting/connection/params/UseLocatorParamsTestCase.java
===================================================================
--- remoting2/branches/2.2/src/tests/org/jboss/test/remoting/connection/params/UseLocatorParamsTestCase.java 2009-03-20 06:38:41 UTC (rev 4882)
+++ remoting2/branches/2.2/src/tests/org/jboss/test/remoting/connection/params/UseLocatorParamsTestCase.java 2009-03-20 06:40:57 UTC (rev 4883)
@@ -115,14 +115,14 @@
assertEquals("abc", client.invoke("abc"));
log.info("connection is good");
- // Configure callback polling.
+ // Configure ConnectionListener.
TestConnectionListener listener = new TestConnectionListener();
HashMap metadata = new HashMap();
metadata.put("validatorPingTimeout", "555");
client.addConnectionListener(listener, metadata);
- // Test setting of parameters in CallbackPoller.
- testParameters(client, 333, 555, true);
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 333, 555, true);
client.removeConnectionListener(listener);
client.disconnect();
@@ -156,14 +156,14 @@
assertEquals("abc", client.invoke("abc"));
log.info("connection is good");
- // Configure callback polling.
+ // Configure ConnectionListener.
TestConnectionListener listener = new TestConnectionListener();
HashMap metadata = new HashMap();
metadata.put("validatorPingTimeout", "555");
client.addConnectionListener(listener, metadata);
- // Test setting of parameters in CallbackPoller.
- testParameters(client, 333, 555, true);
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 333, 555, true);
client.removeConnectionListener(listener);
client.disconnect();
@@ -197,14 +197,14 @@
assertEquals("abc", client.invoke("abc"));
log.info("connection is good");
- // Configure callback polling.
+ // Configure ConnectionListener.
TestConnectionListener listener = new TestConnectionListener();
HashMap metadata = new HashMap();
metadata.put("validatorPingTimeout", "555");
client.addConnectionListener(listener, metadata);
- // Test setting of parameters in CallbackPoller.
- testParameters(client, 333, 555, true);
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 333, 555, true);
client.removeConnectionListener(listener);
client.disconnect();
@@ -237,15 +237,15 @@
assertEquals("abc", client.invoke("abc"));
log.info("connection is good");
- // Configure callback polling.
+ // Configure ConnectionListener.
TestConnectionListener listener = new TestConnectionListener();
HashMap metadata = new HashMap();
metadata.put("validatorPingTimeout", "555");
metadata.put(Client.USE_ALL_PARAMS, "false");
client.addConnectionListener(listener, metadata);
- // Test setting of parameters in CallbackPoller.
- testParameters(client, 333, 555, true);
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 333, 555, true);
client.removeConnectionListener(listener);
client.disconnect();
@@ -279,14 +279,14 @@
assertEquals("abc", client.invoke("abc"));
log.info("connection is good");
- // Configure callback polling.
+ // Configure ConnectionListener.
TestConnectionListener listener = new TestConnectionListener();
HashMap metadata = new HashMap();
metadata.put("validatorPingTimeout", "555");
client.addConnectionListener(listener, metadata);
- // Test setting of parameters in CallbackPoller.
- testParameters(client, 333, 555, false);
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 333, 555, false);
client.removeConnectionListener(listener);
client.disconnect();
@@ -320,14 +320,14 @@
assertEquals("abc", client.invoke("abc"));
log.info("connection is good");
- // Configure callback polling.
+ // Configure ConnectionListener.
TestConnectionListener listener = new TestConnectionListener();
HashMap metadata = new HashMap();
metadata.put("validatorPingTimeout", "555");
client.addConnectionListener(listener, metadata);
- // Test setting of parameters in CallbackPoller.
- testParameters(client, 333, 555, false);
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 333, 555, false);
client.removeConnectionListener(listener);
client.disconnect();
@@ -360,15 +360,15 @@
assertEquals("abc", client.invoke("abc"));
log.info("connection is good");
- // Configure callback polling.
+ // Configure ConnectionListener.
TestConnectionListener listener = new TestConnectionListener();
HashMap metadata = new HashMap();
metadata.put("validatorPingTimeout", "555");
metadata.put(Client.USE_ALL_PARAMS, "true");
client.addConnectionListener(listener, metadata);
- // Test setting of parameters in CallbackPoller.
- testParameters(client, 333, 555, false);
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 333, 555, false);
client.removeConnectionListener(listener);
client.disconnect();
@@ -377,10 +377,232 @@
}
- protected void testParameters(Client client,
- int pingPeriodExpected,
- int pingTimeoutExpected,
- boolean tieToLeaseExpected)
+ public void testUseLocatorParamsTrueInLocatorAllParamsInLocator() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ String clientLocatorURI = locatorURI;
+ clientLocatorURI += "&validatorPingPeriod=111&validatorPingTimeout=222&tieToLease=false";
+ clientLocatorURI += "&" + Client.USE_ALL_PARAMS + "=true";
+ InvokerLocator clientLocator = new InvokerLocator(clientLocatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Configure ConnectionListener.
+ TestConnectionListener listener = new TestConnectionListener();
+ HashMap metadata = new HashMap();
+ client.addConnectionListener(listener, metadata);
+
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 111, 222, false);
+
+ client.removeConnectionListener(listener);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testExplicitPingPeriodOverridesLocatorAndConfig() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ String clientLocatorURI = locatorURI;
+ clientLocatorURI += "&validatorPingPeriod=111";
+ InvokerLocator clientLocator = new InvokerLocator(clientLocatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ clientConfig.put(Client.USE_ALL_PARAMS, "true");
+ clientConfig.put("validatorPingPeriod", "222");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Configure ConnectionListener.
+ TestConnectionListener listener = new TestConnectionListener();
+ client.addConnectionListener(listener, 333);
+
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 333, 1000, true);
+
+ client.removeConnectionListener(listener);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testUnaryLocatorOverridesWithUseAllParams() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ String clientLocatorURI = locatorURI;
+ clientLocatorURI += "&validatorPingPeriod=111";
+ InvokerLocator clientLocator = new InvokerLocator(clientLocatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ clientConfig.put(Client.USE_ALL_PARAMS, "true");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Configure ConnectionListener.
+ TestConnectionListener listener = new TestConnectionListener();
+ client.addConnectionListener(listener);
+
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 111, 1000, true);
+
+ client.removeConnectionListener(listener);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testUnaryLocatorDoesntOverrideWithoutUseAllParams() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ String clientLocatorURI = locatorURI;
+ clientLocatorURI += "&validatorPingPeriod=111";
+ InvokerLocator clientLocator = new InvokerLocator(clientLocatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Configure ConnectionListener.
+ TestConnectionListener listener = new TestConnectionListener();
+ client.addConnectionListener(listener);
+
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 2000, 1000, true);
+
+ client.removeConnectionListener(listener);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+
+ public void testUnaryConfigOverrides() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ String clientLocatorURI = locatorURI;
+ InvokerLocator clientLocator = new InvokerLocator(clientLocatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ clientConfig.put("validatorPingPeriod", "111");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Configure ConnectionListener.
+ TestConnectionListener listener = new TestConnectionListener();
+ client.addConnectionListener(listener);
+
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 111, 1000, true);
+
+ client.removeConnectionListener(listener);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testUnaryDefault() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ String clientLocatorURI = locatorURI;
+ InvokerLocator clientLocator = new InvokerLocator(clientLocatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Configure ConnectionListener.
+ TestConnectionListener listener = new TestConnectionListener();
+ client.addConnectionListener(listener);
+
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 2000, 1000, true);
+
+ client.removeConnectionListener(listener);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+
+ protected void doTestParameters(Client client,
+ int pingPeriodExpected,
+ int pingTimeoutExpected,
+ boolean tieToLeaseExpected)
throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException
{
Field field = Client.class.getDeclaredField("connectionValidator");
15 years, 9 months
JBoss Remoting SVN: r4882 - remoting2/branches/2.2/src/main/org/jboss/remoting.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2009-03-20 02:38:41 -0400 (Fri, 20 Mar 2009)
New Revision: 4882
Modified:
remoting2/branches/2.2/src/main/org/jboss/remoting/Client.java
Log:
JBREM-1082: Corrected unary addConnectionListener().
Modified: remoting2/branches/2.2/src/main/org/jboss/remoting/Client.java
===================================================================
--- remoting2/branches/2.2/src/main/org/jboss/remoting/Client.java 2009-03-20 06:36:01 UTC (rev 4881)
+++ remoting2/branches/2.2/src/main/org/jboss/remoting/Client.java 2009-03-20 06:38:41 UTC (rev 4882)
@@ -346,7 +346,8 @@
public void addConnectionListener(ConnectionListener listener)
{
HashMap metadata = new HashMap();
- if (configuration.get(ConnectionValidator.VALIDATOR_PING_PERIOD) == null)
+ if (configuration.get(ConnectionValidator.VALIDATOR_PING_PERIOD) == null &&
+ locator.getParameters().get(ConnectionValidator.VALIDATOR_PING_PERIOD) == null)
{
String pingPeriod = Long.toString(ConnectionValidator.DEFAULT_PING_PERIOD);
metadata.put(ConnectionValidator.VALIDATOR_PING_PERIOD, pingPeriod);
15 years, 9 months
JBoss Remoting SVN: r4881 - remoting2/branches/2.x/src/main/org/jboss/remoting.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2009-03-20 02:36:01 -0400 (Fri, 20 Mar 2009)
New Revision: 4881
Modified:
remoting2/branches/2.x/src/main/org/jboss/remoting/Client.java
Log:
JBREM-1082: (1) Added USE_ALL_PARAMS; (2) corrected unary addConnectionListener().
Modified: remoting2/branches/2.x/src/main/org/jboss/remoting/Client.java
===================================================================
--- remoting2/branches/2.x/src/main/org/jboss/remoting/Client.java 2009-03-20 06:34:57 UTC (rev 4880)
+++ remoting2/branches/2.x/src/main/org/jboss/remoting/Client.java 2009-03-20 06:36:01 UTC (rev 4881)
@@ -164,6 +164,11 @@
public static final String THROW_CALLBACK_EXCEPTION = "throwCallbackException";
+ /** The key to use to specify that parameters for objects created by Client should be taken,
+ * in addition to the metadata map, from the InvokerLocator and from the Client's configuration map.
+ */
+ public static final String USE_ALL_PARAMS = "useAllParams";
+
private static final Logger log = Logger.getLogger(Client.class);
private static final long serialVersionUID = 5679279425009837934L;
@@ -377,7 +382,8 @@
public void addConnectionListener(ConnectionListener listener)
{
HashMap metadata = new HashMap();
- if (configuration.get(ConnectionValidator.VALIDATOR_PING_PERIOD) == null)
+ if (configuration.get(ConnectionValidator.VALIDATOR_PING_PERIOD) == null &&
+ locator.getParameters().get(ConnectionValidator.VALIDATOR_PING_PERIOD) == null)
{
String pingPeriod = Long.toString(ConnectionValidator.DEFAULT_PING_PERIOD);
metadata.put(ConnectionValidator.VALIDATOR_PING_PERIOD, pingPeriod);
15 years, 9 months
JBoss Remoting SVN: r4880 - remoting2/branches/2.x/src/main/org/jboss/remoting.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2009-03-20 02:34:57 -0400 (Fri, 20 Mar 2009)
New Revision: 4880
Modified:
remoting2/branches/2.x/src/main/org/jboss/remoting/ConnectionValidator.java
Log:
JBREM-1082: (1) Can get parameters from InvokerLocator; (2) correctly configures validatorPingTimeout.
Modified: remoting2/branches/2.x/src/main/org/jboss/remoting/ConnectionValidator.java
===================================================================
--- remoting2/branches/2.x/src/main/org/jboss/remoting/ConnectionValidator.java 2009-03-20 06:32:05 UTC (rev 4879)
+++ remoting2/branches/2.x/src/main/org/jboss/remoting/ConnectionValidator.java 2009-03-20 06:34:57 UTC (rev 4880)
@@ -57,6 +57,9 @@
/** Default ping timeout period. Value is 1 second. */
public static final String DEFAULT_PING_TIMEOUT = "1000";
+
+ /** Default ping timeout period. Value is 1 second. */
+ public static final int DEFAULT_PING_TIMEOUT_INT = 1000;
/**
* Default number of ping retries. Value is 1.
@@ -258,6 +261,7 @@
{
this.client = client;
pingPeriod = DEFAULT_PING_PERIOD;
+ pingTimeout = DEFAULT_PING_TIMEOUT_INT;
listeners = new ArrayList();
stopped = false;
this.metadata = new HashMap(metadata);
@@ -415,6 +419,10 @@
private void getParameters(Client client, Map metadata)
{
+ if (checkUseParametersFromLocator(client, metadata))
+ {
+ getParametersFromMap(client.getInvoker().getLocator().getParameters());
+ }
getParametersFromMap(client.getConfiguration());
getParametersFromMap(metadata);
@@ -429,6 +437,54 @@
}
}
+ private boolean checkUseParametersFromLocator(Client client, Map metadata)
+ {
+ if (client.getInvoker() == null)
+ {
+ return false;
+ }
+ Object o = client.getInvoker().getLocator().getParameters().get(Client.USE_ALL_PARAMS);
+ if (o != null)
+ {
+ if (o instanceof String)
+ {
+ return Boolean.valueOf(((String) o)).booleanValue();
+ }
+ else
+ {
+ log.warn(this + " could not convert " + Client.USE_ALL_PARAMS + " value" +
+ " in InvokerLocator to a boolean: must be a String");
+ }
+ }
+ o = client.getConfiguration().get(Client.USE_ALL_PARAMS);
+ if (o != null)
+ {
+ if (o instanceof String)
+ {
+ return Boolean.valueOf(((String) o)).booleanValue();
+ }
+ else
+ {
+ log.warn(this + " could not convert " + Client.USE_ALL_PARAMS + " value" +
+ " in Client configuration map to a boolean: must be a String");
+ }
+ }
+ o = metadata.get(Client.USE_ALL_PARAMS);
+ if (o != null)
+ {
+ if (o instanceof String)
+ {
+ return Boolean.valueOf(((String) o)).booleanValue();
+ }
+ else
+ {
+ log.warn(this + " could not convert " + Client.USE_ALL_PARAMS + " value" +
+ " in metadata map to a boolean: must be a String");
+ }
+ }
+ return false;
+ }
+
private void getParametersFromMap(Map config)
{
if (config != null)
@@ -455,6 +511,28 @@
}
}
+ o = config.get(VALIDATOR_PING_TIMEOUT);
+ if (o != null)
+ {
+ if (o instanceof String)
+ {
+ try
+ {
+ pingTimeout = Integer.parseInt((String)o);
+ }
+ catch (Exception e)
+ {
+ log.warn(this + " could not convert " + VALIDATOR_PING_TIMEOUT +
+ " value of " + o + " to a long value");
+ }
+ }
+ else
+ {
+ log.warn(this + " could not convert " + VALIDATOR_PING_TIMEOUT +
+ " value of " + o + " to a long value: must be a String");
+ }
+ }
+
o = config.get(TIE_TO_LEASE);
if (o != null)
{
@@ -503,8 +581,8 @@
private void start()
{
+ metadata.put(ServerInvoker.TIMEOUT, Integer.toString(pingTimeout));
configMap = createPingConfig(client.getConfiguration(), metadata);
- pingTimeout = Integer.parseInt((String) configMap.get(ServerInvoker.TIMEOUT));
log.debug(this + " timeout: " + pingTimeout);
log.debug(this + " ping retries: " + configMap.get("NumberOfCallRetries"));
log.debug(this + " connection retries: " + configMap.get("NumberOfRetries"));
15 years, 9 months
JBoss Remoting SVN: r4879 - in remoting2/branches/2.x/src/tests/org/jboss/test/remoting/connection: params and 1 other directory.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2009-03-20 02:32:05 -0400 (Fri, 20 Mar 2009)
New Revision: 4879
Added:
remoting2/branches/2.x/src/tests/org/jboss/test/remoting/connection/params/
remoting2/branches/2.x/src/tests/org/jboss/test/remoting/connection/params/ConnectionValidatorConfigurationTestCase.java
Log:
JBREM-1082: New unit tests.
Added: remoting2/branches/2.x/src/tests/org/jboss/test/remoting/connection/params/ConnectionValidatorConfigurationTestCase.java
===================================================================
--- remoting2/branches/2.x/src/tests/org/jboss/test/remoting/connection/params/ConnectionValidatorConfigurationTestCase.java (rev 0)
+++ remoting2/branches/2.x/src/tests/org/jboss/test/remoting/connection/params/ConnectionValidatorConfigurationTestCase.java 2009-03-20 06:32:05 UTC (rev 4879)
@@ -0,0 +1,692 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.connection.params;
+
+import java.lang.reflect.Field;
+import java.net.InetAddress;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.management.MBeanServer;
+
+import junit.framework.TestCase;
+
+import org.apache.log4j.ConsoleAppender;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.apache.log4j.PatternLayout;
+import org.jboss.logging.XLevel;
+import org.jboss.remoting.Client;
+import org.jboss.remoting.ConnectionListener;
+import org.jboss.remoting.ConnectionValidator;
+import org.jboss.remoting.InvocationRequest;
+import org.jboss.remoting.InvokerLocator;
+import org.jboss.remoting.ServerInvocationHandler;
+import org.jboss.remoting.ServerInvoker;
+import org.jboss.remoting.callback.InvokerCallbackHandler;
+import org.jboss.remoting.transport.Connector;
+import org.jboss.remoting.transport.PortUtil;
+
+
+/**
+ * Unit test for JBREM-1082.
+ *
+ * @author <a href="ron.sigal(a)jboss.com">Ron Sigal</a>
+ * @version
+ * <p>
+ * Copyright Jan 17, 2009
+ * </p>
+ */
+public class ConnectionValidatorConfigurationTestCase extends TestCase
+{
+ private static Logger log = Logger.getLogger(ConnectionValidatorConfigurationTestCase.class);
+
+ private static boolean firstTime = true;
+
+ protected String host;
+ protected int port;
+ protected String locatorURI;
+ protected InvokerLocator serverLocator;
+ protected Connector connector;
+ protected TestInvocationHandler invocationHandler;
+
+
+ public void setUp() throws Exception
+ {
+ if (firstTime)
+ {
+ firstTime = false;
+ Logger.getLogger("org.jboss.remoting").setLevel(XLevel.INFO);
+ Logger.getLogger("org.jboss.test.remoting").setLevel(Level.INFO);
+ String pattern = "[%d{ABSOLUTE}] [%t] %5p (%F:%L) - %m%n";
+ PatternLayout layout = new PatternLayout(pattern);
+ ConsoleAppender consoleAppender = new ConsoleAppender(layout);
+ Logger.getRootLogger().addAppender(consoleAppender);
+ }
+ }
+
+
+ public void tearDown()
+ {
+ }
+
+
+ public void testUseLocatorParamsDefault() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ String clientLocatorURI = locatorURI;
+ clientLocatorURI += "&validatorPingPeriod=111&validatorPingTimeout=222&tieToLease=false";
+ InvokerLocator clientLocator = new InvokerLocator(clientLocatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ clientConfig.put("validatorPingPeriod", "333");
+ clientConfig.put("validatorPingTimeout", "444");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Configure ConnectionListener.
+ TestConnectionListener listener = new TestConnectionListener();
+ HashMap metadata = new HashMap();
+ metadata.put("validatorPingTimeout", "555");
+ client.addConnectionListener(listener, metadata);
+
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 333, 555, true);
+
+ client.removeConnectionListener(listener);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testUseLocatorParamsFalseInLocator() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ String clientLocatorURI = locatorURI;
+ clientLocatorURI += "&validatorPingPeriod=111&validatorPingTimeout=222&tieToLease=false";
+ clientLocatorURI += "&" + Client.USE_ALL_PARAMS + "=false";
+ InvokerLocator clientLocator = new InvokerLocator(clientLocatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ clientConfig.put("validatorPingPeriod", "333");
+ clientConfig.put("validatorPingTimeout", "444");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Configure ConnectionListener.
+ TestConnectionListener listener = new TestConnectionListener();
+ HashMap metadata = new HashMap();
+ metadata.put("validatorPingTimeout", "555");
+ client.addConnectionListener(listener, metadata);
+
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 333, 555, true);
+
+ client.removeConnectionListener(listener);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testUseLocatorParamsFalseInConfig() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ String clientLocatorURI = locatorURI;
+ clientLocatorURI += "&validatorPingPeriod=111&validatorPingTimeout=222&tieToLease=false";
+ InvokerLocator clientLocator = new InvokerLocator(clientLocatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ clientConfig.put("validatorPingPeriod", "333");
+ clientConfig.put("validatorPingTimeout", "444");
+ clientConfig.put(Client.USE_ALL_PARAMS, "false");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Configure ConnectionListener.
+ TestConnectionListener listener = new TestConnectionListener();
+ HashMap metadata = new HashMap();
+ metadata.put("validatorPingTimeout", "555");
+ client.addConnectionListener(listener, metadata);
+
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 333, 555, true);
+
+ client.removeConnectionListener(listener);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testUseLocatorParamsFalseInMetadata() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ String clientLocatorURI = locatorURI;
+ clientLocatorURI += "&validatorPingPeriod=111&validatorPingTimeout=222&tieToLease=false";
+ InvokerLocator clientLocator = new InvokerLocator(clientLocatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ clientConfig.put("validatorPingPeriod", "333");
+ clientConfig.put("validatorPingTimeout", "444");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Configure ConnectionListener.
+ TestConnectionListener listener = new TestConnectionListener();
+ HashMap metadata = new HashMap();
+ metadata.put("validatorPingTimeout", "555");
+ metadata.put(Client.USE_ALL_PARAMS, "false");
+ client.addConnectionListener(listener, metadata);
+
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 333, 555, true);
+
+ client.removeConnectionListener(listener);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testUseLocatorParamsTrueInLocator() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ String clientLocatorURI = locatorURI;
+ clientLocatorURI += "&validatorPingPeriod=111&validatorPingTimeout=222&tieToLease=false";
+ clientLocatorURI += "&" + Client.USE_ALL_PARAMS + "=true";
+ InvokerLocator clientLocator = new InvokerLocator(clientLocatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ clientConfig.put("validatorPingPeriod", "333");
+ clientConfig.put("validatorPingTimeout", "444");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Configure ConnectionListener.
+ TestConnectionListener listener = new TestConnectionListener();
+ HashMap metadata = new HashMap();
+ metadata.put("validatorPingTimeout", "555");
+ client.addConnectionListener(listener, metadata);
+
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 333, 555, false);
+
+ client.removeConnectionListener(listener);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testUseLocatorParamsTrueInConfig() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ String clientLocatorURI = locatorURI;
+ clientLocatorURI += "&validatorPingPeriod=111&validatorPingTimeout=222&tieToLease=false";
+ InvokerLocator clientLocator = new InvokerLocator(clientLocatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ clientConfig.put("validatorPingPeriod", "333");
+ clientConfig.put("validatorPingTimeout", "444");
+ clientConfig.put(Client.USE_ALL_PARAMS, "true");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Configure ConnectionListener.
+ TestConnectionListener listener = new TestConnectionListener();
+ HashMap metadata = new HashMap();
+ metadata.put("validatorPingTimeout", "555");
+ client.addConnectionListener(listener, metadata);
+
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 333, 555, false);
+
+ client.removeConnectionListener(listener);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testUseLocatorParamsTrueInMetadata() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ String clientLocatorURI = locatorURI;
+ clientLocatorURI += "&validatorPingPeriod=111&validatorPingTimeout=222&tieToLease=false";
+ InvokerLocator clientLocator = new InvokerLocator(clientLocatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ clientConfig.put("validatorPingPeriod", "333");
+ clientConfig.put("validatorPingTimeout", "444");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Configure ConnectionListener.
+ TestConnectionListener listener = new TestConnectionListener();
+ HashMap metadata = new HashMap();
+ metadata.put("validatorPingTimeout", "555");
+ metadata.put(Client.USE_ALL_PARAMS, "true");
+ client.addConnectionListener(listener, metadata);
+
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 333, 555, false);
+
+ client.removeConnectionListener(listener);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testUseLocatorParamsTrueInLocatorAllParamsInLocator() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ String clientLocatorURI = locatorURI;
+ clientLocatorURI += "&validatorPingPeriod=111&validatorPingTimeout=222&tieToLease=false";
+ clientLocatorURI += "&" + Client.USE_ALL_PARAMS + "=true";
+ InvokerLocator clientLocator = new InvokerLocator(clientLocatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Configure ConnectionListener.
+ TestConnectionListener listener = new TestConnectionListener();
+ HashMap metadata = new HashMap();
+ client.addConnectionListener(listener, metadata);
+
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 111, 222, false);
+
+ client.removeConnectionListener(listener);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testExplicitPingPeriodOverridesLocatorAndConfig() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ String clientLocatorURI = locatorURI;
+ clientLocatorURI += "&validatorPingPeriod=111";
+ InvokerLocator clientLocator = new InvokerLocator(clientLocatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ clientConfig.put(Client.USE_ALL_PARAMS, "true");
+ clientConfig.put("validatorPingPeriod", "222");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Configure ConnectionListener.
+ TestConnectionListener listener = new TestConnectionListener();
+ client.addConnectionListener(listener, 333);
+
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 333, 1000, true);
+
+ client.removeConnectionListener(listener);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testUnaryLocatorOverridesWithUseAllParams() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ String clientLocatorURI = locatorURI;
+ clientLocatorURI += "&validatorPingPeriod=111";
+ InvokerLocator clientLocator = new InvokerLocator(clientLocatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ clientConfig.put(Client.USE_ALL_PARAMS, "true");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Configure ConnectionListener.
+ TestConnectionListener listener = new TestConnectionListener();
+ client.addConnectionListener(listener);
+
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 111, 1000, true);
+
+ client.removeConnectionListener(listener);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testUnaryLocatorDoesntOverrideWithoutUseAllParams() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ String clientLocatorURI = locatorURI;
+ clientLocatorURI += "&validatorPingPeriod=111";
+ InvokerLocator clientLocator = new InvokerLocator(clientLocatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Configure ConnectionListener.
+ TestConnectionListener listener = new TestConnectionListener();
+ client.addConnectionListener(listener);
+
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 2000, 1000, true);
+
+ client.removeConnectionListener(listener);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+
+ public void testUnaryConfigOverrides() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ String clientLocatorURI = locatorURI;
+ InvokerLocator clientLocator = new InvokerLocator(clientLocatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ clientConfig.put("validatorPingPeriod", "111");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Configure ConnectionListener.
+ TestConnectionListener listener = new TestConnectionListener();
+ client.addConnectionListener(listener);
+
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 111, 1000, true);
+
+ client.removeConnectionListener(listener);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testUnaryDefault() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ String clientLocatorURI = locatorURI;
+ InvokerLocator clientLocator = new InvokerLocator(clientLocatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Configure ConnectionListener.
+ TestConnectionListener listener = new TestConnectionListener();
+ client.addConnectionListener(listener);
+
+ // Test setting of parameters in ConnectionListener.
+ doTestParameters(client, 2000, 1000, true);
+
+ client.removeConnectionListener(listener);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+
+ protected void doTestParameters(Client client,
+ int pingPeriodExpected,
+ int pingTimeoutExpected,
+ boolean tieToLeaseExpected)
+ throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException
+ {
+ Field field = Client.class.getDeclaredField("connectionValidator");
+ field.setAccessible(true);
+ ConnectionValidator validator = (ConnectionValidator) field.get(client);
+ field = ConnectionValidator.class.getDeclaredField("pingPeriod");
+ field.setAccessible(true);
+ long pingPeriod = ((Long)field.get(validator)).longValue();
+ field = ConnectionValidator.class.getDeclaredField("pingTimeout");
+ field.setAccessible(true);
+ int pingTimeout = ((Integer) field.get(validator)).intValue();
+ field = ConnectionValidator.class.getDeclaredField("tieToLease");
+ field.setAccessible(true);
+ boolean tieToLease = ((Boolean) field.get(validator)).booleanValue();
+ log.info("pingPeriod: " + pingPeriod);
+ log.info("pingTimeout: " + pingTimeout);
+ log.info("tieToLease: " + tieToLease);
+ assertEquals(pingPeriodExpected, pingPeriod);
+ assertEquals(pingTimeoutExpected, pingTimeout);
+ assertEquals(tieToLeaseExpected, tieToLease);
+ }
+
+
+ protected String getTransport()
+ {
+ return "socket";
+ }
+
+
+ protected void addExtraClientConfig(Map config) {}
+ protected void addExtraServerConfig(Map config) {}
+
+
+ protected void setupServer() throws Exception
+ {
+ host = InetAddress.getLocalHost().getHostAddress();
+ port = PortUtil.findFreePort(host);
+ locatorURI = getTransport() + "://" + host + ":" + port;
+ String metadata = System.getProperty("remoting.metadata");
+ if (metadata != null)
+ {
+ locatorURI += "/?" + metadata;
+ }
+ else
+ {
+ locatorURI += "/?" + "x=y";
+ }
+ serverLocator = new InvokerLocator(locatorURI);
+ log.info("Starting remoting server with locator uri of: " + locatorURI);
+ HashMap config = new HashMap();
+ config.put(InvokerLocator.FORCE_REMOTE, "true");
+ addExtraServerConfig(config);
+ connector = new Connector(serverLocator, config);
+ connector.create();
+ invocationHandler = new TestInvocationHandler();
+ connector.addInvocationHandler("test", invocationHandler);
+ connector.start();
+ }
+
+
+ protected void shutdownServer() throws Exception
+ {
+ if (connector != null)
+ connector.stop();
+ }
+
+
+ static class TestInvocationHandler implements ServerInvocationHandler
+ {
+ public void addListener(InvokerCallbackHandler callbackHandler) {}
+ public Object invoke(final InvocationRequest invocation) throws Throwable
+ {
+ return invocation.getParameter();
+ }
+ public void removeListener(InvokerCallbackHandler callbackHandler) {}
+ public void setMBeanServer(MBeanServer server) {}
+ public void setInvoker(ServerInvoker invoker) {}
+ }
+
+
+ static class TestConnectionListener implements ConnectionListener
+ {
+ public void handleConnectionException(Throwable throwable, Client client)
+ {
+ }
+ }
+}
\ No newline at end of file
15 years, 9 months
JBoss Remoting SVN: r4878 - remoting2/branches/2.2/src/tests/org/jboss/test/remoting/callback.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2009-03-20 00:19:00 -0400 (Fri, 20 Mar 2009)
New Revision: 4878
Added:
remoting2/branches/2.2/src/tests/org/jboss/test/remoting/callback/DestroyNPETestCase.java
Log:
JBREM-1081: New unit test.
Added: remoting2/branches/2.2/src/tests/org/jboss/test/remoting/callback/DestroyNPETestCase.java
===================================================================
--- remoting2/branches/2.2/src/tests/org/jboss/test/remoting/callback/DestroyNPETestCase.java (rev 0)
+++ remoting2/branches/2.2/src/tests/org/jboss/test/remoting/callback/DestroyNPETestCase.java 2009-03-20 04:19:00 UTC (rev 4878)
@@ -0,0 +1,217 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2009, JBoss Inc., 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.callback;
+
+import java.net.InetAddress;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.management.MBeanServer;
+
+import junit.framework.TestCase;
+
+import org.apache.log4j.ConsoleAppender;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.apache.log4j.PatternLayout;
+import org.jboss.remoting.Client;
+import org.jboss.remoting.InvocationRequest;
+import org.jboss.remoting.InvokerLocator;
+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.callback.ServerInvokerCallbackHandler;
+import org.jboss.remoting.transport.Connector;
+import org.jboss.remoting.transport.PortUtil;
+
+
+/**
+ * Unit test for JBREM-1081.
+ *
+ * @author <a href="ron.sigal(a)jboss.com">Ron Sigal</a>
+ * @version $Rev$
+ * <p>
+ * Copyright Mar 19, 2009
+ * </p>
+ */
+public class DestroyNPETestCase extends TestCase
+{
+ private static Logger log = Logger.getLogger(DestroyNPETestCase.class);
+
+ private static boolean firstTime = true;
+
+ protected String host;
+ protected int port;
+ protected String locatorURI;
+ protected InvokerLocator serverLocator;
+ protected Connector connector;
+ protected TestInvocationHandler invocationHandler;
+
+
+ public void setUp() throws Exception
+ {
+ if (firstTime)
+ {
+ firstTime = false;
+ Logger.getLogger("org.jboss.remoting").setLevel(Level.INFO);
+ Logger.getLogger("org.jboss.test.remoting").setLevel(Level.INFO);
+ String pattern = "[%d{ABSOLUTE}] [%t] %5p (%F:%L) - %m%n";
+ PatternLayout layout = new PatternLayout(pattern);
+ ConsoleAppender consoleAppender = new ConsoleAppender(layout);
+ Logger.getRootLogger().addAppender(consoleAppender);
+ }
+ }
+
+
+ public void tearDown()
+ {
+ }
+
+
+ public void testForNPE() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ InvokerLocator clientLocator = new InvokerLocator(locatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Add CallbackHandler.
+ TestCallbackHandler callbackHandler = new TestCallbackHandler();
+ client.addListener(callbackHandler, new HashMap(), null, true);
+
+ // Shut down ServerInvokerCallbackHandler and verify there's no NullPointerException.
+ invocationHandler.serverInvokerCallbackHandler.destroy();
+ invocationHandler.serverInvokerCallbackHandler.setShouldPersist(true);
+
+ try
+ {
+ invocationHandler.serverInvokerCallbackHandler.handleCallback(new Callback("callback"));
+ }
+ catch (HandleCallbackException e)
+ {
+ Throwable cause = e.getCause();
+ if (cause != null && cause.getMessage().startsWith("Can not make remoting client invocation"))
+ {
+ log.info("Got expected HandleCallbackException");
+ }
+ else
+ {
+ fail("Got unexpected Exception");
+ }
+ }
+ catch (NullPointerException e)
+ {
+ fail("Shouldn't get NullPointerException");
+ }
+ catch (Exception e)
+ {
+ fail("Got unexpected Exception");
+ }
+
+ client.removeListener(callbackHandler);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ protected String getTransport()
+ {
+ return "socket";
+ }
+
+
+ protected void addExtraClientConfig(Map config) {}
+ protected void addExtraServerConfig(Map config) {}
+
+
+ protected void setupServer() throws Exception
+ {
+ host = InetAddress.getLocalHost().getHostAddress();
+ port = PortUtil.findFreePort(host);
+ locatorURI = getTransport() + "://" + host + ":" + port;
+ String metadata = System.getProperty("remoting.metadata");
+ if (metadata != null)
+ {
+ locatorURI += "/?" + metadata;
+ }
+ serverLocator = new InvokerLocator(locatorURI);
+ log.info("Starting remoting server with locator uri of: " + locatorURI);
+ HashMap config = new HashMap();
+ config.put(InvokerLocator.FORCE_REMOTE, "true");
+ addExtraServerConfig(config);
+ connector = new Connector(serverLocator, config);
+ connector.create();
+ invocationHandler = new TestInvocationHandler();
+ connector.addInvocationHandler("test", invocationHandler);
+ connector.start();
+ }
+
+
+ protected void shutdownServer() throws Exception
+ {
+ if (connector != null)
+ connector.stop();
+ }
+
+
+ static class TestInvocationHandler implements ServerInvocationHandler
+ {
+ public ServerInvokerCallbackHandler serverInvokerCallbackHandler;
+
+ public void addListener(InvokerCallbackHandler callbackHandler)
+ {
+ serverInvokerCallbackHandler = (ServerInvokerCallbackHandler) callbackHandler;
+ }
+ public Object invoke(final InvocationRequest invocation) throws Throwable
+ {
+ return invocation.getParameter();
+ }
+ public void removeListener(InvokerCallbackHandler callbackHandler) {}
+ public void setMBeanServer(MBeanServer server) {}
+ public void setInvoker(ServerInvoker invoker) {}
+ }
+
+
+ static class TestCallbackHandler implements InvokerCallbackHandler
+ {
+ public void handleCallback(Callback callback) throws HandleCallbackException
+ {
+ log.info("received callback");
+ }
+ }
+}
\ No newline at end of file
15 years, 9 months
JBoss Remoting SVN: r4877 - remoting2/branches/2.2/src/main/org/jboss/remoting/callback.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2009-03-20 00:18:02 -0400 (Fri, 20 Mar 2009)
New Revision: 4877
Modified:
remoting2/branches/2.2/src/main/org/jboss/remoting/callback/ServerInvokerCallbackHandler.java
Log:
JBREM-1081: Added shouldPersist variable to support unit tests.
Modified: remoting2/branches/2.2/src/main/org/jboss/remoting/callback/ServerInvokerCallbackHandler.java
===================================================================
--- remoting2/branches/2.2/src/main/org/jboss/remoting/callback/ServerInvokerCallbackHandler.java 2009-03-20 04:12:55 UTC (rev 4876)
+++ remoting2/branches/2.2/src/main/org/jboss/remoting/callback/ServerInvokerCallbackHandler.java 2009-03-20 04:18:02 UTC (rev 4877)
@@ -76,6 +76,7 @@
private String clientSessionId;
private InvokerLocator serverLocator;
private int blockingTimeout = ServerInvoker.DEFAULT_BLOCKING_TIMEOUT;
+ private boolean shouldPersist;
private SerializableStore callbackStore = null;
@@ -874,6 +875,8 @@
*/
private boolean shouldPersist()
{
+ if (shouldPersist)
+ return true;
return isMemLow();
}
@@ -1025,4 +1028,14 @@
log.debug(this + " shut down");
}
}
+
+ public boolean isShouldPersist()
+ {
+ return shouldPersist;
+ }
+
+ public void setShouldPersist(boolean shouldPersist)
+ {
+ this.shouldPersist = shouldPersist;
+ }
}
15 years, 9 months
JBoss Remoting SVN: r4876 - remoting2/branches/2.x/src/main/org/jboss/remoting/callback.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2009-03-20 00:12:55 -0400 (Fri, 20 Mar 2009)
New Revision: 4876
Modified:
remoting2/branches/2.x/src/main/org/jboss/remoting/callback/ServerInvokerCallbackHandler.java
Log:
JBREM-1081: destroy() doesn't set callBackClient and callbackStore to null.
Modified: remoting2/branches/2.x/src/main/org/jboss/remoting/callback/ServerInvokerCallbackHandler.java
===================================================================
--- remoting2/branches/2.x/src/main/org/jboss/remoting/callback/ServerInvokerCallbackHandler.java 2009-03-20 04:11:09 UTC (rev 4875)
+++ remoting2/branches/2.x/src/main/org/jboss/remoting/callback/ServerInvokerCallbackHandler.java 2009-03-20 04:12:55 UTC (rev 4876)
@@ -1017,13 +1017,11 @@
if(callBackClient != null)
{
callBackClient.disconnect();
- callBackClient = null;
}
if(callbackStore != null)
{
callbackStore.purgeFiles();
- callbackStore = null;
}
}
15 years, 9 months
JBoss Remoting SVN: r4875 - remoting2/branches/2.x/src/tests/org/jboss/test/remoting/callback.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2009-03-20 00:11:09 -0400 (Fri, 20 Mar 2009)
New Revision: 4875
Added:
remoting2/branches/2.x/src/tests/org/jboss/test/remoting/callback/DestroyNPETestCase.java
Log:
JBREM-1081: New unit test.
Added: remoting2/branches/2.x/src/tests/org/jboss/test/remoting/callback/DestroyNPETestCase.java
===================================================================
--- remoting2/branches/2.x/src/tests/org/jboss/test/remoting/callback/DestroyNPETestCase.java (rev 0)
+++ remoting2/branches/2.x/src/tests/org/jboss/test/remoting/callback/DestroyNPETestCase.java 2009-03-20 04:11:09 UTC (rev 4875)
@@ -0,0 +1,217 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2009, JBoss Inc., 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.callback;
+
+import java.net.InetAddress;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.management.MBeanServer;
+
+import junit.framework.TestCase;
+
+import org.apache.log4j.ConsoleAppender;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.apache.log4j.PatternLayout;
+import org.jboss.remoting.Client;
+import org.jboss.remoting.InvocationRequest;
+import org.jboss.remoting.InvokerLocator;
+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.callback.ServerInvokerCallbackHandler;
+import org.jboss.remoting.transport.Connector;
+import org.jboss.remoting.transport.PortUtil;
+
+
+/**
+ * Unit test for JBREM-1081.
+ *
+ * @author <a href="ron.sigal(a)jboss.com">Ron Sigal</a>
+ * @version $Rev$
+ * <p>
+ * Copyright Mar 19, 2009
+ * </p>
+ */
+public class DestroyNPETestCase extends TestCase
+{
+ private static Logger log = Logger.getLogger(DestroyNPETestCase.class);
+
+ private static boolean firstTime = true;
+
+ protected String host;
+ protected int port;
+ protected String locatorURI;
+ protected InvokerLocator serverLocator;
+ protected Connector connector;
+ protected TestInvocationHandler invocationHandler;
+
+
+ public void setUp() throws Exception
+ {
+ if (firstTime)
+ {
+ firstTime = false;
+ Logger.getLogger("org.jboss.remoting").setLevel(Level.INFO);
+ Logger.getLogger("org.jboss.test.remoting").setLevel(Level.INFO);
+ String pattern = "[%d{ABSOLUTE}] [%t] %5p (%F:%L) - %m%n";
+ PatternLayout layout = new PatternLayout(pattern);
+ ConsoleAppender consoleAppender = new ConsoleAppender(layout);
+ Logger.getRootLogger().addAppender(consoleAppender);
+ }
+ }
+
+
+ public void tearDown()
+ {
+ }
+
+
+ public void testForNPE() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer();
+
+ // Create client.
+ InvokerLocator clientLocator = new InvokerLocator(locatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connections.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Add CallbackHandler.
+ TestCallbackHandler callbackHandler = new TestCallbackHandler();
+ client.addListener(callbackHandler, new HashMap(), null, true);
+
+ // Shut down ServerInvokerCallbackHandler and verify there's no NullPointerException.
+ invocationHandler.serverInvokerCallbackHandler.destroy();
+ invocationHandler.serverInvokerCallbackHandler.setShouldPersist(true);
+
+ try
+ {
+ invocationHandler.serverInvokerCallbackHandler.handleCallback(new Callback("callback"));
+ }
+ catch (HandleCallbackException e)
+ {
+ Throwable cause = e.getCause();
+ if (cause != null && cause.getMessage().startsWith("Can not make remoting client invocation"))
+ {
+ log.info("Got expected HandleCallbackException");
+ }
+ else
+ {
+ fail("Got unexpected Exception");
+ }
+ }
+ catch (NullPointerException e)
+ {
+ fail("Shouldn't get NullPointerException");
+ }
+ catch (Exception e)
+ {
+ fail("Got unexpected Exception");
+ }
+
+ client.removeListener(callbackHandler);
+ client.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ protected String getTransport()
+ {
+ return "socket";
+ }
+
+
+ protected void addExtraClientConfig(Map config) {}
+ protected void addExtraServerConfig(Map config) {}
+
+
+ protected void setupServer() throws Exception
+ {
+ host = InetAddress.getLocalHost().getHostAddress();
+ port = PortUtil.findFreePort(host);
+ locatorURI = getTransport() + "://" + host + ":" + port;
+ String metadata = System.getProperty("remoting.metadata");
+ if (metadata != null)
+ {
+ locatorURI += "/?" + metadata;
+ }
+ serverLocator = new InvokerLocator(locatorURI);
+ log.info("Starting remoting server with locator uri of: " + locatorURI);
+ HashMap config = new HashMap();
+ config.put(InvokerLocator.FORCE_REMOTE, "true");
+ addExtraServerConfig(config);
+ connector = new Connector(serverLocator, config);
+ connector.create();
+ invocationHandler = new TestInvocationHandler();
+ connector.addInvocationHandler("test", invocationHandler);
+ connector.start();
+ }
+
+
+ protected void shutdownServer() throws Exception
+ {
+ if (connector != null)
+ connector.stop();
+ }
+
+
+ static class TestInvocationHandler implements ServerInvocationHandler
+ {
+ public ServerInvokerCallbackHandler serverInvokerCallbackHandler;
+
+ public void addListener(InvokerCallbackHandler callbackHandler)
+ {
+ serverInvokerCallbackHandler = (ServerInvokerCallbackHandler) callbackHandler;
+ }
+ public Object invoke(final InvocationRequest invocation) throws Throwable
+ {
+ return invocation.getParameter();
+ }
+ public void removeListener(InvokerCallbackHandler callbackHandler) {}
+ public void setMBeanServer(MBeanServer server) {}
+ public void setInvoker(ServerInvoker invoker) {}
+ }
+
+
+ static class TestCallbackHandler implements InvokerCallbackHandler
+ {
+ public void handleCallback(Callback callback) throws HandleCallbackException
+ {
+ log.info("received callback");
+ }
+ }
+}
\ No newline at end of file
15 years, 9 months
JBoss Remoting SVN: r4874 - remoting2/branches/2.2/src/main/org/jboss/remoting/transport/socket.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2009-03-19 23:07:02 -0400 (Thu, 19 Mar 2009)
New Revision: 4874
Modified:
remoting2/branches/2.2/src/main/org/jboss/remoting/transport/socket/ServerSocketWrapper.java
Log:
JBREM-1085: Changed several log.debug() calls to log.trace().
Modified: remoting2/branches/2.2/src/main/org/jboss/remoting/transport/socket/ServerSocketWrapper.java
===================================================================
--- remoting2/branches/2.2/src/main/org/jboss/remoting/transport/socket/ServerSocketWrapper.java 2009-03-20 03:06:12 UTC (rev 4873)
+++ remoting2/branches/2.2/src/main/org/jboss/remoting/transport/socket/ServerSocketWrapper.java 2009-03-20 03:07:02 UTC (rev 4874)
@@ -55,11 +55,11 @@
getOutputStream().write(CLOSING);
getOutputStream().write(CLOSING);
getOutputStream().flush();
- log.debug("wrote CLOSING");
+ log.trace("wrote CLOSING");
}
catch (IOException e)
{
- log.debug("unable to writing CLOSING byte", e);
+ log.trace("unable to writing CLOSING byte", e);
}
}
super.close();
@@ -78,7 +78,7 @@
}
catch(EOFException eof)
{
- log.debug("EOFException waiting on ACK in read().");
+ log.trace("EOFException waiting on ACK in read().");
throw eof;
}
catch(IOException e)
15 years, 9 months