JBoss Remoting SVN: r6222 - remoting2/branches/2.2/src/tests/org/jboss/test/remoting/connection/identity.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2011-01-25 23:45:31 -0500 (Tue, 25 Jan 2011)
New Revision: 6222
Modified:
remoting2/branches/2.2/src/tests/org/jboss/test/remoting/connection/identity/ServerIdentityTestCase.java
Log:
JBREM-1144: Added testServerIdentityWithLeasingNewLease().
Modified: remoting2/branches/2.2/src/tests/org/jboss/test/remoting/connection/identity/ServerIdentityTestCase.java
===================================================================
--- remoting2/branches/2.2/src/tests/org/jboss/test/remoting/connection/identity/ServerIdentityTestCase.java 2011-01-26 04:44:40 UTC (rev 6221)
+++ remoting2/branches/2.2/src/tests/org/jboss/test/remoting/connection/identity/ServerIdentityTestCase.java 2011-01-26 04:45:31 UTC (rev 6222)
@@ -170,7 +170,7 @@
log.info(getName() + " PASSES");
}
- public void testServerIdentityWithLeasing() throws Throwable
+ public void testServerIdentityWithLeasingNewServer() throws Throwable
{
log.info("entering " + getName());
@@ -231,6 +231,67 @@
}
+ public void testServerIdentityWithLeasingNewLease() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer(true);
+
+ // Create client. Adding "dummy=dummy" assures that InvokerRegistry will not create a
+ // LocalClientInvoker for the ConnectionValidator.
+ InvokerLocator clientLocator = new InvokerLocator(locatorURI + "&dummy=dummy");
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ clientConfig.put("numberOfCallRetries", "3"); // for ConnectionValidator
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connection.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Install connection listener.
+ TestConnectionListener listener = new TestConnectionListener();
+ HashMap metadata = new HashMap();
+ metadata.put(Remoting.USE_SERVER_CONNECTION_IDENTITY, "true");
+ metadata.put(ConnectionValidator.VALIDATOR_PING_PERIOD, "10000");
+ metadata.put(ConnectionValidator.VALIDATOR_PING_TIMEOUT, "10000");
+ client.addConnectionListener(listener, metadata);
+ log.info(this + " added connection listener: " + listener);
+ // Allow time to get serverId of first server.
+ Thread.sleep(15000);
+
+ // Verify listener is notified if Lease is destroyed.
+ Field field = ServerInvoker.class.getDeclaredField("clientLeases");
+ field.setAccessible(true);
+ Map clientLeases = (Map) field.get(connector.getServerInvoker());
+ clientLeases.clear();
+ log.info("REMOVED LEASE");
+ Thread.sleep(15000);
+ log.info(this + " listener.connectionFailed: " + listener.connectionFailed);
+ assertTrue(listener.connectionFailed);
+
+ setOut(originalOutPrintStream);
+ String sOut = new String(baosOut.toByteArray());
+ setErr(originalErrPrintStream);
+ String sErr = new String(baosErr.toByteArray());
+ if (!(sOut.indexOf("detected new serverId:") > -1 || sErr.indexOf("detected new serverId:") > -1))
+ {
+ System.out.println(sOut);
+ System.out.println(sErr);
+ }
+ assertTrue(sOut.indexOf("detected new serverId:") > -1 || sErr.indexOf("detected new serverId:") > -1);
+
+ client.disconnect();
+ shutdownServer();
+
+ log.info(getName() + " PASSES");
+ }
+
+
protected String getTransport()
{
return "socket";
13 years, 11 months
JBoss Remoting SVN: r6221 - remoting2/branches/2.x/src/tests/org/jboss/test/remoting/connection/identity.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2011-01-25 23:44:40 -0500 (Tue, 25 Jan 2011)
New Revision: 6221
Modified:
remoting2/branches/2.x/src/tests/org/jboss/test/remoting/connection/identity/ServerIdentityTestCase.java
Log:
JBREM-1144: Added testServerIdentityWithLeasingNewLease().
Modified: remoting2/branches/2.x/src/tests/org/jboss/test/remoting/connection/identity/ServerIdentityTestCase.java
===================================================================
--- remoting2/branches/2.x/src/tests/org/jboss/test/remoting/connection/identity/ServerIdentityTestCase.java 2011-01-26 04:16:48 UTC (rev 6220)
+++ remoting2/branches/2.x/src/tests/org/jboss/test/remoting/connection/identity/ServerIdentityTestCase.java 2011-01-26 04:44:40 UTC (rev 6221)
@@ -170,7 +170,7 @@
log.info(getName() + " PASSES");
}
- public void testServerIdentityWithLeasing() throws Throwable
+ public void testServerIdentityWithLeasingNewServer() throws Throwable
{
log.info("entering " + getName());
@@ -227,6 +227,67 @@
}
+ public void testServerIdentityWithLeasingNewLease() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer(true);
+
+ // Create client. Adding "dummy=dummy" assures that InvokerRegistry will not create a
+ // LocalClientInvoker for the ConnectionValidator.
+ InvokerLocator clientLocator = new InvokerLocator(locatorURI + "&dummy=dummy");
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ clientConfig.put("numberOfCallRetries", "3"); // for ConnectionValidator
+ addExtraClientConfig(clientConfig);
+ Client client = new Client(clientLocator, clientConfig);
+ client.connect();
+ log.info("client is connected");
+
+ // Test connection.
+ assertEquals("abc", client.invoke("abc"));
+ log.info("connection is good");
+
+ // Install connection listener.
+ TestConnectionListener listener = new TestConnectionListener();
+ HashMap metadata = new HashMap();
+ metadata.put(Remoting.USE_SERVER_CONNECTION_IDENTITY, "true");
+ metadata.put(ConnectionValidator.VALIDATOR_PING_PERIOD, "10000");
+ metadata.put(ConnectionValidator.VALIDATOR_PING_TIMEOUT, "10000");
+ client.addConnectionListener(listener, metadata);
+ log.info(this + " added connection listener: " + listener);
+ // Allow time to get serverId of first server.
+ Thread.sleep(15000);
+
+ // Verify listener is notified if Lease is destroyed.
+ Field field = ServerInvoker.class.getDeclaredField("clientLeases");
+ field.setAccessible(true);
+ Map clientLeases = (Map) field.get(connector.getServerInvoker());
+ clientLeases.clear();
+ log.info("REMOVED LEASE");
+ Thread.sleep(15000);
+ log.info(this + " listener.connectionFailed: " + listener.connectionFailed);
+ assertTrue(listener.connectionFailed);
+
+ setOut(originalOutPrintStream);
+ String sOut = new String(baosOut.toByteArray());
+ setErr(originalErrPrintStream);
+ String sErr = new String(baosErr.toByteArray());
+ if (!(sOut.indexOf("detected new serverId:") > -1 || sErr.indexOf("detected new serverId:") > -1))
+ {
+ System.out.println(sOut);
+ System.out.println(sErr);
+ }
+ assertTrue(sOut.indexOf("detected new serverId:") > -1 || sErr.indexOf("detected new serverId:") > -1);
+
+ client.disconnect();
+ shutdownServer();
+
+ log.info(getName() + " PASSES");
+ }
+
+
protected String getTransport()
{
return "socket";
13 years, 11 months
JBoss Remoting SVN: r6220 - remoting2/branches/2.x/src/main/org/jboss/remoting.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2011-01-25 23:16:48 -0500 (Tue, 25 Jan 2011)
New Revision: 6220
Modified:
remoting2/branches/2.x/src/main/org/jboss/remoting/Lease.java
remoting2/branches/2.x/src/main/org/jboss/remoting/ServerInvoker.java
Log:
JBREM-1144: Adding a unique id to Lease.
Modified: remoting2/branches/2.x/src/main/org/jboss/remoting/Lease.java
===================================================================
--- remoting2/branches/2.x/src/main/org/jboss/remoting/Lease.java 2011-01-25 03:52:17 UTC (rev 6219)
+++ remoting2/branches/2.x/src/main/org/jboss/remoting/Lease.java 2011-01-26 04:16:48 UTC (rev 6220)
@@ -23,6 +23,7 @@
import org.jboss.logging.Logger;
import org.jboss.remoting.util.TimerUtil;
+import org.jboss.util.id.GUID;
import java.util.Collection;
import java.util.HashMap;
@@ -59,6 +60,9 @@
private static final Logger log = Logger.getLogger(Lease.class);
private static final boolean isTraceEnabled = log.isTraceEnabled();
+
+ /** Used by ConnectionValidator to detect a change of server. **/
+ protected String leaseId = new GUID().toString();
public Lease(String clientSessionId, long leasePeriod, String locatorurl, Map requestPayload,
ConnectionNotifier notifier, Map clientLeases)
@@ -355,6 +359,11 @@
{
return leasePingerId;
}
+
+ protected String getLeaseId()
+ {
+ return leaseId;
+ }
private void stopLease()
{
Modified: remoting2/branches/2.x/src/main/org/jboss/remoting/ServerInvoker.java
===================================================================
--- remoting2/branches/2.x/src/main/org/jboss/remoting/ServerInvoker.java 2011-01-25 03:52:17 UTC (rev 6219)
+++ remoting2/branches/2.x/src/main/org/jboss/remoting/ServerInvoker.java 2011-01-26 04:16:48 UTC (rev 6220)
@@ -861,19 +861,20 @@
if (invokerSessionId != null)
{
// Comes from ConnectionValidator configured to tie validation with lease.
- boolean response = checkForClientLease(invokerSessionId);
- if (trace) log.trace(this + " responding " + response + " to $PING$ for invoker sessionId " + invokerSessionId);
+ String leaseId = checkForClientLease(invokerSessionId);
+ Boolean success = leaseId == null ? Boolean.FALSE : Boolean.TRUE;
+ if (trace) log.trace(this + " responding " + leaseId + " to $PING$ for invoker sessionId " + invokerSessionId);
if (metadata.get(Remoting.USE_SERVER_CONNECTION_IDENTITY) != null)
{
Map responseMap = new HashMap();
responseMap.put(Remoting.SERVER_ID, serverId);
- if (trace) log.trace(this + " returning serverId: " + serverId);
- return new InvocationResponse(invocation.getSessionId(), new Boolean(response), false, responseMap);
+ if (trace) log.trace(this + " returning leaseId: " + leaseId);
+ return new InvocationResponse(invocation.getSessionId(), success, false, responseMap);
}
else
{
- if (trace) log.trace(this + " not returning serverId: " + serverId);
- return new Boolean(response);
+ if (trace) log.trace(this + " not returning leaseId: " + leaseId);
+ return success;
}
}
else
@@ -2123,7 +2124,7 @@
}
}
- private boolean checkForClientLease(String invokerSessionId)
+ private String checkForClientLease(String invokerSessionId)
{
if(leaseManagement && invokerSessionId != null)
{
@@ -2133,16 +2134,16 @@
if(clientLease == null)
{
if(trace) { log.trace("No lease established for invoker session id (" + invokerSessionId + ")"); }
- return false;
+ return null;
}
else
{
if(trace) { log.trace("Found lease for invoker session id (" + invokerSessionId + ")"); }
- return true;
+ return clientLease.getLeaseId();
}
}
- return false;
+ return null;
}
/**
13 years, 11 months
JBoss Remoting SVN: r6219 - remoting2/branches/2.2/src/tests/org/jboss/test/remoting/socketfactory.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2011-01-24 22:52:17 -0500 (Mon, 24 Jan 2011)
New Revision: 6219
Added:
remoting2/branches/2.2/src/tests/org/jboss/test/remoting/socketfactory/ConfigurationMapChangeTestCase.java
Log:
JBREM-1268: New unit tests.
Added: remoting2/branches/2.2/src/tests/org/jboss/test/remoting/socketfactory/ConfigurationMapChangeTestCase.java
===================================================================
--- remoting2/branches/2.2/src/tests/org/jboss/test/remoting/socketfactory/ConfigurationMapChangeTestCase.java (rev 0)
+++ remoting2/branches/2.2/src/tests/org/jboss/test/remoting/socketfactory/ConfigurationMapChangeTestCase.java 2011-01-25 03:52:17 UTC (rev 6219)
@@ -0,0 +1,315 @@
+/*
+* 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.socketfactory;
+
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.Socket;
+import java.net.UnknownHostException;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.management.MBeanServer;
+import javax.net.SocketFactory;
+
+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.Remoting;
+import org.jboss.remoting.ServerInvocationHandler;
+import org.jboss.remoting.ServerInvoker;
+import org.jboss.remoting.callback.InvokerCallbackHandler;
+import org.jboss.remoting.transport.ClientInvoker;
+import org.jboss.remoting.transport.Connector;
+import org.jboss.remoting.transport.PortUtil;
+
+
+/**
+ * Unit tests for JBREM-1268.
+ *
+ * @author <a href="mailto:ron.sigal@jboss.com">Ron Sigal</a>
+ * @version $Rev$
+ * <p>
+ * Copyright Jan 24, 2011
+ * </p>
+ */
+public class ConfigurationMapChangeTestCase extends TestCase
+{
+ private static Logger log = Logger.getLogger(ConfigurationMapChangeTestCase.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 testWithoutChangeRemote() 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 client1 = new Client(clientLocator, clientConfig);
+ client1.connect();
+ log.info("first client is connected");
+ ClientInvoker invoker1 = client1.getInvoker();
+ Client client2 = new Client(clientLocator, clientConfig);
+ client2.connect();
+ ClientInvoker invoker2 = client2.getInvoker();
+ log.info("second client is connected");
+
+ // Test connections.
+ assertEquals("abc", client1.invoke("abc"));
+ log.info("first connection is good");
+ assertEquals("abc", client2.invoke("abc"));
+ log.info("second connection is good");
+
+ // Verify invokers are identical.
+ assertSame(invoker1, invoker2);
+
+ client1.disconnect();
+ client2.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testWithChangeRemote() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer("&" + Remoting.SOCKET_FACTORY_CLASS_NAME + "=" + TestSocketFactory.class.getName());
+
+ // Create client.
+ InvokerLocator clientLocator = new InvokerLocator(locatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ addExtraClientConfig(clientConfig);
+ Client client1 = new Client(clientLocator, clientConfig);
+ client1.connect();
+ log.info("first client is connected");
+ ClientInvoker invoker1 = client1.getInvoker();
+ Client client2 = new Client(clientLocator, clientConfig);
+ client2.connect();
+ ClientInvoker invoker2 = client2.getInvoker();
+ log.info("second client is connected");
+
+ // Test connections.
+ assertEquals("abc", client1.invoke("abc"));
+ log.info("first connection is good");
+ assertEquals("abc", client2.invoke("abc"));
+ log.info("second connection is good");
+
+ // Verify invokers are identical.
+ assertSame(invoker1, invoker2);
+
+ client1.disconnect();
+ client2.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testWithoutChangeLocal() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer("");
+
+ // Create client.
+ InvokerLocator clientLocator = new InvokerLocator(locatorURI);
+ HashMap clientConfig = new HashMap();
+ addExtraClientConfig(clientConfig);
+ Client client1 = new Client(clientLocator, clientConfig);
+ client1.connect();
+ log.info("first client is connected");
+ ClientInvoker invoker1 = client1.getInvoker();
+ Client client2 = new Client(clientLocator, clientConfig);
+ client2.connect();
+ ClientInvoker invoker2 = client2.getInvoker();
+ log.info("second client is connected");
+
+ // Test connections.
+ assertEquals("abc", client1.invoke("abc"));
+ log.info("first connection is good");
+ assertEquals("abc", client2.invoke("abc"));
+ log.info("second connection is good");
+
+ // Verify invokers are identical.
+ assertSame(invoker1, invoker2);
+
+ client1.disconnect();
+ client2.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testWithChangeLocal() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer("&" + Remoting.SOCKET_FACTORY_CLASS_NAME + "=" + TestSocketFactory.class.getName());
+
+ // Create client.
+ InvokerLocator clientLocator = new InvokerLocator(locatorURI);
+ HashMap clientConfig = new HashMap();
+ addExtraClientConfig(clientConfig);
+ Client client1 = new Client(clientLocator, clientConfig);
+ client1.connect();
+ log.info("first client is connected");
+ ClientInvoker invoker1 = client1.getInvoker();
+ Client client2 = new Client(clientLocator, clientConfig);
+ client2.connect();
+ ClientInvoker invoker2 = client2.getInvoker();
+ log.info("second client is connected");
+
+ // Test connections.
+ assertEquals("abc", client1.invoke("abc"));
+ log.info("first connection is good");
+ assertEquals("abc", client2.invoke("abc"));
+ log.info("second connection is good");
+
+ // Verify invokers are identical.
+ assertSame(invoker1, invoker2);
+
+ client1.disconnect();
+ client2.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ protected String getTransport()
+ {
+ return "socket";
+ }
+
+
+ protected void addExtraClientConfig(Map config) {}
+ protected void addExtraServerConfig(Map config) {}
+
+
+ protected void setupServer(String extraParams) throws Exception
+ {
+ host = InetAddress.getLocalHost().getHostAddress();
+ port = PortUtil.findFreePort(host);
+ locatorURI = getTransport() + "://" + host + ":" + port + "/?timeout=10000&x=y" + extraParams;
+ 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 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 TestSocketFactory extends SocketFactory
+ {
+ SocketFactory sf = SocketFactory.getDefault();
+
+ public Socket createSocket(String arg0, int arg1) throws IOException, UnknownHostException
+ {
+ return sf.createSocket(arg0, arg1);
+ }
+ public Socket createSocket(InetAddress arg0, int arg1) throws IOException
+ {
+ return sf.createSocket(arg0, arg1);
+ }
+ public Socket createSocket(String arg0, int arg1, InetAddress arg2, int arg3) throws IOException, UnknownHostException
+ {
+ return sf.createSocket(arg0, arg1, arg2, arg3);
+ }
+ public Socket createSocket(InetAddress arg0, int arg1, InetAddress arg2, int arg3) throws IOException
+ {
+ return sf.createSocket(arg0, arg1, arg2, arg3);
+ }
+ }
+}
\ No newline at end of file
13 years, 11 months
JBoss Remoting SVN: r6218 - remoting2/branches/2.2/src/main/org/jboss/remoting.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2011-01-24 22:51:57 -0500 (Mon, 24 Jan 2011)
New Revision: 6218
Modified:
remoting2/branches/2.2/src/main/org/jboss/remoting/InvokerRegistry.java
Log:
JBREM-1268: Associates new client invoker with original configuration map, instead of one possibly changed by RemoteClientInvoker.
Modified: remoting2/branches/2.2/src/main/org/jboss/remoting/InvokerRegistry.java
===================================================================
--- remoting2/branches/2.2/src/main/org/jboss/remoting/InvokerRegistry.java 2011-01-25 03:49:13 UTC (rev 6217)
+++ remoting2/branches/2.2/src/main/org/jboss/remoting/InvokerRegistry.java 2011-01-25 03:51:57 UTC (rev 6218)
@@ -285,6 +285,12 @@
return invoker;
}
+ Map orginalConfiguration = null;
+ if(configuration != null)
+ {
+ orginalConfiguration = new HashMap(configuration);
+ }
+
boolean isForceRemote = false;
boolean isPassByValue = false;
Map parameters = locator.getParameters();
@@ -333,7 +339,7 @@
invoker = localInvoker;
InvokerLocator l = invoker.getLocator();
- addRegisteredClientInvoker(invoker, l, configuration);
+ addRegisteredClientInvoker(invoker, l, orginalConfiguration);
}
}
@@ -349,7 +355,7 @@
InvokerLocator l = invoker.getLocator();
- addRegisteredClientInvoker(invoker, l, configuration);
+ addRegisteredClientInvoker(invoker, l, orginalConfiguration);
}
return invoker;
}
13 years, 11 months
JBoss Remoting SVN: r6217 - remoting2/branches/2.x/src/main/org/jboss/remoting.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2011-01-24 22:49:13 -0500 (Mon, 24 Jan 2011)
New Revision: 6217
Modified:
remoting2/branches/2.x/src/main/org/jboss/remoting/InvokerRegistry.java
Log:
JBREM-1268: Associates new client invoker with original configuration map, instead of one possibly changed by RemoteClientInvoker.
Modified: remoting2/branches/2.x/src/main/org/jboss/remoting/InvokerRegistry.java
===================================================================
--- remoting2/branches/2.x/src/main/org/jboss/remoting/InvokerRegistry.java 2011-01-25 03:48:07 UTC (rev 6216)
+++ remoting2/branches/2.x/src/main/org/jboss/remoting/InvokerRegistry.java 2011-01-25 03:49:13 UTC (rev 6217)
@@ -296,6 +296,12 @@
return invoker;
}
+ Map orginalConfiguration = null;
+ if(configuration != null)
+ {
+ orginalConfiguration = new HashMap(configuration);
+ }
+
boolean isForceRemote = false;
boolean isPassByValue = false;
Map parameters = locator.getParameters();
@@ -344,7 +350,7 @@
invoker = localInvoker;
InvokerLocator l = invoker.getLocator();
- addRegisteredClientInvoker(invoker, l, configuration);
+ addRegisteredClientInvoker(invoker, l, orginalConfiguration);
}
}
@@ -360,7 +366,7 @@
InvokerLocator l = invoker.getLocator();
- addRegisteredClientInvoker(invoker, l, configuration);
+ addRegisteredClientInvoker(invoker, l, orginalConfiguration);
}
return invoker;
}
13 years, 11 months
JBoss Remoting SVN: r6216 - remoting2/branches/2.x/src/tests/org/jboss/test/remoting/socketfactory.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2011-01-24 22:48:07 -0500 (Mon, 24 Jan 2011)
New Revision: 6216
Added:
remoting2/branches/2.x/src/tests/org/jboss/test/remoting/socketfactory/ConfigurationMapChangeTestCase.java
Log:
JBREM-1268: New unit tests.
Added: remoting2/branches/2.x/src/tests/org/jboss/test/remoting/socketfactory/ConfigurationMapChangeTestCase.java
===================================================================
--- remoting2/branches/2.x/src/tests/org/jboss/test/remoting/socketfactory/ConfigurationMapChangeTestCase.java (rev 0)
+++ remoting2/branches/2.x/src/tests/org/jboss/test/remoting/socketfactory/ConfigurationMapChangeTestCase.java 2011-01-25 03:48:07 UTC (rev 6216)
@@ -0,0 +1,315 @@
+/*
+* 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.socketfactory;
+
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.Socket;
+import java.net.UnknownHostException;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.management.MBeanServer;
+import javax.net.SocketFactory;
+
+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.Remoting;
+import org.jboss.remoting.ServerInvocationHandler;
+import org.jboss.remoting.ServerInvoker;
+import org.jboss.remoting.callback.InvokerCallbackHandler;
+import org.jboss.remoting.transport.ClientInvoker;
+import org.jboss.remoting.transport.Connector;
+import org.jboss.remoting.transport.PortUtil;
+
+
+/**
+ * Unit tests for JBREM-1268.
+ *
+ * @author <a href="mailto:ron.sigal@jboss.com">Ron Sigal</a>
+ * @version $Rev$
+ * <p>
+ * Copyright Jan 24, 2011
+ * </p>
+ */
+public class ConfigurationMapChangeTestCase extends TestCase
+{
+ private static Logger log = Logger.getLogger(ConfigurationMapChangeTestCase.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 testWithoutChangeRemote() 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 client1 = new Client(clientLocator, clientConfig);
+ client1.connect();
+ log.info("first client is connected");
+ ClientInvoker invoker1 = client1.getInvoker();
+ Client client2 = new Client(clientLocator, clientConfig);
+ client2.connect();
+ ClientInvoker invoker2 = client2.getInvoker();
+ log.info("second client is connected");
+
+ // Test connections.
+ assertEquals("abc", client1.invoke("abc"));
+ log.info("first connection is good");
+ assertEquals("abc", client2.invoke("abc"));
+ log.info("second connection is good");
+
+ // Verify invokers are identical.
+ assertSame(invoker1, invoker2);
+
+ client1.disconnect();
+ client2.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testWithChangeRemote() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer("&" + Remoting.SOCKET_FACTORY_CLASS_NAME + "=" + TestSocketFactory.class.getName());
+
+ // Create client.
+ InvokerLocator clientLocator = new InvokerLocator(locatorURI);
+ HashMap clientConfig = new HashMap();
+ clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+ addExtraClientConfig(clientConfig);
+ Client client1 = new Client(clientLocator, clientConfig);
+ client1.connect();
+ log.info("first client is connected");
+ ClientInvoker invoker1 = client1.getInvoker();
+ Client client2 = new Client(clientLocator, clientConfig);
+ client2.connect();
+ ClientInvoker invoker2 = client2.getInvoker();
+ log.info("second client is connected");
+
+ // Test connections.
+ assertEquals("abc", client1.invoke("abc"));
+ log.info("first connection is good");
+ assertEquals("abc", client2.invoke("abc"));
+ log.info("second connection is good");
+
+ // Verify invokers are identical.
+ assertSame(invoker1, invoker2);
+
+ client1.disconnect();
+ client2.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testWithoutChangeLocal() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer("");
+
+ // Create client.
+ InvokerLocator clientLocator = new InvokerLocator(locatorURI);
+ HashMap clientConfig = new HashMap();
+ addExtraClientConfig(clientConfig);
+ Client client1 = new Client(clientLocator, clientConfig);
+ client1.connect();
+ log.info("first client is connected");
+ ClientInvoker invoker1 = client1.getInvoker();
+ Client client2 = new Client(clientLocator, clientConfig);
+ client2.connect();
+ ClientInvoker invoker2 = client2.getInvoker();
+ log.info("second client is connected");
+
+ // Test connections.
+ assertEquals("abc", client1.invoke("abc"));
+ log.info("first connection is good");
+ assertEquals("abc", client2.invoke("abc"));
+ log.info("second connection is good");
+
+ // Verify invokers are identical.
+ assertSame(invoker1, invoker2);
+
+ client1.disconnect();
+ client2.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ public void testWithChangeLocal() throws Throwable
+ {
+ log.info("entering " + getName());
+
+ // Start server.
+ setupServer("&" + Remoting.SOCKET_FACTORY_CLASS_NAME + "=" + TestSocketFactory.class.getName());
+
+ // Create client.
+ InvokerLocator clientLocator = new InvokerLocator(locatorURI);
+ HashMap clientConfig = new HashMap();
+ addExtraClientConfig(clientConfig);
+ Client client1 = new Client(clientLocator, clientConfig);
+ client1.connect();
+ log.info("first client is connected");
+ ClientInvoker invoker1 = client1.getInvoker();
+ Client client2 = new Client(clientLocator, clientConfig);
+ client2.connect();
+ ClientInvoker invoker2 = client2.getInvoker();
+ log.info("second client is connected");
+
+ // Test connections.
+ assertEquals("abc", client1.invoke("abc"));
+ log.info("first connection is good");
+ assertEquals("abc", client2.invoke("abc"));
+ log.info("second connection is good");
+
+ // Verify invokers are identical.
+ assertSame(invoker1, invoker2);
+
+ client1.disconnect();
+ client2.disconnect();
+ shutdownServer();
+ log.info(getName() + " PASSES");
+ }
+
+
+ protected String getTransport()
+ {
+ return "socket";
+ }
+
+
+ protected void addExtraClientConfig(Map config) {}
+ protected void addExtraServerConfig(Map config) {}
+
+
+ protected void setupServer(String extraParams) throws Exception
+ {
+ host = InetAddress.getLocalHost().getHostAddress();
+ port = PortUtil.findFreePort(host);
+ locatorURI = getTransport() + "://" + host + ":" + port + "/?timeout=10000&x=y" + extraParams;
+ 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 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 TestSocketFactory extends SocketFactory
+ {
+ SocketFactory sf = SocketFactory.getDefault();
+
+ public Socket createSocket(String arg0, int arg1) throws IOException, UnknownHostException
+ {
+ return sf.createSocket(arg0, arg1);
+ }
+ public Socket createSocket(InetAddress arg0, int arg1) throws IOException
+ {
+ return sf.createSocket(arg0, arg1);
+ }
+ public Socket createSocket(String arg0, int arg1, InetAddress arg2, int arg3) throws IOException, UnknownHostException
+ {
+ return sf.createSocket(arg0, arg1, arg2, arg3);
+ }
+ public Socket createSocket(InetAddress arg0, int arg1, InetAddress arg2, int arg3) throws IOException
+ {
+ return sf.createSocket(arg0, arg1, arg2, arg3);
+ }
+ }
+}
\ No newline at end of file
13 years, 11 months
JBoss Remoting SVN: r6215 - remoting2/branches/2.x/src/main/org/jboss/remoting.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2011-01-24 20:46:52 -0500 (Mon, 24 Jan 2011)
New Revision: 6215
Modified:
remoting2/branches/2.x/src/main/org/jboss/remoting/Version.java
Log:
Touched Version to get hudson tests to run.
Modified: remoting2/branches/2.x/src/main/org/jboss/remoting/Version.java
===================================================================
--- remoting2/branches/2.x/src/main/org/jboss/remoting/Version.java 2011-01-22 05:11:44 UTC (rev 6214)
+++ remoting2/branches/2.x/src/main/org/jboss/remoting/Version.java 2011-01-25 01:46:52 UTC (rev 6215)
@@ -31,7 +31,7 @@
import org.jboss.remoting.util.SecurityUtility;
/**
- * @author <a href="mailto:tom.elrod@jboss.com">Tom Elrod</a>
+ * @author <a href="mailto:tom.elrod@jboss.com">Tom Elrod</a>
*/
public class Version
{
13 years, 11 months
JBoss Remoting SVN: r6214 - remoting2/branches/2.2/src/main/org/jboss/remoting.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2011-01-22 00:11:44 -0500 (Sat, 22 Jan 2011)
New Revision: 6214
Modified:
remoting2/branches/2.2/src/main/org/jboss/remoting/Version.java
Log:
Touched Version to get hudson tests to run.
Modified: remoting2/branches/2.2/src/main/org/jboss/remoting/Version.java
===================================================================
--- remoting2/branches/2.2/src/main/org/jboss/remoting/Version.java 2011-01-22 05:11:20 UTC (rev 6213)
+++ remoting2/branches/2.2/src/main/org/jboss/remoting/Version.java 2011-01-22 05:11:44 UTC (rev 6214)
@@ -27,7 +27,7 @@
//import org.jboss.logging.Logger;
/**
- * @author <a href="mailto:tom.elrod@jboss.com">Tom Elrod</a>
+ * @author <a href="mailto:tom.elrod@jboss.com">Tom Elrod</a>
*/
public class Version
{
13 years, 11 months
JBoss Remoting SVN: r6213 - remoting2/branches/2.x/src/main/org/jboss/remoting.
by jboss-remoting-commits@lists.jboss.org
Author: ron.sigal(a)jboss.com
Date: 2011-01-22 00:11:20 -0500 (Sat, 22 Jan 2011)
New Revision: 6213
Modified:
remoting2/branches/2.x/src/main/org/jboss/remoting/Version.java
Log:
Touched Version to get hudson tests to run.
Modified: remoting2/branches/2.x/src/main/org/jboss/remoting/Version.java
===================================================================
--- remoting2/branches/2.x/src/main/org/jboss/remoting/Version.java 2011-01-20 21:57:11 UTC (rev 6212)
+++ remoting2/branches/2.x/src/main/org/jboss/remoting/Version.java 2011-01-22 05:11:20 UTC (rev 6213)
@@ -31,7 +31,7 @@
import org.jboss.remoting.util.SecurityUtility;
/**
- * @author <a href="mailto:tom.elrod@jboss.com">Tom Elrod</a>
+ * @author <a href="mailto:tom.elrod@jboss.com">Tom Elrod</a>
*/
public class Version
{
13 years, 11 months