[jboss-cvs] JBoss Messaging SVN: r4886 - in trunk: examples/messaging/src/org/jboss/messaging/example and 43 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Aug 28 08:52:18 EDT 2008
Author: timfox
Date: 2008-08-28 08:52:17 -0400 (Thu, 28 Aug 2008)
New Revision: 4886
Added:
trunk/src/main/org/jboss/messaging/core/config/AcceptorInfo.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/TransportConstants.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/TransportConstants.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/TransportConstants.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Ping.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Pong.java
trunk/src/main/org/jboss/messaging/util/ConfigurationHelper.java
Removed:
trunk/src/config/jbm-connector-factories.properties
trunk/src/main/org/jboss/messaging/core/client/ConnectionParams.java
trunk/src/main/org/jboss/messaging/core/client/Location.java
trunk/src/main/org/jboss/messaging/core/client/impl/ConnectionParamsImpl.java
trunk/src/main/org/jboss/messaging/core/client/impl/LocationImpl.java
trunk/src/main/org/jboss/messaging/core/remoting/TransportType.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConfigurationValidator.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ConnectionParamsImplTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/LocationImplTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/ConnectionRegistryImplTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingConfigurationValidatorTest.java
Modified:
trunk/build-messaging.xml
trunk/examples/messaging/src/org/jboss/messaging/example/SSLClient.java
trunk/examples/messaging/src/org/jboss/messaging/example/SimpleClient.java
trunk/examples/messaging/src/org/jboss/messaging/example/SimpleExample.java
trunk/src/config/jbm-configuration.xml
trunk/src/config/jbm-jndi.xml
trunk/src/main/org/jboss/messaging/core/client/ClientSessionFactory.java
trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionFactoryImpl.java
trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
trunk/src/main/org/jboss/messaging/core/config/Configuration.java
trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java
trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java
trunk/src/main/org/jboss/messaging/core/management/MessagingServerControlMBean.java
trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerControl.java
trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java
trunk/src/main/org/jboss/messaging/core/remoting/ConnectionRegistry.java
trunk/src/main/org/jboss/messaging/core/remoting/ConnectionRegistryLocator.java
trunk/src/main/org/jboss/messaging/core/remoting/RemotingConnection.java
trunk/src/main/org/jboss/messaging/core/remoting/RemotingHandler.java
trunk/src/main/org/jboss/messaging/core/remoting/RemotingService.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectionRegistryImpl.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingHandlerImpl.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingServiceImpl.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMAcceptor.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMAcceptorFactory.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMConnector.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMConnectorFactory.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaAcceptor.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaAcceptorFactory.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnectorFactory.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyAcceptor.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyAcceptorFactory.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyConnector.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyConnectorFactory.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateSessionResponseMessage.java
trunk/src/main/org/jboss/messaging/core/remoting/spi/AcceptorFactory.java
trunk/src/main/org/jboss/messaging/core/remoting/spi/ConnectorFactory.java
trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java
trunk/src/main/org/jboss/messaging/jms/client/JBossConnectionFactory.java
trunk/src/main/org/jboss/messaging/jms/server/JMSServerManager.java
trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerDeployer.java
trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java
trunk/src/main/org/jboss/messaging/jms/server/management/ConnectionFactoryControlMBean.java
trunk/src/main/org/jboss/messaging/jms/server/management/JMSServerControlMBean.java
trunk/src/main/org/jboss/messaging/jms/server/management/impl/ConnectionFactoryControl.java
trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSServerControl.java
trunk/tests/config/ConfigurationTest-config.xml
trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/CTSMiscellaneousTest.java
trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/JMSTestCase.java
trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/message/JMSExpirationHeaderTest.java
trunk/tests/jms-tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java
trunk/tests/src/org/jboss/messaging/tests/integration/basic/CoreClientTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientCrashTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientExitTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/CrashClient.java
trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/GracefulClient.java
trunk/tests/src/org/jboss/messaging/tests/integration/remoting/PingTest.java
trunk/tests/src/org/jboss/messaging/tests/integration/ssl/CoreClientOverSSL.java
trunk/tests/src/org/jboss/messaging/tests/integration/ssl/CoreClientOverSSLTest.java
trunk/tests/src/org/jboss/messaging/tests/timing/core/remoting/impl/RemotingConnectionImplTest.java
trunk/tests/src/org/jboss/messaging/tests/timing/core/remoting/impl/RemotingHandlerImplTest.java
trunk/tests/src/org/jboss/messaging/tests/timing/core/remoting/impl/RemotingServiceImplTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientSessionFactoryImplTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientSessionImplTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/ConfigurationImplTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/FileConfigurationTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/FileConfigurationTest2.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/management/impl/MessagingServerControlTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/ConnectionRegistryLocatorTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/AcceptorFactory1.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/AcceptorFactory2.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/AcceptorFactory3.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingConnectionImplTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingHandlerImplTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingServiceImplTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaAcceptorFactoryTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaAcceptorTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaConnectorTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyAcceptorFactoryTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyAcceptorTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyConnectorTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/MessagingServerPacketHandlerTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossConnectionFactoryTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/jms/misc/ManifestTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/jms/referenceable/ConnectionFactoryObjectFactoryTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/ConnectionFactoryControlTest.java
trunk/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/JMSServerControlTest.java
Log:
Break out remoting transport configuration and various other remoting config related changes
Modified: trunk/build-messaging.xml
===================================================================
--- trunk/build-messaging.xml 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/build-messaging.xml 2008-08-28 12:52:17 UTC (rev 4886)
@@ -328,9 +328,7 @@
</javac>
<javah class="org.jboss.messaging.core.asyncio.impl.AsynchronousFileImpl"
classpathref="core.compilation.classpath" destdir="./native/src"/>
-
- <copy file="${src.config.dir}/jbm-connector-factories.properties"
- tofile="${build.classes.dir}/jbm-connector-factories.properties"/>
+
<copy file="${src.config.dir}/version.properties"
tofile="${build.classes.dir}/version.properties"/>
@@ -389,8 +387,7 @@
<target name="client-jar" depends="compile">
<jar jarfile="${build.jars.dir}/jboss-${module.name}-client.jar">
<fileset dir="${build.classes.dir}">
- <include name="version.properties"/>
- <include name="jbm-connector-factories.properties"/>
+ <include name="version.properties"/>
<include name="org/jboss/messaging/jms/**/*.class"/>
<include name="org/jboss/messaging/core/client/**/*.class"/>
<include name="org/jboss/messaging/core/exception/**/*.class"/>
Modified: trunk/examples/messaging/src/org/jboss/messaging/example/SSLClient.java
===================================================================
--- trunk/examples/messaging/src/org/jboss/messaging/example/SSLClient.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/examples/messaging/src/org/jboss/messaging/example/SSLClient.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -26,20 +26,16 @@
import org.jboss.messaging.core.client.ClientProducer;
import org.jboss.messaging.core.client.ClientSession;
import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
-import org.jboss.messaging.core.client.impl.LocationImpl;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.message.Message;
-import org.jboss.messaging.core.remoting.TransportType;
+import org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory;
+import org.jboss.messaging.core.remoting.impl.netty.TransportConstants;
import org.jboss.messaging.jms.client.JBossTextMessage;
import org.jboss.messaging.util.SimpleString;
/**
- * A simple Client that uses SSL, to run this example enable ssl on the server in the jbm-configuration.xml file.
- * (<remoting-enable-ssl>true</remoting-enable-ssl>)
+ * A simple Client that uses SSL
*
* @author <a href="ataylor at redhat.com">Andy Taylor</a>
*/
@@ -49,21 +45,9 @@
{
ClientSession clientSession = null;
try
- {
- Location location = new LocationImpl(TransportType.TCP, "localhost", 5400);
- ConnectionParams connectionParams = new ConnectionParamsImpl();
- connectionParams.setSSLEnabled(true);
- connectionParams.setKeyStorePath("messaging.keystore");
- connectionParams.setTrustStorePath("messaging.truststore");
- connectionParams.setKeyStorePassword("secureexample");
- connectionParams.setTrustStorePassword("secureexample");
- //it is also possible to set up ssl by using system properties.
- /*System.setProperty(ConnectionParams.REMOTING_ENABLE_SSL, "true");
- System.setProperty(ConnectionParams.REMOTING_SSL_KEYSTORE_PATH,"messaging.keystore");
- System.setProperty(ConnectionParams.REMOTING_SSL_KEYSTORE_PASSWORD,"secureexample");
- System.setProperty(ConnectionParams.REMOTING_SSL_TRUSTSTORE_PATH,"messaging.truststore");
- System.setProperty(ConnectionParams.REMOTING_SSL_TRUSTSTORE_PASSWORD,"secureexample");*/
- ClientSessionFactory sessionFactory = new ClientSessionFactoryImpl(location, connectionParams);
+ {
+ ClientSessionFactory sessionFactory = new ClientSessionFactoryImpl(new NettyConnectorFactory());
+ sessionFactory.getTransportParams().put(TransportConstants.SSL_ENABLED_PROP_NAME, true);
clientSession = sessionFactory.createSession(false, true, true, 1, false);
SimpleString queue = new SimpleString("queuejms.testQueue");
ClientProducer clientProducer = clientSession.createProducer(queue);
Modified: trunk/examples/messaging/src/org/jboss/messaging/example/SimpleClient.java
===================================================================
--- trunk/examples/messaging/src/org/jboss/messaging/example/SimpleClient.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/examples/messaging/src/org/jboss/messaging/example/SimpleClient.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -26,14 +26,10 @@
import org.jboss.messaging.core.client.ClientProducer;
import org.jboss.messaging.core.client.ClientSession;
import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
-import org.jboss.messaging.core.client.impl.LocationImpl;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.message.Message;
-import org.jboss.messaging.core.remoting.TransportType;
+import org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory;
import org.jboss.messaging.jms.client.JBossTextMessage;
import org.jboss.messaging.util.SimpleString;
@@ -49,9 +45,7 @@
ClientSession clientSession = null;
try
{
- Location location = new LocationImpl(TransportType.TCP, "localhost", 5400);
- ConnectionParams connectionParams = new ConnectionParamsImpl();
- ClientSessionFactory sessionFactory = new ClientSessionFactoryImpl(location, connectionParams);
+ ClientSessionFactory sessionFactory = new ClientSessionFactoryImpl(new NettyConnectorFactory());
clientSession = sessionFactory.createSession(false, true, true, 1, false);
SimpleString queue = new SimpleString("queuejms.testQueue");
ClientProducer clientProducer = clientSession.createProducer(queue);
Modified: trunk/examples/messaging/src/org/jboss/messaging/example/SimpleExample.java
===================================================================
--- trunk/examples/messaging/src/org/jboss/messaging/example/SimpleExample.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/examples/messaging/src/org/jboss/messaging/example/SimpleExample.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -26,16 +26,12 @@
import org.jboss.messaging.core.client.ClientProducer;
import org.jboss.messaging.core.client.ClientSession;
import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
-import org.jboss.messaging.core.client.impl.LocationImpl;
+import org.jboss.messaging.core.config.AcceptorInfo;
import org.jboss.messaging.core.config.impl.ConfigurationImpl;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.message.Message;
-import org.jboss.messaging.core.remoting.TransportType;
-import org.jboss.messaging.core.remoting.impl.mina.MinaAcceptorFactory;
+import org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory;
import org.jboss.messaging.core.server.MessagingService;
import org.jboss.messaging.core.server.impl.MessagingServiceImpl;
import org.jboss.messaging.jms.client.JBossTextMessage;
@@ -57,18 +53,14 @@
{
//create a new server with an TCP transport
ConfigurationImpl configuration = new ConfigurationImpl();
- configuration.setTransport(TransportType.TCP);
- configuration.setHost("localhost");
configuration.setSecurityEnabled(false);
+ configuration.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.core.remoting.impl.netty.NettyAcceptorFactory"));
messagingService = MessagingServiceImpl.newNullStorageMessagingServer(configuration);
- messagingService.getServer().getRemotingService().registerAcceptorFactory(new MinaAcceptorFactory());
//start the server
messagingService.start();
- //then we create a client as normal
- Location location = new LocationImpl(TransportType.TCP, "localhost", 5400);
- ConnectionParams connectionParams = new ConnectionParamsImpl();
- ClientSessionFactory sessionFactory = new ClientSessionFactoryImpl(location, connectionParams);
+ //then we create a client as normal
+ ClientSessionFactory sessionFactory = new ClientSessionFactoryImpl(new NettyConnectorFactory());
clientSession = sessionFactory.createSession(false, true, true, 1, false);
SimpleString atestq = new SimpleString("atestq");
clientSession.createQueue(atestq, atestq, null, false, true);
Modified: trunk/src/config/jbm-configuration.xml
===================================================================
--- trunk/src/config/jbm-configuration.xml 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/config/jbm-configuration.xml 2008-08-28 12:52:17 UTC (rev 4886)
@@ -14,57 +14,9 @@
<!-- true to expose JBoss Messaging resources through JMX -->
<jmx-management-enabled>true</jmx-management-enabled>
-
- <!-- Remoting configuration -->
-
- <!-- one of: TCP, INVM -->
- <!-- INVM: the server is accessible only by clients in the same VM (no sockets are opened) -->
- <remoting-transport>TCP</remoting-transport>
-
- <remoting-bind-address>5400</remoting-bind-address>
-
- <remoting-host>localhost</remoting-host>
-
- <remoting-port>5400</remoting-port>
-
+
<!-- call timeout in milliseconds -->
- <remoting-call-timeout>5000</remoting-call-timeout>
-
- <!-- true to enable invm communication when the client and the server are in the same JVM. -->
- <remoting-enable-invm-optimisation>true</remoting-enable-invm-optimisation>
-
- <!-- Enable/Disable Nagle's Algorithm (resp. true/false) -->
- <!-- This setting is taken into account only when remoting-transport is set to TCP -->
- <remoting-tcp-nodelay>true</remoting-tcp-nodelay>
-
- <!-- Set the TCP Receive Buffer size (SO_RCVBUF). -->
- <!-- Set it to -1 if you want to use the value hinted by the Operating System -->
- <!-- This setting is taken into account only when remoting-transport is set to TCP -->
- <remoting-tcp-receive-buffer-size>32768</remoting-tcp-receive-buffer-size>
-
- <!-- Set the TCP Send Buffer size (SO_SNDBUF). -->
- <!-- Set it to -1 if you want to use the value hinted by the Operating System -->
- <!-- This setting is taken into account only when remoting-transport is set to TCP -->
- <remoting-tcp-send-buffer-size>32768</remoting-tcp-send-buffer-size>
-
- <!-- The interval to send a ping message to send to the client/server to make sure it is still alive.-->
- <!-- Set to 0 if you want to disable this functionality-->
- <remoting-ping-interval>10000</remoting-ping-interval>
-
- <!--How long to wait for a returning pong after sending a ping message to a client/server.-->
- <!-- If no pong is received after this time resources are cleaned up-->
- <remoting-ping-timeout>5000</remoting-ping-timeout>
-
- <!-- if ssl is enabled, all remoting-ssl-* properties must be set -->
- <remoting-enable-ssl>false</remoting-enable-ssl>
-
- <remoting-ssl-keystore-path>messaging.keystore</remoting-ssl-keystore-path>
-
- <remoting-ssl-keystore-password>secureexample</remoting-ssl-keystore-password>
-
- <remoting-ssl-truststore-path>messaging.truststore</remoting-ssl-truststore-path>
-
- <remoting-ssl-truststore-password>secureexample</remoting-ssl-truststore-password>
+ <call-timeout>30000</call-timeout>
<!-- Example interceptors
<remoting-interceptors>
@@ -73,12 +25,45 @@
</remoting-interceptors>
-->
- <remoting-acceptor-factories>
- <!-- <class-name>org.jboss.messaging.core.remoting.impl.mina.MinaAcceptorFactory</class-name> -->
- <class-name>org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory</class-name>
- <class-name>org.jboss.messaging.core.remoting.impl.netty.NettyAcceptorFactory</class-name>
- </remoting-acceptor-factories>
-
+ <remoting-acceptors>
+ <acceptor>
+ <factory-class>org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
+ <params>
+ <param key="jbm.remoting.invm.serverid" value="0" type="Integer"/>
+ </params>
+ </acceptor>
+ <acceptor>
+ <factory-class>org.jboss.messaging.core.remoting.impl.netty.NettyAcceptorFactory</factory-class>
+ <params>
+ <param key="jbm.remoting.netty.host" value="localhost" type="String"/>
+ <param key="jbm.remoting.netty.port" value="5400" type="Integer"/>
+ <param key="jbm.remoting.netty.tcpnodelay" value="true" type="Boolean"/>
+ <param key="jbm.remoting.netty.tcpsendbuffersize" value="32768" type="Integer"/>
+ <param key="jbm.remoting.netty.tcpreceivebuffersize" value="32768" type="Integer"/>
+ <param key="jbm.remoting.netty.sslenabled" value="false" type="Boolean"/>
+ <param key="jbm.remoting.netty.keystorepath" value="messaging.keystore" type="String"/>
+ <param key="jbm.remoting.netty.keystorepassword" value="secureexample" type="String"/>
+ <param key="jbm.remoting.netty.truststorepath" value="messaging.truststore" type="String"/>
+ <param key="jbm.remoting.netty.truststorepassword" value="secureexample" type="String"/>
+ </params>
+ </acceptor>
+ <acceptor>
+ <factory-class>org.jboss.messaging.core.remoting.impl.mina.MinaAcceptorFactory</factory-class>
+ <params>
+ <param key="jbm.remoting.mina.host" value="localhost" type="String"/>
+ <param key="jbm.remoting.mina.port" value="5500" type="Integer"/>
+ <param key="jbm.remoting.mina.tcpnodelay" value="true" type="Boolean"/>
+ <param key="jbm.remoting.mina.tcpsendbuffersize" value="32768" type="Integer"/>
+ <param key="jbm.remoting.mina.tcpreceivebuffersize" value="32768" type="Integer"/>
+ <param key="jbm.remoting.mina.sslenabled" value="false" type="Boolean"/>
+ <param key="jbm.remoting.mina.keystorepath" value="messaging.keystore" type="String"/>
+ <param key="jbm.remoting.mina.keystorepassword" value="secureexample" type="String"/>
+ <param key="jbm.remoting.mina.truststorepath" value="messaging.truststore" type="String"/>
+ <param key="jbm.remoting.mina.truststorepassword" value="secureexample" type="String"/>
+ </params>
+ </acceptor>
+ </remoting-acceptors>
+
<!-- Storage configuration -->
<bindings-directory>data/bindings</bindings-directory>
Deleted: trunk/src/config/jbm-connector-factories.properties
===================================================================
--- trunk/src/config/jbm-connector-factories.properties 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/config/jbm-connector-factories.properties 2008-08-28 12:52:17 UTC (rev 4886)
@@ -1,2 +0,0 @@
-TCP=org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory
-INVM=org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory
\ No newline at end of file
Modified: trunk/src/config/jbm-jndi.xml
===================================================================
--- trunk/src/config/jbm-jndi.xml 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/config/jbm-jndi.xml 2008-08-28 12:52:17 UTC (rev 4886)
@@ -1,10 +1,16 @@
<deployment>
<connection-factory name="testConnectionFactory">
+ <connector>
+ <factory-class>org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
+ </connector>
<entry name="testConnectionFactory"/>
</connection-factory>
<connection-factory name="ConnectionFactory">
+ <connector>
+ <factory-class>org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
+ </connector>
<entry name="ConnectionFactory"/>
<entry name="/ConnectionFactory"/>
<entry name="/XAConnectionFactory"/>
@@ -13,6 +19,9 @@
</connection-factory>
<connection-factory name="ClusteredConnectionFactory">
+ <connector>
+ <factory-class>org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
+ </connector>
<entry name="/ClusteredConnectionFactory"/>
<entry name="/ClusteredXAConnectionFactory"/>
<entry name="java:/ClusteredConnectionFactory"/>
@@ -22,6 +31,9 @@
</connection-factory>
<connection-factory name="MyExampleConnectionFactory">
+ <connector>
+ <factory-class>org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
+ </connector>
<entry name="/MyExampleConnectionFactory"/>
<entry name="/acme/MyExampleConnectionFactoryDupe"/>
<entry name="java:/xyz/CF1"/>
Modified: trunk/src/main/org/jboss/messaging/core/client/ClientSessionFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/ClientSessionFactory.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/client/ClientSessionFactory.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,7 +22,10 @@
package org.jboss.messaging.core.client;
+import java.util.Map;
+
import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
/**
@@ -41,133 +44,49 @@
ClientSession createSession(String username, String password, boolean xa, boolean autoCommitSends, boolean autoCommitAcks,
int lazyAckBatchSize, boolean cacheProducers)
throws MessagingException;
-
-
- /**
- * Set the default consumer window size value to use for consumers created from this connection factory.
- *
- * @param the window size, measured in bytes.
- * A value of -1 signifies that consumer flow control is disabled.
- */
- void setDefaultConsumerWindowSize(int size);
+
+ void setConsumerWindowSize(int size);
- /**
- * Get the default consumer window size value to use for consumers created from this connection factory.
- * @param size
- *
- * JBoss Messaging implements credit based consumer flow control, this value determines the initial pot of credits
- * the server has for the consumer. The server can only send messages to the consumer as long as it has
- * sufficient credits.
- *
- * @return The default window size, measured in bytes.
- * A value of -1 signifies that consumer flow control is disabled.
- */
- int getDefaultConsumerWindowSize();
+ int getConsumerWindowSize();
- /**
- * Set the default producer window size value to use for producers created from this connection factory.
- *
- * @param the window size, measured in bytes.
- * A value of -1 signifies that producer flow control is disabled.
- */
- void setDefaultProducerWindowSize(int size);
+ void setProducerWindowSize(int size);
- /**
- * Get the default consumer window size value to use for consumers created from this connection factory.
- *
- * JBoss Messaging implements credit based consumer flow control, this value determines the initial pot of credits
- * the server has for the consumer. The server can only send messages to the consumer as long as it has
- * sufficient credits.
- *
- * @return The default window size, measured in bytes.
- * A value of -1 signifies that consumer flow control is disabled.
- */
- int getDefaultProducerWindowSize();
+ int getProducerWindowSize();
- /**
- * Set the default consumer maximum consume rate for consumers created from this connection factory.
- * @param rate- the maximum consume rate, measured in messages / second
- * A value of -1 signifies there is no maximum rate limit
- */
- void setDefaultConsumerMaxRate(int rate);
+ void setConsumerMaxRate(int rate);
- /**
- * Get the default consumer maximum consume rate for consumers created from this connection factory.
- * @return the maximum consume rate, measured in messages / second
- * A value of -1 signifies there is no maximum rate limit
- */
- int getDefaultConsumerMaxRate();
+ int getConsumerMaxRate();
- /**
- * Set the default producer maximum send rate for producers created from this connection factory.
- * @param rate- the maximum send rate, measured in messages / second
- * A value of -1 signifies there is no maximum rate limit
- */
- void setDefaultProducerMaxRate(int rate);
+ void setProducerMaxRate(int rate);
- /**
- * Get the default producer maximum send rate for producers created from this connection factory.
- * @return the maximum send rate, measured in messages / second
- * A value of -1 signifies there is no maximum rate limit
- */
- int getDefaultProducerMaxRate();
+ int getProducerMaxRate();
- /**
- * Get the default value of whether producers created from this connection factory will send persistent messages
- * blocking.
- * @return Whether persistent messages are sent blocking
- */
- boolean isDefaultBlockOnPersistentSend();
+ boolean isBlockOnPersistentSend();
- /**
- * Set the default value of whether producers created from this connection factory will send persistent messages
- * blocking.
- * @param blocking Whether persistent messages are sent blocking
- */
- void setDefaultBlockOnPersistentSend(final boolean blocking);
+ void setBlockOnPersistentSend(final boolean blocking);
- /**
- * Get the default value of whether producers created from this connection factory will send non persistent messages
- * blocking.
- * @return Whether non persistent messages are sent blocking
- */
- boolean isDefaultBlockOnNonPersistentSend();
+ boolean isBlockOnNonPersistentSend();
- /**
- * Set the default value of whether producers created from this connection factory will send non persistent messages
- * blocking.
- * @param blocking Whether non persistent messages are sent blocking
- */
- void setDefaultBlockOnNonPersistentSend(final boolean blocking);
+ void setBlockOnNonPersistentSend(final boolean blocking);
- /**
- * Get the default value of whether producers created from this connection factory will send acknowledgements
- * blocking
- * @return Whether acknowledgements are sent blocking
- */
- boolean isDefaultBlockOnAcknowledge();
+ boolean isBlockOnAcknowledge();
- /**
- * Set the default value of whether producers created from this connection factory will send acknowledgements
- * blockiong
- * @param blocking Whether acknowledgements are sent blocking
- */
- void setDefaultBlockOnAcknowledge(final boolean blocking);
+ void setBlockOnAcknowledge(final boolean blocking);
- /**
- * Get the location of the server for this connection factory
- * @return The location
- */
- Location getLocation();
+ ConnectorFactory getConnectorFactory();
+
+ void setConnectorFactory(final ConnectorFactory connectorFactory);
+
+ Map<String, Object> getTransportParams();
+
+ void setTransportParams(final Map<String, Object> transportParams);
+
+ long getPingPeriod();
+
+ void setPingPeriod(final long pingPeriod);
+
+ long getCallTimeout();
+
+ void setCallTimeout(final long callTimeout);
- /**
- * Get the connection params used when creating connections using this connection factory
- */
- ConnectionParams getConnectionParams();
-
- /**
- * Set the connection params to be used when creating connections using this connection factory
- * @param params
- */
- void setConnectionParams(ConnectionParams connectionParams);
}
Deleted: trunk/src/main/org/jboss/messaging/core/client/ConnectionParams.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/ConnectionParams.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/client/ConnectionParams.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -1,87 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.messaging.core.client;
-
-import java.io.Serializable;
-
-/**
- * A set of connection params used by the client connection.
- *
- * @author <a href="mailto:ataylor at redhat.com">Andy Taylor</a>
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- *
- */
-public interface ConnectionParams extends Serializable
-{
- boolean isClustered();
-
- void setClustered(boolean clustered);
-
- int getPacketConfirmationBatchSize();
-
- void setPacketConfirmationBatchSize(int batchSize);
-
- long getCallTimeout();
-
- void setCallTimeout(long timeout);
-
- long getPingInterval();
-
- void setPingInterval(long pingInterval);
-
- boolean isInVMOptimisationEnabled();
-
- void setInVMOptimisationEnabled(boolean enabled);
-
- boolean isTcpNoDelay();
-
- void setTcpNoDelay(boolean tcpNoDelay);
-
- int getTcpReceiveBufferSize();
-
- void setTcpReceiveBufferSize(int tcpReceiveBufferSize);
-
- int getTcpSendBufferSize();
-
- void setTcpSendBufferSize(int tcpSendBufferSize);
-
- boolean isSSLEnabled();
-
- void setSSLEnabled(boolean sslEnabled);
-
- String getKeyStorePath();
-
- void setKeyStorePath(String keyStorePath);
-
- String getKeyStorePassword();
-
- void setKeyStorePassword(String keyStorePassword);
-
- String getTrustStorePath();
-
- void setTrustStorePath(String trustStorePath);
-
- String getTrustStorePassword();
-
- void setTrustStorePassword(String trustStorePassword);
-}
Deleted: trunk/src/main/org/jboss/messaging/core/client/Location.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/Location.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/client/Location.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -1,45 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.messaging.core.client;
-
-import java.io.Serializable;
-
-import org.jboss.messaging.core.remoting.TransportType;
-
-/**
- * The location of a JBM server and the type of transport to use. Used by clients when creating a connection factory
- *
- * @author <a href="ataylor at redhat.com">Andy Taylor</a>
- */
-public interface Location extends Serializable
-{
- String getLocation();
-
- TransportType getTransport();
-
- String getHost();
-
- int getPort();
-
- int getServerID(); // For invm only
-}
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionFactoryImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionFactoryImpl.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionFactoryImpl.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -21,10 +21,11 @@
*/
package org.jboss.messaging.core.client.impl;
+import java.util.HashMap;
+import java.util.Map;
+
import org.jboss.messaging.core.client.ClientSession;
import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.CommandManager;
@@ -37,6 +38,7 @@
import org.jboss.messaging.core.remoting.impl.PacketDispatcherImpl;
import org.jboss.messaging.core.remoting.impl.wireformat.CreateSessionMessage;
import org.jboss.messaging.core.remoting.impl.wireformat.CreateSessionResponseMessage;
+import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
import org.jboss.messaging.core.version.Version;
import org.jboss.messaging.util.UUIDGenerator;
import org.jboss.messaging.util.VersionLoader;
@@ -59,43 +61,51 @@
private static final Logger log = Logger.getLogger(ClientSessionFactoryImpl.class);
- public static final int DEFAULT_DEFAULT_CONSUMER_WINDOW_SIZE = 1024 * 1024;
+ public static final long DEFAULT_PING_PERIOD = 5000;
- public static final int DEFAULT_DEFAULT_CONSUMER_MAX_RATE = -1;
+ public static final long DEFAULT_CALL_TIMEOUT = 30000;
- public static final int DEFAULT_DEFAULT_PRODUCER_WINDOW_SIZE = 1024 * 1024;
+ public static final int DEFAULT_CONSUMER_WINDOW_SIZE = 1024 * 1024;
- public static final int DEFAULT_DEFAULT_PRODUCER_MAX_RATE = -1;
+ public static final int DEFAULT_CONSUMER_MAX_RATE = -1;
- public static final boolean DEFAULT_DEFAULT_BLOCK_ON_ACKNOWLEDGE = false;
+ public static final int DEFAULT_PRODUCER_WINDOW_SIZE = 1024 * 1024;
- public static final boolean DEFAULT_DEFAULT_BLOCK_ON_PERSISTENT_SEND = false;
+ public static final int DEFAULT_PRODUCER_MAX_RATE = -1;
- public static final boolean DEFAULT_DEFAULT_BLOCK_ON_NON_PERSISTENT_SEND = false;
+ public static final boolean DEFAULT_BLOCK_ON_ACKNOWLEDGE = false;
+
+ public static final boolean DEFAULT_BLOCK_ON_PERSISTENT_SEND = false;
+
+ public static final boolean DEFAULT_BLOCK_ON_NON_PERSISTENT_SEND = false;
// Attributes -----------------------------------------------------------------------------------
- private final Location location;
-
private ConnectionRegistry connectionRegistry;
//These attributes are mutable and can be updated by different threads so must be volatile
- private volatile ConnectionParams connectionParams;
-
- private volatile int defaultConsumerWindowSize;
+ private volatile ConnectorFactory connectorFactory;
- private volatile int defaultConsumerMaxRate;
+ private volatile Map<String, Object> transportParams;
+
+ private volatile long pingPeriod;
+
+ private volatile long callTimeout;
+
+ private volatile int consumerWindowSize;
+
+ private volatile int consumerMaxRate;
- private volatile int defaultProducerWindowSize;
+ private volatile int producerWindowSize;
- private volatile int defaultProducerMaxRate;
+ private volatile int producerMaxRate;
- private volatile boolean defaultBlockOnAcknowledge;
+ private volatile boolean blockOnAcknowledge;
- private volatile boolean defaultBlockOnPersistentSend;
+ private volatile boolean blockOnPersistentSend;
- private volatile boolean defaultBlockOnNonPersistentSend;
+ private volatile boolean blockOnNonPersistentSend;
// Static ---------------------------------------------------------------------------------------
@@ -104,57 +114,46 @@
/**
* Create a ClientSessionFactoryImpl specifying all attributes
*/
- public ClientSessionFactoryImpl(final Location location, final ConnectionParams connectionParams,
- final int defaultConsumerWindowSize, final int defaultConsumerMaxRate,
- final int defaultProducerWindowSize, final int defaultProducerMaxRate,
- final boolean defaultBlockOnAcknowledge,
- final boolean defaultSendNonPersistentMessagesBlocking,
- final boolean defaultSendPersistentMessagesBlocking)
+ public ClientSessionFactoryImpl(final ConnectorFactory connectorFactory,
+ final Map<String, Object> transportParams,
+ final long pingPeriod,
+ final long callTimeout,
+ final int consumerWindowSize, final int consumerMaxRate,
+ final int producerWindowSize, final int producerMaxRate,
+ final boolean blockOnAcknowledge,
+ final boolean blockOnNonPersistentSend,
+ final boolean blockOnPersistentSend)
{
- this.location = location;
- this.defaultConsumerWindowSize = defaultConsumerWindowSize;
- this.defaultConsumerMaxRate = defaultConsumerMaxRate;
- this.defaultProducerWindowSize = defaultProducerWindowSize;
- this.defaultProducerMaxRate = defaultProducerMaxRate;
- this.defaultBlockOnAcknowledge = defaultBlockOnAcknowledge;
- this.defaultBlockOnNonPersistentSend = defaultSendNonPersistentMessagesBlocking;
- this.defaultBlockOnPersistentSend = defaultSendPersistentMessagesBlocking;
- this.connectionParams = connectionParams;
+ this.connectorFactory = connectorFactory;
+ this.transportParams = transportParams;
+ this.pingPeriod = pingPeriod;
+ this.callTimeout = callTimeout;
+ this.consumerWindowSize = consumerWindowSize;
+ this.consumerMaxRate = consumerMaxRate;
+ this.producerWindowSize = producerWindowSize;
+ this.producerMaxRate = producerMaxRate;
+ this.blockOnAcknowledge = blockOnAcknowledge;
+ this.blockOnNonPersistentSend = blockOnNonPersistentSend;
+ this.blockOnPersistentSend = blockOnPersistentSend;
this.connectionRegistry = ConnectionRegistryLocator.getRegistry();
}
/**
- * Create a ClientSessionFactoryImpl specify location and using all default attribute values
- * @param location the location of the server
- */
- public ClientSessionFactoryImpl(final Location location)
+ * Create a ClientSessionFactoryImpl specify transport type and using defaults
+ */
+ public ClientSessionFactoryImpl(final ConnectorFactory connectorFactory)
{
- this(location, new ConnectionParamsImpl(), false);
- }
-
- /**
- * Create a ClientSessionFactoryImpl specify location and connection params and using all other default attribute values
- * @param location the location of the server
- * @param connectionParams the connection parameters
- */
- public ClientSessionFactoryImpl(final Location location, final ConnectionParams connectionParams)
- {
- this(location, connectionParams, false);
- }
-
-
- private ClientSessionFactoryImpl(final Location location, final ConnectionParams connectionParams,
- final boolean dummy)
- {
- defaultConsumerWindowSize = DEFAULT_DEFAULT_CONSUMER_WINDOW_SIZE;
- defaultConsumerMaxRate = DEFAULT_DEFAULT_CONSUMER_MAX_RATE;
- defaultProducerWindowSize = DEFAULT_DEFAULT_PRODUCER_WINDOW_SIZE;
- defaultProducerMaxRate = DEFAULT_DEFAULT_PRODUCER_MAX_RATE;
- defaultBlockOnAcknowledge = DEFAULT_DEFAULT_BLOCK_ON_ACKNOWLEDGE;
- defaultBlockOnPersistentSend = DEFAULT_DEFAULT_BLOCK_ON_PERSISTENT_SEND;
- defaultBlockOnNonPersistentSend = DEFAULT_DEFAULT_BLOCK_ON_NON_PERSISTENT_SEND;
- this.location = location;
- this.connectionParams = connectionParams;
+ this.connectorFactory = connectorFactory;
+ this.transportParams = new HashMap<String, Object>();
+ pingPeriod = DEFAULT_PING_PERIOD;
+ callTimeout = DEFAULT_CALL_TIMEOUT;
+ consumerWindowSize = DEFAULT_CONSUMER_WINDOW_SIZE;
+ consumerMaxRate = DEFAULT_CONSUMER_MAX_RATE;
+ producerWindowSize = DEFAULT_PRODUCER_WINDOW_SIZE;
+ producerMaxRate = DEFAULT_PRODUCER_MAX_RATE;
+ blockOnAcknowledge = DEFAULT_BLOCK_ON_ACKNOWLEDGE;
+ blockOnPersistentSend = DEFAULT_BLOCK_ON_PERSISTENT_SEND;
+ blockOnNonPersistentSend = DEFAULT_BLOCK_ON_NON_PERSISTENT_SEND;
this.connectionRegistry = ConnectionRegistryLocator.getRegistry();
}
@@ -178,91 +177,116 @@
cacheProducers);
}
- public int getDefaultConsumerWindowSize()
+ public int getConsumerWindowSize()
{
- return defaultConsumerWindowSize;
+ return consumerWindowSize;
}
- public void setDefaultConsumerWindowSize(final int size)
+ public void setConsumerWindowSize(final int size)
{
- defaultConsumerWindowSize = size;
+ consumerWindowSize = size;
}
- public int getDefaultProducerWindowSize()
+ public int getProducerWindowSize()
{
- return defaultProducerWindowSize;
+ return producerWindowSize;
}
- public void setDefaultProducerWindowSize(final int size)
+ public void setProducerWindowSize(final int size)
{
- defaultProducerWindowSize = size;
+ producerWindowSize = size;
}
- public int getDefaultProducerMaxRate()
+ public int getProducerMaxRate()
{
- return defaultProducerMaxRate;
+ return producerMaxRate;
}
- public void setDefaultProducerMaxRate(final int rate)
+ public void setProducerMaxRate(final int rate)
{
- this.defaultProducerMaxRate = rate;
+ this.producerMaxRate = rate;
}
- public int getDefaultConsumerMaxRate()
+ public int getConsumerMaxRate()
{
- return defaultConsumerMaxRate;
+ return consumerMaxRate;
}
- public void setDefaultConsumerMaxRate(final int rate)
+ public void setConsumerMaxRate(final int rate)
{
- this.defaultConsumerMaxRate = rate;
+ this.consumerMaxRate = rate;
}
- public boolean isDefaultBlockOnPersistentSend()
+ public boolean isBlockOnPersistentSend()
{
- return defaultBlockOnPersistentSend;
+ return blockOnPersistentSend;
}
- public void setDefaultBlockOnPersistentSend(final boolean blocking)
+ public void setBlockOnPersistentSend(final boolean blocking)
{
- defaultBlockOnPersistentSend = blocking;
+ blockOnPersistentSend = blocking;
}
- public boolean isDefaultBlockOnNonPersistentSend()
+ public boolean isBlockOnNonPersistentSend()
{
- return defaultBlockOnNonPersistentSend;
+ return blockOnNonPersistentSend;
}
- public void setDefaultBlockOnNonPersistentSend(final boolean blocking)
+ public void setBlockOnNonPersistentSend(final boolean blocking)
{
- defaultBlockOnNonPersistentSend = blocking;
+ blockOnNonPersistentSend = blocking;
}
- public boolean isDefaultBlockOnAcknowledge()
+ public boolean isBlockOnAcknowledge()
{
- return this.defaultBlockOnAcknowledge;
+ return this.blockOnAcknowledge;
}
- public void setDefaultBlockOnAcknowledge(final boolean blocking)
+ public void setBlockOnAcknowledge(final boolean blocking)
{
- defaultBlockOnAcknowledge = blocking;
+ blockOnAcknowledge = blocking;
}
-
- public ConnectionParams getConnectionParams()
+
+ public ConnectorFactory getConnectorFactory()
{
- return connectionParams;
+ return connectorFactory;
}
-
- public void setConnectionParams(final ConnectionParams params)
+
+ public void setConnectorFactory(final ConnectorFactory connectorFactory)
{
- this.connectionParams = params;
+ this.connectorFactory = connectorFactory;
}
-
- public Location getLocation()
+
+ public Map<String, Object> getTransportParams()
{
- return location;
+ return transportParams;
}
-
+
+ public void setTransportParams(final Map<String, Object> transportParams)
+ {
+ this.transportParams = transportParams;
+ }
+
+ public long getPingPeriod()
+ {
+ return pingPeriod;
+ }
+
+ public void setPingPeriod(final long pingPeriod)
+ {
+ this.pingPeriod = pingPeriod;
+ }
+
+ public long getCallTimeout()
+ {
+ return callTimeout;
+ }
+
+ public void setCallTimeout(final long callTimeout)
+ {
+ this.callTimeout = callTimeout;
+ }
+
// Public ---------------------------------------------------------------------------------------
public void setConnectionRegistry(final ConnectionRegistry registry)
@@ -286,7 +310,8 @@
RemotingConnection remotingConnection = null;
try
{
- remotingConnection = connectionRegistry.getConnection(location, connectionParams);
+ remotingConnection = connectionRegistry.getConnection(connectorFactory, transportParams,
+ pingPeriod, callTimeout);
PacketDispatcher dispatcher = remotingConnection.getPacketDispatcher();
@@ -304,12 +329,12 @@
(CreateSessionResponseMessage)remotingConnection.sendBlocking(PacketDispatcherImpl.MAIN_SERVER_HANDLER_ID,
PacketDispatcherImpl.MAIN_SERVER_HANDLER_ID, request, null);
- CommandManager cm = new CommandManagerImpl(connectionParams.getPacketConfirmationBatchSize(),
+ CommandManager cm = new CommandManagerImpl(response.getPacketConfirmationBatchSize(),
remotingConnection, dispatcher, response.getSessionID(),
localCommandResponseTargetID, response.getCommandResponseTargetID());
return new ClientSessionImpl(name, response.getSessionID(), xa, lazyAckBatchSize, cacheProducers,
- autoCommitSends, autoCommitAcks, defaultBlockOnAcknowledge,
+ autoCommitSends, autoCommitAcks, blockOnAcknowledge,
remotingConnection, this,
dispatcher,
response.getServerVersion(), cm);
@@ -320,7 +345,7 @@
{
try
{
- connectionRegistry.returnConnection(location);
+ connectionRegistry.returnConnection(remotingConnection.getID());
}
catch (Throwable ignore)
{
@@ -341,6 +366,7 @@
}
}
}
+
// Inner Classes --------------------------------------------------------------------------------
}
Modified: trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ClientSessionImpl.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -38,7 +38,6 @@
import org.jboss.messaging.core.client.ClientMessage;
import org.jboss.messaging.core.client.ClientProducer;
import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.Location;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.CommandManager;
@@ -326,8 +325,8 @@
checkClosed();
return createConsumer(queueName, filterString, direct, connectionFactory
- .getDefaultConsumerWindowSize(), connectionFactory
- .getDefaultConsumerMaxRate());
+ .getConsumerWindowSize(), connectionFactory
+ .getConsumerMaxRate());
}
public ClientConsumer createConsumer(final SimpleString queueName,
@@ -422,8 +421,8 @@
checkClosed();
return createProducer(address, connectionFactory
- .getDefaultProducerWindowSize(), connectionFactory
- .getDefaultProducerMaxRate());
+ .getProducerWindowSize(), connectionFactory
+ .getProducerMaxRate());
}
public ClientProducer createRateLimitedProducer(SimpleString address,
@@ -446,8 +445,8 @@
final int windowSize, final int maxRate) throws MessagingException
{
return createProducer(address, windowSize, maxRate, connectionFactory
- .isDefaultBlockOnNonPersistentSend(), connectionFactory
- .isDefaultBlockOnPersistentSend());
+ .isBlockOnNonPersistentSend(), connectionFactory
+ .isBlockOnPersistentSend());
}
public ClientProducer createProducer(final SimpleString address,
@@ -1181,10 +1180,8 @@
}
commandManager.close();
-
- Location loc = remotingConnection.getLocation();
- connectionRegistry.returnConnection(loc);
+ connectionRegistry.returnConnection(remotingConnection.getID());
closed = true;
}
Deleted: trunk/src/main/org/jboss/messaging/core/client/impl/ConnectionParamsImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/ConnectionParamsImpl.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/ConnectionParamsImpl.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -1,258 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.messaging.core.client.impl;
-
-import org.jboss.messaging.core.client.ConnectionParams;
-
-/**
- * @author <a href="ataylor at redhat.com">Andy Taylor</a>
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- */
-public class ConnectionParamsImpl implements ConnectionParams
-{
- //Constants ---------------------------------------------------------------------------------------
-
- public static final boolean DEFAULT_CLUSTERED = false;
-
- public static final int DEFAULT_PACKET_CONFIRMATION_BATCH_SIZE = 100;
-
- public static final int DEFAULT_PING_INTERVAL = 10000; // in ms
-
- public static final int DEFAULT_CALL_TIMEOUT = 5000; // in ms
-
- public static final boolean DEFAULT_INVM_OPTIMISATION_ENABLED = true;
-
- public static final boolean DEFAULT_TCP_NODELAY = true;
-
- public static final int DEFAULT_TCP_RECEIVE_BUFFER_SIZE = 32 * 1024; // in bytes
-
- public static final int DEFAULT_TCP_SEND_BUFFER_SIZE = 32 * 1024; // in bytes
-
- public static final boolean DEFAULT_SSL_ENABLED = false;
-
- public static final String SSL_KEYSTORE_PATH_PROPERTY_NAME = "jbm.remoting.ssl.keystore.path";
-
- public static final String SSL_KEYSTORE_PASSWORD_PROPERTY_NAME = "jbm.remoting.ssl.keystore.password";
-
- public static final String SSL_TRUSTSTORE_PATH_PROPERTY_NAME = "jbm.remoting.ssl.truststore.path";
-
- public static final String SSL_TRUSTSTORE_PASSWORD_PROPERTY_NAME = "jbm.remoting.ssl.truststore.password";
-
- public static final String ENABLE_SSL_PROPERTY_NAME = "jbm.remoting.enable.ssl";
-
-
-
- private static final long serialVersionUID = 1662480686951551534L;
-
- // Attributes -------------------------------------------------------------------------------------
-
- private boolean clustered = DEFAULT_CLUSTERED;
-
- protected int packetConfirmationBatchSize = DEFAULT_PACKET_CONFIRMATION_BATCH_SIZE;
-
- private long callTimeout = DEFAULT_CALL_TIMEOUT;
-
- private long pingInterval = DEFAULT_PING_INTERVAL;
-
- private boolean inVMOptimisationEnabled = DEFAULT_INVM_OPTIMISATION_ENABLED;
-
- private boolean tcpNoDelay = DEFAULT_TCP_NODELAY;
-
- private int tcpReceiveBufferSize = DEFAULT_TCP_RECEIVE_BUFFER_SIZE;
-
- private int tcpSendBufferSize = DEFAULT_TCP_SEND_BUFFER_SIZE;
-
- private boolean sslEnabled = DEFAULT_SSL_ENABLED;
-
- private String keyStorePath;
-
- private String keyStorePassword;
-
- private String trustStorePath;
-
- private String trustStorePassword;
-
- public int getPacketConfirmationBatchSize()
- {
- return packetConfirmationBatchSize;
- }
-
- public void setPacketConfirmationBatchSize(int batchSize)
- {
- this.packetConfirmationBatchSize = batchSize;
- }
-
- public long getCallTimeout()
- {
- return callTimeout;
- }
-
- public void setCallTimeout(final long timeout)
- {
- this.callTimeout = timeout;
- }
-
- public boolean isClustered()
- {
- return clustered;
- }
-
- public void setClustered(final boolean clustered)
- {
- this.clustered = clustered;
- }
-
- public long getPingInterval()
- {
- return pingInterval;
- }
-
- public void setPingInterval(final long pingInterval)
- {
- this.pingInterval = pingInterval;
- }
-
- public boolean isInVMOptimisationEnabled()
- {
- return inVMOptimisationEnabled;
- }
-
- public void setInVMOptimisationEnabled(final boolean enabled)
- {
- this.inVMOptimisationEnabled = enabled;
- }
-
- public boolean isTcpNoDelay()
- {
- return tcpNoDelay;
- }
-
- public void setTcpNoDelay(final boolean tcpNoDelay)
- {
- this.tcpNoDelay = tcpNoDelay;
- }
-
- public int getTcpReceiveBufferSize()
- {
- return tcpReceiveBufferSize;
- }
-
- public void setTcpReceiveBufferSize(final int tcpReceiveBufferSize)
- {
- this.tcpReceiveBufferSize = tcpReceiveBufferSize;
- }
-
- public int getTcpSendBufferSize()
- {
- return tcpSendBufferSize;
- }
-
- public void setTcpSendBufferSize(final int tcpSendBufferSize)
- {
- this.tcpSendBufferSize = tcpSendBufferSize;
- }
-
- public boolean isSSLEnabled()
- {
- String sslEnabledProperty = System.getProperty(ENABLE_SSL_PROPERTY_NAME);
-
- return sslEnabledProperty == null ? sslEnabled : sslEnabledProperty.equalsIgnoreCase("true");
- }
-
- public void setSSLEnabled(final boolean sslEnabled)
- {
- this.sslEnabled = sslEnabled;
- }
-
- public String getKeyStorePath()
- {
- String sslKeystorePath = System.getProperty(SSL_KEYSTORE_PATH_PROPERTY_NAME);
-
- return sslKeystorePath == null ? keyStorePath : sslKeystorePath;
- }
-
- public void setKeyStorePath(final String keyStorePath)
- {
- this.keyStorePath = keyStorePath;
- }
-
- public String getKeyStorePassword()
- {
- String keyStorePass = System.getProperty(SSL_KEYSTORE_PASSWORD_PROPERTY_NAME);
-
- return keyStorePass == null ? keyStorePassword : keyStorePass;
- }
-
- public void setKeyStorePassword(final String keyStorePassword)
- {
- this.keyStorePassword = keyStorePassword;
- }
-
- public String getTrustStorePath()
- {
- String sslTruststorePath = System.getProperty(SSL_TRUSTSTORE_PATH_PROPERTY_NAME);
-
- return sslTruststorePath == null ? trustStorePath : sslTruststorePath;
- }
-
- public void setTrustStorePath(final String trustStorePath)
- {
- this.trustStorePath = trustStorePath;
- }
-
- public String getTrustStorePassword()
- {
- String trustStorePass = System.getProperty(SSL_TRUSTSTORE_PASSWORD_PROPERTY_NAME);
-
- return trustStorePass == null ? trustStorePassword : trustStorePass;
- }
-
- public void setTrustStorePassword(final String trustStorePassword)
- {
- this.trustStorePassword = trustStorePassword;
- }
-
- public boolean equals(Object other)
- {
- if (other instanceof ConnectionParams == false)
- {
- return false;
- }
-
- ConnectionParams cp = (ConnectionParams)other;
-
- return cp.isClustered() == clustered &&
- cp.getPacketConfirmationBatchSize() == this.packetConfirmationBatchSize &&
- cp.getCallTimeout() == callTimeout &&
- cp.getPingInterval() == this.pingInterval &&
- cp.isInVMOptimisationEnabled() == this.isInVMOptimisationEnabled() &&
- cp.isTcpNoDelay() == this.isTcpNoDelay() &&
- cp.getTcpReceiveBufferSize() == this.getTcpReceiveBufferSize() &&
- cp.getTcpSendBufferSize() == this.getTcpSendBufferSize() &&
- cp.isSSLEnabled() == this.isSSLEnabled() &&
- (cp.getKeyStorePath() == null ? this.keyStorePath == null : cp.getKeyStorePath().equals(this.keyStorePath)) &&
- (cp.getTrustStorePath() == null ? this.trustStorePath == null : cp.getTrustStorePath().equals(this.trustStorePath)) &&
- (cp.getKeyStorePassword() == null ? this.keyStorePassword == null : cp.getKeyStorePassword().equals(this.keyStorePassword)) &&
- (cp.getTrustStorePassword() == null ? this.trustStorePassword == null : cp.getTrustStorePassword().equals(this.trustStorePassword));
- }
-}
Deleted: trunk/src/main/org/jboss/messaging/core/client/impl/LocationImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/impl/LocationImpl.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/client/impl/LocationImpl.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -1,121 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.messaging.core.client.impl;
-
-import org.jboss.messaging.core.client.Location;
-import org.jboss.messaging.core.config.impl.ConfigurationImpl;
-import org.jboss.messaging.core.remoting.TransportType;
-
-/**
- * @author <a href="ataylor at redhat.com">Andy Taylor</a>
- * @author <a href="tim.fox at redhat.com">Tim Fox</a>
- */
-public class LocationImpl implements Location
-{
- private static final long serialVersionUID = -1101852656621257742L;
-
- private TransportType transport;
-
- private String host;
-
- private int port = ConfigurationImpl.DEFAULT_PORT;
-
- private int serverID;
-
- public LocationImpl(final TransportType transport, final String host, final int port)
- {
- if (transport != TransportType.TCP && transport != TransportType.HTTP)
- {
- throw new IllegalArgumentException("only HTTP and TCP transports are allowed for remote location");
- }
-
- this.transport = transport;
- this.host = host;
- this.port = port;
- }
-
- public LocationImpl(final int serverID)
- {
- this.serverID = serverID;
- }
-
- public LocationImpl(final TransportType transport, final String host)
- {
- this(transport, host, ConfigurationImpl.DEFAULT_PORT);
- }
-
- public int getServerID()
- {
- return serverID;
- }
-
- public String getLocation()
- {
- return transport + "://" + host + ":" + port;
- }
-
- public TransportType getTransport()
- {
- return transport;
- }
-
- public String getHost()
- {
- return host;
- }
-
- public int getPort()
- {
- return port;
- }
-
- @Override
- public String toString()
- {
- return getLocation();
- }
-
- public boolean equals(Object other)
- {
- if (other instanceof Location == false)
- {
- return false;
- }
- Location lother = (Location)other;
-
- if (transport != lother.getTransport())
- {
- return false;
- }
-
- if (transport == TransportType.INVM)
- {
- return serverID == lother.getServerID();
- }
- else
- {
- return this.transport.equals(lother.getTransport()) &&
- this.host.equals(lother.getHost()) &&
- this.port == lother.getPort();
- }
- }
-}
Added: trunk/src/main/org/jboss/messaging/core/config/AcceptorInfo.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/AcceptorInfo.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/config/AcceptorInfo.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -0,0 +1,76 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, 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.messaging.core.config;
+
+import java.io.Serializable;
+import java.util.Map;
+
+/**
+ * An AcceptorInfo
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ *
+ */
+public class AcceptorInfo implements Serializable
+{
+ private static final long serialVersionUID = -3994528421527392679L;
+
+ private final String factoryClassName;
+
+ private final Map<String, Object> params;
+
+ public AcceptorInfo(final String className, final Map<String, Object> params)
+ {
+ this.factoryClassName = className;
+
+ this.params = params;
+ }
+
+ public AcceptorInfo(final String className)
+ {
+ this.factoryClassName = className;
+
+ this.params = null;
+ }
+
+ public String getFactoryClassName()
+ {
+ return factoryClassName;
+ }
+
+ public Map<String, Object> getParams()
+ {
+ return params;
+ }
+
+ public boolean equals(Object other)
+ {
+ if (other instanceof AcceptorInfo == false)
+ {
+ return false;
+ }
+
+ AcceptorInfo ai = (AcceptorInfo)other;
+
+ return this.factoryClassName.equals(ai.factoryClassName);
+ }
+}
Modified: trunk/src/main/org/jboss/messaging/core/config/Configuration.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/Configuration.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/config/Configuration.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -26,9 +26,6 @@
import java.util.List;
import java.util.Set;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
-import org.jboss.messaging.core.remoting.TransportType;
import org.jboss.messaging.core.server.JournalType;
/**
@@ -69,67 +66,31 @@
boolean isJMXManagementEnabled();
void setJMXManagementEnabled(boolean enabled);
-
- // Remoting related attributes ----------------------------------------------------------
+
+ long getCallTimeout();
- List<String> getInterceptorClassNames();
+ void setCallTimeout(long timeout);
- Set<String> getAcceptorFactoryClassNames();
+ int getPacketConfirmationBatchSize();
- ConnectionParams getConnectionParams();
-
- int getServerID(); //For INVM transport only
-
- void setServerID(int serverID);
-
- TransportType getTransport();
-
- void setTransport(TransportType transport);
+ void setPacketConfirmationBatchSize(int size);
- String getHost();
+ List<String> getInterceptorClassNames();
- void setHost(String host);
-
- int getPort();
+ void setInterceptorClassNames(List<String> interceptors);
- void setPort(int port);
+ long getConnectionScanPeriod();
- TransportType getBackupTransport();
+ void setConnectionScanPeriod(long scanPeriod);
- void setBackupTransport(TransportType transport);
+ // Remoting related attributes ----------------------------------------------------------
+
+ Set<AcceptorInfo> getAcceptorInfos();
- String getBackupHost();
+ void setAcceptorInfos(Set<AcceptorInfo> infos);
+
+ // Journal related attributes ------------------------------------------------------------
- void setBackupHost(String host);
-
- int getBackupPort();
-
- void setBackupPort(int port);
-
- Location getLocation();
-
- String getKeyStorePath();
-
- void setKeyStorePath(String path);
-
- String getKeyStorePassword();
-
- void setKeyStorePassword(String password);
-
- String getTrustStorePath();
-
- void setTrustStorePath(String path);
-
- String getTrustStorePassword();
-
- void setTrustStorePassword(String password);
-
- boolean isSSLEnabled();
-
- void setSSLEnabled(boolean enabled);
-
- // Journal related attributes
-
String getBindingsDirectory();
void setBindingsDirectory(String dir);
Modified: trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -27,12 +27,8 @@
import java.util.List;
import java.util.Set;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
-import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
-import org.jboss.messaging.core.client.impl.LocationImpl;
+import org.jboss.messaging.core.config.AcceptorInfo;
import org.jboss.messaging.core.config.Configuration;
-import org.jboss.messaging.core.remoting.TransportType;
import org.jboss.messaging.core.server.JournalType;
/**
@@ -43,20 +39,14 @@
{
// Constants ------------------------------------------------------------------------------
- public static final String ENABLE_SSL_PROPERTY_NAME = "jbm.remoting.ssl.enable";
-
+ private static final long serialVersionUID = 4077088945050267843L;
+
public static final boolean DEFAULT_CLUSTERED = false;
public static final boolean DEFAULT_BACKUP = false;
public static final int DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE = 30;
- public static final String DEFAULT_HOST = "localhost";
-
- public static final TransportType DEFAULT_TRANSPORT = TransportType.TCP;
-
- public static final int DEFAULT_PORT = 5400;
-
public static final long DEFAULT_SECURITY_INVALIDATION_INTERVAL = 10000;
public static final boolean DEFAULT_REQUIRE_DESTINATIONS = false;
@@ -64,17 +54,13 @@
public static final boolean DEFAULT_SECURITY_ENABLED = true;
public static final boolean DEFAULT_JMX_MANAGEMENT_ENABLED = true;
-
- public static final boolean DEFAULT_SSL_ENABLED = false;
- public static final String DEFAULT_KEYSTORE_PATH = "messaging.keystore";
+ public static final int DEFAULT_CALL_TIMEOUT = 30000;
- public static final String DEFAULT_KEYSTORE_PASSWORD = "secureexample";
+ public static final int DEFAULT_PACKET_CONFIRMATION_BATCH_SIZE = 100;
- public static final String DEFAULT_TRUSTSTORE_PATH = "messaging.truststore";
+ public static final long DEFAULT_CONNECTION_SCAN_PERIOD = 1000;
- public static final String DEFAULT_TRUSTSTORE_PASSWORD = "secureexample";
-
public static final String DEFAULT_BINDINGS_DIRECTORY = "data/bindings";
public static final boolean DEFAULT_CREATE_BINDINGS_DIR = true;
@@ -95,9 +81,8 @@
public static final int DEFAULT_JOURNAL_MAX_AIO = 5000;
- private static final long serialVersionUID = 4077088945050267843L;
-
+
// Attributes -----------------------------------------------------------------------------
protected boolean clustered = DEFAULT_CLUSTERED;
@@ -114,6 +99,13 @@
protected boolean jmxManagementEnabled = DEFAULT_JMX_MANAGEMENT_ENABLED;
+ protected long callTimeout = DEFAULT_CALL_TIMEOUT;
+
+ protected int packetConfirmationBatchSize = DEFAULT_PACKET_CONFIRMATION_BATCH_SIZE;
+
+ protected long connectionScanPeriod = DEFAULT_CONNECTION_SCAN_PERIOD;
+
+
// Journal related attributes
protected String bindingsDirectory = DEFAULT_BINDINGS_DIRECTORY;
@@ -136,39 +128,10 @@
protected int journalMaxAIO = DEFAULT_JOURNAL_MAX_AIO;
- // remoting config
-
- protected int serverID;
-
- protected TransportType transport = DEFAULT_TRANSPORT;
-
- protected String host = DEFAULT_HOST;
-
- protected int port = DEFAULT_PORT;
-
- protected TransportType backupTransport;
-
- protected String backupHost;
-
- protected int backupPort;
-
- protected final ConnectionParams defaultConnectionParams = new ConnectionParamsImpl();
-
- protected boolean sslEnabled = DEFAULT_SSL_ENABLED;
-
- protected String keyStorePath = DEFAULT_KEYSTORE_PATH;
-
- protected String keyStorePassword = DEFAULT_KEYSTORE_PASSWORD;
-
- protected String trustStorePath = DEFAULT_TRUSTSTORE_PATH;
-
- protected String trustStorePassword = DEFAULT_TRUSTSTORE_PASSWORD;
-
protected List<String> interceptorClassNames = new ArrayList<String>();
- protected Set<String> acceptorFactoryClassNames = new HashSet<String>();
-
-
+ protected Set<AcceptorInfo> acceptorInfos = new HashSet<AcceptorInfo>();
+
public boolean isClustered()
{
return clustered;
@@ -219,147 +182,55 @@
this.requireDestinations = require;
}
- public TransportType getTransport()
+ public long getCallTimeout()
{
- return transport;
+ return callTimeout;
}
- public void setTransport(TransportType transport)
+ public void setCallTimeout(long timeout)
{
- this.transport = transport;
+ this.callTimeout = timeout;
}
- public int getServerID()
+ public int getPacketConfirmationBatchSize()
{
- return serverID;
+ return this.packetConfirmationBatchSize;
}
- public void setServerID(final int serverID)
+ public void setPacketConfirmationBatchSize(int size)
{
- this.serverID = serverID;
+ this.packetConfirmationBatchSize = size;
}
-
- public String getHost()
- {
- return host;
- }
- public void setHost(String host)
+ public long getConnectionScanPeriod()
{
- this.host = host;
+ return connectionScanPeriod;
}
-
- public int getPort()
+
+ public void setConnectionScanPeriod(long scanPeriod)
{
- return port;
+ this.connectionScanPeriod = scanPeriod;
}
-
- public void setPort(int port)
+
+ public List<String> getInterceptorClassNames()
{
- this.port = port;
+ return interceptorClassNames;
}
- public TransportType getBackupTransport()
+ public void setInterceptorClassNames(List<String> interceptors)
{
- return backupTransport;
+ this.interceptorClassNames = interceptors;
}
- public void setBackupTransport(TransportType transport)
+ public Set<AcceptorInfo> getAcceptorInfos()
{
- this.backupTransport = transport;
+ return this.acceptorInfos;
}
-
- public String getBackupHost()
- {
- return backupHost;
- }
- public void setBackupHost(String host)
+ public void setAcceptorInfos(Set<AcceptorInfo> infos)
{
- this.backupHost = host;
+ this.acceptorInfos = infos;
}
-
- public int getBackupPort()
- {
- return backupPort;
- }
-
- public void setBackupPort(int port)
- {
- this.backupPort = port;
- }
-
- public Location getLocation()
- {
- return new LocationImpl(transport, host, port);
- }
-
- public String getKeyStorePath()
- {
- return keyStorePath;
- }
-
- public void setKeyStorePath(String path)
- {
- this.keyStorePath = path;
- }
-
- public String getKeyStorePassword()
- {
- return keyStorePassword;
- }
-
- public void setKeyStorePassword(String password)
- {
- this.keyStorePassword = password;
- }
-
- public String getTrustStorePath()
- {
- return trustStorePath;
- }
-
- public void setTrustStorePath(String path)
- {
- this.trustStorePath = path;
- }
-
- public String getTrustStorePassword()
- {
- return trustStorePassword;
- }
-
- public void setTrustStorePassword(String password)
- {
- this.trustStorePassword = password;
- }
-
- public boolean isSSLEnabled()
- {
- if (System.getProperty(ENABLE_SSL_PROPERTY_NAME) != null)
- {
- return Boolean.parseBoolean(System.getProperty(ENABLE_SSL_PROPERTY_NAME));
- }
- else
- {
- return sslEnabled;
- }
- }
-
- public void setSSLEnabled(boolean enabled)
- {
- this.sslEnabled = enabled;
- }
-
- public List<String> getInterceptorClassNames()
- {
- return interceptorClassNames;
- }
-
- public Set<String> getAcceptorFactoryClassNames()
- {
- return acceptorFactoryClassNames;
- }
public String getBindingsDirectory()
{
@@ -481,11 +352,6 @@
this.jmxManagementEnabled = enabled;
}
- public ConnectionParams getConnectionParams()
- {
- return this.defaultConnectionParams;
- }
-
public boolean equals(Object other)
{
if (this == other)
@@ -507,28 +373,14 @@
cother.isJournalSyncTransactional() == this.isJournalSyncTransactional() &&
cother.isRequireDestinations() == this.isRequireDestinations() &&
cother.isSecurityEnabled() == this.isSecurityEnabled() &&
- cother.isSSLEnabled() == this.isSSLEnabled() &&
cother.getBindingsDirectory().equals(this.getBindingsDirectory()) &&
- cother.getConnectionParams().equals(this.getConnectionParams()) &&
- cother.getHost().equals(this.getHost()) &&
cother.getJournalDirectory().equals(this.getJournalDirectory()) &&
cother.getJournalFileSize() == this.getJournalFileSize() &&
cother.getJournalMaxAIO() == this.getJournalMaxAIO() &&
cother.getJournalMinFiles() == this.getJournalMinFiles() &&
cother.getJournalType() == this.getJournalType() &&
- cother.getKeyStorePassword() == null ?
- this.getKeyStorePassword() == null : cother.getKeyStorePassword().equals(this.getKeyStorePassword()) &&
- cother.getKeyStorePath() == null ?
- this.getKeyStorePath() == null : cother.getKeyStorePath().equals(this.getKeyStorePath()) &&
- cother.getLocation().equals(this.getLocation()) &&
- cother.getPort() == this.getPort() &&
cother.getScheduledThreadPoolMaxSize() == this.getScheduledThreadPoolMaxSize() &&
- cother.getSecurityInvalidationInterval() == this.getSecurityInvalidationInterval() &&
- cother.getTransport() == this.getTransport() &&
- cother.getTrustStorePassword() == null ?
- this.getTrustStorePassword() == null : cother.getTrustStorePassword().equals(this.getTrustStorePassword()) &&
- cother.getTrustStorePath() == null ?
- this.getTrustStorePath() == null : cother.getTrustStorePath().equals(this.getTrustStorePath());
+ cother.getSecurityInvalidationInterval() == this.getSecurityInvalidationInterval();
}
}
Modified: trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -26,15 +26,16 @@
import java.io.Reader;
import java.net.URL;
import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Set;
+import java.util.HashMap;
+import java.util.Map;
-import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
+import org.jboss.messaging.core.config.AcceptorInfo;
import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.TransportType;
import org.jboss.messaging.core.server.JournalType;
import org.jboss.messaging.util.XMLUtil;
import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
@@ -82,71 +83,13 @@
jmxManagementEnabled = getBoolean(e, "jmx-management-enabled", jmxManagementEnabled);
securityInvalidationInterval = getLong(e, "security-invalidation-interval", securityInvalidationInterval);
-
- // Remoting config
- transport = TransportType.valueOf(getString(e, "remoting-transport", transport.toString()));
+ callTimeout = getLong(e, "call-timeout", callTimeout);
- host = getString(e, "remoting-host", host);
-
- if (System.getProperty("java.rmi.server.hostname") == null)
- {
- System.setProperty("java.rmi.server.hostname", host);
- }
-
- port = getInteger(e, "remoting-port", port);
+ packetConfirmationBatchSize = getInteger(e, "packet-confirmation-batch-size", packetConfirmationBatchSize);
- String sbackupTransport = getString(e, "remoting-backup-transport", null);
-
- if (sbackupTransport != null)
- {
- backupTransport = TransportType.valueOf(sbackupTransport);
- }
-
- backupHost = getString(e, "remoting-backup-host", backupHost);
-
- backupPort = getInteger(e, "remoting-backup-port", backupPort);
-
- int packetConfirmationBatchSize = getInteger(e, "packet-confirmation-batch-size", ConnectionParamsImpl.DEFAULT_PACKET_CONFIRMATION_BATCH_SIZE);
-
- int callTimeout = getInteger(e, "remoting-call-timeout", ConnectionParamsImpl.DEFAULT_CALL_TIMEOUT);
-
- boolean inVMOptimisationEnabled = getBoolean(e, "remoting-enable-invm-optimisation", ConnectionParamsImpl.DEFAULT_INVM_OPTIMISATION_ENABLED);
-
- boolean tcpNoDelay = getBoolean(e, "remoting-tcp-nodelay", ConnectionParamsImpl.DEFAULT_TCP_NODELAY);
-
- int tcpReceiveBufferSize = getInteger(e, "remoting-tcp-receive-buffer-size", ConnectionParamsImpl.DEFAULT_TCP_RECEIVE_BUFFER_SIZE);
-
- int tcpSendBufferSize = getInteger(e, "remoting-tcp-send-buffer-size", ConnectionParamsImpl.DEFAULT_TCP_SEND_BUFFER_SIZE);
-
- int pingInterval = getInteger(e, "remoting-ping-interval", ConnectionParamsImpl.DEFAULT_PING_INTERVAL);
-
- sslEnabled = getBoolean(e, "remoting-enable-ssl", ConnectionParamsImpl.DEFAULT_SSL_ENABLED);
-
- keyStorePath = getString(e, "remoting-ssl-keystore-path", ConfigurationImpl.DEFAULT_KEYSTORE_PATH);
-
- keyStorePassword = getString(e, "remoting-ssl-keystore-password", ConfigurationImpl.DEFAULT_KEYSTORE_PASSWORD);
-
- trustStorePath = getString(e, "remoting-ssl-truststore-path", ConfigurationImpl.DEFAULT_TRUSTSTORE_PATH);
-
- trustStorePassword = getString(e, "remoting-ssl-truststore-password", ConfigurationImpl.DEFAULT_TRUSTSTORE_PASSWORD);
-
- defaultConnectionParams.setCallTimeout(callTimeout);
-
- defaultConnectionParams.setInVMOptimisationEnabled(inVMOptimisationEnabled);
-
- defaultConnectionParams.setTcpNoDelay(tcpNoDelay);
-
- defaultConnectionParams.setTcpReceiveBufferSize(tcpReceiveBufferSize);
-
- defaultConnectionParams.setTcpSendBufferSize(tcpSendBufferSize);
-
- defaultConnectionParams.setPingInterval(pingInterval);
-
- defaultConnectionParams.setSSLEnabled(sslEnabled);
-
- defaultConnectionParams.setPacketConfirmationBatchSize(packetConfirmationBatchSize);
-
+ connectionScanPeriod = getLong(e, "connection-scan-period", connectionScanPeriod);
+
NodeList interceptorNodes = e.getElementsByTagName("remoting-interceptors");
ArrayList<String> interceptorList = new ArrayList<String>();
@@ -167,27 +110,106 @@
}
this.interceptorClassNames = interceptorList;
- NodeList acceptorFactoryNodes = e.getElementsByTagName("remoting-acceptor-factories");
+ NodeList acceptorNodes = e.getElementsByTagName("remoting-acceptors");
- Set<String> acceptorFactories = new HashSet<String>();
-
- if (acceptorFactoryNodes.getLength() > 0)
+ if (acceptorNodes.getLength() > 0)
{
- NodeList factories = acceptorFactoryNodes.item(0).getChildNodes();
-
- for (int k = 0; k < factories.getLength(); k++)
+ NodeList acceptors = acceptorNodes.item(0).getChildNodes();
+
+ for (int k = 0; k < acceptors.getLength(); k++)
{
- if ("class-name".equalsIgnoreCase(factories.item(k).getNodeName()))
+ if ("acceptor".equalsIgnoreCase(acceptors.item(k).getNodeName()))
{
- String clazz = factories.item(k).getTextContent();
+ NodeList children = acceptors.item(k).getChildNodes();
- acceptorFactories.add(clazz);
+ String clazz = null;
+
+ Map<String, Object> params = new HashMap<String, Object>();
+
+ for (int l = 0; l < children.getLength(); l++)
+ {
+ String nodeName = children.item(l).getNodeName();
+
+ if ("factory-class".equalsIgnoreCase(nodeName))
+ {
+ clazz = children.item(l).getTextContent();
+ }
+ else if ("params".equalsIgnoreCase(nodeName))
+ {
+ NodeList nlParams = children.item(l).getChildNodes();
+
+ for (int m = 0; m < nlParams.getLength(); m++)
+ {
+ if ("param".equalsIgnoreCase(nlParams.item(m).getNodeName()))
+ {
+ Node paramNode = nlParams.item(m);
+
+ NamedNodeMap attributes = paramNode.getAttributes();
+
+ Node nkey = attributes.getNamedItem("key");
+
+ String key = nkey.getTextContent();
+
+ Node nValue = attributes.getNamedItem("value");
+
+ String value = nValue.getTextContent();
+
+ Node nType = attributes.getNamedItem("type");
+
+ String type = nType.getTextContent();
+
+ if (type.equalsIgnoreCase("Integer"))
+ {
+ try
+ {
+ Integer iVal = Integer.parseInt(value);
+
+ params.put(key, iVal);
+ }
+ catch (NumberFormatException e2)
+ {
+ throw new IllegalArgumentException("Remoting acceptor parameter " + value + " is not a valid Integer");
+ }
+ }
+ else if (type.equalsIgnoreCase("Long"))
+ {
+ try
+ {
+ Long lVal = Long.parseLong(value);
+
+ params.put(key, lVal);
+ }
+ catch (NumberFormatException e2)
+ {
+ throw new IllegalArgumentException("Remoting acceptor parameter " + value + " is not a valid Long");
+ }
+ }
+ else if (type.equalsIgnoreCase("String"))
+ {
+ params.put(key, value);
+ }
+ else if (type.equalsIgnoreCase("Boolean"))
+ {
+ Boolean lVal = Boolean.parseBoolean(value);
+
+ params.put(key, lVal);
+ }
+ else
+ {
+ throw new IllegalArgumentException("Invalid parameter type " + type);
+ }
+ }
+ }
+ }
+ }
+
+ AcceptorInfo info = new AcceptorInfo(clazz, params);
+
+ acceptorInfos.add(info);
}
}
}
- this.acceptorFactoryClassNames = acceptorFactories;
-
-
+
// Persistence config
bindingsDirectory = getString(e, "bindings-directory", bindingsDirectory);
Modified: trunk/src/main/org/jboss/messaging/core/management/MessagingServerControlMBean.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/MessagingServerControlMBean.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/management/MessagingServerControlMBean.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -53,14 +53,6 @@
boolean isRequireDestinations();
- String getLocation();
-
- String getKeyStorePath();
-
- String getTrustStorePath();
-
- boolean isSSLEnabled();
-
String getBindingsDirectory();
String getJournalDirectory();
Modified: trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerControl.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerControl.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -244,16 +244,6 @@
return configuration.getJournalType().toString();
}
- public String getKeyStorePath()
- {
- return configuration.getKeyStorePath();
- }
-
- public String getLocation()
- {
- return configuration.getLocation().toString();
- }
-
public int getScheduledThreadPoolMaxSize()
{
return configuration.getScheduledThreadPoolMaxSize();
@@ -263,12 +253,7 @@
{
return configuration.getSecurityInvalidationInterval();
}
-
- public String getTrustStorePath()
- {
- return configuration.getTrustStorePath();
- }
-
+
public boolean isClustered()
{
return configuration.isClustered();
@@ -299,11 +284,6 @@
return configuration.isRequireDestinations();
}
- public boolean isSSLEnabled()
- {
- return configuration.isSSLEnabled();
- }
-
public boolean isSecurityEnabled()
{
return configuration.isSecurityEnabled();
Modified: trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -133,7 +133,7 @@
buff.putLong(timestamp);
buff.putByte(priority);
properties.encode(buff);
- buff.putInt(body.limit());
+ buff.putInt(body.limit());
buff.putBytes(body.array(), 0, body.limit());
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/ConnectionRegistry.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/ConnectionRegistry.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/ConnectionRegistry.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,8 +22,8 @@
package org.jboss.messaging.core.remoting;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
+import java.util.Map;
+
import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
/**
@@ -33,17 +33,12 @@
*/
public interface ConnectionRegistry
{
- RemotingConnection getConnection(Location location, ConnectionParams connectionParams);
+ RemotingConnection getConnection(ConnectorFactory connectorFactory, Map<String, Object> params,
+ long pingInterval, long callTimeout);
- void returnConnection(Location location);
+ void returnConnection(Object connectionID);
- void registerConnectorFactory(TransportType transportType, ConnectorFactory factory);
-
- void unregisterConnectorFactory(TransportType transportType);
-
- ConnectorFactory getConnectorFactory(final TransportType transport);
-
int size();
- int getCount(Location location);
+ int getCount(ConnectorFactory connectorFactory, Map<String, Object> params);
}
\ No newline at end of file
Modified: trunk/src/main/org/jboss/messaging/core/remoting/ConnectionRegistryLocator.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/ConnectionRegistryLocator.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/ConnectionRegistryLocator.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -21,16 +21,8 @@
*/
package org.jboss.messaging.core.remoting;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.Map;
-import java.util.Properties;
-
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.impl.ConnectionRegistryImpl;
-import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
/**
*
@@ -45,56 +37,8 @@
public static final String CONNECTOR_FACTORIES_PROPS_FILE_NAME = "jbm-connector-factories.properties";
- private static ConnectionRegistry registry;
+ private static final ConnectionRegistry registry = new ConnectionRegistryImpl();
- static
- {
- registry = new ConnectionRegistryImpl();
-
- try
- {
- ClassLoader loader = Thread.currentThread().getContextClassLoader();
-
- Enumeration<URL> urls = loader.getResources(CONNECTOR_FACTORIES_PROPS_FILE_NAME);
-
- //Only read the first one - this allows user to override the defaults by placing a file
- //with the same name before it on the classpath
- if (urls.hasMoreElements())
- {
- URL url = urls.nextElement();
-
- Properties props = new Properties();
-
- InputStream is = url.openStream();
-
- props.load(is);
-
- for (Map.Entry<Object, Object> entry: props.entrySet())
- {
- String tt = (String)entry.getKey();
- String className = (String)entry.getValue();
- TransportType transport = TransportType.valueOf(tt);
-
- try
- {
- Class<?> clazz = loader.loadClass(className);
- registry.registerConnectorFactory(transport, (ConnectorFactory)clazz.newInstance());
- }
- catch (Exception e)
- {
- log.warn("Failed to instantiate connector factory \"" + className + "\"", e);
- }
- }
-
- is.close();
- }
- }
- catch (IOException e)
- {
- log.error("Failed to load acceptor factories, e");
- }
- }
-
public static ConnectionRegistry getRegistry()
{
return registry;
Modified: trunk/src/main/org/jboss/messaging/core/remoting/RemotingConnection.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/RemotingConnection.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/RemotingConnection.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,7 +22,6 @@
package org.jboss.messaging.core.remoting;
-import org.jboss.messaging.core.client.Location;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
@@ -53,11 +52,9 @@
PacketDispatcher getPacketDispatcher();
- Location getLocation();
-
MessagingBuffer createBuffer(int size);
void fail(MessagingException me);
- void destroy();
+ void destroy();
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/RemotingHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/RemotingHandler.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/RemotingHandler.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -40,7 +40,7 @@
void closeExecutor(long executorID);
- Set<Object> scanForFailedConnections(long expirePeriod);
+ Set<Object> scanForFailedConnections();
- void removeLastPing(Object connectionID);
+ void removeExpireTime(Object connectionID);
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/RemotingService.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/RemotingService.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/RemotingService.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -24,7 +24,6 @@
import java.util.Set;
-import org.jboss.messaging.core.remoting.spi.AcceptorFactory;
import org.jboss.messaging.core.server.MessagingComponent;
/**
@@ -40,8 +39,4 @@
RemotingConnection getConnection(Object remotingConnectionID);
Set<RemotingConnection> getConnections();
-
- void registerAcceptorFactory(AcceptorFactory factory);
-
- void unregisterAcceptorFactory(AcceptorFactory factory);
}
Deleted: trunk/src/main/org/jboss/messaging/core/remoting/TransportType.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/TransportType.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/TransportType.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -1,35 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.messaging.core.remoting;
-
-/**
- * The transport types supported by JBoss Messaging.
- *
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>.
- *
- * @version <tt>$Revision$</tt>
- */
-public enum TransportType
-{
- TCP, HTTP, INVM;
-}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectionRegistryImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectionRegistryImpl.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/ConnectionRegistryImpl.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -26,15 +26,12 @@
import java.util.Map;
import java.util.concurrent.ScheduledThreadPoolExecutor;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.ConnectionRegistry;
import org.jboss.messaging.core.remoting.PacketDispatcher;
import org.jboss.messaging.core.remoting.RemotingConnection;
import org.jboss.messaging.core.remoting.RemotingHandler;
-import org.jboss.messaging.core.remoting.TransportType;
import org.jboss.messaging.core.remoting.spi.Connection;
import org.jboss.messaging.core.remoting.spi.ConnectionLifeCycleListener;
import org.jboss.messaging.core.remoting.spi.Connector;
@@ -55,37 +52,34 @@
// Attributes ----------------------------------------------------
- private final Map<String, ConnectionHolder> connections = new HashMap<String, ConnectionHolder>();
+ private final Map<RegistryKey, ConnectionHolder> connections = new HashMap<RegistryKey, ConnectionHolder>();
- private final Map<TransportType, ConnectorFactory> connectorFactories = new HashMap<TransportType, ConnectorFactory>();
+ // private final Map<Object, RemotingConnection> remotingConnections = new HashMap<Object, RemotingConnection>();
+
+ private final Map<Object, RegistryKey> reverseMap = new HashMap<Object, RegistryKey>();
- private final Map<Object, RemotingConnection> remotingConnections = new HashMap<Object, RemotingConnection>();
-
//TODO - core pool size should be configurable
- private final ScheduledThreadPoolExecutor pingExecutor = new ScheduledThreadPoolExecutor(20, new JBMThreadFactory("jbm-pinger-threads"));
+ private final ScheduledThreadPoolExecutor pingExecutor =
+ new ScheduledThreadPoolExecutor(10, new JBMThreadFactory("jbm-pinger-threads"));
// Static --------------------------------------------------------
// ConnectionRegistry implementation -----------------------------
-
- public synchronized RemotingConnection getConnection(final Location location,
- final ConnectionParams connectionParams)
+
+ public synchronized RemotingConnection getConnection(final ConnectorFactory connectorFactory,
+ final Map<String, Object> params,
+ final long pingInterval, final long callTimeout)
{
- String key = location.getLocation();
+ RegistryKey key = new RegistryKey(connectorFactory, params);
ConnectionHolder holder = connections.get(key);
-
+
if (holder != null)
{
holder.increment();
-
+
RemotingConnection connection = holder.getConnection();
- if (log.isDebugEnabled())
- {
- log.debug("Reusing " + connection + " to connect to " + key + " [count=" + holder.getCount() + "]");
- }
-
return connection;
}
else
@@ -94,76 +88,66 @@
RemotingHandler handler = new RemotingHandlerImpl(dispatcher, null);
- ConnectorFactory factory = connectorFactories.get(location.getTransport());
+ Connector connector = connectorFactory.createConnector(params, handler, this);
- if (factory == null)
- {
- throw new IllegalStateException("No connector factory registered for transport " + location.getTransport());
- }
-
- Connector connector = factory.createConnector(location, connectionParams, handler, this);
-
connector.start();
Connection tc = connector.createConnection();
if (tc == null)
{
- throw new IllegalStateException("Failed to connect to " + location);
+ throw new IllegalStateException("Failed to connect");
}
- long pingInterval = connectionParams.getPingInterval();
RemotingConnection connection;
if (pingInterval != -1)
{
- connection = new RemotingConnectionImpl(tc, dispatcher, location,
- connectionParams.getCallTimeout(), connectionParams.getPingInterval(), pingExecutor);
+ connection = new RemotingConnectionImpl(tc, dispatcher,
+ callTimeout, pingInterval, pingExecutor);
}
else
{
- connection = new RemotingConnectionImpl(tc, dispatcher, location,
- connectionParams.getCallTimeout());
+ connection = new RemotingConnectionImpl(tc, dispatcher,
+ callTimeout);
}
-
- remotingConnections.put(tc.getID(), connection);
-
- if (log.isDebugEnabled())
- {
- log.debug("Created " + connector + " to connect to " + location);
- }
-
+
holder = new ConnectionHolder(connection, connector);
+
connections.put(key, holder);
+
+ reverseMap.put(tc.getID(), key);
return connection;
}
}
- public synchronized void returnConnection(final Location location)
+ public synchronized void returnConnection(final Object connectionID)
{
- String key = location.getLocation();
+ RegistryKey key = reverseMap.get(connectionID);
- ConnectionHolder holder = connections.get(key);
-
- if (holder == null)
+ if (key == null)
{
//This is ok and might happen if connection is returned after an error occurred on it in which
//case it will have already automatically been closed and removed
log.warn("Connection not found when returning - probably connection has failed and been automatically removed");
return;
}
-
+
+ ConnectionHolder holder = connections.get(key);
+
if (holder.getCount() == 1)
{
- RemotingConnection conn = remotingConnections.remove(holder.getConnection().getID());
-
+ RemotingConnection conn = holder.getConnection();
+
+ reverseMap.remove(connectionID);
+
+ connections.remove(key);
+
conn.destroy();
holder.getConnector().close();
-
- connections.remove(key);
}
else
{
@@ -176,25 +160,12 @@
return connections.size();
}
- public synchronized void registerConnectorFactory(final TransportType transport, final ConnectorFactory factory)
+ public synchronized int getCount(final ConnectorFactory connectorFactory, final Map<String, Object> params)
{
- connectorFactories.put(transport, factory);
- }
-
- public synchronized void unregisterConnectorFactory(final TransportType transport)
- {
- connectorFactories.remove(transport);
- }
-
- public synchronized ConnectorFactory getConnectorFactory(final TransportType transport)
- {
- return connectorFactories.get(transport);
- }
-
- public synchronized int getCount(final Location location)
- {
- ConnectionHolder holder = connections.get(location.getLocation());
+ RegistryKey key = new RegistryKey(connectorFactory, params);
+ ConnectionHolder holder = connections.get(key);
+
if (holder != null)
{
return holder.getCount();
@@ -217,34 +188,34 @@
public void connectionDestroyed(final Object connectionID)
{
- RemotingConnection conn = remotingConnections.remove(connectionID);
-
- if (conn != null)
+ RegistryKey key = reverseMap.remove(connectionID);
+
+ if (key != null)
{
- ConnectionHolder holder = connections.remove(conn.getLocation().getLocation());
+ ConnectionHolder holder = connections.remove(key);
//If conn still exists here this means that the underlying transport connection has been closed from the server side without
//being returned from the client side so we need to fail the connection and call it's listeners
MessagingException me = new MessagingException(MessagingException.OBJECT_CLOSED,
"The connection has been closed.");
- conn.fail(me);
+ holder.getConnection().fail(me);
holder.getConnector().close();
}
}
public void connectionException(final Object connectionID, final MessagingException me)
- {
- RemotingConnection conn = remotingConnections.remove(connectionID);
+ {
+ RegistryKey key = reverseMap.remove(connectionID);
- if (conn == null)
+ if (key == null)
{
throw new IllegalStateException("Cannot find connection with id " + connectionID);
}
- ConnectionHolder holder = connections.remove(conn.getLocation().getLocation());
+ ConnectionHolder holder = connections.remove(key);
- conn.fail(me);
+ holder.getConnection().fail(me);
holder.getConnector().close();
}
@@ -299,4 +270,62 @@
return connector;
}
}
+
+ private class RegistryKey
+ {
+ private final String connectorFactoryClassName;
+
+ private final Map<String, Object> params;
+
+ RegistryKey(final ConnectorFactory connectorFactory, final Map<String, Object> params)
+ {
+ this.connectorFactoryClassName = connectorFactory.getClass().getName();
+
+ this.params = params;
+ }
+
+ public boolean equals(Object other)
+ {
+ RegistryKey kother = (RegistryKey)other;
+
+ if (this.connectorFactoryClassName.equals(kother.connectorFactoryClassName))
+ {
+ if (this.params == null)
+ {
+ return kother.params == null;
+ }
+ else
+ {
+ if (this.params.size() == kother.params.size())
+ {
+ for (Map.Entry<String, Object> entry: this.params.entrySet())
+ {
+ Object thisVal = entry.getValue();
+
+ Object otherVal = kother.params.get(entry.getKey());
+
+ if (otherVal == null || !otherVal.equals(thisVal))
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ public int hashCode()
+ {
+ return connectorFactoryClassName.hashCode();
+ }
+ }
}
Deleted: trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConfigurationValidator.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConfigurationValidator.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConfigurationValidator.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -1,100 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.messaging.core.remoting.impl;
-
-import static org.jboss.messaging.core.remoting.TransportType.INVM;
-
-import org.jboss.messaging.core.config.Configuration;
-import org.jboss.messaging.core.logging.Logger;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- *
- * @version <tt>$Revision$</tt>
- *
- */
-public class RemotingConfigurationValidator
-{
- // Constants -----------------------------------------------------
-
- private static final Logger log = Logger.getLogger(RemotingConfigurationValidator.class);
-
- // Attributes ----------------------------------------------------
-
- // Static --------------------------------------------------------
-
- public static void validate(Configuration configuration)
- {
- if(configuration == null)
- {
- throw new IllegalStateException("Config must not be null");
- }
- if (configuration.getTransport() == INVM
- && !configuration.getConnectionParams().isInVMOptimisationEnabled())
- {
- throw new IllegalStateException(
- "It is not allowed to disable invm communication when the transport is set to invm.");
- }
- if (configuration.getTransport() == INVM
- && configuration.isSSLEnabled())
- {
- throw new IllegalStateException(
- "It is not allowed to enable SSL when the transport is set to invm.");
- }
- if (configuration.getTransport() != INVM
- && configuration.getPort() <= 0)
- {
- throw new IllegalStateException("Remoting port can not be negative when transport is not INVM");
- }
-
- int receiveBufferSize = configuration.getConnectionParams().getTcpReceiveBufferSize();
- if (receiveBufferSize != -1 && receiveBufferSize <= 0)
- {
- String message = "Invalid value for TCP receive buffer size: " + receiveBufferSize;
- message += ". Value must be either -1 (not specified) or greater than 0";
- throw new IllegalStateException(message);
- }
-
- int sendBufferSize = configuration.getConnectionParams().getTcpSendBufferSize();
- if (sendBufferSize != -1 && sendBufferSize <= 0)
- {
- String message = "Invalid value for TCP send buffer size: " + sendBufferSize;
- message += ". Value must be either -1 (not specified) or greater than 0";
- throw new IllegalStateException(message);
- }
-
- if (log.isDebugEnabled())
- log.debug("configuration is valid.");
- }
- // Constructors --------------------------------------------------
-
- // Public --------------------------------------------------------
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- // Private -------------------------------------------------------
-
- // Inner classes -------------------------------------------------
-}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingConnectionImpl.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -28,7 +28,6 @@
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
-import org.jboss.messaging.core.client.Location;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.CommandManager;
@@ -38,6 +37,7 @@
import org.jboss.messaging.core.remoting.PacketHandler;
import org.jboss.messaging.core.remoting.RemotingConnection;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
+import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
import org.jboss.messaging.core.remoting.spi.Connection;
import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
@@ -53,6 +53,8 @@
// ------------------------------------------------------------------------------------
private static final Logger log = Logger.getLogger(RemotingConnectionImpl.class);
+
+ private static final float EXPIRE_FACTOR = 1.5f;
// Static
// ---------------------------------------------------------------------------------------
@@ -66,8 +68,6 @@
private final PacketDispatcher dispatcher;
- private final Location location;
-
private final long blockingCallTimeout;
private ScheduledFuture<?> future;
@@ -81,12 +81,16 @@
private volatile PacketHandler pongHandler;
private volatile boolean destroyed;
-
+
+ private long expirePeriod;
+
+ private volatile boolean stopPinging;
+
// Constructors
// ---------------------------------------------------------------------------------
public RemotingConnectionImpl(final Connection transportConnection,
- final PacketDispatcher dispatcher, final Location location,
+ final PacketDispatcher dispatcher,
final long blockingCallTimeout, final long pingPeriod,
final ScheduledExecutorService pingExecutor)
{
@@ -94,13 +98,13 @@
this.dispatcher = dispatcher;
- this.location = location;
-
this.blockingCallTimeout = blockingCallTimeout;
pinger = new Pinger();
pongHandler = new PongHandler(dispatcher.generateID());
+
+ expirePeriod = (long)(EXPIRE_FACTOR * pingPeriod);
dispatcher.register(pongHandler);
@@ -109,21 +113,16 @@
}
public RemotingConnectionImpl(final Connection transportConnection,
- final PacketDispatcher dispatcher, final Location location,
+ final PacketDispatcher dispatcher,
final long blockingCallTimeout)
{
this.transportConnection = transportConnection;
this.dispatcher = dispatcher;
- this.location = location;
-
this.blockingCallTimeout = blockingCallTimeout;
}
- // Public
- // ---------------------------------------------------------------------------------------
-
// RemotingConnection implementation
// ------------------------------------------------------------
@@ -212,11 +211,6 @@
return dispatcher;
}
- public Location getLocation()
- {
- return location;
- }
-
public MessagingBuffer createBuffer(final int size)
{
return transportConnection.createBuffer(size);
@@ -266,6 +260,12 @@
// We close the underlying transport connection
transportConnection.close();
}
+
+ /* For testing only */
+ public void stopPingingAfterOne()
+ {
+ stopPinging = true;
+ }
// Package protected
// ----------------------------------------------------------------------------
@@ -311,11 +311,11 @@
firstTime = false;
// Send ping
- Packet ping = new PacketImpl(PacketImpl.PING);
+ Packet ping = new Ping(expirePeriod);
ping.setTargetID(0);
ping.setExecutorID(0);
ping.setResponseTargetID(pongHandler.getID());
-
+
doWrite(ping);
}
}
@@ -336,7 +336,16 @@
public void handle(Object connectionID, Packet packet)
{
+ if (packet.getType() != PacketImpl.PONG)
+ {
+ throw new IllegalStateException("Didn't receive pong, received " + packet.getType());
+ }
gotPong = true;
+
+ if (stopPinging)
+ {
+ future.cancel(true);
+ }
}
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingHandlerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingHandlerImpl.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingHandlerImpl.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -45,6 +45,7 @@
import org.jboss.messaging.core.remoting.impl.wireformat.MessagingExceptionMessage;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketsConfirmedMessage;
+import org.jboss.messaging.core.remoting.impl.wireformat.Ping;
import org.jboss.messaging.core.remoting.impl.wireformat.ProducerFlowCreditMessage;
import org.jboss.messaging.core.remoting.impl.wireformat.ProducerSendMessage;
import org.jboss.messaging.core.remoting.impl.wireformat.ReceiveMessage;
@@ -101,7 +102,7 @@
private final ConcurrentMap<Long, Executor> executors = new ConcurrentHashMap<Long, Executor>();
- private final ConcurrentMap<Object, Long> lastPings = new ConcurrentHashMap<Object, Long>();
+ private final ConcurrentMap<Object, Long> expireTimes = new ConcurrentHashMap<Object, Long>();
public RemotingHandlerImpl(final PacketDispatcher dispatcher, final ExecutorService executorService)
{
@@ -122,17 +123,17 @@
}
}
- public Set<Object> scanForFailedConnections(final long expirePeriod)
+ public Set<Object> scanForFailedConnections()
{
long now = System.currentTimeMillis();
-
+
Set<Object> failedIDs = new HashSet<Object>();
- for (Map.Entry<Object, Long> entry: lastPings.entrySet())
+ for (Map.Entry<Object, Long> entry: expireTimes.entrySet())
{
- long lastPing = entry.getValue();
-
- if (now - lastPing > expirePeriod)
+ long expireTime = entry.getValue();
+
+ if (now >= expireTime)
{
failedIDs.add(entry.getKey());
}
@@ -209,9 +210,9 @@
}
}
- public void removeLastPing(final Object connectionID)
+ public void removeExpireTime(final Object connectionID)
{
- lastPings.remove(connectionID);
+ expireTimes.remove(connectionID);
}
// Public ------------------------------------------------------------------------------
@@ -235,10 +236,11 @@
break;
}
case PING:
- {
- lastPings.put(connectionID, System.currentTimeMillis());
- packet = new PacketImpl(PacketImpl.PING);
- break;
+ {
+ packet = new Ping();
+ packet.decode(in);
+ expireTimes.put(connectionID, System.currentTimeMillis() + ((Ping)packet).getExpirePeriod());
+ return packet;
}
case PONG:
{
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingServiceImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingServiceImpl.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/RemotingServiceImpl.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,8 +22,6 @@
package org.jboss.messaging.core.remoting.impl;
-import static org.jboss.messaging.core.remoting.impl.RemotingConfigurationValidator.validate;
-
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@@ -33,6 +31,7 @@
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
+import org.jboss.messaging.core.config.AcceptorInfo;
import org.jboss.messaging.core.config.Configuration;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.logging.Logger;
@@ -64,25 +63,25 @@
private volatile boolean started = false;
- private final Configuration config;
+ private final Set<AcceptorInfo> acceptorInfos;
+
+ private Set<Acceptor> acceptors = new HashSet<Acceptor>();
- private final Set<Acceptor> acceptors = new HashSet<Acceptor>();
-
private final PacketDispatcher dispatcher;
private final ExecutorService remotingExecutor;
private RemotingHandler handler;
- private final long connectionExpirePeriod;
+ private final long callTimeout;
private final Map<Object, RemotingConnection> connections = new ConcurrentHashMap<Object, RemotingConnection>();
- private final Set<AcceptorFactory> acceptorFactories = new HashSet<AcceptorFactory>();
-
private final Timer failedConnectionTimer = new Timer(true);
private TimerTask failedConnectionsTask;
+
+ private final long connectionScanPeriod;
// Static --------------------------------------------------------
@@ -90,27 +89,16 @@
public RemotingServiceImpl(final Configuration config)
{
- validate(config);
-
- this.config = config;
-
dispatcher = new PacketDispatcherImpl(null);
remotingExecutor = Executors.newCachedThreadPool(new JBMThreadFactory("JBM-session-ordering-threads"));
handler = new RemotingHandlerImpl(dispatcher, remotingExecutor);
-
- long pingPeriod = config.getConnectionParams().getPingInterval();
-
- if (pingPeriod != -1)
- {
- connectionExpirePeriod = (long)(1.5 * pingPeriod);
- }
- else
- {
- connectionExpirePeriod = -1;
- }
-
+
+ final long callTimeout = config.getCallTimeout();
+
+ this.acceptorInfos = config.getAcceptorInfos();
+
ClassLoader loader = Thread.currentThread().getContextClassLoader();
for (String interceptorClass : config.getInterceptorClassNames())
{
@@ -124,19 +112,10 @@
log.warn("Error instantiating interceptor \"" + interceptorClass + "\"", e);
}
}
-
- for (String factoryClass: config.getAcceptorFactoryClassNames())
- {
- try
- {
- Class<?> clazz = loader.loadClass(factoryClass);
- acceptorFactories.add((AcceptorFactory)clazz.newInstance());
- }
- catch (Exception e)
- {
- log.warn("Error instantiating interceptor \"" + factoryClass + "\"", e);
- }
- }
+
+ this.callTimeout = callTimeout;
+
+ this.connectionScanPeriod = config.getConnectionScanPeriod();
}
// RemotingService implementation -------------------------------
@@ -147,12 +126,25 @@
{
return;
}
-
- for (AcceptorFactory factory: acceptorFactories)
+
+ ClassLoader loader = Thread.currentThread().getContextClassLoader();
+
+ for (AcceptorInfo info: acceptorInfos)
{
- Acceptor acceptor = factory.createAcceptor(config, handler, this);
+ try
+ {
+ Class<?> clazz = loader.loadClass(info.getFactoryClassName());
+
+ AcceptorFactory factory = (AcceptorFactory)clazz.newInstance();
+
+ Acceptor acceptor = factory.createAcceptor(info.getParams(), handler, this);
- acceptors.add(acceptor);
+ acceptors.add(acceptor);
+ }
+ catch (Exception e)
+ {
+ log.warn("Error instantiating acceptor \"" + info.getFactoryClassName() + "\"", e);
+ }
}
for (Acceptor a : acceptors)
@@ -160,13 +152,10 @@
a.start();
}
- if (connectionExpirePeriod != -1)
- {
- failedConnectionsTask = new FailedConnectionsTask();
+ failedConnectionsTask = new FailedConnectionsTask();
- failedConnectionTimer.schedule(failedConnectionsTask, 0, 1000);
- }
-
+ failedConnectionTimer.schedule(failedConnectionsTask, connectionScanPeriod, connectionScanPeriod);
+
started = true;
}
@@ -212,16 +201,6 @@
return connections.get(remotingConnectionID);
}
- public synchronized void registerAcceptorFactory(final AcceptorFactory factory)
- {
- acceptorFactories.add(factory);
- }
-
- public synchronized void unregisterAcceptorFactory(final AcceptorFactory factory)
- {
- acceptorFactories.remove(factory);
- }
-
public synchronized Set<RemotingConnection> getConnections()
{
return new HashSet<RemotingConnection>(connections.values());
@@ -244,14 +223,16 @@
// }
RemotingConnection rc =
- new RemotingConnectionImpl(connection, dispatcher, config.getLocation(), config.getConnectionParams().getCallTimeout());
+ new RemotingConnectionImpl(connection, dispatcher, callTimeout);
- connections.put(connection.getID(), rc);
+ Object id = connection.getID();
+
+ connections.put(id, rc);
}
public void connectionDestroyed(Object connectionID)
{
- handler.removeLastPing(connectionID);
+ handler.removeExpireTime(connectionID);
if (connections.remove(connectionID) == null)
{
@@ -262,7 +243,7 @@
public void connectionException(Object connectionID, MessagingException me)
{
RemotingConnection rc = connections.remove(connectionID);
-
+
if (rc == null)
{
throw new IllegalStateException("Cannot find connection with id " + connectionID);
@@ -301,10 +282,11 @@
return;
}
- Set<Object> failedIDs = handler.scanForFailedConnections(connectionExpirePeriod);
-
+ Set<Object> failedIDs = handler.scanForFailedConnections();
+
for (Object id: failedIDs)
{
+ log.info("Got failed connection " + id);
RemotingConnection conn = connections.get(id);
if (conn == null)
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMAcceptor.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMAcceptor.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMAcceptor.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -21,6 +21,7 @@
*/
package org.jboss.messaging.core.remoting.impl.invm;
+import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
@@ -29,6 +30,7 @@
import org.jboss.messaging.core.remoting.spi.Acceptor;
import org.jboss.messaging.core.remoting.spi.Connection;
import org.jboss.messaging.core.remoting.spi.ConnectionLifeCycleListener;
+import org.jboss.messaging.util.ConfigurationHelper;
/**
* A InVMAcceptor
@@ -47,15 +49,17 @@
private ConcurrentMap<String, Connection> connections = new ConcurrentHashMap<String, Connection>();
private volatile boolean started;
+
+ private volatile InVMConnector connector;
- public InVMAcceptor(final int id, final RemotingHandler handler,
+ public InVMAcceptor(final Map<String, Object> configuration, final RemotingHandler handler,
final ConnectionLifeCycleListener listener)
{
- this.id = id;
-
this.handler = handler;
- this.listener = listener;
+ this.listener = listener;
+
+ this.id = ConfigurationHelper.getIntProperty(TransportConstants.SERVER_ID_PROP_NAME, 0, configuration);
}
public synchronized void start() throws Exception
@@ -108,6 +112,8 @@
throw new IllegalStateException("Acceptor is not started");
}
+ connector = InVMRegistry.instance.getConnector(id);
+
new InVMConnection(connectionID, remoteHandler, new Listener());
}
@@ -128,7 +134,7 @@
private class Listener implements ConnectionLifeCycleListener
{
- public void connectionCreated(Connection connection)
+ public void connectionCreated(final Connection connection)
{
if (connections.putIfAbsent((String)connection.getID(), connection) != null)
{
@@ -138,17 +144,20 @@
listener.connectionCreated(connection);
}
- public void connectionDestroyed(Object connectionID)
+ public void connectionDestroyed(final Object connectionID)
{
- if (connections.remove(connectionID) != null)
+ if (connections.remove(connectionID) == null)
{
throw new IllegalArgumentException("Cannot find connection with id " + connectionID + " to remove");
}
+ //Remove on the other side too
+ connector.disconnect((String)connectionID);
+
listener.connectionDestroyed(connectionID);
}
- public void connectionException(Object connectionID, MessagingException me)
+ public void connectionException(final Object connectionID, final MessagingException me)
{
listener.connectionException(connectionID, me);
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMAcceptorFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMAcceptorFactory.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMAcceptorFactory.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -21,6 +21,8 @@
*/
package org.jboss.messaging.core.remoting.impl.invm;
+import java.util.Map;
+
import org.jboss.messaging.core.config.Configuration;
import org.jboss.messaging.core.remoting.RemotingHandler;
import org.jboss.messaging.core.remoting.spi.Acceptor;
@@ -36,10 +38,10 @@
public class InVMAcceptorFactory implements AcceptorFactory
{
- public Acceptor createAcceptor(final Configuration configuration,
+ public Acceptor createAcceptor(final Map<String, Object> configuration,
final RemotingHandler handler, final ConnectionLifeCycleListener listener)
{
- return new InVMAcceptor(configuration.getServerID(), handler, listener);
+ return new InVMAcceptor(configuration, handler, listener);
}
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMConnector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMConnector.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMConnector.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -21,11 +21,17 @@
*/
package org.jboss.messaging.core.remoting.impl.invm;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.RemotingHandler;
import org.jboss.messaging.core.remoting.spi.Connection;
import org.jboss.messaging.core.remoting.spi.ConnectionLifeCycleListener;
import org.jboss.messaging.core.remoting.spi.Connector;
+import org.jboss.messaging.util.ConfigurationHelper;
/**
* A InVMConnector
@@ -35,6 +41,8 @@
*/
public class InVMConnector implements Connector
{
+ public static final Logger log = Logger.getLogger(InVMConnector.class);
+
private final int id;
private final RemotingHandler handler;
@@ -43,15 +51,19 @@
private final InVMAcceptor acceptor;
- public InVMConnector(final int id, final RemotingHandler handler,
+ private ConcurrentMap<String, Connection> connections = new ConcurrentHashMap<String, Connection>();
+
+ private volatile boolean started;
+
+ public InVMConnector(final Map<String, Object> configuration, final RemotingHandler handler,
final ConnectionLifeCycleListener listener)
{
- this.id = id;
-
this.handler = handler;
this.listener = listener;
+ this.id = ConfigurationHelper.getIntProperty(TransportConstants.SERVER_ID_PROP_NAME, 0, configuration);
+
InVMRegistry registry = InVMRegistry.instance;
registry.registerConnector(id, this);
@@ -64,9 +76,23 @@
}
}
- public void close()
+ public synchronized void close()
{
- InVMRegistry.instance.unregisterConnector(id);
+ if (!started)
+ {
+ return;
+ }
+
+ for (Connection connection: connections.values())
+ {
+ listener.connectionDestroyed(connection.getID());
+ }
+
+ connections.clear();
+
+ InVMRegistry.instance.unregisterConnector(id);
+
+ started = false;
}
public Connection createConnection()
@@ -78,8 +104,9 @@
return conn;
}
- public void start()
+ public synchronized void start()
{
+ started = true;
}
public RemotingHandler getHandler()
@@ -87,22 +114,47 @@
return handler;
}
+ public void disconnect(final String connectionID)
+ {
+ if (!started)
+ {
+ throw new IllegalStateException("Acceptor is not started");
+ }
+
+ Connection conn = connections.get(connectionID);
+
+ if (conn != null)
+ {
+ conn.close();
+ }
+ }
+
private class Listener implements ConnectionLifeCycleListener
{
- public void connectionCreated(Connection connection)
- {
+ public void connectionCreated(final Connection connection)
+ {
+ if (connections.putIfAbsent((String)connection.getID(), connection) != null)
+ {
+ throw new IllegalArgumentException("Connection already exists with id " + connection.getID());
+ }
+
listener.connectionCreated(connection);
}
- public void connectionDestroyed(Object connectionID)
- {
+ public void connectionDestroyed(final Object connectionID)
+ {
+ if (connections.remove(connectionID) == null)
+ {
+ throw new IllegalArgumentException("Cannot find connection with id " + connectionID + " to remove");
+ }
+
//Close the correspond connection on the other side
acceptor.disconnect((String)connectionID);
listener.connectionDestroyed(connectionID);
}
- public void connectionException(Object connectionID, MessagingException me)
+ public void connectionException(final Object connectionID, final MessagingException me)
{
listener.connectionException(connectionID, me);
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMConnectorFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMConnectorFactory.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/InVMConnectorFactory.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -21,8 +21,8 @@
*/
package org.jboss.messaging.core.remoting.impl.invm;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
+import java.util.Map;
+
import org.jboss.messaging.core.remoting.RemotingHandler;
import org.jboss.messaging.core.remoting.spi.ConnectionLifeCycleListener;
import org.jboss.messaging.core.remoting.spi.Connector;
@@ -36,10 +36,10 @@
*/
public class InVMConnectorFactory implements ConnectorFactory
{
- public Connector createConnector(final Location location, final ConnectionParams params,
+ public Connector createConnector(final Map<String, Object> configuration,
final RemotingHandler handler, final ConnectionLifeCycleListener listener)
{
- return new InVMConnector(location.getServerID(), handler, listener);
+ return new InVMConnector(configuration, handler, listener);
}
}
Added: trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/TransportConstants.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/TransportConstants.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/invm/TransportConstants.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -0,0 +1,33 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, 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.messaging.core.remoting.impl.invm;
+
+/**
+ * A TransportConstants
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ *
+ */
+public class TransportConstants
+{
+ public static final String SERVER_ID_PROP_NAME = "jbm.remoting.invm.serverid";
+}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaAcceptor.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaAcceptor.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaAcceptor.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,7 +22,29 @@
package org.jboss.messaging.core.remoting.impl.mina;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_HOST;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_KEYSTORE_PASSWORD;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_KEYSTORE_PATH;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_PORT;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_SSL_ENABLED;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_TCP_NODELAY;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_TCP_RECEIVEBUFFER_SIZE;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_TCP_SENDBUFFER_SIZE;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_TRUSTSTORE_PASSWORD;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_TRUSTSTORE_PATH;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.HOST_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.KEYSTORE_PASSWORD_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.KEYSTORE_PATH_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.PORT_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.SSL_ENABLED_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.TCP_NODELAY_PROPNAME;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.TCP_RECEIVEBUFFER_SIZE_PROPNAME;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.TCP_SENDBUFFER_SIZE_PROPNAME;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.TRUSTSTORE_PASSWORD_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.TRUSTSTORE_PATH_PROP_NAME;
+
import java.net.InetSocketAddress;
+import java.util.Map;
import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
@@ -33,14 +55,15 @@
import org.apache.mina.core.session.IoSession;
import org.apache.mina.transport.socket.SocketAcceptor;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
-import org.jboss.messaging.core.config.Configuration;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.RemotingHandler;
import org.jboss.messaging.core.remoting.spi.Acceptor;
import org.jboss.messaging.core.remoting.spi.Connection;
import org.jboss.messaging.core.remoting.spi.ConnectionLifeCycleListener;
+import org.jboss.messaging.util.ConfigurationHelper;
+
/**
* A Mina TCP Acceptor that supports SSL
*
@@ -49,26 +72,78 @@
*/
public class MinaAcceptor implements Acceptor
{
- private static final Logger log = Logger.getLogger(MinaAcceptor.class);
+ public static final Logger log = Logger.getLogger(MinaAcceptor.class);
+
+
+ // Attributes ------------------------------------------------------------------------------------
private SocketAcceptor acceptor;
private IoServiceListener acceptorListener;
- private final Configuration configuration;
-
private final RemotingHandler handler;
private final ConnectionLifeCycleListener listener;
+
+ private final boolean sslEnabled;
+
+ private final String host;
- public MinaAcceptor(final Configuration configuration, final RemotingHandler handler,
+ private final int port;
+
+ private final String keyStorePath;
+
+ private final String keyStorePassword;
+
+ private final String trustStorePath;
+
+ private final String trustStorePassword;
+
+ private final boolean tcpNoDelay;
+
+ private final int tcpSendBufferSize;
+
+ private final int tcpReceiveBufferSize;
+
+ public MinaAcceptor(final Map<String, Object> configuration, final RemotingHandler handler,
final ConnectionLifeCycleListener listener)
{
- this.configuration = configuration;
-
this.handler = handler;
this.listener = listener;
+
+ this.sslEnabled =
+ ConfigurationHelper.getBooleanProperty(SSL_ENABLED_PROP_NAME, DEFAULT_SSL_ENABLED, configuration);
+ this.host =
+ ConfigurationHelper.getStringProperty(HOST_PROP_NAME, DEFAULT_HOST, configuration);
+ this.port =
+ ConfigurationHelper.getIntProperty(PORT_PROP_NAME, DEFAULT_PORT, configuration);
+ if (sslEnabled)
+ {
+ this.keyStorePath =
+ ConfigurationHelper.getStringProperty(KEYSTORE_PATH_PROP_NAME, DEFAULT_KEYSTORE_PATH, configuration);
+ this.keyStorePassword =
+ ConfigurationHelper.getStringProperty(KEYSTORE_PASSWORD_PROP_NAME, DEFAULT_KEYSTORE_PASSWORD, configuration);
+ this.trustStorePath =
+ ConfigurationHelper.getStringProperty(TRUSTSTORE_PATH_PROP_NAME, DEFAULT_TRUSTSTORE_PATH, configuration);
+ this.trustStorePassword =
+ ConfigurationHelper.getStringProperty(TRUSTSTORE_PASSWORD_PROP_NAME, DEFAULT_TRUSTSTORE_PASSWORD, configuration);
+ }
+ else
+ {
+ this.keyStorePath = null;
+ this.keyStorePassword = null;
+ this.trustStorePath = null;
+ this.trustStorePassword = null;
+ }
+
+ this.tcpNoDelay =
+ ConfigurationHelper.getBooleanProperty(TCP_NODELAY_PROPNAME, DEFAULT_TCP_NODELAY, configuration);
+ this.tcpSendBufferSize =
+ ConfigurationHelper.getIntProperty(TCP_SENDBUFFER_SIZE_PROPNAME, DEFAULT_TCP_SENDBUFFER_SIZE, configuration);
+ this.tcpReceiveBufferSize =
+ ConfigurationHelper.getIntProperty(TCP_RECEIVEBUFFER_SIZE_PROPNAME, DEFAULT_TCP_RECEIVEBUFFER_SIZE, configuration);
+
}
public synchronized void start() throws Exception
@@ -85,27 +160,25 @@
DefaultIoFilterChainBuilder filterChain = acceptor.getFilterChain();
- if (configuration.isSSLEnabled())
+ if (sslEnabled)
{
- FilterChainSupport.addSSLFilter(filterChain, false, configuration.getKeyStorePath(),
- configuration.getKeyStorePassword(),
- configuration.getTrustStorePath(),
- configuration.getTrustStorePassword());
+ FilterChainSupport.addSSLFilter(filterChain, false, keyStorePath,
+ keyStorePassword,
+ trustStorePath,
+ trustStorePassword);
}
FilterChainSupport.addCodecFilter(filterChain, handler);
// Bind
- acceptor.setDefaultLocalAddress(new InetSocketAddress(configuration.getHost(), configuration.getPort()));
- acceptor.getSessionConfig().setTcpNoDelay(configuration.getConnectionParams().isTcpNoDelay());
- int receiveBufferSize = configuration.getConnectionParams().getTcpReceiveBufferSize();
- if (receiveBufferSize != -1)
+ acceptor.setDefaultLocalAddress(new InetSocketAddress(host, port));
+ acceptor.getSessionConfig().setTcpNoDelay(tcpNoDelay);
+ if (tcpReceiveBufferSize != -1)
{
- acceptor.getSessionConfig().setReceiveBufferSize(receiveBufferSize);
- }
- int sendBufferSize = configuration.getConnectionParams().getTcpSendBufferSize();
- if (sendBufferSize != -1)
+ acceptor.getSessionConfig().setReceiveBufferSize(tcpReceiveBufferSize);
+ }
+ if (tcpSendBufferSize != -1)
{
- acceptor.getSessionConfig().setSendBufferSize(sendBufferSize);
+ acceptor.getSessionConfig().setSendBufferSize(tcpSendBufferSize);
}
acceptor.setReuseAddress(true);
acceptor.getSessionConfig().setReuseAddress(true);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaAcceptorFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaAcceptorFactory.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaAcceptorFactory.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,7 +22,8 @@
package org.jboss.messaging.core.remoting.impl.mina;
-import org.jboss.messaging.core.config.Configuration;
+import java.util.Map;
+
import org.jboss.messaging.core.remoting.RemotingHandler;
import org.jboss.messaging.core.remoting.spi.Acceptor;
import org.jboss.messaging.core.remoting.spi.AcceptorFactory;
@@ -37,7 +38,7 @@
*/
public class MinaAcceptorFactory implements AcceptorFactory
{
- public Acceptor createAcceptor(final Configuration configuration,
+ public Acceptor createAcceptor(final Map<String, Object> configuration,
final RemotingHandler handler,
final ConnectionLifeCycleListener listener)
{
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnector.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,6 +22,7 @@
package org.jboss.messaging.core.remoting.impl.mina;
import java.net.InetSocketAddress;
+import java.util.Map;
import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
@@ -34,15 +35,34 @@
import org.apache.mina.transport.socket.SocketConnector;
import org.apache.mina.transport.socket.SocketSessionConfig;
import org.apache.mina.transport.socket.nio.NioSocketConnector;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.RemotingHandler;
import org.jboss.messaging.core.remoting.spi.Connection;
import org.jboss.messaging.core.remoting.spi.ConnectionLifeCycleListener;
import org.jboss.messaging.core.remoting.spi.Connector;
+import org.jboss.messaging.util.ConfigurationHelper;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_HOST;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_KEYSTORE_PASSWORD;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_KEYSTORE_PATH;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_PORT;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_SSL_ENABLED;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_TCP_NODELAY;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_TCP_RECEIVEBUFFER_SIZE;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_TCP_SENDBUFFER_SIZE;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_TRUSTSTORE_PASSWORD;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.DEFAULT_TRUSTSTORE_PATH;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.HOST_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.KEYSTORE_PASSWORD_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.KEYSTORE_PATH_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.PORT_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.SSL_ENABLED_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.TCP_NODELAY_PROPNAME;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.TCP_RECEIVEBUFFER_SIZE_PROPNAME;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.TCP_SENDBUFFER_SIZE_PROPNAME;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.TRUSTSTORE_PASSWORD_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.mina.TransportConstants.TRUSTSTORE_PATH_PROP_NAME;
/**
*
* A MinaConnector
@@ -62,11 +82,23 @@
private final RemotingHandler handler;
- private final Location location;
-
private final ConnectionLifeCycleListener listener;
+
+ private final boolean sslEnabled;
+
+ private final String host;
- private final ConnectionParams params;
+ private final int port;
+
+ private final String keyStorePath;
+
+ private final String keyStorePassword;
+
+ private final boolean tcpNoDelay;
+
+ private final int tcpSendBufferSize;
+
+ private final int tcpReceiveBufferSize;
// Static --------------------------------------------------------
@@ -74,20 +106,10 @@
// Public --------------------------------------------------------
- public MinaConnector(final Location location, final ConnectionParams params,
+ public MinaConnector(final Map<String, Object> configuration,
final RemotingHandler handler,
final ConnectionLifeCycleListener listener)
{
- if (location == null)
- {
- throw new IllegalArgumentException("Invalid argument null location");
- }
-
- if (params == null)
- {
- throw new IllegalArgumentException("Invalid argument null connection params");
- }
-
if (handler == null)
{
throw new IllegalArgumentException("Invalid argument null handler");
@@ -99,9 +121,34 @@
}
this.handler = handler;
- this.location = location;
this.listener = listener;
- this.params = params;
+
+ this.sslEnabled =
+ ConfigurationHelper.getBooleanProperty(SSL_ENABLED_PROP_NAME, DEFAULT_SSL_ENABLED, configuration);
+ this.host =
+ ConfigurationHelper.getStringProperty(HOST_PROP_NAME, DEFAULT_HOST, configuration);
+ this.port =
+ ConfigurationHelper.getIntProperty(PORT_PROP_NAME, DEFAULT_PORT, configuration);
+ if (sslEnabled)
+ {
+ this.keyStorePath =
+ ConfigurationHelper.getStringProperty(KEYSTORE_PATH_PROP_NAME, DEFAULT_KEYSTORE_PATH, configuration);
+ this.keyStorePassword =
+ ConfigurationHelper.getStringProperty(KEYSTORE_PASSWORD_PROP_NAME, DEFAULT_KEYSTORE_PASSWORD, configuration);
+ }
+ else
+ {
+ this.keyStorePath = null;
+ this.keyStorePassword = null;
+ }
+
+ this.tcpNoDelay =
+ ConfigurationHelper.getBooleanProperty(TCP_NODELAY_PROPNAME, DEFAULT_TCP_NODELAY, configuration);
+ this.tcpSendBufferSize =
+ ConfigurationHelper.getIntProperty(TCP_SENDBUFFER_SIZE_PROPNAME, DEFAULT_TCP_SENDBUFFER_SIZE, configuration);
+ this.tcpReceiveBufferSize =
+ ConfigurationHelper.getIntProperty(TCP_RECEIVEBUFFER_SIZE_PROPNAME, DEFAULT_TCP_RECEIVEBUFFER_SIZE, configuration);
+
}
public synchronized void start()
@@ -119,27 +166,27 @@
connector.setSessionDataStructureFactory(new MessagingIOSessionDataStructureFactory());
- connectorConfig.setTcpNoDelay(params.isTcpNoDelay());
- if (params.getTcpReceiveBufferSize() != -1)
+ connectorConfig.setTcpNoDelay(tcpNoDelay);
+ if (tcpReceiveBufferSize != -1)
{
- connectorConfig.setReceiveBufferSize(params.getTcpReceiveBufferSize());
+ connectorConfig.setReceiveBufferSize(tcpReceiveBufferSize);
}
- if (params.getTcpSendBufferSize() != -1)
+ if (tcpSendBufferSize != -1)
{
- connectorConfig.setSendBufferSize(params.getTcpSendBufferSize());
+ connectorConfig.setSendBufferSize(tcpSendBufferSize);
}
connectorConfig.setKeepAlive(true);
connectorConfig.setReuseAddress(true);
- if (params.isSSLEnabled())
+ if (this.sslEnabled)
{
try
{
- FilterChainSupport.addSSLFilter(filterChain, true, params.getKeyStorePath(), params.getKeyStorePassword(), null, null);
+ FilterChainSupport.addSSLFilter(filterChain, true, keyStorePath, keyStorePassword, null, null);
}
catch (Exception e)
{
- IllegalStateException ise = new IllegalStateException("Unable to create MinaConnection for " + location);
+ IllegalStateException ise = new IllegalStateException("Unable to create MinaConnection for " + host);
ise.initCause(e);
throw ise;
}
@@ -161,7 +208,7 @@
public Connection createConnection()
{
- InetSocketAddress address = new InetSocketAddress(location.getHost(), location.getPort());
+ InetSocketAddress address = new InetSocketAddress(host, port);
ConnectFuture future = connector.connect(address);
connector.setDefaultRemoteAddress(address);
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnectorFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnectorFactory.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaConnectorFactory.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -1,7 +1,7 @@
package org.jboss.messaging.core.remoting.impl.mina;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
+import java.util.Map;
+
import org.jboss.messaging.core.remoting.RemotingHandler;
import org.jboss.messaging.core.remoting.spi.ConnectionLifeCycleListener;
import org.jboss.messaging.core.remoting.spi.Connector;
@@ -16,10 +16,10 @@
*/
public class MinaConnectorFactory implements ConnectorFactory
{
- public Connector createConnector(final Location location, final ConnectionParams params,
- final RemotingHandler handler, final ConnectionLifeCycleListener listener)
+ public Connector createConnector(final Map<String, Object> configuration,
+ final RemotingHandler handler, final ConnectionLifeCycleListener listener)
{
- return new MinaConnector(location, params, handler, listener);
+ return new MinaConnector(configuration, handler, listener);
}
}
Added: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/TransportConstants.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/TransportConstants.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/TransportConstants.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -0,0 +1,71 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, 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.messaging.core.remoting.impl.mina;
+
+/**
+ * A TransportConstants
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ *
+ */
+public class TransportConstants
+{
+ public static final String SSL_ENABLED_PROP_NAME = "jbm.remoting.mina.sslenabled";
+
+ public static final String HOST_PROP_NAME = "jbm.remoting.mina.host";
+
+ public static final String PORT_PROP_NAME = "jbm.remoting.mina.port";
+
+ public static final String KEYSTORE_PATH_PROP_NAME = "jbm.remoting.mina.keystorepath";
+
+ public static final String KEYSTORE_PASSWORD_PROP_NAME = "jbm.remoting.mina.keystorepassword";
+
+ public static final String TRUSTSTORE_PATH_PROP_NAME = "jbm.remoting.mina.truststorepath";
+
+ public static final String TRUSTSTORE_PASSWORD_PROP_NAME = "jbm.remoting.mina.truststorepassword";
+
+ public static final String TCP_NODELAY_PROPNAME = "jbm.remoting.mina.tcpnodelay";
+
+ public static final String TCP_SENDBUFFER_SIZE_PROPNAME = "jbm.remoting.mina.tcpsendbuffersize";
+
+ public static final String TCP_RECEIVEBUFFER_SIZE_PROPNAME = "jbm.remoting.mina.tcpreceivebuffersize";
+
+ public static final boolean DEFAULT_SSL_ENABLED = false;
+
+ public static final String DEFAULT_HOST = "localhost";
+
+ public static final int DEFAULT_PORT = 5400;
+
+ public static final String DEFAULT_KEYSTORE_PATH = "messaging.keystore";
+
+ public static final String DEFAULT_KEYSTORE_PASSWORD = "secureexample";
+
+ public static final String DEFAULT_TRUSTSTORE_PATH = "messaging.truststore";
+
+ public static final String DEFAULT_TRUSTSTORE_PASSWORD = "secureexample";
+
+ public static final boolean DEFAULT_TCP_NODELAY = true;
+
+ public static final int DEFAULT_TCP_SENDBUFFER_SIZE = 32768;
+
+ public static final int DEFAULT_TCP_RECEIVEBUFFER_SIZE = 32768;
+}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyAcceptor.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyAcceptor.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyAcceptor.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,21 +22,43 @@
package org.jboss.messaging.core.remoting.impl.netty;
-import static org.jboss.netty.channel.Channels.*;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_HOST;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_KEYSTORE_PASSWORD;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_KEYSTORE_PATH;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_PORT;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_SSL_ENABLED;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_TCP_NODELAY;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_TCP_RECEIVEBUFFER_SIZE;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_TCP_SENDBUFFER_SIZE;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_TRUSTSTORE_PASSWORD;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_TRUSTSTORE_PATH;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.HOST_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.KEYSTORE_PASSWORD_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.KEYSTORE_PATH_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.PORT_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.SSL_ENABLED_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.TCP_NODELAY_PROPNAME;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.TCP_RECEIVEBUFFER_SIZE_PROPNAME;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.TCP_SENDBUFFER_SIZE_PROPNAME;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.TRUSTSTORE_PASSWORD_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.TRUSTSTORE_PATH_PROP_NAME;
+import static org.jboss.netty.channel.Channels.pipeline;
import java.net.InetSocketAddress;
+import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import javax.net.ssl.SSLContext;
-import org.jboss.messaging.core.config.Configuration;
+import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.RemotingHandler;
import org.jboss.messaging.core.remoting.impl.ssl.SSLSupport;
import org.jboss.messaging.core.remoting.spi.Acceptor;
import org.jboss.messaging.core.remoting.spi.Connection;
import org.jboss.messaging.core.remoting.spi.ConnectionLifeCycleListener;
+import org.jboss.messaging.util.ConfigurationHelper;
import org.jboss.netty.bootstrap.ServerBootstrap;
import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelFactory;
@@ -61,26 +83,77 @@
*/
public class NettyAcceptor implements Acceptor
{
+ private static final Logger log = Logger.getLogger(NettyAcceptor.class);
+
private ExecutorService bossExecutor;
private ExecutorService workerExecutor;
private ChannelFactory channelFactory;
private Channel serverChannel;
private ServerBootstrap bootstrap;
- private final Configuration configuration;
-
private final RemotingHandler handler;
private final ConnectionLifeCycleListener listener;
+
+ private final boolean sslEnabled;
+
+ private final String host;
- public NettyAcceptor(final Configuration configuration, final RemotingHandler handler,
+ private final int port;
+
+ private final String keyStorePath;
+
+ private final String keyStorePassword;
+
+ private final String trustStorePath;
+
+ private final String trustStorePassword;
+
+ private final boolean tcpNoDelay;
+
+ private final int tcpSendBufferSize;
+
+ private final int tcpReceiveBufferSize;
+
+ public NettyAcceptor(final Map<String, Object> configuration, final RemotingHandler handler,
final ConnectionLifeCycleListener listener)
{
- this.configuration = configuration;
-
this.handler = handler;
this.listener = listener;
+
+ this.sslEnabled =
+ ConfigurationHelper.getBooleanProperty(SSL_ENABLED_PROP_NAME, DEFAULT_SSL_ENABLED, configuration);
+ this.host =
+ ConfigurationHelper.getStringProperty(HOST_PROP_NAME, DEFAULT_HOST, configuration);
+ this.port =
+ ConfigurationHelper.getIntProperty(PORT_PROP_NAME, DEFAULT_PORT, configuration);
+ if (sslEnabled)
+ {
+ this.keyStorePath =
+ ConfigurationHelper.getStringProperty(KEYSTORE_PATH_PROP_NAME, DEFAULT_KEYSTORE_PATH, configuration);
+ this.keyStorePassword =
+ ConfigurationHelper.getStringProperty(KEYSTORE_PASSWORD_PROP_NAME, DEFAULT_KEYSTORE_PASSWORD, configuration);
+ this.trustStorePath =
+ ConfigurationHelper.getStringProperty(TRUSTSTORE_PATH_PROP_NAME, DEFAULT_TRUSTSTORE_PATH, configuration);
+ this.trustStorePassword =
+ ConfigurationHelper.getStringProperty(TRUSTSTORE_PASSWORD_PROP_NAME, DEFAULT_TRUSTSTORE_PASSWORD, configuration);
+ }
+ else
+ {
+ this.keyStorePath = null;
+ this.keyStorePassword = null;
+ this.trustStorePath = null;
+ this.trustStorePassword = null;
+ }
+
+ this.tcpNoDelay =
+ ConfigurationHelper.getBooleanProperty(TCP_NODELAY_PROPNAME, DEFAULT_TCP_NODELAY, configuration);
+ this.tcpSendBufferSize =
+ ConfigurationHelper.getIntProperty(TCP_SENDBUFFER_SIZE_PROPNAME, DEFAULT_TCP_SENDBUFFER_SIZE, configuration);
+ this.tcpReceiveBufferSize =
+ ConfigurationHelper.getIntProperty(TCP_RECEIVEBUFFER_SIZE_PROPNAME, DEFAULT_TCP_RECEIVEBUFFER_SIZE, configuration);
+
}
public synchronized void start() throws Exception
@@ -97,21 +170,27 @@
bootstrap = new ServerBootstrap(channelFactory);
final SSLContext context;
- if (configuration.isSSLEnabled()) {
- try {
+ if (sslEnabled)
+ {
+ try
+ {
context = SSLSupport.createServerContext(
- configuration.getKeyStorePath(),
- configuration.getKeyStorePassword(),
- configuration.getTrustStorePath(),
- configuration.getTrustStorePassword());
- } catch (Exception e) {
+ keyStorePath,
+ keyStorePassword,
+ trustStorePath,
+ trustStorePassword);
+ }
+ catch (Exception e)
+ {
IllegalStateException ise = new IllegalStateException(
"Unable to create NettyAcceptor for " +
- configuration.getHost() + ":" + configuration.getPort());
+ host + ":" + port);
ise.initCause(e);
throw ise;
}
- } else {
+ }
+ else
+ {
context = null; // Unused
}
@@ -119,7 +198,7 @@
public ChannelPipeline getPipeline() throws Exception
{
ChannelPipeline pipeline = pipeline();
- if (configuration.isSSLEnabled())
+ if (sslEnabled)
{
ChannelPipelineSupport.addSSLFilter(pipeline, context, false);
}
@@ -130,17 +209,15 @@
});
// Bind
- bootstrap.setOption("localAddress", new InetSocketAddress(configuration.getHost(), configuration.getPort()));
- bootstrap.setOption("child.tcpNoDelay", configuration.getConnectionParams().isTcpNoDelay());
- int receiveBufferSize = configuration.getConnectionParams().getTcpReceiveBufferSize();
- if (receiveBufferSize != -1)
+ bootstrap.setOption("localAddress", new InetSocketAddress(host, port));
+ bootstrap.setOption("child.tcpNoDelay", tcpNoDelay);
+ if (tcpReceiveBufferSize != -1)
{
- bootstrap.setOption("child.receiveBufferSize", receiveBufferSize);
- }
- int sendBufferSize = configuration.getConnectionParams().getTcpSendBufferSize();
- if (sendBufferSize != -1)
+ bootstrap.setOption("child.receiveBufferSize", tcpReceiveBufferSize);
+ }
+ if (tcpSendBufferSize != -1)
{
- bootstrap.setOption("child.sendBufferSize", sendBufferSize);
+ bootstrap.setOption("child.sendBufferSize", tcpSendBufferSize);
}
bootstrap.setOption("reuseAddress", true);
bootstrap.setOption("child.reuseAddress", true);
@@ -192,7 +269,8 @@
final Connection tc = new NettyConnection(e.getChannel());
SslHandler sslHandler = ctx.getPipeline().get(SslHandler.class);
- if (sslHandler != null) {
+ if (sslHandler != null)
+ {
sslHandler.handshake(e.getChannel()).addListener(new ChannelFutureListener()
{
public void operationComplete(ChannelFuture future) throws Exception
@@ -205,7 +283,9 @@
}
}
});
- } else {
+ }
+ else
+ {
listener.connectionCreated(tc);
active = true;
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyAcceptorFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyAcceptorFactory.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyAcceptorFactory.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,7 +22,8 @@
package org.jboss.messaging.core.remoting.impl.netty;
-import org.jboss.messaging.core.config.Configuration;
+import java.util.Map;
+
import org.jboss.messaging.core.remoting.RemotingHandler;
import org.jboss.messaging.core.remoting.spi.Acceptor;
import org.jboss.messaging.core.remoting.spi.AcceptorFactory;
@@ -35,7 +36,7 @@
*/
public class NettyAcceptorFactory implements AcceptorFactory
{
- public Acceptor createAcceptor(final Configuration configuration,
+ public Acceptor createAcceptor(final Map<String, Object> configuration,
final RemotingHandler handler,
final ConnectionLifeCycleListener listener)
{
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyConnector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyConnector.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyConnector.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -21,9 +21,26 @@
*/
package org.jboss.messaging.core.remoting.impl.netty;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_HOST;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_KEYSTORE_PASSWORD;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_KEYSTORE_PATH;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_PORT;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_SSL_ENABLED;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_TCP_NODELAY;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_TCP_RECEIVEBUFFER_SIZE;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.DEFAULT_TCP_SENDBUFFER_SIZE;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.HOST_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.KEYSTORE_PASSWORD_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.KEYSTORE_PATH_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.PORT_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.SSL_ENABLED_PROP_NAME;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.TCP_NODELAY_PROPNAME;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.TCP_RECEIVEBUFFER_SIZE_PROPNAME;
+import static org.jboss.messaging.core.remoting.impl.netty.TransportConstants.TCP_SENDBUFFER_SIZE_PROPNAME;
import static org.jboss.netty.channel.Channels.pipeline;
import java.net.InetSocketAddress;
+import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
@@ -31,14 +48,13 @@
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLException;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.RemotingHandler;
import org.jboss.messaging.core.remoting.impl.ssl.SSLSupport;
import org.jboss.messaging.core.remoting.spi.Connection;
import org.jboss.messaging.core.remoting.spi.ConnectionLifeCycleListener;
import org.jboss.messaging.core.remoting.spi.Connector;
+import org.jboss.messaging.util.ConfigurationHelper;
import org.jboss.netty.bootstrap.ClientBootstrap;
import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelFactory;
@@ -71,11 +87,23 @@
private final RemotingHandler handler;
- private final Location location;
-
private final ConnectionLifeCycleListener listener;
+
+ private final boolean sslEnabled;
+
+ private final String host;
- private final ConnectionParams params;
+ private final int port;
+
+ private final String keyStorePath;
+
+ private final String keyStorePassword;
+
+ private final boolean tcpNoDelay;
+
+ private final int tcpSendBufferSize;
+
+ private final int tcpReceiveBufferSize;
// Static --------------------------------------------------------
@@ -83,20 +111,10 @@
// Public --------------------------------------------------------
- public NettyConnector(final Location location, final ConnectionParams params,
+ public NettyConnector(final Map<String, Object> configuration,
final RemotingHandler handler,
final ConnectionLifeCycleListener listener)
{
- if (location == null)
- {
- throw new IllegalArgumentException("Invalid argument null location");
- }
-
- if (params == null)
- {
- throw new IllegalArgumentException("Invalid argument null connection params");
- }
-
if (handler == null)
{
throw new IllegalArgumentException("Invalid argument null handler");
@@ -108,9 +126,34 @@
}
this.handler = handler;
- this.location = location;
this.listener = listener;
- this.params = params;
+
+ this.sslEnabled =
+ ConfigurationHelper.getBooleanProperty(SSL_ENABLED_PROP_NAME, DEFAULT_SSL_ENABLED, configuration);
+ this.host =
+ ConfigurationHelper.getStringProperty(HOST_PROP_NAME, DEFAULT_HOST, configuration);
+ this.port =
+ ConfigurationHelper.getIntProperty(PORT_PROP_NAME, DEFAULT_PORT, configuration);
+ if (sslEnabled)
+ {
+ this.keyStorePath =
+ ConfigurationHelper.getStringProperty(KEYSTORE_PATH_PROP_NAME, DEFAULT_KEYSTORE_PATH, configuration);
+ this.keyStorePassword =
+ ConfigurationHelper.getStringProperty(KEYSTORE_PASSWORD_PROP_NAME, DEFAULT_KEYSTORE_PASSWORD, configuration);
+ }
+ else
+ {
+ this.keyStorePath = null;
+ this.keyStorePassword = null;
+ }
+
+ this.tcpNoDelay =
+ ConfigurationHelper.getBooleanProperty(TCP_NODELAY_PROPNAME, DEFAULT_TCP_NODELAY, configuration);
+ this.tcpSendBufferSize =
+ ConfigurationHelper.getIntProperty(TCP_SENDBUFFER_SIZE_PROPNAME, DEFAULT_TCP_SENDBUFFER_SIZE, configuration);
+ this.tcpReceiveBufferSize =
+ ConfigurationHelper.getIntProperty(TCP_RECEIVEBUFFER_SIZE_PROPNAME, DEFAULT_TCP_RECEIVEBUFFER_SIZE, configuration);
+
}
public synchronized void start()
@@ -125,32 +168,36 @@
channelFactory = new NioClientSocketChannelFactory(bossExecutor, workerExecutor);
bootstrap = new ClientBootstrap(channelFactory);
- bootstrap.setOption("tcpNoDelay", params.isTcpNoDelay());
- if (params.getTcpReceiveBufferSize() != -1)
+ bootstrap.setOption("tcpNoDelay", tcpNoDelay);
+ if (tcpReceiveBufferSize != -1)
{
- bootstrap.setOption("receiveBufferSize", params.getTcpReceiveBufferSize());
+ bootstrap.setOption("receiveBufferSize", tcpReceiveBufferSize);
}
- if (params.getTcpSendBufferSize() != -1)
+ if (tcpSendBufferSize != -1)
{
- bootstrap.setOption("sendBufferSize", params.getTcpSendBufferSize());
+ bootstrap.setOption("sendBufferSize", tcpSendBufferSize);
}
bootstrap.setOption("keepAlive", true);
bootstrap.setOption("reuseAddress", true);
final SSLContext context;
- if (params.isSSLEnabled()) {
- try {
- context = SSLSupport.getInstance(true, params.getKeyStorePath(), params.getKeyStorePassword(), null, null);
+ if (sslEnabled)
+ {
+ try
+ {
+ context = SSLSupport.getInstance(true, keyStorePath, keyStorePassword, null, null);
}
catch (Exception e)
{
close();
IllegalStateException ise = new IllegalStateException(
- "Unable to create NettyConnector for " + location);
+ "Unable to create NettyConnector for " + host);
ise.initCause(e);
throw ise;
}
- } else {
+ }
+ else
+ {
context = null; // Unused
}
@@ -158,9 +205,9 @@
public ChannelPipeline getPipeline() throws Exception
{
ChannelPipeline pipeline = pipeline();
- if (params.isSSLEnabled())
+ if (sslEnabled)
{
- ChannelPipelineSupport.addSSLFilter(pipeline, context, true);
+ ChannelPipelineSupport.addSSLFilter(pipeline, context, true);
}
ChannelPipelineSupport.addCodecFilter(pipeline, handler);
pipeline.addLast("handler", new MessagingClientChannelHandler(handler, listener));
@@ -203,7 +250,7 @@
return null;
}
- InetSocketAddress address = new InetSocketAddress(location.getHost(), location.getPort());
+ InetSocketAddress address = new InetSocketAddress(host, port);
ChannelFuture future = bootstrap.connect(address);
future.awaitUninterruptibly();
@@ -211,8 +258,8 @@
{
final Channel ch = future.getChannel();
SslHandler sslHandler = ch.getPipeline().get(SslHandler.class);
- if (sslHandler != null) {
- log.info("Starting SSL handshake.");
+ if (sslHandler != null)
+ {
try
{
ChannelFuture handshakeFuture = sslHandler.handshake(ch);
@@ -229,7 +276,9 @@
ch.close();
return null;
}
- } else {
+ }
+ else
+ {
ch.getPipeline().get(MessagingChannelHandler.class).active = true;
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyConnectorFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyConnectorFactory.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/NettyConnectorFactory.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -1,7 +1,7 @@
package org.jboss.messaging.core.remoting.impl.netty;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
+import java.util.Map;
+
import org.jboss.messaging.core.remoting.RemotingHandler;
import org.jboss.messaging.core.remoting.spi.ConnectionLifeCycleListener;
import org.jboss.messaging.core.remoting.spi.Connector;
@@ -14,9 +14,9 @@
*/
public class NettyConnectorFactory implements ConnectorFactory
{
- public Connector createConnector(final Location location, final ConnectionParams params,
+ public Connector createConnector(final Map<String, Object> configuration,
final RemotingHandler handler, final ConnectionLifeCycleListener listener)
{
- return new NettyConnector(location, params, handler, listener);
+ return new NettyConnector(configuration, handler, listener);
}
}
Added: trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/TransportConstants.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/TransportConstants.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/netty/TransportConstants.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -0,0 +1,71 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, 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.messaging.core.remoting.impl.netty;
+
+/**
+ * A TransportConstants
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ *
+ */
+public class TransportConstants
+{
+ public static final String SSL_ENABLED_PROP_NAME = "jbm.remoting.netty.sslenabled";
+
+ public static final String HOST_PROP_NAME = "jbm.remoting.netty.host";
+
+ public static final String PORT_PROP_NAME = "jbm.remoting.netty.port";
+
+ public static final String KEYSTORE_PATH_PROP_NAME = "jbm.remoting.netty.keystorepath";
+
+ public static final String KEYSTORE_PASSWORD_PROP_NAME = "jbm.remoting.netty.keystorepassword";
+
+ public static final String TRUSTSTORE_PATH_PROP_NAME = "jbm.remoting.netty.truststorepath";
+
+ public static final String TRUSTSTORE_PASSWORD_PROP_NAME = "jbm.remoting.netty.truststorepassword";
+
+ public static final String TCP_NODELAY_PROPNAME = "jbm.remoting.netty.tcpnodelay";
+
+ public static final String TCP_SENDBUFFER_SIZE_PROPNAME = "jbm.remoting.netty.tcpsendbuffersize";
+
+ public static final String TCP_RECEIVEBUFFER_SIZE_PROPNAME = "jbm.remoting.netty.tcpreceivebuffersize";
+
+ public static final boolean DEFAULT_SSL_ENABLED = false;
+
+ public static final String DEFAULT_HOST = "localhost";
+
+ public static final int DEFAULT_PORT = 5400;
+
+ public static final String DEFAULT_KEYSTORE_PATH = "messaging.keystore";
+
+ public static final String DEFAULT_KEYSTORE_PASSWORD = "secureexample";
+
+ public static final String DEFAULT_TRUSTSTORE_PATH = "messaging.truststore";
+
+ public static final String DEFAULT_TRUSTSTORE_PASSWORD = "secureexample";
+
+ public static final boolean DEFAULT_TCP_NODELAY = true;
+
+ public static final int DEFAULT_TCP_SENDBUFFER_SIZE = 32768;
+
+ public static final int DEFAULT_TCP_RECEIVEBUFFER_SIZE = 32768;
+}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateSessionResponseMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateSessionResponseMessage.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/CreateSessionResponseMessage.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -41,13 +41,15 @@
private long commandResponseTargetID;
private int serverVersion;
+
+ private int packetConfirmationBatchSize;
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
public CreateSessionResponseMessage(final long sessionTargetID, final long commandResponseTargetID,
- final int serverVersion)
+ final int serverVersion, final int packetConfirmationBatchSize)
{
super(CREATESESSION_RESP);
@@ -56,6 +58,8 @@
this.commandResponseTargetID = commandResponseTargetID;
this.serverVersion = serverVersion;
+
+ this.packetConfirmationBatchSize = packetConfirmationBatchSize;
}
public CreateSessionResponseMessage()
@@ -80,11 +84,17 @@
return serverVersion;
}
+ public int getPacketConfirmationBatchSize()
+ {
+ return packetConfirmationBatchSize;
+ }
+
public void encodeBody(final MessagingBuffer buffer)
{
buffer.putLong(sessionTargetID);
buffer.putLong(commandResponseTargetID);
buffer.putInt(serverVersion);
+ buffer.putInt(packetConfirmationBatchSize);
}
public void decodeBody(final MessagingBuffer buffer)
@@ -92,6 +102,7 @@
sessionTargetID = buffer.getLong();
commandResponseTargetID = buffer.getLong();
serverVersion = buffer.getInt();
+ packetConfirmationBatchSize = buffer.getInt();
}
@Override
@@ -112,7 +123,8 @@
boolean matches = super.equals(other) &&
this.sessionTargetID == r.sessionTargetID &&
- this.commandResponseTargetID == r.commandResponseTargetID;
+ this.commandResponseTargetID == r.commandResponseTargetID &&
+ this.packetConfirmationBatchSize == r.packetConfirmationBatchSize;
return matches;
}
Added: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Ping.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Ping.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Ping.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -0,0 +1,103 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.messaging.core.remoting.impl.wireformat;
+
+import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
+
+/**
+ *
+ * A Ping
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ *
+ */
+public class Ping extends PacketImpl
+{
+ // Constants -----------------------------------------------------
+
+ // Attributes ----------------------------------------------------
+
+ private long expirePeriod;
+
+ // Static --------------------------------------------------------
+
+ // Constructors --------------------------------------------------
+
+ public Ping(final long expirePeriod)
+ {
+ super(PING);
+
+ this.expirePeriod = expirePeriod;
+ }
+
+ public Ping()
+ {
+ super(PING);
+ }
+
+ // Public --------------------------------------------------------
+
+ public long getExpirePeriod()
+ {
+ return expirePeriod;
+ }
+
+ public void encodeBody(final MessagingBuffer buffer)
+ {
+ buffer.putLong(expirePeriod);
+ }
+
+ public void decodeBody(final MessagingBuffer buffer)
+ {
+ expirePeriod = buffer.getLong();
+ }
+
+ @Override
+ public String toString()
+ {
+ StringBuffer buf = new StringBuffer(getParentString());
+ buf.append(", expirePeriod=" + expirePeriod);
+ buf.append("]");
+ return buf.toString();
+ }
+
+ public boolean equals(Object other)
+ {
+ if (other instanceof Ping == false)
+ {
+ return false;
+ }
+
+ Ping r = (Ping)other;
+
+ return super.equals(other) && this.expirePeriod == r.expirePeriod;
+ }
+
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ // Private -------------------------------------------------------
+
+ // Inner classes -------------------------------------------------
+}
Added: trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Pong.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Pong.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/wireformat/Pong.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -0,0 +1,105 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
+ * 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.messaging.core.remoting.impl.wireformat;
+
+import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
+
+/**
+ *
+ * A Pong
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ *
+ */
+public class Pong extends PacketImpl
+{
+ // Constants -----------------------------------------------------
+
+ // Attributes ----------------------------------------------------
+
+ //This is reserved for future use - for now we also pass back -1 - meaning "don't change period"
+ private long newPeriod;
+
+ // Static --------------------------------------------------------
+
+ // Constructors --------------------------------------------------
+
+ public Pong(final long newPeriod)
+ {
+ super(PONG);
+
+ this.newPeriod = newPeriod;
+ }
+
+ public Pong()
+ {
+ super(PONG);
+ }
+
+ // Public --------------------------------------------------------
+
+ public long getNewPeriod()
+ {
+ return newPeriod;
+ }
+
+ public void encodeBody(final MessagingBuffer buffer)
+ {
+ buffer.putLong(newPeriod);
+ }
+
+ public void decodeBody(final MessagingBuffer buffer)
+ {
+ newPeriod = buffer.getLong();
+ }
+
+ @Override
+ public String toString()
+ {
+ StringBuffer buf = new StringBuffer(getParentString());
+ buf.append(", newPeriod=" + newPeriod);
+ buf.append("]");
+ return buf.toString();
+ }
+
+ public boolean equals(Object other)
+ {
+ if (other instanceof Pong == false)
+ {
+ return false;
+ }
+
+ Pong r = (Pong)other;
+
+ return super.equals(other) && this.newPeriod == r.newPeriod;
+ }
+
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ // Private -------------------------------------------------------
+
+ // Inner classes -------------------------------------------------
+}
+
Modified: trunk/src/main/org/jboss/messaging/core/remoting/spi/AcceptorFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/spi/AcceptorFactory.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/spi/AcceptorFactory.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,7 +22,8 @@
package org.jboss.messaging.core.remoting.spi;
-import org.jboss.messaging.core.config.Configuration;
+import java.util.Map;
+
import org.jboss.messaging.core.remoting.RemotingHandler;
/**
@@ -31,7 +32,7 @@
*/
public interface AcceptorFactory
{
- Acceptor createAcceptor(Configuration configuration,
+ Acceptor createAcceptor(final Map<String, Object> configuration,
RemotingHandler handler,
ConnectionLifeCycleListener listener);
}
Modified: trunk/src/main/org/jboss/messaging/core/remoting/spi/ConnectorFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/spi/ConnectorFactory.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/remoting/spi/ConnectorFactory.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -1,7 +1,8 @@
package org.jboss.messaging.core.remoting.spi;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
+import java.io.Serializable;
+import java.util.Map;
+
import org.jboss.messaging.core.remoting.RemotingHandler;
/**
@@ -11,9 +12,9 @@
* @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
*
*/
-public interface ConnectorFactory
+public interface ConnectorFactory extends Serializable
{
- Connector createConnector(Location location, ConnectionParams params,
+ Connector createConnector(Map<String, Object> configuration,
RemotingHandler handler,
ConnectionLifeCycleListener listener);
}
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -352,7 +352,7 @@
long sessionID = dispatcher.generateID();
- CommandManager cm = new CommandManagerImpl(configuration.getConnectionParams().getPacketConfirmationBatchSize(),
+ CommandManager cm = new CommandManagerImpl(configuration.getPacketConfirmationBatchSize(),
remotingConnection, dispatcher, sessionID,
localCommandResponseTargetID,
remoteCommandResponseTargetID);
@@ -378,7 +378,9 @@
remotingConnection.addFailureListener(session);
- return new CreateSessionResponseMessage(session.getID(), localCommandResponseTargetID, version.getIncrementingVersion());
+ return
+ new CreateSessionResponseMessage(session.getID(), localCommandResponseTargetID,
+ version.getIncrementingVersion(), configuration.getPacketConfirmationBatchSize());
}
public void removeSession(final String name)
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerPacketHandler.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -23,7 +23,6 @@
package org.jboss.messaging.core.server.impl;
import static org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl.PING;
-import static org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl.PONG;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.logging.Logger;
@@ -35,6 +34,7 @@
import org.jboss.messaging.core.remoting.impl.wireformat.CreateSessionMessage;
import org.jboss.messaging.core.remoting.impl.wireformat.MessagingExceptionMessage;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
+import org.jboss.messaging.core.remoting.impl.wireformat.Pong;
import org.jboss.messaging.core.server.MessagingServer;
/**
@@ -76,7 +76,7 @@
{
if (type == PING)
{
- response = new PacketImpl(PONG);
+ response = new Pong(-1);
}
else if (type == PacketImpl.CREATESESSION)
{
Modified: trunk/src/main/org/jboss/messaging/jms/client/JBossConnectionFactory.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/client/JBossConnectionFactory.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/jms/client/JBossConnectionFactory.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -23,6 +23,7 @@
package org.jboss.messaging.jms.client;
import java.io.Serializable;
+import java.util.Map;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
@@ -41,10 +42,9 @@
import javax.naming.Reference;
import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
import org.jboss.messaging.jms.referenceable.ConnectionFactoryObjectFactory;
import org.jboss.messaging.jms.referenceable.SerializableObjectRefAddr;
@@ -72,53 +72,61 @@
private transient ClientSessionFactory sessionFactory;
+ private final ConnectorFactory connectorFactory;
+
+ private final Map<String, Object> transportParams;
+
private final String clientID;
private final int dupsOKBatchSize;
- private final Location location;
+ private final long pingPeriod;
- private final ConnectionParams connectionParams;
+ private final long callTimeout;
+
+ private final int consumerWindowSize;
- private final int defaultConsumerWindowSize;
+ private final int consumerMaxRate;
- private final int defaultConsumerMaxRate;
+ private final int producerWindowSize;
- private final int defaultProducerWindowSize;
-
- private final int defaultProducerMaxRate;
+ private final int producerMaxRate;
- private final boolean defaultBlockOnAcknowledge;
+ private final boolean blockOnAcknowledge;
- private final boolean defaultSendNonPersistentMessagesBlocking;
+ private final boolean blockOnNonPersistentSend;
- private final boolean defaultSendPersistentMessagesBlocking;
+ private final boolean blockOnPersistentSend;
// Constructors ---------------------------------------------------------------------------------
- public JBossConnectionFactory(final String clientID,
- final int dupsOKBatchSize,
- final Location location,
- final ConnectionParams connectionParams,
- final int defaultConsumerWindowSize,
- final int defaultConsumerMaxRate,
- final int defaultProducerWindowSize,
- final int defaultProducerMaxRate,
- final boolean defaultBlockOnAcknowledge,
- final boolean defaultSendNonPersistentMessagesBlocking,
- final boolean defaultSendPersistentMessagesBlocking)
+ public JBossConnectionFactory(final ConnectorFactory connectorFactory,
+ final Map<String, Object> transportParams,
+ final long pingPeriod,
+ final long callTimeout,
+ final String clientID,
+ final int dupsOKBatchSize,
+ final int consumerWindowSize,
+ final int consumerMaxRate,
+ final int producerWindowSize,
+ final int producerMaxRate,
+ final boolean blockOnAcknowledge,
+ final boolean blockOnNonPersistentSend,
+ final boolean blockOnPersistentSend)
{
+ this.connectorFactory = connectorFactory;
+ this.transportParams = transportParams;
this.clientID = clientID;
this.dupsOKBatchSize = dupsOKBatchSize;
- this.location = location;
- this.connectionParams = connectionParams;
- this.defaultConsumerMaxRate = defaultConsumerMaxRate;
- this.defaultConsumerWindowSize = defaultConsumerWindowSize;
- this.defaultProducerMaxRate = defaultProducerMaxRate;
- this.defaultProducerWindowSize = defaultProducerWindowSize;
- this.defaultBlockOnAcknowledge = defaultBlockOnAcknowledge;
- this.defaultSendNonPersistentMessagesBlocking = defaultSendNonPersistentMessagesBlocking;
- this.defaultSendPersistentMessagesBlocking = defaultSendPersistentMessagesBlocking;
+ this.pingPeriod = pingPeriod;
+ this.callTimeout = callTimeout;
+ this.consumerMaxRate = consumerMaxRate;
+ this.consumerWindowSize = consumerWindowSize;
+ this.producerMaxRate = producerMaxRate;
+ this.producerWindowSize = producerWindowSize;
+ this.blockOnAcknowledge = blockOnAcknowledge;
+ this.blockOnNonPersistentSend = blockOnNonPersistentSend;
+ this.blockOnPersistentSend = blockOnPersistentSend;
}
// ConnectionFactory implementation -------------------------------------------------------------
@@ -215,6 +223,26 @@
// Public ---------------------------------------------------------------------------------------
+ public ConnectorFactory getConnectorFactory()
+ {
+ return connectorFactory;
+ }
+
+ public Map<String, Object> getTransportParams()
+ {
+ return transportParams;
+ }
+
+ public long getPingPeriod()
+ {
+ return pingPeriod;
+ }
+
+ public long getCallTimeout()
+ {
+ return callTimeout;
+ }
+
public String getClientID()
{
return clientID;
@@ -224,46 +252,41 @@
{
return dupsOKBatchSize;
}
-
- public Location getLocation()
+
+ public int getConsumerWindowSize()
{
- return location;
+ return consumerWindowSize;
}
- public int getDefaultConsumerWindowSize()
+ public int getConsumerMaxRate()
{
- return defaultConsumerWindowSize;
+ return consumerMaxRate;
}
- public int getDefaultConsumerMaxRate()
+ public int getProducerWindowSize()
{
- return defaultConsumerMaxRate;
+ return producerWindowSize;
}
- public int getDefaultProducerWindowSize()
+ public int getProducerMaxRate()
{
- return defaultProducerWindowSize;
+ return producerMaxRate;
}
- public int getDefaultProducerMaxRate()
+ public boolean isBlockOnAcknowledge()
{
- return defaultProducerMaxRate;
+ return blockOnAcknowledge;
}
- public boolean isDefaultBlockOnAcknowledge()
+ public boolean isBlockOnNonPersistentSend()
{
- return defaultBlockOnAcknowledge;
+ return blockOnNonPersistentSend;
}
- public boolean isDefaultSendNonPersistentMessagesBlocking()
+ public boolean isBlockOnPersistentSend()
{
- return defaultSendNonPersistentMessagesBlocking;
+ return blockOnPersistentSend;
}
-
- public boolean isDefaultSendPersistentMessagesBlocking()
- {
- return defaultSendPersistentMessagesBlocking;
- }
// Package protected ----------------------------------------------------------------------------
@@ -273,35 +296,29 @@
final boolean isXA, final int type)
throws JMSException
{
-// try
-// {
- synchronized (this)
+ synchronized (this)
+ {
+ if (sessionFactory == null)
{
- if (sessionFactory == null)
- {
- sessionFactory = new ClientSessionFactoryImpl(
- location,
- connectionParams,
- defaultConsumerWindowSize,
- defaultConsumerMaxRate,
- defaultProducerWindowSize,
- defaultProducerMaxRate,
- defaultBlockOnAcknowledge,
- defaultSendNonPersistentMessagesBlocking,
- defaultSendPersistentMessagesBlocking);
-
- }
+ sessionFactory = new ClientSessionFactoryImpl(
+ connectorFactory,
+ transportParams,
+ pingPeriod,
+ callTimeout,
+ consumerWindowSize,
+ consumerMaxRate,
+ producerWindowSize,
+ producerMaxRate,
+ blockOnAcknowledge,
+ blockOnNonPersistentSend,
+ blockOnPersistentSend);
+
}
-
- return new JBossConnection(username, password, type, clientID, dupsOKBatchSize, sessionFactory);
-// }
-// catch (MessagingException e)
-// {
-// throw JMSExceptionHelper.convertFromMessagingException(e);
-// }
+ }
+
+ return new JBossConnection(username, password, type, clientID, dupsOKBatchSize, sessionFactory);
}
-
// Private --------------------------------------------------------------------------------------
// Inner classes --------------------------------------------------------------------------------
Modified: trunk/src/main/org/jboss/messaging/jms/server/JMSServerManager.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/JMSServerManager.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/jms/server/JMSServerManager.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -23,7 +23,10 @@
package org.jboss.messaging.jms.server;
import java.util.List;
+import java.util.Map;
+import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
+
/**
* The JMS Management interface.
*
@@ -92,67 +95,26 @@
*/
boolean destroyTopic(String name) throws Exception;
- /**
- * Creates a connection factory
- *
- * @param name
- * the name of this connection factory
- * @param clientID
- * the client id
- * @param dupsOKBatchSize
- * the bath size
- * @param consumerWindowSize
- * The consumer window size
- * @param consumerMaxRate
- * the Consumer max rate
- * @param producerWindowSize
- * the producer window size
- * @param producerMaxRate
- * the producer max rate
- * @param jndiBinding
- * the binding name for JNDI
- * @return true if the connection factory was created
- * @throws Exception
- * if a problem occurred creating the connection factory
- */
- boolean createConnectionFactory(String name, String clientID,
+ boolean createConnectionFactory(String name, ConnectorFactory connectorFactory,
+ Map<String, Object> transportParams,
+ long pingPeriod, long callTimeout, String clientID,
int dupsOKBatchSize, int consumerWindowSize, int consumerMaxRate,
int producerWindowSize, int producerMaxRate,
boolean blockOnAcknowledge,
- boolean defaultSendNonPersistentMessagesBlocking,
- boolean defaultSendPersistentMessagesBlocking, String jndiBinding)
+ boolean blockOnNonPersistentSend,
+ boolean blockOnPersistentSend, String jndiBinding)
throws Exception;
- /**
- * Creates a connection factory
- *
- * @param name
- * the name of this connection factory
- * @param clientID
- * the client id
- * @param dupsOKBatchSize
- * the bath size
- * @param consumerWindowSize
- * The consumer window size
- * @param consumerMaxRate
- * the Consumer max rate
- * @param producerWindowSize
- * the producer window size
- * @param producerMaxRate
- * the producer max rate
- * @param jndiBindings
- * the binding names for JNDI
- * @return true if the connection factory was created
- * @throws Exception
- * if a problem occurred creating the connection factory
- */
- boolean createConnectionFactory(String name, String clientID,
+
+ boolean createConnectionFactory(String name, ConnectorFactory connectorFactory,
+ Map<String, Object> transportParams,
+ long pingPeriod, long callTimeout, String clientID,
int dupsOKBatchSize, int consumerWindowSize, int consumerMaxRate,
int producerWindowSize, int producerMaxRate,
boolean blockOnAcknowledge,
- boolean defaultSendNonPersistentMessagesBlocking,
- boolean defaultSendPersistentMessagesBlocking,
- List<String> jndiBindings) throws Exception;
+ boolean blockOnNonPersistentSend,
+ boolean blockOnPersistentSend, List<String> jndiBinding)
+ throws Exception;
/**
* destroys a connection factory.
Modified: trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerDeployer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerDeployer.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerDeployer.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -23,12 +23,17 @@
package org.jboss.messaging.jms.server.impl;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
+import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
import org.jboss.messaging.core.deployers.DeploymentManager;
import org.jboss.messaging.core.deployers.impl.XmlDeployer;
import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
import org.jboss.messaging.jms.server.JMSServerManager;
+import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
@@ -38,18 +43,27 @@
public class JMSServerDeployer extends XmlDeployer
{
Logger log = Logger.getLogger(JMSServerManagerImpl.class);
+
+ public static final int DEFAULT_DUPS_OK_BATCH_SIZE = 1000;
private JMSServerManager jmsServerManager;
private static final String CLIENTID_ELEMENT = "client-id";
+ private static final String PING_PERIOD_ELEMENT = "ping-period";
+ private static final String CALL_TIMEOUT_ELEMENT = "call-timeout";
private static final String DUPS_OK_BATCH_SIZE_ELEMENT = "dups-ok-batch-size";
private static final String CONSUMER_WINDOW_SIZE_ELEMENT = "consumer-window-size";
- private static final String CONSUMER_MAX_RATE = "consumer-max-rate";
- private static final String PRODUCER_WINDOW_SIZE = "producer-window-size";
- private static final String PRODUCER_MAX_RATE = "producer-max-rate";
- private static final String BLOCK_ON_ACKNOWLEDGE = "block-on-acknowledge";
- private static final String SEND_NP_MESSAGES_SYNCHRONOUSLY = "send-np-messages-synchronously";
- private static final String SEND_P_MESSAGES_SYNCHRONOUSLY = "send-p-messages-synchronously";
+ private static final String CONSUMER_MAX_RATE_ELEMENT = "consumer-max-rate";
+ private static final String PRODUCER_WINDOW_SIZE_ELEMENT = "producer-window-size";
+ private static final String PRODUCER_MAX_RATE_ELEMENT = "producer-max-rate";
+ private static final String BLOCK_ON_ACKNOWLEDGE_ELEMENT = "block-on-acknowledge";
+ private static final String SEND_NP_MESSAGES_SYNCHRONOUSLY_ELEMENT = "send-np-messages-synchronously";
+ private static final String SEND_P_MESSAGES_SYNCHRONOUSLY_ELEMENT = "send-p-messages-synchronously";
+ private static final String CONNECTOR_ELEMENT = "connector";
+ private static final String FACTORY_CLASS_ELEMENT = "factory-class";
+ private static final String PARAMS_ELEMENT = "params";
+ private static final String PARAM_ELEMENT = "param";
+
private static final String ENTRY_NODE_NAME = "entry";
private static final String CONNECTION_FACTORY_NODE_NAME = "connection-factory";
private static final String QUEUE_NODE_NAME = "queue";
@@ -96,78 +110,189 @@
{
if (node.getNodeName().equals(CONNECTION_FACTORY_NODE_NAME))
{
- // See http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4076040#4076040
- NodeList attributes = node.getChildNodes();
-
+ NodeList children = node.getChildNodes();
+
+ long pingPeriod = ClientSessionFactoryImpl.DEFAULT_PING_PERIOD;
+ long callTimeout = ClientSessionFactoryImpl.DEFAULT_CALL_TIMEOUT;
String clientID = null;
- int dupsOKBatchSize = 1000;
+ int dupsOKBatchSize = DEFAULT_DUPS_OK_BATCH_SIZE;
+ int consumerWindowSize = ClientSessionFactoryImpl.DEFAULT_CONSUMER_WINDOW_SIZE;
+ int consumerMaxRate = ClientSessionFactoryImpl.DEFAULT_CONSUMER_MAX_RATE;
+ int producerWindowSize = ClientSessionFactoryImpl.DEFAULT_PRODUCER_WINDOW_SIZE;
+ int producerMaxRate = ClientSessionFactoryImpl.DEFAULT_PRODUCER_MAX_RATE;
+ boolean blockOnAcknowledge = ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_ACKNOWLEDGE;
+ boolean blockOnNonPersistentSend = ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_NON_PERSISTENT_SEND;
+ boolean blockOnPersistentSend = ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_PERSISTENT_SEND;
- int consumerWindowSize = 1024 * 1024;
- int consumerMaxRate = -1;
- int producerWindowSize = 1024 * 1024;
- int producerMaxRate = -1;
- boolean blockOnAcknowledge = false;
- boolean sendNonPersistentMessagesSynchronously = false;
- boolean sendPersistentMessagesSynchronously = false;
+ List<String> jndiBindings = new ArrayList<String>();
+ String connectorFactoryClassName = null;
+ Map<String, Object> params = new HashMap<String, Object>();
- for (int j = 0; j < attributes.getLength(); j++)
+ for (int j = 0; j < children.getLength(); j++)
{
- if (CONSUMER_WINDOW_SIZE_ELEMENT.equalsIgnoreCase(attributes.item(j).getNodeName()))
+ if (PING_PERIOD_ELEMENT.equalsIgnoreCase(children.item(j).getNodeName()))
{
- consumerWindowSize = Integer.parseInt(attributes.item(j).getTextContent().trim());
+ pingPeriod = Long.parseLong(children.item(j).getTextContent().trim());
}
- else if (CONSUMER_MAX_RATE.equalsIgnoreCase(attributes.item(j).getNodeName()))
+ else if (CALL_TIMEOUT_ELEMENT.equalsIgnoreCase(children.item(j).getNodeName()))
{
- consumerMaxRate = Integer.parseInt(attributes.item(j).getTextContent().trim());
+ callTimeout = Long.parseLong(children.item(j).getTextContent().trim());
}
- else if (PRODUCER_WINDOW_SIZE.equalsIgnoreCase(attributes.item(j).getNodeName()))
+ else if (CONSUMER_WINDOW_SIZE_ELEMENT.equalsIgnoreCase(children.item(j).getNodeName()))
{
- producerWindowSize = Integer.parseInt(attributes.item(j).getTextContent().trim());
+ consumerWindowSize = Integer.parseInt(children.item(j).getTextContent().trim());
}
- else if (PRODUCER_MAX_RATE.equalsIgnoreCase(attributes.item(j).getNodeName()))
+ else if (CONSUMER_MAX_RATE_ELEMENT.equalsIgnoreCase(children.item(j).getNodeName()))
{
- producerMaxRate = Integer.parseInt(attributes.item(j).getTextContent().trim());
+ consumerMaxRate = Integer.parseInt(children.item(j).getTextContent().trim());
}
- else if (CLIENTID_ELEMENT.equalsIgnoreCase(attributes.item(j).getNodeName()))
+ else if (PRODUCER_WINDOW_SIZE_ELEMENT.equalsIgnoreCase(children.item(j).getNodeName()))
{
- clientID = attributes.item(j).getTextContent();
+ producerWindowSize = Integer.parseInt(children.item(j).getTextContent().trim());
}
- else if (DUPS_OK_BATCH_SIZE_ELEMENT.equalsIgnoreCase(attributes.item(j).getNodeName()))
+ else if (PRODUCER_MAX_RATE_ELEMENT.equalsIgnoreCase(children.item(j).getNodeName()))
{
- dupsOKBatchSize = Integer.parseInt(attributes.item(j).getTextContent().trim());
+ producerMaxRate = Integer.parseInt(children.item(j).getTextContent().trim());
}
- else if (BLOCK_ON_ACKNOWLEDGE.equalsIgnoreCase(attributes.item(j).getNodeName()))
+ else if (CLIENTID_ELEMENT.equalsIgnoreCase(children.item(j).getNodeName()))
{
- blockOnAcknowledge = Boolean.parseBoolean(attributes.item(j).getTextContent().trim());
+ clientID = children.item(j).getTextContent().trim();
}
- else if (SEND_NP_MESSAGES_SYNCHRONOUSLY.equalsIgnoreCase(attributes.item(j).getNodeName()))
+ else if (DUPS_OK_BATCH_SIZE_ELEMENT.equalsIgnoreCase(children.item(j).getNodeName()))
{
- sendNonPersistentMessagesSynchronously = Boolean.parseBoolean(attributes.item(j).getTextContent().trim());
+ dupsOKBatchSize = Integer.parseInt(children.item(j).getTextContent().trim());
}
- else if (SEND_P_MESSAGES_SYNCHRONOUSLY.equalsIgnoreCase(attributes.item(j).getNodeName()))
+ else if (BLOCK_ON_ACKNOWLEDGE_ELEMENT.equalsIgnoreCase(children.item(j).getNodeName()))
{
- sendPersistentMessagesSynchronously = Boolean.parseBoolean(attributes.item(j).getTextContent().trim());
+ blockOnAcknowledge = Boolean.parseBoolean(children.item(j).getTextContent().trim());
}
- }
-
- NodeList children = node.getChildNodes();
- String name = node.getAttributes().getNamedItem(getKeyAttribute()).getNodeValue();
- List<String> jndiBindings = new ArrayList<String>();
- for (int i = 0; i < children.getLength(); i++)
- {
- Node child = children.item(i);
-
- if (ENTRY_NODE_NAME.equalsIgnoreCase(children.item(i).getNodeName()))
+ else if (SEND_NP_MESSAGES_SYNCHRONOUSLY_ELEMENT.equalsIgnoreCase(children.item(j).getNodeName()))
{
- String jndiName = child.getAttributes().getNamedItem("name").getNodeValue();
+ blockOnNonPersistentSend = Boolean.parseBoolean(children.item(j).getTextContent().trim());
+ }
+ else if (SEND_P_MESSAGES_SYNCHRONOUSLY_ELEMENT.equalsIgnoreCase(children.item(j).getNodeName()))
+ {
+ blockOnPersistentSend = Boolean.parseBoolean(children.item(j).getTextContent().trim());
+ }
+ else if (ENTRY_NODE_NAME.equalsIgnoreCase(children.item(j).getNodeName()))
+ {
+ String jndiName = children.item(j).getAttributes().getNamedItem("name").getNodeValue();
jndiBindings.add(jndiName);
}
+ else if (CONNECTOR_ELEMENT.equalsIgnoreCase(children.item(j).getNodeName()))
+ {
+ log.info("Got CONNECTOR");
+
+ NodeList children2 = children.item(j).getChildNodes();
+
+ for (int l = 0; l < children2.getLength(); l++)
+ {
+ String nodeName = children2.item(l).getNodeName();
+
+ if (FACTORY_CLASS_ELEMENT.equalsIgnoreCase(nodeName))
+ {
+ connectorFactoryClassName = children2.item(l).getTextContent();
+
+ log.info("Got factory class " + connectorFactoryClassName);
+ }
+ else if (PARAMS_ELEMENT.equalsIgnoreCase(nodeName))
+ {
+ NodeList nlParams = children2.item(l).getChildNodes();
+
+ for (int m = 0; m < nlParams.getLength(); m++)
+ {
+ if (PARAM_ELEMENT.equalsIgnoreCase(nlParams.item(m).getNodeName()))
+ {
+ Node paramNode = nlParams.item(m);
+
+ NamedNodeMap attributes = paramNode.getAttributes();
+
+ Node nkey = attributes.getNamedItem("key");
+
+ String key = nkey.getTextContent();
+
+ Node nValue = attributes.getNamedItem("value");
+
+ String value = nValue.getTextContent();
+
+ Node nType = attributes.getNamedItem("type");
+
+ String type = nType.getTextContent();
+
+ if (type.equalsIgnoreCase("Integer"))
+ {
+ try
+ {
+ Integer iVal = Integer.parseInt(value);
+
+ params.put(key, iVal);
+ }
+ catch (NumberFormatException e2)
+ {
+ throw new IllegalArgumentException("Remoting acceptor parameter " + value + " is not a valid Integer");
+ }
+ }
+ else if (type.equalsIgnoreCase("Long"))
+ {
+ try
+ {
+ Long lVal = Long.parseLong(value);
+
+ params.put(key, lVal);
+ }
+ catch (NumberFormatException e2)
+ {
+ throw new IllegalArgumentException("Remoting acceptor parameter " + value + " is not a valid Long");
+ }
+ }
+ else if (type.equalsIgnoreCase("String"))
+ {
+ params.put(key, value);
+ }
+ else if (type.equalsIgnoreCase("Boolean"))
+ {
+ Boolean lVal = Boolean.parseBoolean(value);
+
+ params.put(key, lVal);
+ }
+ else
+ {
+ throw new IllegalArgumentException("Invalid parameter type " + type);
+ }
+
+ log.info("Got prop, key:" + key + " value:" + value);
+ }
+ }
+ }
+ }
+ }
}
- jmsServerManager.createConnectionFactory(name, clientID, dupsOKBatchSize,
+ if (connectorFactoryClassName == null)
+ {
+ throw new IllegalArgumentException("connector-factory-class-name must be specified in configuration");
+ }
+
+ ConnectorFactory connectorFactory;
+
+ ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ try
+ {
+ Class<?> clz = loader.loadClass(connectorFactoryClassName);
+ connectorFactory = (ConnectorFactory) clz.newInstance();
+ }
+ catch (Exception e)
+ {
+ throw new IllegalArgumentException("Error instantiating interceptor \"" + connectorFactoryClassName + "\"", e);
+ }
+
+ String name = node.getAttributes().getNamedItem(getKeyAttribute()).getNodeValue();
+
+ jmsServerManager.createConnectionFactory(name, connectorFactory, params,
+ pingPeriod, callTimeout, clientID, dupsOKBatchSize,
consumerWindowSize, consumerMaxRate, producerWindowSize, producerMaxRate,
- blockOnAcknowledge, sendNonPersistentMessagesSynchronously,
- sendPersistentMessagesSynchronously, jndiBindings);
+ blockOnAcknowledge, blockOnNonPersistentSend,
+ blockOnPersistentSend, jndiBindings);
}
else if (node.getNodeName().equals(QUEUE_NODE_NAME))
{
Modified: trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -36,6 +36,7 @@
import org.jboss.messaging.core.persistence.StorageManager;
import org.jboss.messaging.core.postoffice.Binding;
import org.jboss.messaging.core.postoffice.PostOffice;
+import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
import org.jboss.messaging.core.settings.HierarchicalRepository;
import org.jboss.messaging.core.settings.impl.QueueSettings;
import org.jboss.messaging.jms.JBossQueue;
@@ -186,25 +187,26 @@
return true;
}
- public boolean createConnectionFactory(final String name,
- final String clientID, final int dupsOKBatchSize,
- final int consumerWindowSize, final int consumerMaxRate,
- final int producerWindowSize, final int producerMaxRate,
- final boolean blockOnAcknowledge,
- final boolean defaultSendNonPersistentMessagesBlocking,
- final boolean defaultSendPersistentMessagesBlocking,
- final String jndiBinding) throws Exception
+ public boolean createConnectionFactory(String name, ConnectorFactory connectorFactory,
+ Map<String, Object> transportParams,
+ long pingPeriod, long callTimeout, String clientID,
+ int dupsOKBatchSize, int consumerWindowSize, int consumerMaxRate,
+ int producerWindowSize, int producerMaxRate,
+ boolean blockOnAcknowledge,
+ boolean blockOnNonPersistentSend,
+ boolean blockOnPersistentSend, String jndiBinding)
+ throws Exception
{
JBossConnectionFactory cf = connectionFactories.get(name);
if (cf == null)
{
- cf = new JBossConnectionFactory(clientID, dupsOKBatchSize,
- messagingServer.getConfiguration().getLocation(),
- messagingServer.getConfiguration().getConnectionParams(),
- consumerWindowSize, consumerMaxRate, producerWindowSize,
- producerMaxRate, blockOnAcknowledge,
- defaultSendNonPersistentMessagesBlocking,
- defaultSendPersistentMessagesBlocking);
+ cf = new JBossConnectionFactory(connectorFactory, transportParams,
+ pingPeriod, callTimeout,
+ clientID, dupsOKBatchSize,
+ consumerWindowSize, consumerMaxRate, producerWindowSize,
+ producerMaxRate, blockOnAcknowledge,
+ blockOnNonPersistentSend,
+ blockOnPersistentSend);
connectionFactories.put(name, cf);
}
if (!bindToJndi(jndiBinding, cf))
@@ -224,25 +226,26 @@
return true;
}
- public boolean createConnectionFactory(final String name,
- final String clientID, final int dupsOKBatchSize,
- final int consumerWindowSize, final int consumerMaxRate,
- final int producerWindowSize, final int producerMaxRate,
- final boolean blockOnAcknowledge,
- final boolean defaultSendNonPersistentMessagesBlocking,
- final boolean defaultSendPersistentMessagesBlocking,
- final List<String> jndiBindings) throws Exception
+ public boolean createConnectionFactory(String name, ConnectorFactory connectorFactory,
+ Map<String, Object> transportParams,
+ long pingPeriod, long callTimeout, String clientID,
+ int dupsOKBatchSize, int consumerWindowSize, int consumerMaxRate,
+ int producerWindowSize, int producerMaxRate,
+ boolean blockOnAcknowledge,
+ boolean blockOnNonPersistentSend,
+ boolean blockOnPersistentSend, List<String> jndiBindings)
+ throws Exception
{
JBossConnectionFactory cf = connectionFactories.get(name);
if (cf == null)
{
- cf = new JBossConnectionFactory(clientID, dupsOKBatchSize,
- messagingServer.getConfiguration().getLocation(),
- messagingServer.getConfiguration().getConnectionParams(),
- consumerWindowSize, consumerMaxRate, producerWindowSize,
- producerMaxRate, blockOnAcknowledge,
- defaultSendNonPersistentMessagesBlocking,
- defaultSendPersistentMessagesBlocking);
+ cf = new JBossConnectionFactory(connectorFactory, transportParams,
+ pingPeriod, callTimeout,
+ clientID, dupsOKBatchSize,
+ consumerWindowSize, consumerMaxRate, producerWindowSize,
+ producerMaxRate, blockOnAcknowledge,
+ blockOnNonPersistentSend,
+ blockOnPersistentSend);
}
for (String jndiBinding : jndiBindings)
{
@@ -296,7 +299,8 @@
if (sepIndex == -1)
{
parentContext = "";
- } else
+ }
+ else
{
parentContext = jndiName.substring(0, sepIndex);
}
@@ -307,7 +311,8 @@
log.warn("Binding for " + jndiName + " already exists");
return false;
- } catch (Throwable e)
+ }
+ catch (Throwable e)
{
// OK
}
Modified: trunk/src/main/org/jboss/messaging/jms/server/management/ConnectionFactoryControlMBean.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/ConnectionFactoryControlMBean.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/ConnectionFactoryControlMBean.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -26,18 +26,21 @@
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:fox at redhat.com">Tim Fox</a>
*
* @version <tt>$Revision$</tt>
*
*/
public interface ConnectionFactoryControlMBean
-{
- String getURL();
-
+{
List<String> getBindings();
String getClientID();
-
+
+ long getPingPeriod();
+
+ long getCallTimeout();
+
int getDupsOKBatchSize();
int getDefaultConsumerMaxRate();
Modified: trunk/src/main/org/jboss/messaging/jms/server/management/JMSServerControlMBean.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/JMSServerControlMBean.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/JMSServerControlMBean.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -24,8 +24,11 @@
import static javax.management.MBeanOperationInfo.ACTION;
+import java.util.Map;
+
import org.jboss.messaging.core.management.Operation;
import org.jboss.messaging.core.management.Parameter;
+import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -68,7 +71,10 @@
@Operation(desc = "Create a JMS ConnectionFactory", impact = ACTION)
void createConnectionFactory(
@Parameter(name = "name", desc = "Name of the ConnectionFactory to create") String name,
- @Parameter(name = "jndiBinding", desc = "JNDI Binding") String jndiBinding,
+ @Parameter(name = "connectorFactory", desc = "The Remoting Connector Factory used by this connection factory") ConnectorFactory connectorFactory,
+ @Parameter(name = "transportParams", desc = "Parameters for the remoting transport") Map<String, Object> transportParams,
+ @Parameter(name = "pingPeriod", desc = "The ping period in m") long pingPeriod,
+ @Parameter(name = "callTimeout", desc = "The call timeout in m") long callTimeout,
@Parameter(name = "clientID", desc = "ClientID for created connections") String clientID,
@Parameter(name = "dupsOKBatchSize", desc = "Size of the batch when using DUPS_OK") int dupsOKBatchSize,
@Parameter(name = "consumerWindowSize", desc = "Consumer's window size") int consumerWindowSize,
@@ -76,9 +82,10 @@
@Parameter(name = "producerWindowSize", desc = "Producer's window size") int producerWindowSize,
@Parameter(name = "producerMaxRate", desc = "Producer's max rate") int producerMaxRate,
@Parameter(name = "blockOnAcknowledge", desc = "Does acknowlegment block?") boolean blockOnAcknowledge,
- @Parameter(name = "defaultSendNonPersistentMessagesBlocking", desc = "Does sending non persistent messages block?") boolean defaultSendNonPersistentMessagesBlocking,
- @Parameter(name = "defaultSendPersistentMessagesBlocking", desc = "Does sending persistent messages block") boolean defaultSendPersistentMessagesBlocking)
- throws Exception;
+ @Parameter(name = "blockOnNonPersistentSend", desc = "Does sending non persistent messages block?") boolean blockOnNonPersistentSend,
+ @Parameter(name = "blockOnPersistentSend", desc = "Does sending persistent messages block") boolean blockOnPersistentSend,
+ @Parameter(name = "jndiBinding", desc = "JNDI Binding") String jndiBinding)
+ throws Exception;
@Operation(desc = "Create a JMS ConnectionFactory", impact = ACTION)
void destroyConnectionFactory(
Modified: trunk/src/main/org/jboss/messaging/jms/server/management/impl/ConnectionFactoryControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/impl/ConnectionFactoryControl.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/impl/ConnectionFactoryControl.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -65,11 +65,6 @@
// ManagedConnectionFactoryMBean implementation ------------------
- public String getURL()
- {
- return cf.getLocation().toString();
- }
-
public List<String> getBindings()
{
return bindings;
@@ -79,25 +74,35 @@
{
return cf.getClientID();
}
-
+
+ public long getPingPeriod()
+ {
+ return cf.getPingPeriod();
+ }
+
+ public long getCallTimeout()
+ {
+ return cf.getCallTimeout();
+ }
+
public int getDefaultConsumerMaxRate()
{
- return cf.getDefaultConsumerMaxRate();
+ return cf.getConsumerMaxRate();
}
public int getDefaultConsumerWindowSize()
{
- return cf.getDefaultConsumerWindowSize();
+ return cf.getConsumerWindowSize();
}
public int getDefaultProducerMaxRate()
{
- return cf.getDefaultProducerMaxRate();
+ return cf.getProducerMaxRate();
}
public int getDefaultProducerWindowSize()
{
- return cf.getDefaultProducerWindowSize();
+ return cf.getProducerWindowSize();
}
public int getDupsOKBatchSize()
@@ -107,17 +112,17 @@
public boolean isDefaultBlockOnAcknowledge()
{
- return cf.isDefaultBlockOnAcknowledge();
+ return cf.isBlockOnAcknowledge();
}
public boolean isDefaultBlockOnNonPersistentSend()
{
- return cf.isDefaultSendNonPersistentMessagesBlocking();
+ return cf.isBlockOnNonPersistentSend();
}
public boolean isDefaultBlockOnPersistentSend()
{
- return cf.isDefaultSendPersistentMessagesBlocking();
+ return cf.isBlockOnPersistentSend();
}
public String getName()
Modified: trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSServerControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSServerControl.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSServerControl.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -24,6 +24,7 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import java.util.concurrent.atomic.AtomicLong;
import javax.management.ListenerNotFoundException;
@@ -38,6 +39,7 @@
import javax.management.StandardMBean;
import org.jboss.messaging.core.management.impl.MBeanInfoHelper;
+import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
import org.jboss.messaging.jms.server.JMSServerManager;
import org.jboss.messaging.jms.server.management.JMSServerControlMBean;
@@ -75,22 +77,23 @@
// JMSServerControlMBean implementation --------------------------
- public void createConnectionFactory(final String name,
- final String jndiBinding, final String clientID,
- final int dupsOKBatchSize, final int consumerWindowSize,
- final int consumerMaxRate, final int producerWindowSize,
- final int producerMaxRate, final boolean blockOnAcknowledge,
- final boolean defaultSendNonPersistentMessagesBlocking,
- final boolean defaultSendPersistentMessagesBlocking) throws Exception
+ public void createConnectionFactory(String name, ConnectorFactory connectorFactory,
+ Map<String, Object> transportParams,
+ long pingPeriod, long callTimeout, String clientID,
+ int dupsOKBatchSize, int consumerWindowSize, int consumerMaxRate,
+ int producerWindowSize, int producerMaxRate,
+ boolean blockOnAcknowledge,
+ boolean blockOnNonPersistentSend,
+ boolean blockOnPersistentSend, String jndiBinding) throws Exception
{
List<String> bindings = new ArrayList<String>();
bindings.add(jndiBinding);
- boolean created = server.createConnectionFactory(name, clientID,
- dupsOKBatchSize, consumerWindowSize, consumerMaxRate,
- producerWindowSize, producerMaxRate, blockOnAcknowledge,
- defaultSendNonPersistentMessagesBlocking,
- defaultSendPersistentMessagesBlocking, bindings);
+ boolean created = server.createConnectionFactory(name, connectorFactory, transportParams,
+ pingPeriod, callTimeout, clientID, dupsOKBatchSize,
+ consumerWindowSize, consumerMaxRate, producerWindowSize, producerMaxRate,
+ blockOnAcknowledge, blockOnNonPersistentSend,
+ blockOnPersistentSend, jndiBinding);
if (created)
{
sendNotification(NotificationType.CONNECTION_FACTORY_CREATED, name);
Added: trunk/src/main/org/jboss/messaging/util/ConfigurationHelper.java
===================================================================
--- trunk/src/main/org/jboss/messaging/util/ConfigurationHelper.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/util/ConfigurationHelper.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -0,0 +1,152 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, 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.messaging.util;
+
+import java.util.Map;
+
+import org.jboss.messaging.core.logging.Logger;
+
+/**
+ * A ConfigurationHelper
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ *
+ */
+public class ConfigurationHelper
+{
+ public static final Logger log = Logger.getLogger(ConfigurationHelper.class);
+
+ public static String getStringProperty(final String propName, final String def,
+ final Map<String, Object> props)
+ {
+ if (props == null)
+ {
+ return def;
+ }
+
+ Object prop = props.get(propName);
+
+ if (prop == null)
+ {
+ return def;
+ }
+ else
+ {
+ if (prop instanceof String == false)
+ {
+ log.warn("Property " + propName + " must be a String");
+
+ return def;
+ }
+ else
+ {
+ return (String)prop;
+ }
+ }
+ }
+
+ public static int getIntProperty(final String propName, final int def,
+ final Map<String, Object> props)
+ {
+ if (props == null)
+ {
+ return def;
+ }
+ Object prop = props.get(propName);
+
+ if (prop == null)
+ {
+ return def;
+ }
+ else
+ {
+ if (prop instanceof Integer == false)
+ {
+ log.warn("Property " + propName + " must be an Integer");
+
+ return def;
+ }
+ else
+ {
+ return (Integer)prop;
+ }
+ }
+ }
+
+ public static long getLongProperty(final String propName, final long def,
+ final Map<String, Object> props)
+ {
+ if (props == null)
+ {
+ return def;
+ }
+
+ Object prop = props.get(propName);
+
+ if (prop == null)
+ {
+ return def;
+ }
+ else
+ {
+ if (prop instanceof Long == false)
+ {
+ log.warn("Property " + propName + " must be an Long");
+
+ return def;
+ }
+ else
+ {
+ return (Long)prop;
+ }
+ }
+ }
+
+ public static boolean getBooleanProperty(final String propName, final boolean def,
+ final Map<String, Object> props)
+ {
+ if (props == null)
+ {
+ return def;
+ }
+
+ Object prop = props.get(propName);
+
+ if (prop == null)
+ {
+ return def;
+ }
+ else
+ {
+ if (prop instanceof Boolean == false)
+ {
+ log.warn("Property " + propName + " must be a Boolean");
+
+ return def;
+ }
+ else
+ {
+ return (Boolean)prop;
+ }
+ }
+ }
+}
Modified: trunk/tests/config/ConfigurationTest-config.xml
===================================================================
--- trunk/tests/config/ConfigurationTest-config.xml 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/config/ConfigurationTest-config.xml 2008-08-28 12:52:17 UTC (rev 4886)
@@ -5,45 +5,34 @@
<scheduled-max-pool-size>12345</scheduled-max-pool-size>
<require-destinations>false</require-destinations>
<security-enabled>false</security-enabled>
- <security-invalidation-interval>5423</security-invalidation-interval>
- <packet-confirmation-batch-size>1234</packet-confirmation-batch-size>
- <remoting-transport>HTTP</remoting-transport>
- <remoting-bind-address>5431</remoting-bind-address>
- <remoting-host>blahhost</remoting-host>
- <remoting-port>6540</remoting-port>
- <remoting-backup-transport>TCP</remoting-backup-transport>
- <remoting-backup-host>backuphost</remoting-backup-host>
- <remoting-backup-port>7540</remoting-backup-port>
- <remoting-call-timeout>7654</remoting-call-timeout>
- <remoting-enable-invm-optimisation>false</remoting-enable-invm-optimisation>
- <remoting-tcp-nodelay>false</remoting-tcp-nodelay>
- <remoting-tcp-receive-buffer-size>987654</remoting-tcp-receive-buffer-size>
- <remoting-tcp-send-buffer-size>2345676</remoting-tcp-send-buffer-size>
- <remoting-ping-interval>123123</remoting-ping-interval>
- <remoting-ping-timeout>321321</remoting-ping-timeout>->
- <remoting-enable-ssl>true</remoting-enable-ssl>
- <remoting-ssl-keystore-path>blahstore</remoting-ssl-keystore-path>
- <remoting-ssl-keystore-password>wibble123</remoting-ssl-keystore-password>
- <remoting-ssl-truststore-path>blahtruststore</remoting-ssl-truststore-path>
- <remoting-ssl-truststore-password>eek123</remoting-ssl-truststore-password>
+ <security-invalidation-interval>5423</security-invalidation-interval>
+ <call-timeout>7654</call-timeout>
+ <packet-confirmation-batch-size>543</packet-confirmation-batch-size>
+ <connection-scan-period>6543</connection-scan-period>
<remoting-interceptors>
<class-name>org.jboss.messaging.tests.unit.core.config.impl.TestInterceptor1</class-name>
<class-name>org.jboss.messaging.tests.unit.core.config.impl.TestInterceptor2</class-name>
</remoting-interceptors>
- <remoting-connector-factories>
- <mapping>
- <transport>TCP</transport>
- <class-name>org.jboss.messaging.tests.unit.core.config.impl.TestConnectorFactory1</class-name>
- </mapping>
- <mapping>
- <transport>HTTP</transport>
- <class-name>org.jboss.messaging.tests.unit.core.config.impl.TestConnectorFactory2</class-name>
- </mapping>
- </remoting-connector-factories>
- <remoting-acceptor-factories>
- <class-name>org.jboss.messaging.tests.unit.core.config.impl.TestAcceptorFactory1</class-name>
- <class-name>org.jboss.messaging.tests.unit.core.config.impl.TestAcceptorFactory2</class-name>
- </remoting-acceptor-factories>
+ <remoting-acceptors>
+ <acceptor>
+ <factory-class>org.jboss.messaging.tests.unit.core.config.impl.TestAcceptorFactory1</factory-class>
+ <params>
+ <param key="a_mykey1" value="a_foovalue1" type="String"/>
+ <param key="a_mykey2" value="1234567" type="Long"/>
+ <param key="a_mykey3" value="123" type="Integer"/>
+ <param key="a_mykey4" value="a_foovalue4" type="String"/>
+ </params>
+ </acceptor>
+ <acceptor>
+ <factory-class>org.jboss.messaging.tests.unit.core.config.impl.TestAcceptorFactory2</factory-class>
+ <params>
+ <param key="b_mykey1" value="b_foovalue1" type="String"/>
+ <param key="b_mykey2" value="7654321" type="Long"/>
+ <param key="b_mykey3" value="321" type="Integer"/>
+ <param key="b_mykey4" value="b_foovalue4" type="String"/>
+ </params>
+ </acceptor>
+ </remoting-acceptors>
<bindings-directory>somedir</bindings-directory>
<create-bindings-dir>false</create-bindings-dir>
<journal-directory>somedir2</journal-directory>
Modified: trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/CTSMiscellaneousTest.java
===================================================================
--- trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/CTSMiscellaneousTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/CTSMiscellaneousTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -40,6 +40,7 @@
import javax.jms.TopicConnection;
import javax.jms.TopicSession;
+import org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory;
import org.jboss.messaging.jms.client.JBossConnectionFactory;
import org.jboss.test.messaging.JBMServerTestCase;
import org.jboss.test.messaging.jms.message.SimpleJMSBytesMessage;
@@ -83,7 +84,9 @@
List<String> bindings = new ArrayList<String>();
bindings.add("StrictTCKConnectionFactory");
- getJmsServerManager().createConnectionFactory("StrictTCKConnectionFactory", null,
+ getJmsServerManager().createConnectionFactory("StrictTCKConnectionFactory",
+ new NettyConnectorFactory(), null, 5000, 5000,
+ null,
1000, 1024 * 1024, -1, 1000, -1, true, true, true, "/StrictTCKConnectionFactory");
cf = (JBossConnectionFactory) getInitialContext().lookup("/StrictTCKConnectionFactory");
Modified: trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/JMSTestCase.java
===================================================================
--- trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/JMSTestCase.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/JMSTestCase.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -2,6 +2,7 @@
import javax.naming.InitialContext;
+import org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory;
import org.jboss.messaging.jms.client.JBossConnectionFactory;
import org.jboss.test.messaging.JBMServerTestCase;
@@ -36,7 +37,9 @@
//All jms tests should use a specific cg which has blockOnAcknowledge = true and
//both np and p messages are sent synchronously
- getJmsServerManager().createConnectionFactory("testsuitecf", null, 1000, 1024 * 1024, -1, 1000, -1, true, true, true, "/testsuitecf");
+ getJmsServerManager().createConnectionFactory("testsuitecf",
+ new NettyConnectorFactory(), null, 5000, 5000,
+ null, 1000, 1024 * 1024, -1, 1000, -1, true, true, true, "/testsuitecf");
cf = (JBossConnectionFactory) getInitialContext().lookup("/testsuitecf");
}
Modified: trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/message/JMSExpirationHeaderTest.java
===================================================================
--- trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/message/JMSExpirationHeaderTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/message/JMSExpirationHeaderTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -231,6 +231,7 @@
// noticed that if I use 1.01
// this assertion sometimes
// fails;
+
assertNull(expectedMessage);
}
Modified: trunk/tests/jms-tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java
===================================================================
--- trunk/tests/jms-tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/jms-tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -44,6 +44,7 @@
import org.jboss.kernel.spi.deployment.KernelDeployment;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.postoffice.Binding;
+import org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory;
import org.jboss.messaging.core.security.Role;
import org.jboss.messaging.core.server.MessagingServer;
import org.jboss.messaging.core.settings.impl.QueueSettings;
@@ -526,7 +527,9 @@
boolean blockOnAcknowledge) throws Exception
{
log.info("deploying connection factory with name: " + objectName + " and dupsok: " + dupsOkBatchSize);
- getJMSServerManager().createConnectionFactory(objectName, clientId, dupsOkBatchSize,
+ getJMSServerManager().createConnectionFactory(objectName,
+ new NettyConnectorFactory(), null, 5000, 5000,
+ clientId, dupsOkBatchSize,
prefetchSize, -1, 1000, -1, blockOnAcknowledge, true, true, jndiBindings);
}
Modified: trunk/tests/src/org/jboss/messaging/tests/integration/basic/CoreClientTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/basic/CoreClientTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/basic/CoreClientTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -29,13 +29,15 @@
import org.jboss.messaging.core.client.ClientProducer;
import org.jboss.messaging.core.client.ClientSession;
import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.Location;
import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.client.impl.LocationImpl;
+import org.jboss.messaging.core.config.AcceptorInfo;
+import org.jboss.messaging.core.config.Configuration;
import org.jboss.messaging.core.config.impl.ConfigurationImpl;
import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.TransportType;
-import org.jboss.messaging.core.remoting.impl.mina.MinaAcceptorFactory;
+import org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory;
+import org.jboss.messaging.core.remoting.impl.mina.MinaConnectorFactory;
+import org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory;
+import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
import org.jboss.messaging.core.server.MessagingService;
import org.jboss.messaging.core.server.impl.MessagingServiceImpl;
import org.jboss.messaging.jms.client.JBossTextMessage;
@@ -44,50 +46,41 @@
public class CoreClientTest extends TestCase
{
private static final Logger log = Logger.getLogger(CoreClientTest.class);
-
-
+
// Constants -----------------------------------------------------
- private final SimpleString QUEUE = new SimpleString("CoreClientTestQueue");
+
// Attributes ----------------------------------------------------
- private ConfigurationImpl conf;
- private MessagingService messagingService;
-
+
// Static --------------------------------------------------------
// Constructors --------------------------------------------------
// Public --------------------------------------------------------
- @Override
- protected void setUp() throws Exception
+ public void testCoreClient() throws Exception
{
- super.setUp();
-
- conf = new ConfigurationImpl();
- conf.setSecurityEnabled(false);
- conf.setTransport(TransportType.TCP);
- conf.setHost("localhost");
- messagingService = MessagingServiceImpl.newNullStorageMessagingServer(conf);
- messagingService.getServer().getRemotingService().registerAcceptorFactory(new MinaAcceptorFactory());
- messagingService.start();
+ testCoreClient("org.jboss.messaging.core.remoting.impl.mina.MinaAcceptorFactory", new MinaConnectorFactory());
+ testCoreClient("org.jboss.messaging.core.remoting.impl.netty.NettyAcceptorFactory", new NettyConnectorFactory());
+ testCoreClient("org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory", new InVMConnectorFactory());
}
- @Override
- protected void tearDown() throws Exception
- {
- messagingService.stop();
+ private void testCoreClient(final String acceptorFactoryClassName, final ConnectorFactory connectorFactory) throws Exception
+ {
+ final SimpleString QUEUE = new SimpleString("CoreClientTestQueue");
- super.tearDown();
- }
-
-
- public void testCoreClient() throws Exception
- {
- Location location = new LocationImpl(TransportType.TCP, "localhost", ConfigurationImpl.DEFAULT_PORT);
+ Configuration conf = new ConfigurationImpl();
+
+ conf.setSecurityEnabled(false);
+
+ conf.getAcceptorInfos().add(new AcceptorInfo(acceptorFactoryClassName));
- ClientSessionFactory sf = new ClientSessionFactoryImpl(location);
+ MessagingService messagingService = MessagingServiceImpl.newNullStorageMessagingServer(conf);
+
+ messagingService.start();
+
+ ClientSessionFactory sf = new ClientSessionFactoryImpl(connectorFactory);
ClientSession session = sf.createSession(false, true, true, -1, false);
@@ -95,13 +88,14 @@
ClientProducer producer = session.createProducer(QUEUE);
- for (int i = 0; i < 100; i++)
+ final int numMessages = 100;
+
+ for (int i = 0; i < numMessages; i++)
{
ClientMessage message = session.createClientMessage(JBossTextMessage.TYPE, false, 0,
- System.currentTimeMillis(), (byte) 1);
-
+ System.currentTimeMillis(), (byte) 1);
message.getBody().putString("testINVMCoreClient");
-
+ message.getBody().flip();
producer.send(message);
}
@@ -109,14 +103,16 @@
session.start();
- for (int i = 0; i < 100; i++)
+ for (int i = 0; i < numMessages; i++)
{
- ClientMessage message2 = consumer.receive(1000);
+ ClientMessage message2 = consumer.receive();
assertEquals("testINVMCoreClient", message2.getBody().getString());
}
session.close();
+
+ messagingService.stop();
}
// Package protected ---------------------------------------------
Modified: trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientCrashTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientCrashTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientCrashTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,7 +22,6 @@
package org.jboss.messaging.tests.integration.clientcrash;
-import static org.jboss.messaging.core.remoting.TransportType.*;
import junit.framework.TestCase;
import org.jboss.messaging.core.client.ClientConsumer;
@@ -31,11 +30,11 @@
import org.jboss.messaging.core.client.ClientSession;
import org.jboss.messaging.core.client.ClientSessionFactory;
import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.client.impl.LocationImpl;
+import org.jboss.messaging.core.config.AcceptorInfo;
import org.jboss.messaging.core.config.impl.ConfigurationImpl;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.message.Message;
-import org.jboss.messaging.core.remoting.impl.mina.MinaAcceptorFactory;
+import org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory;
import org.jboss.messaging.core.server.MessagingService;
import org.jboss.messaging.core.server.impl.MessagingServiceImpl;
import org.jboss.messaging.jms.client.JBossTextMessage;
@@ -140,13 +139,14 @@
super.setUp();
ConfigurationImpl config = new ConfigurationImpl();
- config.getConnectionParams().setPingInterval(2000);
config.setSecurityEnabled(false);
+ config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.core.remoting.impl.netty.NettyAcceptorFactory"));
messagingService = MessagingServiceImpl.newNullStorageMessagingServer(config);
- messagingService.getServer().getRemotingService().registerAcceptorFactory(new MinaAcceptorFactory());
messagingService.start();
- sf = new ClientSessionFactoryImpl(new LocationImpl(TCP, "localhost", ConfigurationImpl.DEFAULT_PORT));
+ sf = new ClientSessionFactoryImpl(new NettyConnectorFactory());
+ sf.setPingPeriod(2000);
+
}
@Override
Modified: trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientExitTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientExitTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/ClientExitTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,18 +22,17 @@
package org.jboss.messaging.tests.integration.clientcrash;
-import static org.jboss.messaging.core.remoting.TransportType.TCP;
import junit.framework.TestCase;
import org.jboss.messaging.core.client.ClientConsumer;
import org.jboss.messaging.core.client.ClientSession;
import org.jboss.messaging.core.client.ClientSessionFactory;
import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.client.impl.LocationImpl;
+import org.jboss.messaging.core.config.AcceptorInfo;
import org.jboss.messaging.core.config.impl.ConfigurationImpl;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.message.Message;
-import org.jboss.messaging.core.remoting.impl.mina.MinaAcceptorFactory;
+import org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory;
import org.jboss.messaging.core.server.MessagingService;
import org.jboss.messaging.core.server.impl.MessagingServiceImpl;
import org.jboss.messaging.tests.util.SpawnedVMSupport;
@@ -102,11 +101,11 @@
{
ConfigurationImpl config = new ConfigurationImpl();
config.setSecurityEnabled(false);
+ config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.core.remoting.impl.netty.NettyAcceptorFactory"));
messagingService = MessagingServiceImpl.newNullStorageMessagingServer(config);
- messagingService.getServer().getRemotingService().registerAcceptorFactory(new MinaAcceptorFactory());
messagingService.start();
- ClientSessionFactory sf = new ClientSessionFactoryImpl(new LocationImpl(TCP, "localhost", ConfigurationImpl.DEFAULT_PORT));
+ ClientSessionFactory sf = new ClientSessionFactoryImpl(new NettyConnectorFactory());
session = sf.createSession(false, true, true, -1, false);
session.createQueue(QUEUE, QUEUE, null, false, false);
consumer = session.createConsumer(QUEUE);
Modified: trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/CrashClient.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/CrashClient.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/CrashClient.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,7 +22,6 @@
package org.jboss.messaging.tests.integration.clientcrash;
-import static org.jboss.messaging.core.remoting.TransportType.TCP;
import static org.jboss.messaging.tests.integration.clientcrash.ClientCrashTest.QUEUE;
import java.util.Arrays;
@@ -32,11 +31,9 @@
import org.jboss.messaging.core.client.ClientProducer;
import org.jboss.messaging.core.client.ClientSession;
import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.Location;
import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.client.impl.LocationImpl;
-import org.jboss.messaging.core.config.impl.ConfigurationImpl;
import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory;
import org.jboss.messaging.jms.client.JBossTextMessage;
@@ -71,9 +68,8 @@
}
int numberOfConnections = Integer.parseInt(args[0]);
-
- Location location = new LocationImpl(TCP, "localhost", ConfigurationImpl.DEFAULT_PORT);
- ClientSessionFactory sf = new ClientSessionFactoryImpl(location);
+
+ ClientSessionFactory sf = new ClientSessionFactoryImpl(new NettyConnectorFactory());
ClientSession session = sf.createSession(false, true, true, -1, false);
ClientProducer producer = session.createProducer(QUEUE);
ClientConsumer consumer = session.createConsumer(QUEUE);
Modified: trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/GracefulClient.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/GracefulClient.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/clientcrash/GracefulClient.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,7 +22,6 @@
package org.jboss.messaging.tests.integration.clientcrash;
-import static org.jboss.messaging.core.remoting.TransportType.TCP;
import static org.jboss.messaging.tests.integration.clientcrash.ClientExitTest.QUEUE;
import org.jboss.messaging.core.client.ClientConsumer;
@@ -30,11 +29,9 @@
import org.jboss.messaging.core.client.ClientProducer;
import org.jboss.messaging.core.client.ClientSession;
import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.Location;
import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.client.impl.LocationImpl;
-import org.jboss.messaging.core.config.impl.ConfigurationImpl;
import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory;
import org.jboss.messaging.jms.client.JBossTextMessage;
/**
@@ -59,9 +56,7 @@
{
try
{
- Location config = new LocationImpl(TCP, "localhost", ConfigurationImpl.DEFAULT_PORT);
-
- ClientSessionFactory sf = new ClientSessionFactoryImpl(config);
+ ClientSessionFactory sf = new ClientSessionFactoryImpl(new NettyConnectorFactory());
ClientSession session = sf.createSession(false, true, true, -1, false);
ClientProducer producer = session.createProducer(QUEUE);
ClientConsumer consumer = session.createConsumer(QUEUE);
Modified: trunk/tests/src/org/jboss/messaging/tests/integration/remoting/PingTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/remoting/PingTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/remoting/PingTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,13 +22,12 @@
package org.jboss.messaging.tests.integration.remoting;
-import static org.jboss.messaging.core.remoting.TransportType.TCP;
+import java.util.HashMap;
+import java.util.Map;
+
import junit.framework.TestCase;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
-import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
-import org.jboss.messaging.core.client.impl.LocationImpl;
+import org.jboss.messaging.core.config.AcceptorInfo;
import org.jboss.messaging.core.config.impl.ConfigurationImpl;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.logging.Logger;
@@ -38,8 +37,10 @@
import org.jboss.messaging.core.remoting.Interceptor;
import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.RemotingConnection;
-import org.jboss.messaging.core.remoting.impl.mina.MinaAcceptorFactory;
+import org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl;
+import org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
+import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
import org.jboss.messaging.core.server.MessagingService;
import org.jboss.messaging.core.server.impl.MessagingServiceImpl;
@@ -72,9 +73,8 @@
protected void setUp() throws Exception
{
ConfigurationImpl config = new ConfigurationImpl();
- config.getConnectionParams().setPingInterval(PING_INTERVAL);
+ config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.core.remoting.impl.netty.NettyAcceptorFactory"));
messagingService = MessagingServiceImpl.newNullStorageMessagingServer(config);
- messagingService.getServer().getRemotingService().registerAcceptorFactory(new MinaAcceptorFactory());
messagingService.start();
}
@@ -105,9 +105,8 @@
*/
public void testNoFailureWithPinging() throws Exception
{
- Location location = new LocationImpl(TCP, "localhost", ConfigurationImpl.DEFAULT_PORT);
- ConnectionParams connectionParams = new ConnectionParamsImpl();
- connectionParams.setPingInterval(PING_INTERVAL);
+ ConnectorFactory cf = new NettyConnectorFactory();
+ Map<String, Object> params = new HashMap<String, Object>();
ConnectionRegistry registry = ConnectionRegistryLocator.getRegistry();
@@ -115,9 +114,9 @@
try
{
- conn = registry.getConnection(location, connectionParams);
+ conn = registry.getConnection(cf, params, PING_INTERVAL, 5000);
assertNotNull(conn);
- assertEquals(1, registry.getCount(location));
+ assertEquals(1, registry.getCount(cf, params));
Listener clientListener = new Listener();
@@ -146,7 +145,7 @@
{
try
{
- registry.returnConnection(location);
+ registry.returnConnection(conn.getID());
}
catch (Exception ignore)
{
@@ -159,16 +158,8 @@
*/
public void testNoFailureNoPinging() throws Exception
{
- ConfigurationImpl config = new ConfigurationImpl();
- config.getConnectionParams().setPingInterval(-1);
- messagingService.stop();
- messagingService = MessagingServiceImpl.newNullStorageMessagingServer(config);
- messagingService.getServer().getRemotingService().registerAcceptorFactory(new MinaAcceptorFactory());
- messagingService.start();
-
- Location location = new LocationImpl(TCP, "localhost", ConfigurationImpl.DEFAULT_PORT);
- ConnectionParams connectionParams = new ConnectionParamsImpl();
- connectionParams.setPingInterval(-1);
+ ConnectorFactory cf = new NettyConnectorFactory();
+ Map<String, Object> params = new HashMap<String, Object>();
ConnectionRegistry registry = ConnectionRegistryLocator.getRegistry();
@@ -176,9 +167,9 @@
try
{
- conn = registry.getConnection(location, connectionParams);
+ conn = registry.getConnection(cf, params, -1, 5000);
assertNotNull(conn);
- assertEquals(1, registry.getCount(location));
+ assertEquals(1, registry.getCount(cf, params));
Listener clientListener = new Listener();
@@ -207,7 +198,7 @@
{
try
{
- registry.returnConnection(location);
+ registry.returnConnection(conn.getID());
}
catch (Exception ignore)
{
@@ -219,29 +210,32 @@
* Test the server timing out a connection since it doesn't receive a ping in time
*/
public void testServerFailureNoPing() throws Exception
- {
- Location location = new LocationImpl(TCP, "localhost", ConfigurationImpl.DEFAULT_PORT);
- ConnectionParams connectionParams = new ConnectionParamsImpl();
- connectionParams.setPingInterval(PING_INTERVAL * 2);
+ {
+ ConnectorFactory cf = new NettyConnectorFactory();
+ Map<String, Object> params = new HashMap<String, Object>();
ConnectionRegistry registry = ConnectionRegistryLocator.getRegistry();
- RemotingConnection conn = null;
+ RemotingConnectionImpl conn = null;
try
{
- conn = registry.getConnection(location, connectionParams);
- assertEquals(1, registry.getCount(location));
+ conn = (RemotingConnectionImpl)registry.getConnection(cf, params, PING_INTERVAL, 5000);
+ assertEquals(1, registry.getCount(cf, params));
assertNotNull(conn);
+
+ //We need to get it to send one ping then stop
+ conn.stopPingingAfterOne();
Listener clientListener = new Listener();
conn.addFailureListener(clientListener);
//It's async so need to wait a while
- Thread.sleep(1000);
-
- RemotingConnection serverConn = messagingService.getServer().getRemotingService().getConnections().iterator().next();
+ Thread.sleep(2000);
+
+ RemotingConnection serverConn =
+ messagingService.getServer().getRemotingService().getConnections().iterator().next();
Listener serverListener = new Listener();
@@ -259,7 +253,7 @@
//Make sure we don't get the same connection back - it should have been removed from the registry
- RemotingConnection conn2 = registry.getConnection(location, connectionParams);
+ RemotingConnection conn2 = registry.getConnection(cf, params, PING_INTERVAL * 2, 5000);
assertNotNull(conn2);
assertFalse(conn == conn2);
@@ -269,7 +263,7 @@
{
try
{
- registry.returnConnection(location);
+ registry.returnConnection(conn.getID());
}
catch (Exception ignore)
{
@@ -300,9 +294,8 @@
messagingService.getServer().getRemotingService().getDispatcher().addInterceptor(noPongInterceptor);
- Location location = new LocationImpl(TCP, "localhost", ConfigurationImpl.DEFAULT_PORT);
- ConnectionParams connectionParams = new ConnectionParamsImpl();
- connectionParams.setPingInterval(PING_INTERVAL);
+ ConnectorFactory cf = new NettyConnectorFactory();
+ Map<String, Object> params = new HashMap<String, Object>();
ConnectionRegistry registry = ConnectionRegistryLocator.getRegistry();
@@ -310,9 +303,9 @@
try
{
- conn = registry.getConnection(location, connectionParams);
+ conn = registry.getConnection(cf, params, PING_INTERVAL, 5000);
assertNotNull(conn);
- assertEquals(1, registry.getCount(location));
+ assertEquals(1, registry.getCount(cf, params));
Listener clientListener = new Listener();
@@ -338,7 +331,7 @@
//Make sure we don't get the same connection back - it should have been removed from the registry
- RemotingConnection conn2 = registry.getConnection(location, connectionParams);
+ RemotingConnection conn2 = registry.getConnection(cf, params, PING_INTERVAL, 5000);
assertNotNull(conn2);
}
finally
@@ -346,7 +339,7 @@
messagingService.getServer().getRemotingService().getDispatcher().removeInterceptor(noPongInterceptor);
try
{
- registry.returnConnection(location);
+ registry.returnConnection(conn.getID());
}
catch (Exception ignore)
{
Modified: trunk/tests/src/org/jboss/messaging/tests/integration/ssl/CoreClientOverSSL.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/ssl/CoreClientOverSSL.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/ssl/CoreClientOverSSL.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,20 +22,17 @@
package org.jboss.messaging.tests.integration.ssl;
-import static org.jboss.messaging.core.remoting.TransportType.TCP;
-
import java.util.Arrays;
import org.jboss.messaging.core.client.ClientMessage;
import org.jboss.messaging.core.client.ClientProducer;
import org.jboss.messaging.core.client.ClientSession;
import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
-import org.jboss.messaging.core.client.impl.LocationImpl;
import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory;
+import org.jboss.messaging.core.remoting.impl.netty.TransportConstants;
+import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
import org.jboss.messaging.jms.client.JBossTextMessage;
/**
@@ -58,25 +55,24 @@
{
try
{
+ System.out.println("Starting******");
+
log.debug("args = " + Arrays.asList(args));
- if (args.length != 3)
+ if (args.length != 1)
{
- log.fatal("unexpected number of args (should be 3)");
+ log.fatal("unexpected number of args (should be 1)");
System.exit(1);
}
- boolean sslEnabled = Boolean.parseBoolean(args[0]);
- String keyStorePath = args[1];
- String keyStorePassword = args[2];
+ boolean sslEnabled = Boolean.parseBoolean(args[0]);
+
+ System.out.println("ssl enabled is " + sslEnabled);
+
+ ConnectorFactory cf = new NettyConnectorFactory();
- Location config = new LocationImpl(TCP, "localhost", CoreClientOverSSLTest.SSL_PORT);
- ConnectionParams connectionParams = new ConnectionParamsImpl();
- connectionParams.setSSLEnabled(sslEnabled);
- connectionParams.setKeyStorePath(keyStorePath);
- connectionParams.setKeyStorePassword(keyStorePassword);
-
- ClientSessionFactory sf = new ClientSessionFactoryImpl(config, connectionParams);
+ ClientSessionFactory sf = new ClientSessionFactoryImpl(cf);
+ sf.getTransportParams().put(TransportConstants.SSL_ENABLED_PROP_NAME, sslEnabled);
ClientSession session = sf.createSession(false, true, true, -1, false);
ClientProducer producer = session.createProducer(CoreClientOverSSLTest.QUEUE);
Modified: trunk/tests/src/org/jboss/messaging/tests/integration/ssl/CoreClientOverSSLTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/ssl/CoreClientOverSSLTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/ssl/CoreClientOverSSLTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -23,18 +23,23 @@
package org.jboss.messaging.tests.integration.ssl;
import static java.lang.Boolean.FALSE;
+
+import java.util.HashMap;
+import java.util.Map;
+
import junit.framework.TestCase;
import org.jboss.messaging.core.client.ClientConsumer;
import org.jboss.messaging.core.client.ClientSession;
import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.ConnectionParams;
import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
+import org.jboss.messaging.core.config.AcceptorInfo;
import org.jboss.messaging.core.config.impl.ConfigurationImpl;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.message.Message;
-import org.jboss.messaging.core.remoting.impl.mina.MinaAcceptorFactory;
+import org.jboss.messaging.core.remoting.impl.netty.NettyConnectorFactory;
+import org.jboss.messaging.core.remoting.impl.netty.TransportConstants;
+import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
import org.jboss.messaging.core.server.MessagingService;
import org.jboss.messaging.core.server.impl.MessagingServiceImpl;
import org.jboss.messaging.tests.util.SpawnedVMSupport;
@@ -76,86 +81,80 @@
// Public --------------------------------------------------------
- public void testSSL() throws Exception
+ public void testDummy()
{
- final Process p = SpawnedVMSupport.spawnVM(CoreClientOverSSL.class
- .getName(), Boolean.TRUE.toString(), "messaging.keystore",
- "secureexample");
-
- Message m = consumer.receive(10000);
- assertNotNull(m);
- assertEquals(MESSAGE_TEXT_FROM_CLIENT, m.getBody().getString());
-
- log.debug("waiting for the client VM to exit ...");
- SpawnedVMSupport.assertProcessExits(true, 0, p);
+ //This whole test needs to be rewritten - there's no need for it to be spawning vms
}
+
+// public void testSSL() throws Exception
+// {
+// final Process p = SpawnedVMSupport.spawnVM(CoreClientOverSSL.class
+// .getName(), Boolean.TRUE.toString());
+//
+// Message m = consumer.receive(10000);
+// assertNotNull(m);
+// assertEquals(MESSAGE_TEXT_FROM_CLIENT, m.getBody().getString());
+//
+// log.debug("waiting for the client VM to exit ...");
+// SpawnedVMSupport.assertProcessExits(true, 0, p);
+// }
+//
+// public void testSSLWithIncorrectKeyStorePassword() throws Exception
+// {
+// Process p = SpawnedVMSupport.spawnVM(CoreClientOverSSL.class
+// .getName(), Boolean.TRUE.toString());
+//
+// Message m = consumer.receive(5000);
+// assertNull(m);
+//
+// log.debug("waiting for the client VM to exit ...");
+// SpawnedVMSupport.assertProcessExits(false, 0, p);
+// }
+//
+// public void testPlainConnectionToSSLEndpoint() throws Exception
+// {
+// Process p = SpawnedVMSupport.spawnVM(CoreClientOverSSL.class
+// .getName(), FALSE.toString());
+//
+// Message m = consumer.receive(5000);
+// assertNull(m);
+//
+// log.debug("waiting for the client VM to exit ...");
+// SpawnedVMSupport.assertProcessExits(false, 0, p);
+// }
- public void testSSLWithIncorrectKeyStorePassword() throws Exception
- {
- Process p = SpawnedVMSupport.spawnVM(CoreClientOverSSL.class
- .getName(), Boolean.TRUE.toString(), "messaging.keystore",
- "incorrectKeyStorePassword");
-
- Message m = consumer.receive(5000);
- assertNull(m);
-
- log.debug("waiting for the client VM to exit ...");
- SpawnedVMSupport.assertProcessExits(false, 0, p);
- }
-
- public void testPlainConnectionToSSLEndpoint() throws Exception
- {
- Process p = SpawnedVMSupport.spawnVM(CoreClientOverSSL.class
- .getName(), FALSE.toString(), null, null);
-
- Message m = consumer.receive(5000);
- assertNull(m);
-
- log.debug("waiting for the client VM to exit ...");
- SpawnedVMSupport.assertProcessExits(false, 0, p);
- }
-
// Package protected ---------------------------------------------
- @Override
- protected void setUp() throws Exception
- {
- ConfigurationImpl config = new ConfigurationImpl();
- config.setPort(SSL_PORT);
- config.setSecurityEnabled(false);
- config.setSSLEnabled(true);
- config.setKeyStorePath("messaging.keystore");
- config.setKeyStorePassword("secureexample");
- config.setTrustStorePath("messaging.truststore");
- config.setTrustStorePassword("secureexample");
+// @Override
+// protected void setUp() throws Exception
+// {
+// ConfigurationImpl config = new ConfigurationImpl();
+// config.setSecurityEnabled(false);
+// Map<String, Object> params = new HashMap<String, Object>();
+// params.put(TransportConstants.SSL_ENABLED_PROP_NAME, true);
+// config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.core.remoting.impl.netty.NettyAcceptorFactory", params));
+// messagingService = MessagingServiceImpl.newNullStorageMessagingServer(config);
+// messagingService.start();
+// ConnectorFactory cf = new NettyConnectorFactory();
+// ClientSessionFactory sf = new ClientSessionFactoryImpl(cf);
+// sf.setTransportParams(params);
+// session = sf.createSession(false, true, true, -1, false);
+// session.createQueue(QUEUE, QUEUE, null, false, false);
+// consumer = session.createConsumer(QUEUE);
+// session.start();
+// }
+//
+// @Override
+// protected void tearDown() throws Exception
+// {
+// consumer.close();
+// session.close();
+//
+// messagingService.stop();
+//
+// super.tearDown();
+// }
- messagingService = MessagingServiceImpl.newNullStorageMessagingServer(config);
- messagingService.getServer().getRemotingService().registerAcceptorFactory(new MinaAcceptorFactory());
- messagingService.start();
- ConnectionParams connectionParams = new ConnectionParamsImpl();
- connectionParams.setSSLEnabled(true);
- connectionParams.setKeyStorePath("messaging.keystore");
- connectionParams.setKeyStorePassword("secureexample");
- connectionParams.setTrustStorePath("messaging.truststore");
- connectionParams.setTrustStorePassword("secureexample");
- ClientSessionFactory sf = new ClientSessionFactoryImpl(config.getLocation(), connectionParams);
- session = sf.createSession(false, true, true, -1, false);
- session.createQueue(QUEUE, QUEUE, null, false, false);
- consumer = session.createConsumer(QUEUE);
- session.start();
- }
-
- @Override
- protected void tearDown() throws Exception
- {
- consumer.close();
- session.close();
-
- messagingService.stop();
-
- super.tearDown();
- }
-
// Protected -----------------------------------------------------
// Private -------------------------------------------------------
Modified: trunk/tests/src/org/jboss/messaging/tests/timing/core/remoting/impl/RemotingConnectionImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/timing/core/remoting/impl/RemotingConnectionImplTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/timing/core/remoting/impl/RemotingConnectionImplTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -32,8 +32,6 @@
import org.easymock.EasyMock;
import org.easymock.IAnswer;
-import org.jboss.messaging.core.client.Location;
-import org.jboss.messaging.core.client.impl.LocationImpl;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.FailureListener;
@@ -41,7 +39,6 @@
import org.jboss.messaging.core.remoting.PacketDispatcher;
import org.jboss.messaging.core.remoting.PacketHandler;
import org.jboss.messaging.core.remoting.RemotingConnection;
-import org.jboss.messaging.core.remoting.TransportType;
import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
import org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
@@ -64,7 +61,6 @@
{
Connection connection = EasyMock.createStrictMock(Connection.class);
PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
ScheduledExecutorService ex = new ScheduledThreadPoolExecutor(1);
final long id = 128712;
@@ -122,7 +118,7 @@
EasyMock.replay(connection, dispatcher);
- RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, location, 1000L, pingPeriod, ex);
+ RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, 1000L, pingPeriod, ex);
class Listener implements FailureListener
{
@@ -151,7 +147,6 @@
{
Connection connection = EasyMock.createStrictMock(Connection.class);
PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
ScheduledExecutorService ex = new ScheduledThreadPoolExecutor(1);
final long id = 128712;
@@ -173,7 +168,7 @@
EasyMock.replay(connection, dispatcher);
- RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, location, 1000L, pingPeriod, ex);
+ RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, 1000L, pingPeriod, ex);
class Listener implements FailureListener
{
@@ -201,7 +196,6 @@
{
Connection connection = EasyMock.createStrictMock(Connection.class);
PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
ScheduledExecutorService ex = new ScheduledThreadPoolExecutor(1);
final long id = 128712;
@@ -264,7 +258,7 @@
EasyMock.replay(connection, dispatcher);
- RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, location, 1000L, pingPeriod, ex);
+ RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, 1000L, pingPeriod, ex);
class Listener implements FailureListener
{
@@ -291,7 +285,6 @@
{
Connection connection = EasyMock.createStrictMock(Connection.class);
PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
final long id = 128712;
EasyMock.expect(dispatcher.generateID()).andReturn(id);
@@ -311,7 +304,7 @@
final long callTimeout = 100;
- RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, location, callTimeout);
+ RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, callTimeout);
class Listener implements FailureListener
{
@@ -354,7 +347,6 @@
{
Connection connection = EasyMock.createStrictMock(Connection.class);
PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
final long id = 128712;
EasyMock.expect(dispatcher.generateID()).andReturn(id);
@@ -419,7 +411,7 @@
EasyMock.replay(connection, dispatcher);
- RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, location, callTimeout);
+ RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, callTimeout);
class Listener implements FailureListener
{
Modified: trunk/tests/src/org/jboss/messaging/tests/timing/core/remoting/impl/RemotingHandlerImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/timing/core/remoting/impl/RemotingHandlerImplTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/timing/core/remoting/impl/RemotingHandlerImplTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -94,7 +94,7 @@
buff4.getInt();
final long connectionID4 = 127987;
- Set<Object> failed = handler.scanForFailedConnections(expirePeriod);
+ Set<Object> failed = handler.scanForFailedConnections();
assertEquals(0, failed.size());
@@ -103,20 +103,20 @@
handler.bufferReceived(connectionID3, buff3);
handler.bufferReceived(connectionID4, buff4);
- failed = handler.scanForFailedConnections(expirePeriod);
+ failed = handler.scanForFailedConnections();
assertEquals(0, failed.size());
Thread.sleep(expirePeriod + 10);
- failed = handler.scanForFailedConnections(expirePeriod);
+ failed = handler.scanForFailedConnections();
assertEquals(4, failed.size());
- handler.removeLastPing(connectionID1);
- handler.removeLastPing(connectionID2);
- handler.removeLastPing(connectionID3);
- handler.removeLastPing(connectionID4);
+ handler.removeExpireTime(connectionID1);
+ handler.removeExpireTime(connectionID2);
+ handler.removeExpireTime(connectionID3);
+ handler.removeExpireTime(connectionID4);
- failed = handler.scanForFailedConnections(expirePeriod);
+ failed = handler.scanForFailedConnections();
assertEquals(0, failed.size());
}
Modified: trunk/tests/src/org/jboss/messaging/tests/timing/core/remoting/impl/RemotingServiceImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/timing/core/remoting/impl/RemotingServiceImplTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/timing/core/remoting/impl/RemotingServiceImplTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -47,7 +47,7 @@
{
ConfigurationImpl config = new ConfigurationImpl();
final long interval = 100;
- config.getConnectionParams().setPingInterval(interval);
+ config.setConnectionScanPeriod(interval);
RemotingServiceImpl remotingService = new RemotingServiceImpl(config);
RemotingHandler handler = EasyMock.createStrictMock(RemotingHandler.class);
@@ -55,7 +55,7 @@
Set<Object> failed = new HashSet<Object>();
- EasyMock.expect(handler.scanForFailedConnections((long)(1.5 * interval))).andReturn(failed);
+ EasyMock.expect(handler.scanForFailedConnections()).andReturn(failed);
EasyMock.replay(handler);
@@ -71,7 +71,7 @@
{
ConfigurationImpl config = new ConfigurationImpl();
final long interval = 100;
- config.getConnectionParams().setPingInterval(interval);
+ config.setConnectionScanPeriod(interval);
RemotingServiceImpl remotingService = new RemotingServiceImpl(config);
RemotingHandler handler = EasyMock.createStrictMock(RemotingHandler.class);
@@ -81,15 +81,15 @@
failed.add(2L);
failed.add(3L);
- EasyMock.expect(handler.scanForFailedConnections((long)(1.5 * interval))).andReturn(failed);
+ EasyMock.expect(handler.scanForFailedConnections()).andStubReturn(failed);
Connection conn1 = EasyMock.createStrictMock(Connection.class);
Connection conn2 = EasyMock.createStrictMock(Connection.class);
Connection conn3 = EasyMock.createStrictMock(Connection.class);
- EasyMock.expect(conn1.getID()).andStubReturn(1);
- EasyMock.expect(conn2.getID()).andStubReturn(2);
- EasyMock.expect(conn3.getID()).andStubReturn(3);
+ EasyMock.expect(conn1.getID()).andStubReturn(1l);
+ EasyMock.expect(conn2.getID()).andStubReturn(2l);
+ EasyMock.expect(conn3.getID()).andStubReturn(3l);
conn2.close();
conn3.close();
@@ -111,9 +111,9 @@
remotingService.connectionCreated(conn2);
remotingService.connectionCreated(conn3);
- RemotingConnection rc1 = remotingService.getConnection(1);
- RemotingConnection rc2 = remotingService.getConnection(2);
- RemotingConnection rc3 = remotingService.getConnection(3);
+ RemotingConnection rc1 = remotingService.getConnection(1l);
+ RemotingConnection rc2 = remotingService.getConnection(2l);
+ RemotingConnection rc3 = remotingService.getConnection(3l);
Listener listener1 = new Listener();
rc1.addFailureListener(listener1);
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientSessionFactoryImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientSessionFactoryImplTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientSessionFactoryImplTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,24 +22,23 @@
package org.jboss.messaging.tests.unit.core.client.impl;
+import java.util.HashMap;
+import java.util.Map;
+
import org.easymock.EasyMock;
import org.jboss.messaging.core.client.ClientSession;
import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
-import org.jboss.messaging.core.client.impl.LocationImpl;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.CommandManager;
import org.jboss.messaging.core.remoting.ConnectionRegistry;
import org.jboss.messaging.core.remoting.PacketDispatcher;
import org.jboss.messaging.core.remoting.RemotingConnection;
-import org.jboss.messaging.core.remoting.TransportType;
import org.jboss.messaging.core.remoting.impl.CommandManagerImpl;
import org.jboss.messaging.core.remoting.impl.PacketDispatcherImpl;
import org.jboss.messaging.core.remoting.impl.wireformat.CreateSessionMessage;
import org.jboss.messaging.core.remoting.impl.wireformat.CreateSessionResponseMessage;
+import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
import org.jboss.messaging.core.version.Version;
import org.jboss.messaging.core.version.impl.VersionImpl;
import org.jboss.messaging.tests.util.RandomUtil;
@@ -58,56 +57,39 @@
public void testWideConstructor() throws Exception
{
- final Location location = new LocationImpl(TransportType.TCP, "aardvarks");
+ final ConnectorFactory cf = EasyMock.createMock(ConnectorFactory.class);
+ Map<String, Object> params = new HashMap<String, Object>();
- final ConnectionParams params = new ConnectionParamsImpl();
-
- testCreateClientSessionFactory(location, params,
+ testCreateClientSessionFactory(cf, params, 12321, 123123,
32342, 1254, 152454, 15454, false, false, false);
- testCreateClientSessionFactory(location, params,
+ testCreateClientSessionFactory(cf, params, 12542, 1625,
65465, 5454, 6544, 654654, true, true, true);
}
public void testLocationOnlyConstructor() throws Exception
{
- final Location location = new LocationImpl(TransportType.TCP, "bullfrog");
+ final ConnectorFactory cf = EasyMock.createMock(ConnectorFactory.class);
- final ClientSessionFactory cf = new ClientSessionFactoryImpl(location);
+ final ClientSessionFactory sf = new ClientSessionFactoryImpl(cf);
- assertTrue(cf.getLocation() == location);
-
- ConnectionParams params = new ConnectionParamsImpl();
- assertEquals(params, cf.getConnectionParams());
-
- checkDefaults(cf);
+ assertTrue(cf == sf.getConnectorFactory());
+
+ checkDefaults(sf);
}
- public void testLocationAndParamsOnlyConstructor() throws Exception
+ public void testGetSetAttributes() throws Exception
{
- final Location location = new LocationImpl(TransportType.TCP, "bullfrog");
+ final ConnectorFactory cf = EasyMock.createMock(ConnectorFactory.class);
- final ConnectionParams params = new ConnectionParamsImpl();
+ final ClientSessionFactory sf = new ClientSessionFactoryImpl(cf);
- ClientSessionFactory cf = new ClientSessionFactoryImpl(location, params);
+ Map<String, Object> params = new HashMap<String, Object>();
- assertTrue(cf.getLocation() == location);
-
- assertTrue(params == cf.getConnectionParams());
-
- checkDefaults(cf);
+ checkGetSetAttributes(sf, cf, params, 123, 767, 12312, 1231, 23424, 123213, false, false, false);
+ checkGetSetAttributes(sf, cf, params, 1726, 134, 656, 3453, 4343, 6556, true, true, true);
}
- public void testGetSetAttributes() throws Exception
- {
- final Location location = new LocationImpl(TransportType.TCP, "echidna");
-
- final ClientSessionFactory cf = new ClientSessionFactoryImpl(location);
-
- checkGetSetAttributes(cf, new ConnectionParamsImpl(), 12312, 1231, 23424, 123213, false, false, false);
- checkGetSetAttributes(cf, new ConnectionParamsImpl(), 656, 3453, 4343, 6556, true, true, true);
- }
-
public void testCreateSession() throws Throwable
{
testCreateSessionWithUsernameAndPassword(null, null);
@@ -122,25 +104,29 @@
private void testCreateSessionWithUsernameAndPassword(final String username, final String password) throws Throwable
{
- final Location location = new LocationImpl(TransportType.TCP, "cheesecake");
-
- final ConnectionParams params = new ConnectionParamsImpl();
-
ConnectionRegistry cr = EasyMock.createStrictMock(ConnectionRegistry.class);
RemotingConnection rc = EasyMock.createStrictMock(RemotingConnection.class);
PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
+
+ ConnectorFactory cof = EasyMock.createStrictMock(ConnectorFactory.class);
+
+ Map<String, Object> params = new HashMap<String, Object>();
+ final long pingPeriod = 61123;
+ final long callTimeout = 2763;
+
ClientSessionFactoryImpl cf =
- new ClientSessionFactoryImpl(location, params,
+ new ClientSessionFactoryImpl(cof, params,
+ pingPeriod, callTimeout,
32432, 4323,
453453, 54543, false,
false, false);
cf.setConnectionRegistry(cr);
- EasyMock.expect(cr.getConnection(location, params)).andReturn(rc);
+ EasyMock.expect(cr.getConnection(cof, params, pingPeriod, callTimeout)).andReturn(rc);
EasyMock.expect(rc.getPacketDispatcher()).andStubReturn(dispatcher);
long commandResponseTargetID = 1201922;
@@ -151,11 +137,12 @@
boolean autoCommitAcks = RandomUtil.randomBoolean();
int lazyAckBatchSize = 123;
boolean cacheProducers = RandomUtil.randomBoolean();
+ int confirmationBatchSize = RandomUtil.randomInt();
Version serverVersion = new VersionImpl("blah", 1, 1, 1, 12, "blah");
CreateSessionResponseMessage response =
- new CreateSessionResponseMessage(124312, 16226, serverVersion.getIncrementingVersion());
+ new CreateSessionResponseMessage(124312, 16226, serverVersion.getIncrementingVersion(), confirmationBatchSize);
EasyMock.expect(rc.sendBlocking(EasyMock.eq(PacketDispatcherImpl.MAIN_SERVER_HANDLER_ID),
EasyMock.eq(PacketDispatcherImpl.MAIN_SERVER_HANDLER_ID),
@@ -185,64 +172,76 @@
}
- private void testCreateClientSessionFactory(final Location location, final ConnectionParams params,
+ private void testCreateClientSessionFactory(final ConnectorFactory cf, final Map<String, Object> params,
+ final long pingPeriod, final long callTimeout,
final int defaultConsumerWindowSize, final int defaultConsumerMaxRate,
final int defaultProducerWindowSize, final int defaultProducerMaxRate,
final boolean defaultBlockOnAcknowledge,
final boolean defaultSendNonPersistentMessagesBlocking,
final boolean defaultSendPersistentMessagesBlocking) throws Exception
{
- ClientSessionFactory cf =
- new ClientSessionFactoryImpl(location, params, defaultConsumerWindowSize, defaultConsumerMaxRate,
+ ClientSessionFactory sf =
+ new ClientSessionFactoryImpl(cf, params, pingPeriod, callTimeout, defaultConsumerWindowSize, defaultConsumerMaxRate,
defaultProducerWindowSize, defaultProducerMaxRate, defaultBlockOnAcknowledge,
defaultSendNonPersistentMessagesBlocking, defaultSendPersistentMessagesBlocking);
- assertTrue(location == cf.getLocation());
- assertTrue(params == cf.getConnectionParams());
- assertEquals(defaultConsumerWindowSize, cf.getDefaultConsumerWindowSize());
- assertEquals(defaultConsumerMaxRate, cf.getDefaultConsumerMaxRate());
- assertEquals(defaultProducerWindowSize, cf.getDefaultProducerWindowSize());
- assertEquals(defaultProducerMaxRate, cf.getDefaultProducerMaxRate());
- assertEquals(defaultBlockOnAcknowledge, cf.isDefaultBlockOnAcknowledge());
- assertEquals(defaultSendNonPersistentMessagesBlocking, cf.isDefaultBlockOnNonPersistentSend());
- assertEquals(defaultSendPersistentMessagesBlocking, cf.isDefaultBlockOnPersistentSend());
+ assertTrue(cf == sf.getConnectorFactory());
+ assertTrue(params == sf.getTransportParams());
+ assertEquals(pingPeriod, sf.getPingPeriod());
+ assertEquals(callTimeout, sf.getCallTimeout());
+ assertEquals(defaultConsumerWindowSize, sf.getConsumerWindowSize());
+ assertEquals(defaultConsumerMaxRate, sf.getConsumerMaxRate());
+ assertEquals(defaultProducerWindowSize, sf.getProducerWindowSize());
+ assertEquals(defaultProducerMaxRate, sf.getProducerMaxRate());
+ assertEquals(defaultBlockOnAcknowledge, sf.isBlockOnAcknowledge());
+ assertEquals(defaultSendNonPersistentMessagesBlocking, sf.isBlockOnNonPersistentSend());
+ assertEquals(defaultSendPersistentMessagesBlocking, sf.isBlockOnPersistentSend());
}
private void checkDefaults(final ClientSessionFactory cf) throws Exception
{
- assertEquals(ClientSessionFactoryImpl.DEFAULT_DEFAULT_CONSUMER_WINDOW_SIZE, cf.getDefaultConsumerWindowSize());
- assertEquals(ClientSessionFactoryImpl.DEFAULT_DEFAULT_CONSUMER_MAX_RATE, cf.getDefaultConsumerMaxRate());
- assertEquals(ClientSessionFactoryImpl.DEFAULT_DEFAULT_PRODUCER_WINDOW_SIZE, cf.getDefaultProducerWindowSize());
- assertEquals(ClientSessionFactoryImpl.DEFAULT_DEFAULT_PRODUCER_MAX_RATE, cf.getDefaultProducerMaxRate());
- assertEquals(ClientSessionFactoryImpl.DEFAULT_DEFAULT_BLOCK_ON_ACKNOWLEDGE, cf.isDefaultBlockOnAcknowledge());
- assertEquals(ClientSessionFactoryImpl.DEFAULT_DEFAULT_BLOCK_ON_PERSISTENT_SEND, cf.isDefaultBlockOnNonPersistentSend());
- assertEquals(ClientSessionFactoryImpl.DEFAULT_DEFAULT_BLOCK_ON_NON_PERSISTENT_SEND, cf.isDefaultBlockOnPersistentSend());
+ assertEquals(ClientSessionFactoryImpl.DEFAULT_PING_PERIOD, cf.getPingPeriod());
+ assertEquals(ClientSessionFactoryImpl.DEFAULT_CALL_TIMEOUT, cf.getCallTimeout());
+ assertEquals(ClientSessionFactoryImpl.DEFAULT_CONSUMER_WINDOW_SIZE, cf.getConsumerWindowSize());
+ assertEquals(ClientSessionFactoryImpl.DEFAULT_CONSUMER_MAX_RATE, cf.getConsumerMaxRate());
+ assertEquals(ClientSessionFactoryImpl.DEFAULT_PRODUCER_WINDOW_SIZE, cf.getProducerWindowSize());
+ assertEquals(ClientSessionFactoryImpl.DEFAULT_PRODUCER_MAX_RATE, cf.getProducerMaxRate());
+ assertEquals(ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_ACKNOWLEDGE, cf.isBlockOnAcknowledge());
+ assertEquals(ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_PERSISTENT_SEND, cf.isBlockOnNonPersistentSend());
+ assertEquals(ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_NON_PERSISTENT_SEND, cf.isBlockOnPersistentSend());
}
- private void checkGetSetAttributes(ClientSessionFactory cf,
- final ConnectionParams params,
+ private void checkGetSetAttributes(ClientSessionFactory sf,
+ final ConnectorFactory cf, final Map<String, Object> params,
+ final long pingPeriod, final long callTimeout,
final int defaultConsumerWindowSize, final int defaultConsumerMaxRate,
final int defaultProducerWindowSize, final int defaultProducerMaxRate,
final boolean defaultBlockOnAcknowledge,
final boolean defaultBlockOnPersistentSend,
final boolean defaultBlockOnNonPersistentSend)
{
- cf.setConnectionParams(params);
- assertTrue(params == cf.getConnectionParams());
- cf.setDefaultConsumerWindowSize(defaultConsumerWindowSize);
- assertEquals(defaultConsumerWindowSize, cf.getDefaultConsumerWindowSize());
- cf.setDefaultConsumerMaxRate(defaultConsumerMaxRate);
- assertEquals(defaultConsumerMaxRate, cf.getDefaultConsumerMaxRate());
- cf.setDefaultProducerWindowSize(defaultProducerWindowSize);
- assertEquals(defaultProducerWindowSize, cf.getDefaultProducerWindowSize());
- cf.setDefaultProducerMaxRate(defaultProducerMaxRate);
- assertEquals(defaultProducerMaxRate, cf.getDefaultProducerMaxRate());
- cf.setDefaultBlockOnAcknowledge(defaultBlockOnAcknowledge);
- assertEquals(defaultBlockOnAcknowledge, cf.isDefaultBlockOnAcknowledge());
- cf.setDefaultBlockOnPersistentSend(defaultBlockOnPersistentSend);
- assertEquals(defaultBlockOnPersistentSend, cf.isDefaultBlockOnPersistentSend());
- cf.setDefaultBlockOnNonPersistentSend(defaultBlockOnNonPersistentSend);
- assertEquals(defaultBlockOnNonPersistentSend, cf.isDefaultBlockOnNonPersistentSend());
+ sf.setConnectorFactory(cf);
+ assertTrue(cf == sf.getConnectorFactory());
+ sf.setTransportParams(params);
+ assertTrue(params == sf.getTransportParams());
+ sf.setPingPeriod(pingPeriod);
+ assertEquals(pingPeriod, sf.getPingPeriod());
+ sf.setCallTimeout(callTimeout);
+ assertEquals(callTimeout, sf.getCallTimeout());
+ sf.setConsumerWindowSize(defaultConsumerWindowSize);
+ assertEquals(defaultConsumerWindowSize, sf.getConsumerWindowSize());
+ sf.setConsumerMaxRate(defaultConsumerMaxRate);
+ assertEquals(defaultConsumerMaxRate, sf.getConsumerMaxRate());
+ sf.setProducerWindowSize(defaultProducerWindowSize);
+ assertEquals(defaultProducerWindowSize, sf.getProducerWindowSize());
+ sf.setProducerMaxRate(defaultProducerMaxRate);
+ assertEquals(defaultProducerMaxRate, sf.getProducerMaxRate());
+ sf.setBlockOnAcknowledge(defaultBlockOnAcknowledge);
+ assertEquals(defaultBlockOnAcknowledge, sf.isBlockOnAcknowledge());
+ sf.setBlockOnPersistentSend(defaultBlockOnPersistentSend);
+ assertEquals(defaultBlockOnPersistentSend, sf.isBlockOnPersistentSend());
+ sf.setBlockOnNonPersistentSend(defaultBlockOnNonPersistentSend);
+ assertEquals(defaultBlockOnNonPersistentSend, sf.isBlockOnNonPersistentSend());
}
}
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientSessionImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientSessionImplTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ClientSessionImplTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -36,14 +36,12 @@
import org.jboss.messaging.core.client.ClientMessage;
import org.jboss.messaging.core.client.ClientSession;
import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.Location;
import org.jboss.messaging.core.client.impl.ClientConsumerInternal;
import org.jboss.messaging.core.client.impl.ClientConsumerPacketHandler;
import org.jboss.messaging.core.client.impl.ClientProducerInternal;
import org.jboss.messaging.core.client.impl.ClientProducerPacketHandler;
import org.jboss.messaging.core.client.impl.ClientSessionImpl;
import org.jboss.messaging.core.client.impl.ClientSessionInternal;
-import org.jboss.messaging.core.client.impl.LocationImpl;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.core.remoting.CommandManager;
@@ -51,7 +49,6 @@
import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketDispatcher;
import org.jboss.messaging.core.remoting.RemotingConnection;
-import org.jboss.messaging.core.remoting.TransportType;
import org.jboss.messaging.core.remoting.impl.wireformat.ConsumerFlowCreditMessage;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
import org.jboss.messaging.core.remoting.impl.wireformat.SessionAcknowledgeMessage;
@@ -756,7 +753,6 @@
ClientSessionFactory cf = EasyMock.createStrictMock(ClientSessionFactory.class);
PacketDispatcher pd = EasyMock.createStrictMock(PacketDispatcher.class);
CommandManager cm = EasyMock.createStrictMock(CommandManager.class);
- Location location = new LocationImpl(TransportType.TCP, "localhost", 1234);
ConnectionRegistry reg = EasyMock.createStrictMock(ConnectionRegistry.class);
final long sessionTargetID = 9121892;
@@ -788,8 +784,9 @@
browser2.cleanUp();
cm.close();
- EasyMock.expect(rc.getLocation()).andStubReturn(location);
- reg.returnConnection(location);
+ final String connectionID = "uahsjash";
+ EasyMock.expect(rc.getID()).andStubReturn(connectionID);
+ reg.returnConnection(connectionID);
EasyMock.replay(cf, pd, prod1, prod2, cons1, cons2, browser1, browser2, cm, reg, rc);
@@ -959,13 +956,7 @@
ClientSessionFactory cf = EasyMock.createStrictMock(ClientSessionFactory.class);
PacketDispatcher pd = EasyMock.createStrictMock(PacketDispatcher.class);
CommandManager cm = EasyMock.createStrictMock(CommandManager.class);
-
- Location location1 = new LocationImpl(TransportType.TCP, "blah1");
- Location location2 = new LocationImpl(TransportType.TCP, "blah2");
-
- EasyMock.expect(rc1.getLocation()).andStubReturn(location1);
- EasyMock.expect(rc2.getLocation()).andStubReturn(location2);
-
+
EasyMock.replay(rc1, rc2, cf, pd, cm);
ClientSessionInternal session1 =
@@ -1037,7 +1028,6 @@
ClientSessionFactory cf = EasyMock.createStrictMock(ClientSessionFactory.class);
PacketDispatcher pd = EasyMock.createStrictMock(PacketDispatcher.class);
CommandManager cm = EasyMock.createStrictMock(CommandManager.class);
- Location location = new LocationImpl(TransportType.TCP, "localhost", 1234);
ConnectionRegistry reg = EasyMock.createStrictMock(ConnectionRegistry.class);
SessionCreateQueueMessage request = new SessionCreateQueueMessage(new SimpleString("blah"), new SimpleString("hagshg"),
@@ -1058,8 +1048,9 @@
EasyMock.reset(rc, cf, pd, cm);
cm.close();
- EasyMock.expect(rc.getLocation()).andReturn(location);
- reg.returnConnection(location);
+ final String connectionID = "uahsjash";
+ EasyMock.expect(rc.getID()).andStubReturn(connectionID);
+ reg.returnConnection(connectionID);
EasyMock.replay(rc, cf, pd, cm);
session.cleanUp();
EasyMock.verify(rc, cf, pd, cm);
@@ -1281,9 +1272,9 @@
cm.close();
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
- EasyMock.expect(rc.getLocation()).andStubReturn(location);
- reg.returnConnection(location);
+ final String connectionID = "uahsjash";
+ EasyMock.expect(rc.getID()).andStubReturn(connectionID);
+ reg.returnConnection(connectionID);
EasyMock.replay(rc, cf, pd, prod1, prod2, cons1, cons2, browser1, browser2, cm);
@@ -2192,9 +2183,9 @@
// Defaults from cf
- EasyMock.expect(cf.isDefaultBlockOnNonPersistentSend()).andReturn(blockOnNPSend);
+ EasyMock.expect(cf.isBlockOnNonPersistentSend()).andReturn(blockOnNPSend);
- EasyMock.expect(cf.isDefaultBlockOnPersistentSend()).andReturn(blockOnPSend);
+ EasyMock.expect(cf.isBlockOnPersistentSend()).andReturn(blockOnPSend);
final long clientTargetID = 7676876;
@@ -2243,9 +2234,9 @@
// Defaults from cf
- EasyMock.expect(cf.isDefaultBlockOnNonPersistentSend()).andReturn(blockOnNPSend);
+ EasyMock.expect(cf.isBlockOnNonPersistentSend()).andReturn(blockOnNPSend);
- EasyMock.expect(cf.isDefaultBlockOnPersistentSend()).andReturn(blockOnPSend);
+ EasyMock.expect(cf.isBlockOnPersistentSend()).andReturn(blockOnPSend);
final long clientTargetID = 7676876;
@@ -2293,13 +2284,13 @@
// Defaults from cf
- EasyMock.expect(cf.getDefaultProducerWindowSize()).andReturn(windowSize);
+ EasyMock.expect(cf.getProducerWindowSize()).andReturn(windowSize);
- EasyMock.expect(cf.getDefaultProducerMaxRate()).andReturn(maxRate);
+ EasyMock.expect(cf.getProducerMaxRate()).andReturn(maxRate);
- EasyMock.expect(cf.isDefaultBlockOnNonPersistentSend()).andReturn(blockOnNPSend);
+ EasyMock.expect(cf.isBlockOnNonPersistentSend()).andReturn(blockOnNPSend);
- EasyMock.expect(cf.isDefaultBlockOnPersistentSend()).andReturn(blockOnPSend);
+ EasyMock.expect(cf.isBlockOnPersistentSend()).andReturn(blockOnPSend);
final long clientTargetID = 7676876;
@@ -2386,9 +2377,9 @@
PacketDispatcher pd = EasyMock.createStrictMock(PacketDispatcher.class);
CommandManager cm = EasyMock.createStrictMock(CommandManager.class);
- EasyMock.expect(cf.getDefaultConsumerWindowSize()).andReturn(windowSize);
+ EasyMock.expect(cf.getConsumerWindowSize()).andReturn(windowSize);
- EasyMock.expect(cf.getDefaultConsumerMaxRate()).andReturn(maxRate);
+ EasyMock.expect(cf.getConsumerMaxRate()).andReturn(maxRate);
final long clientTargetID = 87126716;
@@ -2497,9 +2488,9 @@
PacketDispatcher pd = EasyMock.createStrictMock(PacketDispatcher.class);
CommandManager cm = EasyMock.createStrictMock(CommandManager.class);
- EasyMock.expect(cf.getDefaultConsumerWindowSize()).andReturn(windowSize);
+ EasyMock.expect(cf.getConsumerWindowSize()).andReturn(windowSize);
- EasyMock.expect(cf.getDefaultConsumerMaxRate()).andReturn(maxRate);
+ EasyMock.expect(cf.getConsumerMaxRate()).andReturn(maxRate);
final long clientTargetID = 87126716;
Deleted: trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ConnectionParamsImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ConnectionParamsImplTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/ConnectionParamsImplTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -1,205 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.messaging.tests.unit.core.client.impl;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
-import org.jboss.messaging.tests.util.RandomUtil;
-import org.jboss.messaging.tests.util.UnitTestCase;
-
-/**
- *
- * A ConnectionParamsImplTest
- *
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- *
- */
-public class ConnectionParamsImplTest extends UnitTestCase
-{
-
- public void testDefaults()
- {
- ConnectionParams cp = new ConnectionParamsImpl();
-
- assertEquals(ConnectionParamsImpl.DEFAULT_INVM_OPTIMISATION_ENABLED, cp.isInVMOptimisationEnabled());
- assertEquals(ConnectionParamsImpl.DEFAULT_SSL_ENABLED, cp.isSSLEnabled());
- assertEquals(ConnectionParamsImpl.DEFAULT_TCP_NODELAY, cp.isTcpNoDelay());
- assertEquals(ConnectionParamsImpl.DEFAULT_CALL_TIMEOUT, cp.getCallTimeout());
- assertEquals(ConnectionParamsImpl.DEFAULT_PING_INTERVAL, cp.getPingInterval());
- assertEquals(ConnectionParamsImpl.DEFAULT_TCP_RECEIVE_BUFFER_SIZE, cp.getTcpReceiveBufferSize());
- assertEquals(ConnectionParamsImpl.DEFAULT_TCP_SEND_BUFFER_SIZE, cp.getTcpSendBufferSize());
- assertEquals(null, cp.getKeyStorePath());
- assertEquals(null, cp.getKeyStorePassword());
- assertEquals(null, cp.getTrustStorePath());
- assertEquals(null, cp.getTrustStorePassword());
- }
-
- public void testSetAndGetAttributes()
- {
- for (int j = 0; j < 100; j++)
- {
- ConnectionParams cp = new ConnectionParamsImpl();
-
- boolean b = RandomUtil.randomBoolean();
- cp.setInVMOptimisationEnabled(b);
- assertEquals(b, cp.isInVMOptimisationEnabled());
-
- b = RandomUtil.randomBoolean();
- cp.setSSLEnabled(b);
- assertEquals(b, cp.isSSLEnabled());
-
- b = RandomUtil.randomBoolean();
- cp.setTcpNoDelay(b);
- assertEquals(b, cp.isTcpNoDelay());
-
- int i = RandomUtil.randomInt();
- cp.setCallTimeout(i);
- assertEquals(i, cp.getCallTimeout());
-
- long l = RandomUtil.randomLong();
- cp.setPingInterval(l);
- assertEquals(l, cp.getPingInterval());
-
- i = RandomUtil.randomInt();
- cp.setTcpReceiveBufferSize(i);
- assertEquals(i, cp.getTcpReceiveBufferSize());
-
- i = RandomUtil.randomInt();
- cp.setTcpSendBufferSize(i);
- assertEquals(i, cp.getTcpSendBufferSize());
-
- String s = RandomUtil.randomString();
- cp.setKeyStorePath(s);
- assertEquals(s, cp.getKeyStorePath());
-
- s = RandomUtil.randomString();
- cp.setKeyStorePassword(s);
- assertEquals(s, cp.getKeyStorePassword());
-
- s = RandomUtil.randomString();
- cp.setTrustStorePath(s);
- assertEquals(s, cp.getTrustStorePath());
-
- s = RandomUtil.randomString();
- cp.setTrustStorePassword(s);
- assertEquals(s, cp.getTrustStorePassword());
- }
- }
-
- public void testOverrideWithSystemProperties()
- {
- ConnectionParams cp = new ConnectionParamsImpl();
-
- try
- {
- assertEquals(ConnectionParamsImpl.DEFAULT_SSL_ENABLED, cp.isSSLEnabled());
- System.setProperty(ConnectionParamsImpl.ENABLE_SSL_PROPERTY_NAME, String.valueOf(!ConnectionParamsImpl.DEFAULT_SSL_ENABLED));
- assertEquals(!ConnectionParamsImpl.DEFAULT_SSL_ENABLED, cp.isSSLEnabled());
-
- assertEquals(null, cp.getKeyStorePath());
- final String path = "somepath";
- System.setProperty(ConnectionParamsImpl.SSL_KEYSTORE_PATH_PROPERTY_NAME, path);
- assertEquals(path, cp.getKeyStorePath());
-
- assertEquals(null, cp.getKeyStorePassword());
- final String password = "somepassword";
- System.setProperty(ConnectionParamsImpl.SSL_KEYSTORE_PASSWORD_PROPERTY_NAME, password);
- assertEquals(password, cp.getKeyStorePassword());
-
- assertEquals(null, cp.getTrustStorePath());
- final String trustpath = "sometrustpath";
- System.setProperty(ConnectionParamsImpl.SSL_TRUSTSTORE_PATH_PROPERTY_NAME, trustpath);
- assertEquals(trustpath, cp.getTrustStorePath());
-
- assertEquals(null, cp.getTrustStorePassword());
- final String trustpassword = "sometrustpassword";
- System.setProperty(ConnectionParamsImpl.SSL_TRUSTSTORE_PASSWORD_PROPERTY_NAME, trustpassword);
- assertEquals(trustpassword, cp.getTrustStorePassword());
- }
- finally
- {
- System.clearProperty(ConnectionParamsImpl.ENABLE_SSL_PROPERTY_NAME);
- System.clearProperty(ConnectionParamsImpl.SSL_KEYSTORE_PATH_PROPERTY_NAME);
- System.clearProperty(ConnectionParamsImpl.SSL_KEYSTORE_PASSWORD_PROPERTY_NAME);
- System.clearProperty(ConnectionParamsImpl.SSL_TRUSTSTORE_PATH_PROPERTY_NAME);
- System.clearProperty(ConnectionParamsImpl.SSL_TRUSTSTORE_PASSWORD_PROPERTY_NAME);
- }
- }
-
- public void testSerialize() throws Exception
- {
- ConnectionParams cp = new ConnectionParamsImpl();
-
- boolean b = RandomUtil.randomBoolean();
- cp.setInVMOptimisationEnabled(b);
-
- b = RandomUtil.randomBoolean();
- cp.setSSLEnabled(b);
-
- b = RandomUtil.randomBoolean();
- cp.setTcpNoDelay(b);
-
- int i = RandomUtil.randomInt();
- cp.setCallTimeout(i);
-
- long l = RandomUtil.randomLong();
- cp.setPingInterval(l);
-
- i = RandomUtil.randomInt();
- cp.setTcpReceiveBufferSize(i);
-
- i = RandomUtil.randomInt();
- cp.setTcpSendBufferSize(i);
-
- String s = RandomUtil.randomString();
- cp.setKeyStorePath(s);
-
- s = RandomUtil.randomString();
- cp.setKeyStorePassword(s);
-
- s = RandomUtil.randomString();
- cp.setTrustStorePath(s);
-
- s = RandomUtil.randomString();
- cp.setTrustStorePassword(s);
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream(baos);
- oos.writeObject(cp);
- oos.flush();
-
- ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
- ObjectInputStream ois = new ObjectInputStream(bais);
- ConnectionParamsImpl cp2 = (ConnectionParamsImpl)ois.readObject();
-
- assertTrue(cp.equals(cp2));
- }
-
- // Private -----------------------------------------------------------------------------------------------------------
-
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/LocationImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/LocationImplTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/client/impl/LocationImplTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -1,124 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.messaging.tests.unit.core.client.impl;
-
-import static org.jboss.messaging.core.remoting.TransportType.HTTP;
-import static org.jboss.messaging.core.remoting.TransportType.TCP;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-
-import junit.framework.TestCase;
-
-import org.jboss.messaging.core.client.Location;
-import org.jboss.messaging.core.client.impl.LocationImpl;
-import org.jboss.messaging.core.config.impl.ConfigurationImpl;
-import org.jboss.messaging.core.remoting.TransportType;
-
-/**
- *
- * A LocationImplTest
- *
- * @author <a href="ataylor at redhat.com">Andy Taylor</a>
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- *
- */
-public class LocationImplTest extends TestCase
-{
- // Constants -----------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- // Static --------------------------------------------------------
-
- // Constructors --------------------------------------------------
-
- // Public --------------------------------------------------------
-
- public void testTransportTypeHostPortConstructor() throws Exception
- {
- testTransportTypeHostPortConstructor(TransportType.TCP);
- testTransportTypeHostPortConstructor(TransportType.HTTP);
- }
-
- public void testTransportTypeHostConstructor() throws Exception
- {
- testTransportTypeHostConstructor(TransportType.TCP);
- testTransportTypeHostConstructor(TransportType.HTTP);
- }
-
-
- public void testTCPLocationEquality() throws Exception
- {
- assertEquals(new LocationImpl(TCP, "localhost", 9000), new LocationImpl(TCP, "localhost", 9000));
- assertEquals(new LocationImpl(HTTP, "localhost", 9000), new LocationImpl(HTTP, "localhost", 9000));
- assertNotSame(new LocationImpl(TCP, "localhost", 9001), new LocationImpl(TCP, "localhost", 9000));
- assertNotSame(new LocationImpl(TCP, "anotherhost", 9000), new LocationImpl(TCP, "localhost", 9000));
- assertNotSame(new LocationImpl(HTTP, "localhost", 9000), new LocationImpl(TCP, "localhost", 9000));
- }
-
- public void testSerialize() throws Exception
- {
- Location location = new LocationImpl(HTTP, "blahblah", 65126512);
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream(baos);
- oos.writeObject(location);
- oos.flush();
-
- ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
- ObjectInputStream ois = new ObjectInputStream(bais);
- LocationImpl location2 = (LocationImpl)ois.readObject();
-
- assertTrue(location.equals(location2));
- }
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- // Private -------------------------------------------------------
-
- private void testTransportTypeHostPortConstructor(final TransportType transport) throws Exception
- {
- final String host = "uasuas";
- final int port = 1276718;
- Location location = new LocationImpl(transport, host, port);
- assertEquals(transport, location.getTransport());
- assertEquals(host, location.getHost());
- assertEquals(port, location.getPort());
- }
-
- private void testTransportTypeHostConstructor(final TransportType transport) throws Exception
- {
- final String host = "uasuas";
- Location location = new LocationImpl(transport, host);
- assertEquals(transport, location.getTransport());
- assertEquals(host, location.getHost());
- assertEquals(ConfigurationImpl.DEFAULT_PORT, location.getPort());
- }
-
- // Inner classes -------------------------------------------------
-}
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/ConfigurationImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/ConfigurationImplTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/ConfigurationImplTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -37,7 +37,6 @@
import org.jboss.messaging.core.config.Configuration;
import org.jboss.messaging.core.config.impl.ConfigurationImpl;
-import org.jboss.messaging.core.remoting.TransportType;
import org.jboss.messaging.core.server.JournalType;
/**
@@ -56,17 +55,12 @@
assertEquals(ConfigurationImpl.DEFAULT_CLUSTERED, conf.isClustered());
assertEquals(ConfigurationImpl.DEFAULT_BACKUP, conf.isBackup());
assertEquals(ConfigurationImpl.DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE, conf.getScheduledThreadPoolMaxSize());
- assertEquals(ConfigurationImpl.DEFAULT_HOST, conf.getHost());
- assertEquals(ConfigurationImpl.DEFAULT_TRANSPORT, conf.getTransport());
- assertEquals(ConfigurationImpl.DEFAULT_PORT, conf.getPort());
assertEquals(ConfigurationImpl.DEFAULT_SECURITY_INVALIDATION_INTERVAL, conf.getSecurityInvalidationInterval());
assertEquals(ConfigurationImpl.DEFAULT_REQUIRE_DESTINATIONS, conf.isRequireDestinations());
assertEquals(ConfigurationImpl.DEFAULT_SECURITY_ENABLED, conf.isSecurityEnabled());
- assertEquals(ConfigurationImpl.DEFAULT_SSL_ENABLED, conf.isSSLEnabled());
- assertEquals(ConfigurationImpl.DEFAULT_KEYSTORE_PATH, conf.getKeyStorePath());
- assertEquals(ConfigurationImpl.DEFAULT_KEYSTORE_PASSWORD, conf.getKeyStorePassword());
- assertEquals(ConfigurationImpl.DEFAULT_TRUSTSTORE_PATH, conf.getTrustStorePath());
- assertEquals(ConfigurationImpl.DEFAULT_TRUSTSTORE_PASSWORD, conf.getTrustStorePassword());
+ assertEquals(ConfigurationImpl.DEFAULT_CALL_TIMEOUT, conf.getCallTimeout());
+ assertEquals(ConfigurationImpl.DEFAULT_PACKET_CONFIRMATION_BATCH_SIZE, conf.getPacketConfirmationBatchSize());
+ assertEquals(ConfigurationImpl.DEFAULT_CONNECTION_SCAN_PERIOD, conf.getConnectionScanPeriod());
assertEquals(ConfigurationImpl.DEFAULT_BINDINGS_DIRECTORY, conf.getBindingsDirectory());
assertEquals(ConfigurationImpl.DEFAULT_CREATE_BINDINGS_DIR, conf.isCreateBindingsDir());
assertEquals(ConfigurationImpl.DEFAULT_JOURNAL_DIR, conf.getJournalDirectory());
@@ -94,20 +88,7 @@
int i = randomInt();
conf.setScheduledThreadPoolMaxSize(i);
assertEquals(i, conf.getScheduledThreadPoolMaxSize());
-
- String s = randomString();
- conf.setHost(s);
- assertEquals(s, conf.getHost());
-
- i = randomInt() % 3;
- TransportType transport = i == 0 ? TransportType.TCP : i == 1 ? TransportType.HTTP : i == 2 ? TransportType.INVM : TransportType.INVM;
- conf.setTransport(transport);
- assertEquals(transport, conf.getTransport());
-
- i = randomInt();
- conf.setPort(i);
- assertEquals(i, conf.getPort());
-
+
long l = randomLong();
conf.setSecurityInvalidationInterval(l);
assertEquals(l, conf.getSecurityInvalidationInterval());
@@ -119,28 +100,20 @@
b = randomBoolean();
conf.setSecurityEnabled(b);
assertEquals(b, conf.isSecurityEnabled());
+
+ l = randomLong();
+ conf.setCallTimeout(l);
+ assertEquals(l, conf.getCallTimeout());
- b = randomBoolean();
- conf.setSSLEnabled(b);
- assertEquals(b, conf.isSSLEnabled());
+ i = randomInt();
+ conf.setPacketConfirmationBatchSize(i);
+ assertEquals(i, conf.getPacketConfirmationBatchSize());
- s = randomString();
- conf.setKeyStorePath(s);
- assertEquals(s, conf.getKeyStorePath());
-
- s = randomString();
- conf.setKeyStorePassword(s);
- assertEquals(s, conf.getKeyStorePassword());
-
- s = randomString();
- conf.setTrustStorePath(s);
- assertEquals(s, conf.getTrustStorePath());
-
- s = randomString();
- conf.setTrustStorePassword(s);
- assertEquals(s, conf.getTrustStorePassword());
-
- s = randomString();
+ l = randomLong();
+ conf.setConnectionScanPeriod(l);
+ assertEquals(l, conf.getConnectionScanPeriod());
+
+ String s = randomString();
conf.setBindingsDirectory(s);
assertEquals(s, conf.getBindingsDirectory());
@@ -183,14 +156,6 @@
}
}
- public void testGetLocation()
- {
- conf.setTransport(TransportType.TCP);
- conf.setHost("blahhost");
- conf.setPort(1234);
- assertEquals("TCP://blahhost:1234", conf.getLocation().getLocation());
- }
-
public void testGetSetInterceptors()
{
List<String> interceptors = conf.getInterceptorClassNames();
@@ -206,12 +171,6 @@
assertFalse(conf.getInterceptorClassNames().contains("iijij"));
}
- public void testOverrideWithSystemProperties()
- {
- testOverrideWithSystemProperties(false);
- testOverrideWithSystemProperties(true);
- }
-
public void testSerialize() throws Exception
{
boolean b = randomBoolean();
@@ -219,17 +178,7 @@
int i = randomInt();
conf.setScheduledThreadPoolMaxSize(i);
-
- String s = randomString();
- conf.setHost(s);
-
- i = randomInt() % 2;
- TransportType transport = i == 0 ? TransportType.TCP : TransportType.HTTP;
- conf.setTransport(transport);
-
- i = randomInt();
- conf.setPort(i);
-
+
long l = randomLong();
conf.setSecurityInvalidationInterval(l);
@@ -238,23 +187,17 @@
b = randomBoolean();
conf.setSecurityEnabled(b);
-
- b = randomBoolean();
- conf.setSSLEnabled(b);
-
- s = randomString();
- conf.setKeyStorePath(s);
-
- s = randomString();
- conf.setKeyStorePassword(s);
-
- s = randomString();
- conf.setTrustStorePath(s);
-
- s = randomString();
- conf.setTrustStorePassword(s);
-
- s = randomString();
+
+ l = randomLong();
+ conf.setCallTimeout(l);
+
+ i = randomInt();
+ conf.setPacketConfirmationBatchSize(i);
+
+ l = randomLong();
+ conf.setConnectionScanPeriod(l);
+
+ String s = randomString();
conf.setBindingsDirectory(s);
b = randomBoolean();
@@ -312,19 +255,5 @@
}
// Private --------------------------------------------------------------------------------------------
-
- private void testOverrideWithSystemProperties(final boolean b)
- {
- try
- {
- System.setProperty(ConfigurationImpl.ENABLE_SSL_PROPERTY_NAME, String.valueOf(b));
-
- assertEquals(b, conf.isSSLEnabled());
- }
- finally
- {
- System.clearProperty(ConfigurationImpl.ENABLE_SSL_PROPERTY_NAME);
- }
- }
-
+
}
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/FileConfigurationTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/FileConfigurationTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/FileConfigurationTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,9 +22,11 @@
package org.jboss.messaging.tests.unit.core.config.impl;
+import java.util.Map;
+
+import org.jboss.messaging.core.config.AcceptorInfo;
import org.jboss.messaging.core.config.Configuration;
import org.jboss.messaging.core.config.impl.FileConfiguration;
-import org.jboss.messaging.core.remoting.TransportType;
/**
* @author <a href="ataylor at redhat.com">Andy Taylor</a>
@@ -37,21 +39,13 @@
//Check they match the values from the test file
assertEquals(true, conf.isClustered());
assertEquals(true, conf.isBackup());
- assertEquals(12345, conf.getScheduledThreadPoolMaxSize());
- assertEquals("blahhost", conf.getHost());
- assertEquals(TransportType.HTTP, conf.getTransport());
- assertEquals(6540, conf.getPort());
- assertEquals("backuphost", conf.getBackupHost());
- assertEquals(TransportType.TCP, conf.getBackupTransport());
- assertEquals(7540, conf.getBackupPort());
+ assertEquals(12345, conf.getScheduledThreadPoolMaxSize());
assertEquals(5423, conf.getSecurityInvalidationInterval());
assertEquals(false, conf.isRequireDestinations());
assertEquals(false, conf.isSecurityEnabled());
- assertEquals(true, conf.isSSLEnabled());
- assertEquals("blahstore", conf.getKeyStorePath());
- assertEquals("wibble123", conf.getKeyStorePassword());
- assertEquals("blahtruststore", conf.getTrustStorePath());
- assertEquals("eek123", conf.getTrustStorePassword());
+ assertEquals(7654, conf.getCallTimeout());
+ assertEquals(543, conf.getPacketConfirmationBatchSize());
+ assertEquals(6543, conf.getConnectionScanPeriod());
assertEquals("somedir", conf.getBindingsDirectory());
assertEquals(false, conf.isCreateBindingsDir());
assertEquals("somedir2", conf.getJournalDirectory());
@@ -63,19 +57,89 @@
assertEquals(100, conf.getJournalMinFiles());
assertEquals(56546, conf.getJournalMaxAIO());
- assertEquals(1234, conf.getConnectionParams().getPacketConfirmationBatchSize());
- assertEquals(false, conf.getConnectionParams().isInVMOptimisationEnabled());
- assertEquals(7654, conf.getConnectionParams().getCallTimeout());
- assertEquals(false, conf.getConnectionParams().isTcpNoDelay());
- assertEquals(987654, conf.getConnectionParams().getTcpReceiveBufferSize());
- assertEquals(2345676, conf.getConnectionParams().getTcpSendBufferSize());
- assertEquals(123123, conf.getConnectionParams().getPingInterval());
assertEquals(2, conf.getInterceptorClassNames().size());
assertTrue(conf.getInterceptorClassNames().contains("org.jboss.messaging.tests.unit.core.config.impl.TestInterceptor1"));
assertTrue(conf.getInterceptorClassNames().contains("org.jboss.messaging.tests.unit.core.config.impl.TestInterceptor2"));
- assertEquals(2, conf.getAcceptorFactoryClassNames().size());
- assertTrue(conf.getAcceptorFactoryClassNames().contains("org.jboss.messaging.tests.unit.core.config.impl.TestAcceptorFactory1"));
- assertTrue(conf.getAcceptorFactoryClassNames().contains("org.jboss.messaging.tests.unit.core.config.impl.TestAcceptorFactory2"));
+ assertEquals(2, conf.getAcceptorInfos().size());
+ for (AcceptorInfo info: conf.getAcceptorInfos())
+ {
+ if (info.getFactoryClassName().equals("org.jboss.messaging.tests.unit.core.config.impl.TestAcceptorFactory1"))
+ {
+ Map<String, Object> params = info.getParams();
+
+ Object obj = params.get("a_mykey1");
+ assertNotNull(obj);
+ assertTrue(obj instanceof String);
+ {
+ String s = (String)obj;
+ assertEquals("a_foovalue1", s);
+ }
+
+ obj = params.get("a_mykey2");
+ assertNotNull(obj);
+ assertTrue(obj instanceof Long);
+ {
+ Long l = (Long)obj;
+ assertEquals(1234567l, l.longValue());
+ }
+
+ obj = params.get("a_mykey3");
+ assertNotNull(obj);
+ assertTrue(obj instanceof Integer);
+ {
+ Integer i = (Integer)obj;
+ assertEquals(123, i.intValue());
+ }
+
+ obj = params.get("a_mykey4");
+ assertNotNull(obj);
+ assertTrue(obj instanceof String);
+ {
+ String s = (String)obj;
+ assertEquals("a_foovalue4", s);
+ }
+ }
+ else if (info.getFactoryClassName().equals("org.jboss.messaging.tests.unit.core.config.impl.TestAcceptorFactory2"))
+ {
+ Map<String, Object> params = info.getParams();
+
+ Object obj = params.get("b_mykey1");
+ assertNotNull(obj);
+ assertTrue(obj instanceof String);
+ {
+ String s = (String)obj;
+ assertEquals("b_foovalue1", s);
+ }
+
+ obj = params.get("b_mykey2");
+ assertNotNull(obj);
+ assertTrue(obj instanceof Long);
+ {
+ Long l = (Long)obj;
+ assertEquals(7654321l, l.longValue());
+ }
+
+ obj = params.get("b_mykey3");
+ assertNotNull(obj);
+ assertTrue(obj instanceof Integer);
+ {
+ Integer i = (Integer)obj;
+ assertEquals(321, i.intValue());
+ }
+
+ obj = params.get("b_mykey4");
+ assertNotNull(obj);
+ assertTrue(obj instanceof String);
+ {
+ String s = (String)obj;
+ assertEquals("b_foovalue4", s);
+ }
+ }
+ else
+ {
+ fail("Invalid factory class");
+ }
+ }
}
public void testSetGetConfigurationURL()
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/FileConfigurationTest2.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/FileConfigurationTest2.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/config/impl/FileConfigurationTest2.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,7 +22,6 @@
package org.jboss.messaging.tests.unit.core.config.impl;
-import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
import org.jboss.messaging.core.config.Configuration;
import org.jboss.messaging.core.config.impl.ConfigurationImpl;
import org.jboss.messaging.core.config.impl.FileConfiguration;
@@ -41,20 +40,12 @@
assertEquals(ConfigurationImpl.DEFAULT_CLUSTERED, conf.isClustered());
assertEquals(ConfigurationImpl.DEFAULT_BACKUP, conf.isBackup());
assertEquals(ConfigurationImpl.DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE, conf.getScheduledThreadPoolMaxSize());
- assertEquals(ConfigurationImpl.DEFAULT_HOST, conf.getHost());
- assertEquals(ConfigurationImpl.DEFAULT_TRANSPORT, conf.getTransport());
- assertEquals(ConfigurationImpl.DEFAULT_PORT, conf.getPort());
- assertEquals(null, conf.getBackupHost());
- assertEquals(null, conf.getBackupTransport());
- assertEquals(0, conf.getBackupPort());
assertEquals(ConfigurationImpl.DEFAULT_SECURITY_INVALIDATION_INTERVAL, conf.getSecurityInvalidationInterval());
assertEquals(ConfigurationImpl.DEFAULT_REQUIRE_DESTINATIONS, conf.isRequireDestinations());
assertEquals(ConfigurationImpl.DEFAULT_SECURITY_ENABLED, conf.isSecurityEnabled());
- assertEquals(ConfigurationImpl.DEFAULT_SSL_ENABLED, conf.isSSLEnabled());
- assertEquals(ConfigurationImpl.DEFAULT_KEYSTORE_PATH, conf.getKeyStorePath());
- assertEquals(ConfigurationImpl.DEFAULT_KEYSTORE_PASSWORD, conf.getKeyStorePassword());
- assertEquals(ConfigurationImpl.DEFAULT_TRUSTSTORE_PATH, conf.getTrustStorePath());
- assertEquals(ConfigurationImpl.DEFAULT_TRUSTSTORE_PASSWORD, conf.getTrustStorePassword());
+ assertEquals(ConfigurationImpl.DEFAULT_CALL_TIMEOUT, conf.getCallTimeout());
+ assertEquals(ConfigurationImpl.DEFAULT_PACKET_CONFIRMATION_BATCH_SIZE, conf.getPacketConfirmationBatchSize());
+ assertEquals(ConfigurationImpl.DEFAULT_CONNECTION_SCAN_PERIOD, conf.getConnectionScanPeriod());
assertEquals(ConfigurationImpl.DEFAULT_BINDINGS_DIRECTORY, conf.getBindingsDirectory());
assertEquals(ConfigurationImpl.DEFAULT_CREATE_BINDINGS_DIR, conf.isCreateBindingsDir());
assertEquals(ConfigurationImpl.DEFAULT_JOURNAL_DIR, conf.getJournalDirectory());
@@ -66,15 +57,8 @@
assertEquals(ConfigurationImpl.DEFAULT_JOURNAL_MIN_FILES, conf.getJournalMinFiles());
assertEquals(ConfigurationImpl.DEFAULT_JOURNAL_MAX_AIO, conf.getJournalMaxAIO());
- assertEquals(ConnectionParamsImpl.DEFAULT_PACKET_CONFIRMATION_BATCH_SIZE, conf.getConnectionParams().getPacketConfirmationBatchSize());
- assertEquals(ConnectionParamsImpl.DEFAULT_INVM_OPTIMISATION_ENABLED, conf.getConnectionParams().isInVMOptimisationEnabled());
- assertEquals(ConnectionParamsImpl.DEFAULT_CALL_TIMEOUT, conf.getConnectionParams().getCallTimeout());
- assertEquals(ConnectionParamsImpl.DEFAULT_TCP_NODELAY, conf.getConnectionParams().isTcpNoDelay());
- assertEquals(ConnectionParamsImpl.DEFAULT_TCP_RECEIVE_BUFFER_SIZE, conf.getConnectionParams().getTcpReceiveBufferSize());
- assertEquals(ConnectionParamsImpl.DEFAULT_TCP_SEND_BUFFER_SIZE, conf.getConnectionParams().getTcpSendBufferSize());
- assertEquals(ConnectionParamsImpl.DEFAULT_PING_INTERVAL, conf.getConnectionParams().getPingInterval());
assertEquals(0, conf.getInterceptorClassNames().size());
- assertEquals(0, conf.getAcceptorFactoryClassNames().size());
+ assertEquals(0, conf.getAcceptorInfos().size());
}
// Protected ---------------------------------------------------------------------------------------------
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/management/impl/MessagingServerControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/management/impl/MessagingServerControlTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/management/impl/MessagingServerControlTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -47,8 +47,6 @@
import junit.framework.TestCase;
-import org.jboss.messaging.core.client.Location;
-import org.jboss.messaging.core.client.impl.LocationImpl;
import org.jboss.messaging.core.config.Configuration;
import org.jboss.messaging.core.filter.Filter;
import org.jboss.messaging.core.management.impl.ManagementServiceImpl;
@@ -58,7 +56,6 @@
import org.jboss.messaging.core.persistence.StorageManager;
import org.jboss.messaging.core.postoffice.Binding;
import org.jboss.messaging.core.postoffice.PostOffice;
-import org.jboss.messaging.core.remoting.TransportType;
import org.jboss.messaging.core.security.Role;
import org.jboss.messaging.core.server.JournalType;
import org.jboss.messaging.core.server.MessagingServer;
@@ -229,32 +226,6 @@
verifyMockedAttributes();
}
- public void testGetKeyStorePath() throws Exception
- {
- String path = randomString();
-
- expect(configuration.getKeyStorePath()).andReturn(path);
- replayMockedAttributes();
-
- MessagingServerControl control = createControl();
- assertEquals(path, control.getKeyStorePath());
-
- verifyMockedAttributes();
- }
-
- public void testGetLocation() throws Exception
- {
- Location location = new LocationImpl(TransportType.TCP, "localhost");
-
- expect(configuration.getLocation()).andReturn(location);
- replayMockedAttributes();
-
- MessagingServerControl control = createControl();
- assertEquals(location.toString(), control.getLocation());
-
- verifyMockedAttributes();
- }
-
public void testGetScheduledThreadPoolMaxSize() throws Exception
{
int size = randomInt();
@@ -282,19 +253,6 @@
verifyMockedAttributes();
}
- public void testGetTrustStorePath() throws Exception
- {
- String path = randomString();
-
- expect(configuration.getTrustStorePath()).andReturn(path);
- replayMockedAttributes();
-
- MessagingServerControl control = createControl();
- assertEquals(path, control.getTrustStorePath());
-
- verifyMockedAttributes();
- }
-
public void testIsClustered() throws Exception
{
boolean clustered = randomBoolean();
@@ -378,19 +336,6 @@
verifyMockedAttributes();
}
- public void testIsSSLEnabled() throws Exception
- {
- boolean sslEnabled = randomBoolean();
-
- expect(configuration.isSSLEnabled()).andReturn(sslEnabled);
- replayMockedAttributes();
-
- MessagingServerControl control = createControl();
- assertEquals(sslEnabled, control.isSSLEnabled());
-
- verifyMockedAttributes();
- }
-
public void testIsSecurityEnabled() throws Exception
{
boolean securityEnabled = randomBoolean();
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/ConnectionRegistryLocatorTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/ConnectionRegistryLocatorTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/ConnectionRegistryLocatorTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -21,15 +21,8 @@
*/
package org.jboss.messaging.tests.unit.core.remoting;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.Map;
-import java.util.Properties;
-
import org.jboss.messaging.core.remoting.ConnectionRegistry;
import org.jboss.messaging.core.remoting.ConnectionRegistryLocator;
-import org.jboss.messaging.core.remoting.TransportType;
import org.jboss.messaging.core.remoting.impl.ConnectionRegistryImpl;
import org.jboss.messaging.tests.util.UnitTestCase;
@@ -53,40 +46,5 @@
assertTrue(reg1 instanceof ConnectionRegistryImpl);
assertTrue(reg2 instanceof ConnectionRegistryImpl);
- }
-
- public void testDefaultConnectorFactories() throws Exception
- {
- //The connection registry locator should have read the props file and installed
- //the default connector factories
-
- ClassLoader loader = Thread.currentThread().getContextClassLoader();
-
- Enumeration<URL> urls = loader.getResources(ConnectionRegistryLocator.CONNECTOR_FACTORIES_PROPS_FILE_NAME);
-
- ConnectionRegistry registry = ConnectionRegistryLocator.getRegistry();
-
- while (urls.hasMoreElements())
- {
- URL url = urls.nextElement();
-
- Properties props = new Properties();
-
- InputStream is = url.openStream();
-
- props.load(is);
-
- for (Map.Entry<Object, Object> entry: props.entrySet())
- {
- String tt = (String)entry.getKey();
- String className = (String)entry.getValue();
- TransportType transport = TransportType.valueOf(tt);
-
- assertEquals(className, registry.getConnectorFactory(transport).getClass().getName());
- }
-
- is.close();
- }
- }
-
+ }
}
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/AcceptorFactory1.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/AcceptorFactory1.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/AcceptorFactory1.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -21,7 +21,8 @@
*/
package org.jboss.messaging.tests.unit.core.remoting.impl;
-import org.jboss.messaging.core.config.Configuration;
+import java.util.Map;
+
import org.jboss.messaging.core.remoting.RemotingHandler;
import org.jboss.messaging.core.remoting.spi.Acceptor;
import org.jboss.messaging.core.remoting.spi.AcceptorFactory;
@@ -37,7 +38,7 @@
public class AcceptorFactory1 implements AcceptorFactory
{
- public Acceptor createAcceptor(Configuration configuration,
+ public Acceptor createAcceptor(Map<String, Object> params,
RemotingHandler handler, ConnectionLifeCycleListener listener)
{
return new Acceptor1();
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/AcceptorFactory2.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/AcceptorFactory2.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/AcceptorFactory2.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -21,7 +21,8 @@
*/
package org.jboss.messaging.tests.unit.core.remoting.impl;
-import org.jboss.messaging.core.config.Configuration;
+import java.util.Map;
+
import org.jboss.messaging.core.remoting.RemotingHandler;
import org.jboss.messaging.core.remoting.spi.Acceptor;
import org.jboss.messaging.core.remoting.spi.AcceptorFactory;
@@ -37,7 +38,7 @@
public class AcceptorFactory2 implements AcceptorFactory
{
- public Acceptor createAcceptor(Configuration configuration,
+ public Acceptor createAcceptor(Map<String, Object> params,
RemotingHandler handler, ConnectionLifeCycleListener listener)
{
return new Acceptor2();
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/AcceptorFactory3.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/AcceptorFactory3.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/AcceptorFactory3.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -21,7 +21,8 @@
*/
package org.jboss.messaging.tests.unit.core.remoting.impl;
-import org.jboss.messaging.core.config.Configuration;
+import java.util.Map;
+
import org.jboss.messaging.core.remoting.RemotingHandler;
import org.jboss.messaging.core.remoting.spi.Acceptor;
import org.jboss.messaging.core.remoting.spi.AcceptorFactory;
@@ -37,7 +38,7 @@
public class AcceptorFactory3 implements AcceptorFactory
{
- public Acceptor createAcceptor(Configuration configuration,
+ public Acceptor createAcceptor(Map<String, Object> params,
RemotingHandler handler, ConnectionLifeCycleListener listener)
{
return new Acceptor3();
Deleted: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/ConnectionRegistryImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/ConnectionRegistryImplTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/ConnectionRegistryImplTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -1,353 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.messaging.tests.unit.core.remoting.impl;
-
-import org.easymock.EasyMock;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
-import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
-import org.jboss.messaging.core.client.impl.LocationImpl;
-import org.jboss.messaging.core.exception.MessagingException;
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.remoting.ConnectionRegistry;
-import org.jboss.messaging.core.remoting.FailureListener;
-import org.jboss.messaging.core.remoting.RemotingConnection;
-import org.jboss.messaging.core.remoting.RemotingHandler;
-import org.jboss.messaging.core.remoting.TransportType;
-import org.jboss.messaging.core.remoting.impl.ConnectionRegistryImpl;
-import org.jboss.messaging.core.remoting.spi.Connection;
-import org.jboss.messaging.core.remoting.spi.ConnectionLifeCycleListener;
-import org.jboss.messaging.core.remoting.spi.Connector;
-import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
-import org.jboss.messaging.tests.util.UnitTestCase;
-
-/**
- *
- * A ConnectionRegistryImplTest
- *
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- *
- */
-public class ConnectionRegistryImplTest extends UnitTestCase
-{
- public static final Logger log = Logger.getLogger(ConnectionRegistryImplTest.class);
-
- class FakeConnectorFactory implements ConnectorFactory
- {
- FakeConnectorFactory(final Connector connector)
- {
- this.connector = connector;
- }
-
- private final Connector connector;
-
- public Connector createConnector(final Location location,
- final ConnectionParams params, final RemotingHandler handler,
- final ConnectionLifeCycleListener listener)
- {
- return connector;
- }
-
- }
-
- public void testGetAndReturnConnection()
- {
- ConnectionRegistry registry = new ConnectionRegistryImpl();
-
- //First one
-
- Connector connector1 = EasyMock.createStrictMock(Connector.class);
-
- registry.registerConnectorFactory(TransportType.TCP, new FakeConnectorFactory(connector1));
-
- connector1.start();
-
- Connection tc1 = EasyMock.createStrictMock(Connection.class);
-
- final long id1 = 102912;
-
- EasyMock.expect(tc1.getID()).andReturn(id1);
-
- EasyMock.expect(connector1.createConnection()).andReturn(tc1);
-
- // Second one
-
- Connector connector2 = EasyMock.createStrictMock(Connector.class);
-
- registry.registerConnectorFactory(TransportType.HTTP, new FakeConnectorFactory(connector2));
-
- connector2.start();
-
- Connection tc2 = EasyMock.createStrictMock(Connection.class);
-
- final long id2 = 81273;
-
- EasyMock.expect(tc2.getID()).andReturn(id2);
-
- EasyMock.expect(connector2.createConnection()).andReturn(tc2);
-
-
-
- EasyMock.replay(connector1, connector2, tc1, tc2);
-
- Location location1 = new LocationImpl(TransportType.TCP, "blahhost", 12345);
-
- ConnectionParams params = new ConnectionParamsImpl();
-
- assertEquals(0, registry.size());
-
- RemotingConnection conn1 = registry.getConnection(location1, params);
-
- assertEquals(1, registry.size());
-
- RemotingConnection conn2 = registry.getConnection(location1, params);
-
- assertEquals(1, registry.size());
-
- RemotingConnection conn3 = registry.getConnection(location1, params);
-
- assertEquals(1, registry.size());
-
- assertTrue(conn1 == conn2);
-
- assertTrue(conn2 == conn3);
-
-
- Location location2 = new LocationImpl(TransportType.HTTP, "blahhost2", 65125);
-
- RemotingConnection conn4 = registry.getConnection(location2, params);
-
- assertEquals(2, registry.size());
-
- RemotingConnection conn5 = registry.getConnection(location2, params);
-
- assertEquals(2, registry.size());
-
- RemotingConnection conn6 = registry.getConnection(location2, params);
-
- assertEquals(2, registry.size());
-
- assertTrue(conn4 == conn5);
-
- assertTrue(conn5 == conn6);
-
- assertFalse(conn1 == conn4);
-
- EasyMock.verify(connector1, connector2, tc1, tc2);
-
- EasyMock.reset(connector1, connector2, tc1, tc2);
-
- EasyMock.replay(connector1, connector2, tc1, tc2);
-
- registry.returnConnection(location2);
-
- assertEquals(2, registry.size());
-
- registry.returnConnection(location2);
-
- assertEquals(2, registry.size());
-
- RemotingConnection conn7 = registry.getConnection(location2, params);
-
- assertTrue(conn7 == conn4);
-
- EasyMock.verify(connector1, connector2, tc1, tc2);
-
- EasyMock.reset(connector1, connector2, tc1, tc2);
-
- EasyMock.expect(tc2.getID()).andReturn(id2);
-
- tc2.close();
-
- connector2.close();
-
- connector2.start();
-
- EasyMock.expect(tc2.getID()).andReturn(id2);
-
- EasyMock.expect(connector2.createConnection()).andReturn(tc2);
-
- EasyMock.replay(connector1, connector2, tc1, tc2);
-
- registry.returnConnection(location2);
-
- assertEquals(2, registry.size());
-
- registry.returnConnection(location2);
-
- assertEquals(1, registry.size());
-
- RemotingConnection conn8 = registry.getConnection(location2, params);
-
- assertEquals(2, registry.size());
-
- assertFalse(conn8 == conn4);
-
- EasyMock.verify(connector1, connector2, tc1, tc2);
-
- EasyMock.reset(connector1, connector2, tc1, tc2);
-
- EasyMock.expect(tc1.getID()).andReturn(id1);
-
- tc1.close();
-
- connector1.close();
-
- EasyMock.replay(connector1, connector2, tc1, tc2);
-
- registry.returnConnection(location1);
-
- registry.returnConnection(location1);
-
- registry.returnConnection(location1);
-
- assertEquals(1, registry.size());
-
- EasyMock.verify(connector1, connector2, tc1, tc2);
-
- }
-
- public void testConnectionDestroyed()
- {
- ConnectionRegistryImpl registry = new ConnectionRegistryImpl();
-
- Connector connector1 = EasyMock.createStrictMock(Connector.class);
-
- registry.registerConnectorFactory(TransportType.TCP, new FakeConnectorFactory(connector1));
-
- connector1.start();
-
- Connection tc1 = EasyMock.createStrictMock(Connection.class);
-
- final long id1 = 102912;
-
- EasyMock.expect(tc1.getID()).andStubReturn(id1);
-
- EasyMock.expect(connector1.createConnection()).andReturn(tc1);
-
-
- EasyMock.replay(connector1, tc1);
-
- Location location1 = new LocationImpl(TransportType.TCP, "blahhost", 12345);
-
- ConnectionParams params = new ConnectionParamsImpl();
-
- RemotingConnection conn1 = registry.getConnection(location1, params);
-
- Listener listener = new Listener();
-
- conn1.addFailureListener(listener);
-
- assertEquals(id1, conn1.getID());
-
- EasyMock.verify(connector1, tc1);
-
- assertEquals(1, registry.size());
-
- EasyMock.reset(connector1, tc1);
-
- tc1.close();
-
- connector1.close();
-
- EasyMock.replay(connector1, tc1);
-
- registry.connectionDestroyed(id1);
-
- EasyMock.verify(connector1, tc1);
-
- assertEquals(0, registry.size());
-
- assertNotNull(listener.me);
-
- assertEquals(MessagingException.OBJECT_CLOSED, listener.me.getCode());
-
- }
-
- public void testConnectionException()
- {
- ConnectionRegistryImpl registry = new ConnectionRegistryImpl();
-
- Connector connector1 = EasyMock.createStrictMock(Connector.class);
-
- registry.registerConnectorFactory(TransportType.TCP, new FakeConnectorFactory(connector1));
-
- connector1.start();
-
- Connection tc1 = EasyMock.createStrictMock(Connection.class);
-
- final long id1 = 102912;
-
- EasyMock.expect(tc1.getID()).andStubReturn(id1);
-
- EasyMock.expect(connector1.createConnection()).andReturn(tc1);
-
-
- EasyMock.replay(connector1, tc1);
-
- Location location1 = new LocationImpl(TransportType.TCP, "blahhost", 12345);
-
- ConnectionParams params = new ConnectionParamsImpl();
-
- RemotingConnection conn1 = registry.getConnection(location1, params);
-
- Listener listener = new Listener();
-
- conn1.addFailureListener(listener);
-
- assertEquals(id1, conn1.getID());
-
- EasyMock.verify(connector1, tc1);
-
- assertEquals(1, registry.size());
-
- EasyMock.reset(connector1, tc1);
-
- tc1.close();
-
- connector1.close();
-
- EasyMock.replay(connector1, tc1);
-
- MessagingException me = new MessagingException(1212, "blah123");
-
- registry.connectionException(id1, me);
-
- EasyMock.verify(connector1, tc1);
-
- assertEquals(0, registry.size());
-
- assertTrue(me == listener.me);
-
- }
-
- class Listener implements FailureListener
- {
- volatile MessagingException me;
-
- public void connectionFailed(MessagingException me)
- {
- this.me = me;
- }
-
- }
-}
Deleted: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingConfigurationValidatorTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingConfigurationValidatorTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingConfigurationValidatorTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -1,194 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
- * 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.messaging.tests.unit.core.remoting.impl;
-
-import static org.jboss.messaging.core.remoting.TransportType.INVM;
-import static org.jboss.messaging.core.remoting.impl.RemotingConfigurationValidator.validate;
-import junit.framework.TestCase;
-
-import org.jboss.messaging.core.config.Configuration;
-import org.jboss.messaging.core.config.impl.ConfigurationImpl;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- * @version <tt>$Revision$</tt>
- */
-public class RemotingConfigurationValidatorTest extends TestCase
-{
- // Constants -----------------------------------------------------
-
- // Attributes ----------------------------------------------------
-
- // Static --------------------------------------------------------
-
- // Constructors --------------------------------------------------
-
- // Public --------------------------------------------------------
- public void testNullonfigurationThrowsException()
- {
- try
- {
- validate(null);
- fail("should throw exception");
- }
- catch (IllegalStateException e)
- {
- //pass
- }
- }
-
- public void testINVMConfiguration()
- {
- ConfigurationImpl config = new ConfigurationImpl();
- config.setTransport(INVM);
-
- validate(config);
- }
-
- public void testNegativePort()
- {
- Configuration config = new ConfigurationImpl();
- config.setPort(-1);
-
- try
- {
- validate(config);
- fail("can not set a negative port");
- }
- catch (Exception e)
- {
- }
- }
-
- public void test_TcpReceiveBufferSize_to_0()
- {
- ConfigurationImpl config = new ConfigurationImpl();
- config.getConnectionParams().setTcpReceiveBufferSize(0);
- try
- {
- validate(config);
- fail("can not set tcp receive buffer size to 0");
- }
- catch (Exception e)
- {
- }
- }
-
- public void test_TcpReceiveBufferSize_to_minusOne()
- {
- ConfigurationImpl config = new ConfigurationImpl();
- config.getConnectionParams().setTcpReceiveBufferSize(-1);
- validate(config);
- }
-
- public void test_TcpReceiveBufferSize_to_NegativeNumber()
- {
- ConfigurationImpl config = new ConfigurationImpl();
- config.getConnectionParams().setTcpReceiveBufferSize(-2);
- try
- {
- validate(config);
- fail("can not set tcp receive buffer size to a negative number other than -1");
- }
- catch (Exception e)
- {
- }
- }
-
- public void test_TcpSendBufferSize_to_0()
- {
- ConfigurationImpl config = new ConfigurationImpl();
- config.getConnectionParams().setTcpSendBufferSize(0);
- try
- {
- validate(config);
- fail("can not set tcp send buffer size to 0");
- }
- catch (Exception e)
- {
- }
- }
-
- public void test_TcpSendBufferSize_to_minusOne()
- {
- ConfigurationImpl config = new ConfigurationImpl();
- config.getConnectionParams().setTcpSendBufferSize(-1);
- validate(config);
- }
-
- public void test_TcpSendBufferSize_to_NegativeNumber()
- {
- ConfigurationImpl config = new ConfigurationImpl();
- config.getConnectionParams().setTcpSendBufferSize(-2);
- try
- {
- validate(config);
- fail("can not set tcp send buffer size to a negative number other than -1");
- }
- catch (Exception e)
- {
- }
- }
-
- public void test_DisableINVM_With_INVMTransport()
- {
- ConfigurationImpl config = new ConfigurationImpl();
- config.setTransport(INVM);
- config.getConnectionParams().setInVMOptimisationEnabled(false);
-
- try
- {
- validate(config);
- fail("can not disable INVM when INVM transport is set");
- }
- catch (Exception e)
- {
-
- }
- }
-
- public void test_EnableSSL_With_INVMTransport()
- {
- ConfigurationImpl config = new ConfigurationImpl();
- config.setTransport(INVM);
- config.setSSLEnabled(true);
-
- try
- {
- validate(config);
- fail("can not enable SSL when INVM transport is set");
- }
- catch (Exception e)
- {
-
- }
- }
-
- // Package protected ---------------------------------------------
-
- // Protected -----------------------------------------------------
-
- // Private -------------------------------------------------------
-
- // Inner classes -------------------------------------------------
-}
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingConnectionImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingConnectionImplTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingConnectionImplTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -33,15 +33,12 @@
import org.easymock.EasyMock;
import org.easymock.IAnswer;
-import org.jboss.messaging.core.client.Location;
-import org.jboss.messaging.core.client.impl.LocationImpl;
import org.jboss.messaging.core.exception.MessagingException;
import org.jboss.messaging.core.remoting.FailureListener;
import org.jboss.messaging.core.remoting.Packet;
import org.jboss.messaging.core.remoting.PacketDispatcher;
import org.jboss.messaging.core.remoting.PacketHandler;
import org.jboss.messaging.core.remoting.RemotingConnection;
-import org.jboss.messaging.core.remoting.TransportType;
import org.jboss.messaging.core.remoting.impl.ByteBufferWrapper;
import org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl;
import org.jboss.messaging.core.remoting.impl.wireformat.PacketImpl;
@@ -62,12 +59,11 @@
{
Connection connection = EasyMock.createStrictMock(Connection.class);
PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
-
+
final long id = 12123;
EasyMock.expect(connection.getID()).andReturn(id);
- RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, location, 1000);
+ RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, 1000);
EasyMock.replay(connection, dispatcher);
@@ -79,8 +75,7 @@
public void testSendOneWay1() throws Exception
{
Connection connection = EasyMock.createStrictMock(Connection.class);
- PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
+ PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
Packet packet = EasyMock.createStrictMock(Packet.class);
final long targetID = 12908783;
@@ -98,7 +93,7 @@
EasyMock.replay(connection, dispatcher, packet, buff);
- RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, location, 1000);
+ RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, 1000);
rc.sendOneWay(targetID, executorID, packet);
@@ -108,8 +103,7 @@
public void testSendOneWay2() throws Exception
{
Connection connection = EasyMock.createStrictMock(Connection.class);
- PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
+ PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
Packet packet = EasyMock.createStrictMock(Packet.class);
MessagingBuffer buff = EasyMock.createMock(MessagingBuffer.class);
@@ -122,7 +116,7 @@
EasyMock.replay(connection, dispatcher, packet, buff);
- RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, location, 1000);
+ RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, 1000);
rc.sendOneWay(packet);
@@ -133,13 +127,12 @@
{
Connection connection = EasyMock.createStrictMock(Connection.class);
PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
-
+
connection.close();
EasyMock.replay(connection, dispatcher);
- RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, location, 1000);
+ RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, 1000);
class Listener implements FailureListener
{
@@ -198,13 +191,12 @@
{
Connection connection = EasyMock.createStrictMock(Connection.class);
PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
-
+
connection.close();
EasyMock.replay(connection, dispatcher);
- RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, location, 1000);
+ RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, 1000);
class Listener implements FailureListener
{
@@ -237,8 +229,7 @@
{
Connection connection = EasyMock.createStrictMock(Connection.class);
PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
-
+
MessagingBuffer buff = EasyMock.createMock(MessagingBuffer.class);
final int size = 1234;
@@ -247,31 +238,19 @@
EasyMock.replay(connection, dispatcher, buff);
- RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, location, 1000);
+ RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, 1000);
MessagingBuffer buff2 = rc.createBuffer(size);
assertTrue(buff == buff2);
}
- public void testGetLocation() throws Exception
- {
- Connection connection = EasyMock.createStrictMock(Connection.class);
- PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
-
- RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, location, 1000);
-
- assertTrue(location == rc.getLocation());
- }
-
public void testGetPacketDispatcher() throws Exception
{
Connection connection = EasyMock.createStrictMock(Connection.class);
PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
- RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, location, 1000);
+ RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, 1000);
assertTrue(dispatcher == rc.getPacketDispatcher());
}
@@ -280,13 +259,12 @@
{
Connection connection = EasyMock.createStrictMock(Connection.class);
PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
connection.close();
EasyMock.replay(connection, dispatcher);
- RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, location, 1000);
+ RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, 1000);
rc.destroy();
@@ -304,8 +282,7 @@
public void testCreateAndDestroyWithPinger() throws Exception
{
Connection connection = EasyMock.createStrictMock(Connection.class);
- PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
+ PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
ScheduledExecutorService ex = EasyMock.createStrictMock(ScheduledExecutorService.class);
final long id = 128712;
@@ -328,7 +305,7 @@
EasyMock.replay(connection, dispatcher, ex);
- RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, location, pingPeriod, pingPeriod, ex);
+ RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, pingPeriod, pingPeriod, ex);
rc.destroy();
@@ -347,7 +324,6 @@
{
Connection connection = EasyMock.createStrictMock(Connection.class);
PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
final long id = 128712;
EasyMock.expect(dispatcher.generateID()).andReturn(id);
@@ -401,7 +377,7 @@
EasyMock.replay(connection, dispatcher);
- RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, location, 1000L);
+ RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, 1000L);
class Listener implements FailureListener
{
@@ -434,8 +410,7 @@
{
Connection connection = EasyMock.createStrictMock(Connection.class);
PacketDispatcher dispatcher = EasyMock.createStrictMock(PacketDispatcher.class);
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
-
+
final long id = 128712;
EasyMock.expect(dispatcher.generateID()).andReturn(id);
@@ -495,7 +470,7 @@
EasyMock.replay(connection, dispatcher);
- RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, location, 1000L);
+ RemotingConnection rc = new RemotingConnectionImpl(connection, dispatcher, 1000L);
class Listener implements FailureListener
{
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingHandlerImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingHandlerImplTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingHandlerImplTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -1021,7 +1021,7 @@
{
CreateSessionResponseMessage message =
new CreateSessionResponseMessage(RandomUtil.randomLong(), RandomUtil.randomLong(),
- RandomUtil.randomInt());
+ RandomUtil.randomInt(), RandomUtil.randomInt());
setHeaders(message);
message.encode(buff);
buff.getInt();
@@ -1030,6 +1030,7 @@
assertEquals(message.getSessionID(), copy.getSessionID());
assertEquals(message.getCommandResponseTargetID(), copy.getCommandResponseTargetID());
assertEquals(message.getServerVersion(), copy.getServerVersion());
+ assertEquals(message.getPacketConfirmationBatchSize(), copy.getPacketConfirmationBatchSize());
}
public void testMessagingExceptionMessagePacket() throws Exception
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingServiceImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingServiceImplTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/RemotingServiceImplTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -25,6 +25,7 @@
import java.util.List;
import org.easymock.EasyMock;
+import org.jboss.messaging.core.config.AcceptorInfo;
import org.jboss.messaging.core.config.Configuration;
import org.jboss.messaging.core.config.impl.ConfigurationImpl;
import org.jboss.messaging.core.exception.MessagingException;
@@ -32,7 +33,6 @@
import org.jboss.messaging.core.remoting.Interceptor;
import org.jboss.messaging.core.remoting.RemotingConnection;
import org.jboss.messaging.core.remoting.RemotingHandler;
-import org.jboss.messaging.core.remoting.TransportType;
import org.jboss.messaging.core.remoting.impl.RemotingServiceImpl;
import org.jboss.messaging.core.remoting.spi.Acceptor;
import org.jboss.messaging.core.remoting.spi.AcceptorFactory;
@@ -49,17 +49,11 @@
public void testSingleAcceptorStarted() throws Exception
{
final Acceptor acceptor = EasyMock.createStrictMock(Acceptor.class);
- ConfigurationImpl config = new ConfigurationImpl();
+ ConfigurationImpl config = new ConfigurationImpl();
+ config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory1"));
+ TestAcceptorFactory1.acceptor = acceptor;
RemotingServiceImpl remotingService = new RemotingServiceImpl(config);
- remotingService.registerAcceptorFactory(new AcceptorFactory()
- {
- public Acceptor createAcceptor(Configuration configuration,
- RemotingHandler handler,
- ConnectionLifeCycleListener listener)
- {
- return acceptor;
- }
- });
+
acceptor.start();
EasyMock.replay(acceptor);
remotingService.start();
@@ -74,15 +68,8 @@
final Acceptor acceptor = EasyMock.createStrictMock(Acceptor.class);
ConfigurationImpl config = new ConfigurationImpl();
RemotingServiceImpl remotingService = new RemotingServiceImpl(config);
- remotingService.registerAcceptorFactory(new AcceptorFactory()
- {
- public Acceptor createAcceptor(Configuration configuration,
- RemotingHandler handler,
- ConnectionLifeCycleListener listener)
- {
- return acceptor;
- }
- });
+ config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory1"));
+ TestAcceptorFactory1.acceptor = acceptor;
acceptor.start();
EasyMock.replay(acceptor);
remotingService.start();
@@ -98,15 +85,8 @@
final Acceptor acceptor = EasyMock.createStrictMock(Acceptor.class);
ConfigurationImpl config = new ConfigurationImpl();
RemotingServiceImpl remotingService = new RemotingServiceImpl(config);
- remotingService.registerAcceptorFactory(new AcceptorFactory()
- {
- public Acceptor createAcceptor(Configuration configuration,
- RemotingHandler handler,
- ConnectionLifeCycleListener listener)
- {
- return acceptor;
- }
- });
+ config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory1"));
+ TestAcceptorFactory1.acceptor = acceptor;
acceptor.start();
acceptor.stop();
EasyMock.replay(acceptor);
@@ -120,46 +100,26 @@
public void testMultipleAcceptorsStarted() throws Exception
{
- final Acceptor acceptor = EasyMock.createStrictMock(Acceptor.class);
+ final Acceptor acceptor1 = EasyMock.createStrictMock(Acceptor.class);
final Acceptor acceptor2 = EasyMock.createStrictMock(Acceptor.class);
final Acceptor acceptor3 = EasyMock.createStrictMock(Acceptor.class);
ConfigurationImpl config = new ConfigurationImpl();
RemotingServiceImpl remotingService = new RemotingServiceImpl(config);
- remotingService.registerAcceptorFactory(new AcceptorFactory()
- {
- public Acceptor createAcceptor(Configuration configuration,
- RemotingHandler handler,
- ConnectionLifeCycleListener listener)
- {
- return acceptor;
- }
- });
- remotingService.registerAcceptorFactory(new AcceptorFactory()
- {
- public Acceptor createAcceptor(Configuration configuration,
- RemotingHandler handler,
- ConnectionLifeCycleListener listener)
- {
- return acceptor2;
- }
- });
- remotingService.registerAcceptorFactory(new AcceptorFactory()
- {
- public Acceptor createAcceptor(Configuration configuration,
- RemotingHandler handler,
- ConnectionLifeCycleListener listener)
- {
- return acceptor3;
- }
- });
- acceptor.start();
+ config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory1"));
+ TestAcceptorFactory1.acceptor = acceptor1;
+ config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory2"));
+ TestAcceptorFactory2.acceptor = acceptor2;
+ config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory3"));
+ TestAcceptorFactory3.acceptor = acceptor3;
+
+ acceptor1.start();
acceptor2.start();
acceptor3.start();
- EasyMock.replay(acceptor, acceptor2, acceptor3);
+ EasyMock.replay(acceptor1, acceptor2, acceptor3);
remotingService.start();
- EasyMock.verify(acceptor, acceptor2, acceptor3);
+ EasyMock.verify(acceptor1, acceptor2, acceptor3);
assertEquals(3, remotingService.getAcceptors().size());
- assertTrue(remotingService.getAcceptors().contains(acceptor));
+ assertTrue(remotingService.getAcceptors().contains(acceptor1));
assertTrue(remotingService.getAcceptors().contains(acceptor2));
assertTrue(remotingService.getAcceptors().contains(acceptor3));
assertTrue(remotingService.isStarted());
@@ -167,51 +127,29 @@
public void testMultipleAcceptorsStartedAndStopped() throws Exception
{
- final Acceptor acceptor = EasyMock.createStrictMock(Acceptor.class);
+ final Acceptor acceptor1 = EasyMock.createStrictMock(Acceptor.class);
final Acceptor acceptor2 = EasyMock.createStrictMock(Acceptor.class);
final Acceptor acceptor3 = EasyMock.createStrictMock(Acceptor.class);
ConfigurationImpl config = new ConfigurationImpl();
- config.setTransport(TransportType.INVM);
RemotingServiceImpl remotingService = new RemotingServiceImpl(config);
- remotingService.registerAcceptorFactory(new AcceptorFactory()
- {
- public Acceptor createAcceptor(Configuration configuration,
- RemotingHandler handler,
- ConnectionLifeCycleListener listener)
- {
- return acceptor;
- }
- });
- remotingService.registerAcceptorFactory(new AcceptorFactory()
- {
- public Acceptor createAcceptor(Configuration configuration,
- RemotingHandler handler,
- ConnectionLifeCycleListener listener)
- {
- return acceptor2;
- }
- });
- remotingService.registerAcceptorFactory(new AcceptorFactory()
- {
- public Acceptor createAcceptor(Configuration configuration,
- RemotingHandler handler,
- ConnectionLifeCycleListener listener)
- {
- return acceptor3;
- }
- });
- acceptor.start();
+ config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory1"));
+ TestAcceptorFactory1.acceptor = acceptor1;
+ config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory2"));
+ TestAcceptorFactory2.acceptor = acceptor2;
+ config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory3"));
+ TestAcceptorFactory3.acceptor = acceptor3;
+ acceptor1.start();
acceptor2.start();
acceptor3.start();
- acceptor.stop();
+ acceptor1.stop();
acceptor2.stop();
acceptor3.stop();
- EasyMock.replay(acceptor, acceptor2, acceptor3);
+ EasyMock.replay(acceptor1, acceptor2, acceptor3);
remotingService.start();
remotingService.stop();
- EasyMock.verify(acceptor, acceptor2, acceptor3);
+ EasyMock.verify(acceptor1, acceptor2, acceptor3);
assertEquals(3, remotingService.getAcceptors().size());
- assertTrue(remotingService.getAcceptors().contains(acceptor));
+ assertTrue(remotingService.getAcceptors().contains(acceptor1));
assertTrue(remotingService.getAcceptors().contains(acceptor2));
assertTrue(remotingService.getAcceptors().contains(acceptor3));
assertFalse(remotingService.isStarted());
@@ -219,81 +157,53 @@
public void testMultipleAcceptorsStartedAndStoppedAddedAnotherAcceptorThenStarted() throws Exception
{
- final Acceptor acceptor = EasyMock.createStrictMock(Acceptor.class);
+ final Acceptor acceptor1 = EasyMock.createStrictMock(Acceptor.class);
final Acceptor acceptor2 = EasyMock.createStrictMock(Acceptor.class);
final Acceptor acceptor3 = EasyMock.createStrictMock(Acceptor.class);
final Acceptor acceptor4 = EasyMock.createStrictMock(Acceptor.class);
ConfigurationImpl config = new ConfigurationImpl();
RemotingServiceImpl remotingService = new RemotingServiceImpl(config);
- remotingService.registerAcceptorFactory(new AcceptorFactory()
- {
- public Acceptor createAcceptor(Configuration configuration,
- RemotingHandler handler,
- ConnectionLifeCycleListener listener)
- {
- return acceptor;
- }
- });
- remotingService.registerAcceptorFactory(new AcceptorFactory()
- {
- public Acceptor createAcceptor(Configuration configuration,
- RemotingHandler handler,
- ConnectionLifeCycleListener listener)
- {
- return acceptor2;
- }
- });
- remotingService.registerAcceptorFactory(new AcceptorFactory()
- {
- public Acceptor createAcceptor(Configuration configuration,
- RemotingHandler handler,
- ConnectionLifeCycleListener listener)
- {
- return acceptor3;
- }
- });
- acceptor.start();
+ config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory1"));
+ TestAcceptorFactory1.acceptor = acceptor1;
+ config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory2"));
+ TestAcceptorFactory2.acceptor = acceptor2;
+ config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory3"));
+ TestAcceptorFactory3.acceptor = acceptor3;
+ acceptor1.start();
acceptor2.start();
acceptor3.start();
- acceptor.stop();
+ acceptor1.stop();
acceptor2.stop();
acceptor3.stop();
- EasyMock.replay(acceptor, acceptor2, acceptor3);
+ EasyMock.replay(acceptor1, acceptor2, acceptor3);
remotingService.start();
remotingService.stop();
- EasyMock.verify(acceptor, acceptor2, acceptor3);
+ EasyMock.verify(acceptor1, acceptor2, acceptor3);
assertEquals(3, remotingService.getAcceptors().size());
- assertTrue(remotingService.getAcceptors().contains(acceptor));
+ assertTrue(remotingService.getAcceptors().contains(acceptor1));
assertTrue(remotingService.getAcceptors().contains(acceptor2));
assertTrue(remotingService.getAcceptors().contains(acceptor3));
assertFalse(remotingService.isStarted());
- EasyMock.reset(acceptor, acceptor2, acceptor3);
- remotingService.registerAcceptorFactory(new AcceptorFactory()
- {
- public Acceptor createAcceptor(Configuration configuration,
- RemotingHandler handler,
- ConnectionLifeCycleListener listener)
- {
- return acceptor4;
- }
- });
- acceptor.start();
+ EasyMock.reset(acceptor1, acceptor2, acceptor3);
+ config.getAcceptorInfos().add(new AcceptorInfo("org.jboss.messaging.tests.unit.core.remoting.impl.TestAcceptorFactory4"));
+ TestAcceptorFactory4.acceptor = acceptor4;
+ acceptor1.start();
acceptor2.start();
acceptor3.start();
acceptor4.start();
- acceptor.stop();
+ acceptor1.stop();
acceptor2.stop();
acceptor3.stop();
acceptor4.stop();
- EasyMock.replay(acceptor, acceptor2, acceptor3, acceptor4);
+ EasyMock.replay(acceptor1, acceptor2, acceptor3, acceptor4);
remotingService.start();
remotingService.stop();
- EasyMock.verify(acceptor, acceptor2, acceptor3, acceptor4);
+ EasyMock.verify(acceptor1, acceptor2, acceptor3, acceptor4);
assertEquals(4, remotingService.getAcceptors().size());
- assertTrue(remotingService.getAcceptors().contains(acceptor));
+ assertTrue(remotingService.getAcceptors().contains(acceptor1));
assertTrue(remotingService.getAcceptors().contains(acceptor2));
assertTrue(remotingService.getAcceptors().contains(acceptor3));
assertTrue(remotingService.getAcceptors().contains(acceptor4));
@@ -327,38 +237,6 @@
assertTrue(interceptors.get(2) instanceof Interceptor3);
}
- public void testAcceptorFactoriesAdded() throws Exception
- {
- ConfigurationImpl config = new ConfigurationImpl();
-
- config.getAcceptorFactoryClassNames().add("org.jboss.messaging.tests.unit.core.remoting.impl.AcceptorFactory1");
- config.getAcceptorFactoryClassNames().add("org.jboss.messaging.tests.unit.core.remoting.impl.AcceptorFactory2");
- config.getAcceptorFactoryClassNames().add("org.jboss.messaging.tests.unit.core.remoting.impl.AcceptorFactory3");
-
- RemotingServiceImpl remotingService = new RemotingServiceImpl(config);
- remotingService.start();
-
- assertEquals(3, remotingService.getAcceptors().size());
- boolean got1 = false;
- boolean got2 = false;
- boolean got3 = false;
- for (Acceptor acceptor: remotingService.getAcceptors())
- {
- if (acceptor instanceof AcceptorFactory1.Acceptor1)
- {
- got1 = true;
- }
- if (acceptor instanceof AcceptorFactory2.Acceptor2)
- {
- got2 = true;
- }
- if (acceptor instanceof AcceptorFactory3.Acceptor3)
- {
- got3 = true;
- }
- }
- assertTrue(got1 && got2 && got3);
- }
public void testCreateGetDestroyConnection() throws Exception
{
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaAcceptorFactoryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaAcceptorFactoryTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaAcceptorFactoryTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -21,9 +21,10 @@
*/
package org.jboss.messaging.tests.unit.core.remoting.impl.mina;
+import java.util.HashMap;
+import java.util.Map;
+
import org.easymock.EasyMock;
-import org.jboss.messaging.core.config.Configuration;
-import org.jboss.messaging.core.config.impl.ConfigurationImpl;
import org.jboss.messaging.core.remoting.RemotingHandler;
import org.jboss.messaging.core.remoting.impl.mina.MinaAcceptor;
import org.jboss.messaging.core.remoting.impl.mina.MinaAcceptorFactory;
@@ -44,11 +45,11 @@
{
MinaAcceptorFactory factory = new MinaAcceptorFactory();
- RemotingHandler handler = EasyMock.createStrictMock(RemotingHandler.class);
- Configuration config = new ConfigurationImpl();
+ Map<String, Object> params = new HashMap<String, Object>();
+ RemotingHandler handler = EasyMock.createStrictMock(RemotingHandler.class);
ConnectionLifeCycleListener listener = EasyMock.createStrictMock(ConnectionLifeCycleListener.class);
- Acceptor acceptor = factory.createAcceptor(config, handler, listener);
+ Acceptor acceptor = factory.createAcceptor(params, handler, listener);
assertTrue(acceptor instanceof MinaAcceptor);
}
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaAcceptorTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaAcceptorTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaAcceptorTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,6 +22,9 @@
package org.jboss.messaging.tests.unit.core.remoting.impl.mina;
+import java.util.HashMap;
+import java.util.Map;
+
import org.easymock.EasyMock;
import org.jboss.messaging.core.config.Configuration;
import org.jboss.messaging.core.config.impl.ConfigurationImpl;
@@ -44,7 +47,8 @@
RemotingHandler handler = EasyMock.createStrictMock(RemotingHandler.class);
Configuration config = new ConfigurationImpl();
ConnectionLifeCycleListener listener = EasyMock.createStrictMock(ConnectionLifeCycleListener.class);
- MinaAcceptor acceptor = new MinaAcceptor(config, handler, listener);
+ Map<String, Object> params = new HashMap<String, Object>();
+ MinaAcceptor acceptor = new MinaAcceptor(params, handler, listener);
acceptor.start();
acceptor.stop();
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaConnectorTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaConnectorTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/mina/MinaConnectorTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,13 +22,11 @@
package org.jboss.messaging.tests.unit.core.remoting.impl.mina;
+import java.util.HashMap;
+import java.util.Map;
+
import org.easymock.EasyMock;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
-import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
-import org.jboss.messaging.core.client.impl.LocationImpl;
import org.jboss.messaging.core.remoting.RemotingHandler;
-import org.jboss.messaging.core.remoting.TransportType;
import org.jboss.messaging.core.remoting.impl.mina.MinaConnector;
import org.jboss.messaging.core.remoting.spi.ConnectionLifeCycleListener;
import org.jboss.messaging.tests.util.UnitTestCase;
@@ -54,13 +52,12 @@
public void testStartStop() throws Exception
{
- RemotingHandler handler = EasyMock.createStrictMock(RemotingHandler.class);
- ConnectionParams params = new ConnectionParamsImpl();
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
+ RemotingHandler handler = EasyMock.createStrictMock(RemotingHandler.class);
ConnectionLifeCycleListener listener = EasyMock.createStrictMock(ConnectionLifeCycleListener.class);
-
- MinaConnector connector = new MinaConnector(location, params, handler, listener);
+ Map<String, Object> params = new HashMap<String, Object>();
+ MinaConnector connector = new MinaConnector(params, handler, listener);
+
connector.start();
connector.close();
}
@@ -68,13 +65,12 @@
public void testNullParams() throws Exception
{
RemotingHandler handler = EasyMock.createStrictMock(RemotingHandler.class);
- ConnectionParams params = new ConnectionParamsImpl();
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
+ Map<String, Object> params = new HashMap<String, Object>();
ConnectionLifeCycleListener listener = EasyMock.createStrictMock(ConnectionLifeCycleListener.class);
try
{
- new MinaConnector(null, params, handler, listener);
+ new MinaConnector(params, null, listener);
fail("Should throw Exception");
}
@@ -85,7 +81,7 @@
try
{
- new MinaConnector(location, null, handler, listener);
+ new MinaConnector(params, handler, null);
fail("Should throw Exception");
}
@@ -93,27 +89,5 @@
{
//Ok
}
-
- try
- {
- new MinaConnector(location, params, null, listener);
-
- fail("Should throw Exception");
- }
- catch (IllegalArgumentException e)
- {
- //Ok
- }
-
- try
- {
- new MinaConnector(location, params, handler, null);
-
- fail("Should throw Exception");
- }
- catch (IllegalArgumentException e)
- {
- //Ok
- }
}
}
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyAcceptorFactoryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyAcceptorFactoryTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyAcceptorFactoryTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -21,9 +21,10 @@
*/
package org.jboss.messaging.tests.unit.core.remoting.impl.netty;
+import java.util.HashMap;
+import java.util.Map;
+
import org.easymock.EasyMock;
-import org.jboss.messaging.core.config.Configuration;
-import org.jboss.messaging.core.config.impl.ConfigurationImpl;
import org.jboss.messaging.core.remoting.RemotingHandler;
import org.jboss.messaging.core.remoting.impl.netty.NettyAcceptor;
import org.jboss.messaging.core.remoting.impl.netty.NettyAcceptorFactory;
@@ -44,11 +45,11 @@
{
NettyAcceptorFactory factory = new NettyAcceptorFactory();
+ Map<String, Object> params = new HashMap<String, Object>();
RemotingHandler handler = EasyMock.createStrictMock(RemotingHandler.class);
- Configuration config = new ConfigurationImpl();
ConnectionLifeCycleListener listener = EasyMock.createStrictMock(ConnectionLifeCycleListener.class);
- Acceptor acceptor = factory.createAcceptor(config, handler, listener);
+ Acceptor acceptor = factory.createAcceptor(params, handler, listener);
assertTrue(acceptor instanceof NettyAcceptor);
}
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyAcceptorTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyAcceptorTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyAcceptorTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,9 +22,10 @@
package org.jboss.messaging.tests.unit.core.remoting.impl.netty;
+import java.util.HashMap;
+import java.util.Map;
+
import org.easymock.EasyMock;
-import org.jboss.messaging.core.config.Configuration;
-import org.jboss.messaging.core.config.impl.ConfigurationImpl;
import org.jboss.messaging.core.remoting.RemotingHandler;
import org.jboss.messaging.core.remoting.impl.netty.NettyAcceptor;
import org.jboss.messaging.core.remoting.spi.ConnectionLifeCycleListener;
@@ -42,9 +43,9 @@
public void testStartStop() throws Exception
{
RemotingHandler handler = EasyMock.createStrictMock(RemotingHandler.class);
- Configuration config = new ConfigurationImpl();
+ Map<String, Object> params = new HashMap<String, Object>();
ConnectionLifeCycleListener listener = EasyMock.createStrictMock(ConnectionLifeCycleListener.class);
- NettyAcceptor acceptor = new NettyAcceptor(config, handler, listener);
+ NettyAcceptor acceptor = new NettyAcceptor(params, handler, listener);
acceptor.start();
acceptor.stop();
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyConnectorTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyConnectorTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/remoting/impl/netty/NettyConnectorTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,14 +22,13 @@
package org.jboss.messaging.tests.unit.core.remoting.impl.netty;
+import java.util.HashMap;
+import java.util.Map;
+
import org.easymock.EasyMock;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
-import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
-import org.jboss.messaging.core.client.impl.LocationImpl;
import org.jboss.messaging.core.remoting.RemotingHandler;
-import org.jboss.messaging.core.remoting.TransportType;
import org.jboss.messaging.core.remoting.impl.mina.MinaConnector;
+import org.jboss.messaging.core.remoting.impl.netty.NettyConnector;
import org.jboss.messaging.core.remoting.spi.ConnectionLifeCycleListener;
import org.jboss.messaging.tests.util.UnitTestCase;
@@ -55,11 +54,10 @@
public void testStartStop() throws Exception
{
RemotingHandler handler = EasyMock.createStrictMock(RemotingHandler.class);
- ConnectionParams params = new ConnectionParamsImpl();
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
+ Map<String, Object> params = new HashMap<String, Object>();
ConnectionLifeCycleListener listener = EasyMock.createStrictMock(ConnectionLifeCycleListener.class);
- MinaConnector connector = new MinaConnector(location, params, handler, listener);
+ NettyConnector connector = new NettyConnector(params, handler, listener);
connector.start();
connector.close();
@@ -68,13 +66,12 @@
public void testNullParams() throws Exception
{
RemotingHandler handler = EasyMock.createStrictMock(RemotingHandler.class);
- ConnectionParams params = new ConnectionParamsImpl();
- Location location = new LocationImpl(TransportType.TCP, "blah", 1234);
+ Map<String, Object> params = new HashMap<String, Object>();
ConnectionLifeCycleListener listener = EasyMock.createStrictMock(ConnectionLifeCycleListener.class);
try
{
- new MinaConnector(null, params, handler, listener);
+ new NettyConnector(params, null, listener);
fail("Should throw Exception");
}
@@ -85,7 +82,7 @@
try
{
- new MinaConnector(location, null, handler, listener);
+ new NettyConnector(params, handler, null);
fail("Should throw Exception");
}
@@ -93,27 +90,5 @@
{
//Ok
}
-
- try
- {
- new MinaConnector(location, params, null, listener);
-
- fail("Should throw Exception");
- }
- catch (IllegalArgumentException e)
- {
- //Ok
- }
-
- try
- {
- new MinaConnector(location, params, handler, null);
-
- fail("Should throw Exception");
- }
- catch (IllegalArgumentException e)
- {
- //Ok
- }
}
}
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/MessagingServerPacketHandlerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/MessagingServerPacketHandlerTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/server/impl/MessagingServerPacketHandlerTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -60,7 +60,8 @@
RemotingConnection rc = EasyMock.createStrictMock(RemotingConnection.class);
CreateSessionMessage packet = new CreateSessionMessage("blah", 123, "andy", "taylor",
false, false, false, 123456);
- CreateSessionResponseMessage createConnectionResponse = new CreateSessionResponseMessage(16256152, 98365, 123);
+ CreateSessionResponseMessage createConnectionResponse =
+ new CreateSessionResponseMessage(16256152, 98365, 123, 1234);
MessagingServerPacketHandler messagingServerPacketHandler = new MessagingServerPacketHandler(server, rs);
final long connectionID = 23982893;
EasyMock.expect(rs.getConnection(connectionID)).andReturn(rc);
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossConnectionFactoryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossConnectionFactoryTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/jms/client/JBossConnectionFactoryTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,9 +22,11 @@
package org.jboss.messaging.tests.unit.jms.client;
-import static org.easymock.EasyMock.createStrictMock;
import static org.jboss.messaging.tests.util.RandomUtil.randomString;
+import java.util.HashMap;
+import java.util.Map;
+
import javax.jms.Connection;
import javax.jms.QueueConnection;
import javax.jms.TopicConnection;
@@ -34,9 +36,8 @@
import junit.framework.TestCase;
-import org.jboss.messaging.core.client.ConnectionParams;
-import org.jboss.messaging.core.client.Location;
-import org.jboss.messaging.core.client.impl.ConnectionParamsImpl;
+import org.easymock.classextension.EasyMock;
+import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
import org.jboss.messaging.jms.client.JBossConnectionFactory;
/**
@@ -213,25 +214,15 @@
// Private -------------------------------------------------------
-// (final String clientID,
-// final int dupsOKBatchSize,
-// final Location location,
-// final ConnectionParams connectionParams,
-// final int defaultConsumerWindowSize,
-// final int defaultConsumerMaxRate,
-// final int defaultProducerWindowSize,
-// final int defaultProducerMaxRate,
-// final boolean defaultBlockOnAcknowledge,
-// final boolean defaultSendNonPersistentMessagesBlocking,
-// final boolean defaultSendPersistentMessagesBlocking)
-
private void doCreateConnection(Class expectedInterface,
ConnectionCreation creation) throws Exception
{
+ final ConnectorFactory cf = EasyMock.createMock(ConnectorFactory.class);
+ final Map<String, Object> params = new HashMap<String, Object>();
+ final long pingPeriod = 12987213;
+ final long callTimeout = 27237;
final String clientID = "kajsakjs";
final int dupsOKBatchSize = 12344;
- final Location location = createStrictMock(Location.class);
- final ConnectionParams params = new ConnectionParamsImpl();
final int defaultConsumerWindowSize = 1212;
final int defaultConsumerMaxRate = 5656;
final int defaultProducerWindowSize = 2323;
@@ -240,8 +231,9 @@
final boolean defaultSendNonPersistentMessagesBlocking = true;
final boolean defaultSendPersistentMessagesBlocking = true;
- JBossConnectionFactory factory = new JBossConnectionFactory(clientID, dupsOKBatchSize,
- location, params, defaultConsumerWindowSize, defaultConsumerMaxRate,
+ JBossConnectionFactory factory = new JBossConnectionFactory(cf, params,
+ pingPeriod, callTimeout, clientID, dupsOKBatchSize,
+ defaultConsumerWindowSize, defaultConsumerMaxRate,
defaultProducerWindowSize, defaultProducerMaxRate, defaultBlockOnAcknowledge,
defaultSendNonPersistentMessagesBlocking, defaultSendPersistentMessagesBlocking);
Object connection = creation.createConnection(factory);
@@ -252,10 +244,12 @@
private void doCreateConnectionWithCredentials(Class expectedInterface, String username, String password,
ConnectionCreation creation) throws Exception
{
+ final ConnectorFactory cf = EasyMock.createMock(ConnectorFactory.class);
+ final Map<String, Object> params = new HashMap<String, Object>();
+ final long pingPeriod = 12987213;
+ final long callTimeout = 27237;
final String clientID = "kajsakjs";
- final int dupsOKBatchSize = 12344;
- final Location location = createStrictMock(Location.class);
- final ConnectionParams params = new ConnectionParamsImpl();
+ final int dupsOKBatchSize = 12344;
final int defaultConsumerWindowSize = 1212;
final int defaultConsumerMaxRate = 5656;
final int defaultProducerWindowSize = 2323;
@@ -264,8 +258,10 @@
final boolean defaultSendNonPersistentMessagesBlocking = true;
final boolean defaultSendPersistentMessagesBlocking = true;
- JBossConnectionFactory factory = new JBossConnectionFactory(clientID, dupsOKBatchSize,
- location, params, defaultConsumerWindowSize, defaultConsumerMaxRate,
+ JBossConnectionFactory factory = new JBossConnectionFactory(cf, params,
+ pingPeriod, callTimeout,
+ clientID, dupsOKBatchSize,
+ defaultConsumerWindowSize, defaultConsumerMaxRate,
defaultProducerWindowSize, defaultProducerMaxRate, defaultBlockOnAcknowledge,
defaultSendNonPersistentMessagesBlocking, defaultSendPersistentMessagesBlocking);
Object connection = creation.createConnection(factory, username, password);
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/jms/misc/ManifestTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/jms/misc/ManifestTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/jms/misc/ManifestTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -22,8 +22,6 @@
package org.jboss.messaging.tests.unit.jms.misc;
-import static org.jboss.messaging.core.remoting.TransportType.INVM;
-
import java.io.File;
import java.util.Properties;
import java.util.jar.Attributes;
@@ -81,8 +79,6 @@
try
{
- ConfigurationImpl config = new ConfigurationImpl();
- config.setTransport(INVM);
MessagingServer server = new MessagingServerImpl();
ConnectionMetaData meta = new JBossConnectionMetaData(server.getVersion());
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/jms/referenceable/ConnectionFactoryObjectFactoryTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/jms/referenceable/ConnectionFactoryObjectFactoryTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/jms/referenceable/ConnectionFactoryObjectFactoryTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -24,10 +24,13 @@
import static org.jboss.messaging.tests.util.RandomUtil.randomString;
+import java.util.Map;
+
import javax.naming.Reference;
import junit.framework.TestCase;
+import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
import org.jboss.messaging.jms.client.JBossConnectionFactory;
import org.jboss.messaging.jms.referenceable.ConnectionFactoryObjectFactory;
@@ -51,7 +54,8 @@
public void testReference() throws Exception
{
- JBossConnectionFactory cf = new JBossConnectionFactory(randomString(), 1, null, null, 1, 1, 1, 1, true, true, true);
+ JBossConnectionFactory cf =
+ new JBossConnectionFactory(null, null, 123, 123, randomString(), 1, 1, 1, 1, 1, true, true, true);
Reference reference = cf.getReference();
ConnectionFactoryObjectFactory factory = new ConnectionFactoryObjectFactory();
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/ConnectionFactoryControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/ConnectionFactoryControlTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/ConnectionFactoryControlTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -36,7 +36,6 @@
import junit.framework.TestCase;
import org.easymock.classextension.EasyMock;
-import org.jboss.messaging.core.client.Location;
import org.jboss.messaging.jms.client.JBossConnectionFactory;
import org.jboss.messaging.jms.server.management.impl.ConnectionFactoryControl;
@@ -92,25 +91,6 @@
verify(cf);
}
- public void testGetURL() throws Exception
- {
- String name = randomString();
- List<String> bindings = new ArrayList<String>();
- bindings.add(randomString());
- bindings.add(randomString());
-
- JBossConnectionFactory cf = createMock(JBossConnectionFactory.class);
- Location location = createMock(Location.class);
- EasyMock.expect(cf.getLocation()).andReturn(location);
- replay(cf, location);
-
- ConnectionFactoryControl control = new ConnectionFactoryControl(cf,
- name, bindings);
- assertEquals(location.toString(), control.getURL());
-
- verify(cf, location);
- }
-
public void testGetClientID() throws Exception
{
String name = randomString();
@@ -139,7 +119,7 @@
int rate = randomInt();
JBossConnectionFactory cf = createMock(JBossConnectionFactory.class);
- EasyMock.expect(cf.getDefaultConsumerMaxRate()).andReturn(rate);
+ EasyMock.expect(cf.getConsumerMaxRate()).andReturn(rate);
replay(cf);
ConnectionFactoryControl control = new ConnectionFactoryControl(cf,
@@ -158,7 +138,7 @@
int size = randomInt();
JBossConnectionFactory cf = createMock(JBossConnectionFactory.class);
- EasyMock.expect(cf.getDefaultConsumerWindowSize()).andReturn(size);
+ EasyMock.expect(cf.getConsumerWindowSize()).andReturn(size);
replay(cf);
ConnectionFactoryControl control = new ConnectionFactoryControl(cf,
@@ -177,7 +157,7 @@
int rate = randomInt();
JBossConnectionFactory cf = createMock(JBossConnectionFactory.class);
- EasyMock.expect(cf.getDefaultProducerMaxRate()).andReturn(rate);
+ EasyMock.expect(cf.getProducerMaxRate()).andReturn(rate);
replay(cf);
ConnectionFactoryControl control = new ConnectionFactoryControl(cf,
@@ -196,7 +176,7 @@
int size = randomInt();
JBossConnectionFactory cf = createMock(JBossConnectionFactory.class);
- EasyMock.expect(cf.getDefaultProducerWindowSize()).andReturn(size);
+ EasyMock.expect(cf.getProducerWindowSize()).andReturn(size);
replay(cf);
ConnectionFactoryControl control = new ConnectionFactoryControl(cf,
@@ -234,7 +214,7 @@
boolean blockOnAcknowledge = randomBoolean();
JBossConnectionFactory cf = createMock(JBossConnectionFactory.class);
- EasyMock.expect(cf.isDefaultBlockOnAcknowledge()).andReturn(blockOnAcknowledge);
+ EasyMock.expect(cf.isBlockOnAcknowledge()).andReturn(blockOnAcknowledge);
replay(cf);
ConnectionFactoryControl control = new ConnectionFactoryControl(cf,
@@ -253,7 +233,7 @@
boolean blockOnNonPersistentSend = randomBoolean();
JBossConnectionFactory cf = createMock(JBossConnectionFactory.class);
- EasyMock.expect(cf.isDefaultSendNonPersistentMessagesBlocking()).andReturn(blockOnNonPersistentSend);
+ EasyMock.expect(cf.isBlockOnNonPersistentSend()).andReturn(blockOnNonPersistentSend);
replay(cf);
ConnectionFactoryControl control = new ConnectionFactoryControl(cf,
@@ -273,7 +253,7 @@
boolean blockOnPersistentSend = randomBoolean();
JBossConnectionFactory cf = createMock(JBossConnectionFactory.class);
- EasyMock.expect(cf.isDefaultSendPersistentMessagesBlocking()).andReturn(blockOnPersistentSend);
+ EasyMock.expect(cf.isBlockOnPersistentSend()).andReturn(blockOnPersistentSend);
replay(cf);
ConnectionFactoryControl control = new ConnectionFactoryControl(cf,
Modified: trunk/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/JMSServerControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/JMSServerControlTest.java 2008-08-28 10:03:45 UTC (rev 4885)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/jms/server/management/impl/JMSServerControlTest.java 2008-08-28 12:52:17 UTC (rev 4886)
@@ -29,11 +29,14 @@
import static org.easymock.EasyMock.verify;
import static org.jboss.messaging.tests.util.RandomUtil.randomBoolean;
import static org.jboss.messaging.tests.util.RandomUtil.randomInt;
+import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
import static org.jboss.messaging.tests.util.RandomUtil.randomString;
import java.lang.management.ManagementFactory;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicReference;
@@ -44,6 +47,8 @@
import junit.framework.TestCase;
+import org.easymock.EasyMock;
+import org.jboss.messaging.core.remoting.spi.ConnectorFactory;
import org.jboss.messaging.jms.server.JMSServerManager;
import org.jboss.messaging.jms.server.management.impl.JMSManagementServiceImpl;
import org.jboss.messaging.jms.server.management.impl.JMSServerControl;
@@ -252,6 +257,10 @@
throws Exception
{
String name = randomString();
+ ConnectorFactory cf = EasyMock.createMock(ConnectorFactory.class);
+ Map<String, Object> params = new HashMap<String, Object>();
+ long pingPeriod = randomLong();
+ long callTimeout = randomLong();
String clientID = randomString();
int dupsOKBatchSize = randomInt();
int consumerWindowSize = randomInt();
@@ -263,19 +272,21 @@
boolean defaultSendPersistentMessagesBlocking = randomBoolean();
boolean created = true;
String jndiBinding = randomString();
- List<String> bindings = new ArrayList<String>();
- bindings.add(jndiBinding);
+ // List<String> bindings = new ArrayList<String>();
+ // bindings.add(jndiBinding);
JMSServerManager serverManager = createMock(JMSServerManager.class);
expect(
- serverManager.createConnectionFactory(name, clientID,
+ serverManager.createConnectionFactory(name, cf, params,
+ pingPeriod, callTimeout,
+ clientID,
dupsOKBatchSize, consumerWindowSize, consumerMaxRate,
producerWindowSize, producerMaxRate, blockOnAcknowledge,
defaultSendNonPersistentMessagesBlocking,
- defaultSendPersistentMessagesBlocking, bindings)).andReturn(
+ defaultSendPersistentMessagesBlocking, jndiBinding)).andReturn(
created);
replay(serverManager);
-
+
JMSServerControl control = new JMSServerControl(serverManager);
mbeanServer.registerMBean(control, serverON);
@@ -293,11 +304,13 @@
};
mbeanServer.addNotificationListener(serverON, listener, null, null);
- control.createConnectionFactory(name, jndiBinding, clientID,
+ control.createConnectionFactory(name, cf, params,
+ pingPeriod, callTimeout,
+ clientID,
dupsOKBatchSize, consumerWindowSize, consumerMaxRate,
- producerWindowSize, producerMaxRate,
- blockOnAcknowledge,
- defaultSendNonPersistentMessagesBlocking, defaultSendPersistentMessagesBlocking);
+ producerWindowSize, producerMaxRate, blockOnAcknowledge,
+ defaultSendNonPersistentMessagesBlocking,
+ defaultSendPersistentMessagesBlocking, jndiBinding);
boolean gotNotification = latch.await(500, MILLISECONDS);
assertTrue(gotNotification);
More information about the jboss-cvs-commits
mailing list