[jboss-cvs] JBoss Messaging SVN: r3554 - in trunk: src/main/org/jboss/jms/server and 4 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Jan 9 09:01:33 EST 2008
Author: jmesnil
Date: 2008-01-09 09:01:33 -0500 (Wed, 09 Jan 2008)
New Revision: 3554
Modified:
trunk/src/etc/server/default/deploy/jbm-beans.xml
trunk/src/etc/server/default/deploy/jbm-configuration.xml
trunk/src/main/org/jboss/jms/server/Configuration.java
trunk/src/main/org/jboss/messaging/core/remoting/ServerLocator.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/ClientImpl.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java
trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ServerLocatorTest.java
Log:
* timeout used by remoting code for 2-way invocations is configurable in jbm-configuration using the remoting-timeout property
Modified: trunk/src/etc/server/default/deploy/jbm-beans.xml
===================================================================
--- trunk/src/etc/server/default/deploy/jbm-beans.xml 2008-01-09 12:54:05 UTC (rev 3553)
+++ trunk/src/etc/server/default/deploy/jbm-beans.xml 2008-01-09 14:01:33 UTC (rev 3554)
@@ -354,6 +354,16 @@
<inject bean="Configuration" property="remotingBindAddress"/>
</parameter>
</constructor>
+ <property name="parameters">
+ <map class="java.util.HashMap" keyClass="java.lang.String" valueClass="java.lang.String">
+ <entry>
+ <key>timeout</key>
+ <value>
+ <inject bean="Configuration" property="remotingTimeout" />
+ </value>
+ </entry>
+ </map>
+ </property>
</bean>
<bean name="ClusterNotifier" class="org.jboss.messaging.core.impl.DefaultClusterNotifier"/>
Modified: trunk/src/etc/server/default/deploy/jbm-configuration.xml
===================================================================
--- trunk/src/etc/server/default/deploy/jbm-configuration.xml 2008-01-09 12:54:05 UTC (rev 3553)
+++ trunk/src/etc/server/default/deploy/jbm-configuration.xml 2008-01-09 14:01:33 UTC (rev 3554)
@@ -74,6 +74,8 @@
<channel-partition-name>${jboss.partition.name:DefaultPartition}-JMS</channel-partition-name>-->
<remoting-bind-address>5400</remoting-bind-address>
+ <!-- timeout in seconds -->
+ <remoting-timeout>5</remoting-timeout>
</configuration>
Modified: trunk/src/main/org/jboss/jms/server/Configuration.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/Configuration.java 2008-01-09 12:54:05 UTC (rev 3553)
+++ trunk/src/main/org/jboss/jms/server/Configuration.java 2008-01-09 14:01:33 UTC (rev 3554)
@@ -107,6 +107,8 @@
private Integer _remotingBindAddress;
+ private String _remotingTimeout;
+
//default confog file location
private String configurationUrl = "jbm-configuration.xml";
@@ -147,6 +149,7 @@
_channelPartitionName = getString(e, "channel-partition-name", _channelPartitionName);
_maxConcurrentReplications = getInteger(e, "max-concurrent-replications", _maxConcurrentReplications);
_remotingBindAddress = getInteger(e, "remoting-bind-address", _remotingBindAddress);
+ _remotingTimeout = getString(e, "remoting-timeout", _remotingTimeout);
NodeList security = e.getElementsByTagName("default-security-config");
if (security.getLength() > 0)
{
@@ -550,13 +553,17 @@
{
return _remotingBindAddress;
}
-
+
public void setRemotingBindAddress(Integer remotingBindAddress)
{
this._remotingBindAddress = remotingBindAddress;
}
-
+ public String getRemotingTimeout()
+ {
+ return _remotingTimeout;
+ }
+
public String getConfigurationUrl()
{
return configurationUrl;
Modified: trunk/src/main/org/jboss/messaging/core/remoting/ServerLocator.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/ServerLocator.java 2008-01-09 12:54:05 UTC (rev 3553)
+++ trunk/src/main/org/jboss/messaging/core/remoting/ServerLocator.java 2008-01-09 14:01:33 UTC (rev 3554)
@@ -8,6 +8,11 @@
import java.net.URI;
import java.net.URISyntaxException;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.StringTokenizer;
+import java.util.Map.Entry;
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -24,6 +29,7 @@
private TransportType transport;
private String host;
private int port;
+ private Map<String, String> parameters = new HashMap<String, String>();
// Static --------------------------------------------------------
@@ -51,13 +57,38 @@
}
this.host = u.getHost();
this.port = u.getPort();
+
+ String query = u.getQuery();
+ if (query != null)
+ {
+ StringTokenizer tok = new StringTokenizer(query, "&");
+ while(tok.hasMoreTokens())
+ {
+ String token = tok.nextToken();
+ int eq = token.indexOf("=");
+ String name = (eq > -1) ? token.substring(0, eq) : token;
+ String value = (eq > -1) ? token.substring(eq + 1) : "";
+ parameters.put(name, value);
+ }
+ }
}
-
+
public ServerLocator(TransportType transport, String host, int port)
{
+ this(transport, host, port, new HashMap<String, String>());
+ }
+
+ public ServerLocator(TransportType transport, String host, int port, Map<String, String> parameters)
+ {
+ assert transport != null;
+ assert host != null;
+ assert port > 0;
+ assert parameters != null;
+
this.transport = transport;
this.host = host;
this.port = port;
+ this.parameters = parameters;
}
// Public --------------------------------------------------------
@@ -76,51 +107,31 @@
{
return port;
}
-
- @Override
- public int hashCode()
+
+ public Map<String, String> getParameters()
{
- final int prime = 31;
- int result = 1;
- result = prime * result + ((host == null) ? 0 : host.hashCode());
- result = prime * result + port;
- result = prime * result
- + ((transport == null) ? 0 : transport.hashCode());
- return result;
+ return parameters;
}
- @Override
- public boolean equals(Object obj)
+ public String getURI()
{
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- final ServerLocator other = (ServerLocator) obj;
- if (host == null)
+ String uri = transport + "://" + host + ":" + port + ((parameters.size() != 0) ? "?" : "");
+ if(parameters.size() != 0)
{
- if (other.host != null)
- return false;
- } else if (!host.equals(other.host))
- return false;
- if (port != other.port)
- return false;
- if (transport == null)
- {
- if (other.transport != null)
- return false;
- } else if (!transport.equals(other.transport))
- return false;
- return true;
+ Iterator<Entry<String, String>> iter = parameters.entrySet().iterator();
+ while(iter.hasNext())
+ {
+ Entry<String, String> entry = iter.next();
+ uri += entry.getKey() + "=" + entry.getValue();
+ if(iter.hasNext())
+ {
+ uri += "&";
+ }
+ }
+ }
+ return uri;
}
- public String getURI()
- {
- return transport + "://" + host + ":" + port;
- }
-
@Override
public String toString()
{
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/ClientImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/ClientImpl.java 2008-01-09 12:54:05 UTC (rev 3553)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/ClientImpl.java 2008-01-09 14:01:33 UTC (rev 3554)
@@ -57,6 +57,11 @@
this.connector = connector;
this.serverLocator = locator;
+ if (locator.getParameters().containsKey("timeout"))
+ {
+ int timeout = Integer.parseInt(locator.getParameters().get("timeout"));
+ setBlockingRequestTimeout(timeout, SECONDS);
+ }
}
// Public --------------------------------------------------------
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java 2008-01-09 12:54:05 UTC (rev 3553)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java 2008-01-09 14:01:33 UTC (rev 3554)
@@ -13,9 +13,10 @@
import static org.jboss.messaging.core.remoting.impl.mina.FilterChainSupport.addMDCFilter;
import java.net.InetSocketAddress;
+import java.util.HashMap;
+import java.util.Map;
import org.apache.mina.common.DefaultIoFilterChainBuilder;
-import org.apache.mina.filter.executor.ExecutorFilter;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
import org.jboss.logging.Logger;
import org.jboss.messaging.core.remoting.PacketDispatcher;
@@ -36,13 +37,17 @@
// Attributes ----------------------------------------------------
- private final int port;
+ private TransportType transport;
private final String host;
+
+ private final int port;
+ private Map<String, String> parameters;
+
private NioSocketAcceptor acceptor;
- private TransportType transport;
+ private int blockingRequestTimeout = 5;
// Static --------------------------------------------------------
@@ -62,13 +67,21 @@
this.transport = transport;
this.host = host;
this.port = port;
+ this.parameters = new HashMap<String, String>();
}
// Public --------------------------------------------------------
+
+ public void setParameters(Map<String, String> parameters)
+ {
+ assert parameters != null;
+
+ this.parameters = parameters;
+ }
public ServerLocator getLocator()
{
- return new ServerLocator(transport, host, port);
+ return new ServerLocator(transport, host, port, parameters);
}
public void start() throws Exception
Modified: trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ServerLocatorTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ServerLocatorTest.java 2008-01-09 12:54:05 UTC (rev 3553)
+++ trunk/tests/src/org/jboss/messaging/core/remoting/test/unit/ServerLocatorTest.java 2008-01-09 14:01:33 UTC (rev 3554)
@@ -11,6 +11,7 @@
import static org.jboss.messaging.core.remoting.TransportType.TCP;
import java.net.URISyntaxException;
+import java.util.Map;
import junit.framework.TestCase;
@@ -48,8 +49,7 @@
public void testTCPTransport() throws Exception
{
- ServerLocator locator = new ServerLocator(
- "tcp://localhost:9090");
+ ServerLocator locator = new ServerLocator("tcp://localhost:9090");
assertEquals(TCP, locator.getTransport());
assertEquals("localhost", locator.getHost());
@@ -58,8 +58,7 @@
public void testHTTPTransport() throws Exception
{
- ServerLocator locator = new ServerLocator(
- "http://localhost:9090");
+ ServerLocator locator = new ServerLocator("http://localhost:9090");
assertEquals(HTTP, locator.getTransport());
assertEquals("localhost", locator.getHost());
@@ -68,14 +67,50 @@
public void testINVMTransport() throws Exception
{
- ServerLocator locator = new ServerLocator(
- "invm://localhost:9090");
+ ServerLocator locator = new ServerLocator("invm://localhost:9090");
assertEquals(INVM, locator.getTransport());
assertEquals("localhost", locator.getHost());
assertEquals(9090, locator.getPort());
}
+ public void testValidQuery() throws Exception
+ {
+ ServerLocator locator = new ServerLocator(
+ "invm://localhost:9090?foo=FOO&bar=BAR");
+
+ Map<String, String> parameters = locator.getParameters();
+ assertEquals(2, parameters.size());
+ assertTrue(parameters.containsKey("foo"));
+ assertEquals("FOO", parameters.get("foo"));
+ assertTrue(parameters.containsKey("bar"));
+ assertEquals("BAR", parameters.get("bar"));
+ assertEquals("invm://localhost:9090?foo=FOO&bar=BAR", locator.getURI());
+ }
+
+ public void testEmptyQuery() throws Exception
+ {
+ ServerLocator locator = new ServerLocator("invm://localhost:9090?");
+
+ Map<String, String> parameters = locator.getParameters();
+ assertEquals(0, parameters.size());
+ assertEquals("invm://localhost:9090", locator.getURI());
+ }
+
+ public void testInvalidQuery() throws Exception
+ {
+ try
+ {
+ ServerLocator locator = new ServerLocator(
+ "invm://localhost?this is not a valid query");
+ fail("URISyntaxException");
+ } catch (URISyntaxException e)
+ {
+
+ }
+
+ }
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
More information about the jboss-cvs-commits
mailing list