Repository: activemq-artemis
Updated Branches:
  refs/heads/master 719adab1e -> 38df11d1d


ARTEMIS-1581 fix handshake-timeout property configurability


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/c05ec28d
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/c05ec28d
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/c05ec28d

Branch: refs/heads/master
Commit: c05ec28de2334f279ff7028735ae46929fc4a4eb
Parents: 719adab
Author: Stanislav Knot <[email protected]>
Authored: Fri Jan 5 14:18:20 2018 +0100
Committer: Justin Bertram <[email protected]>
Committed: Mon Jan 8 10:28:42 2018 -0600

----------------------------------------------------------------------
 .../remoting/impl/netty/TransportConstants.java |  1 +
 .../jms/server/config/JMSConfigurationTest.java | 51 ++++++++++++++++++++
 2 files changed, 52 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/c05ec28d/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/remoting/impl/netty/TransportConstants.java
----------------------------------------------------------------------
diff --git 
a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/remoting/impl/netty/TransportConstants.java
 
b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/remoting/impl/netty/TransportConstants.java
index efc5eb0..1f06a96 100644
--- 
a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/remoting/impl/netty/TransportConstants.java
+++ 
b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/remoting/impl/netty/TransportConstants.java
@@ -315,6 +315,7 @@ public class TransportConstants {
       
allowableAcceptorKeys.add(ActiveMQDefaultConfiguration.getPropPasswordCodec());
       allowableAcceptorKeys.add(TransportConstants.BACKLOG_PROP_NAME);
       allowableAcceptorKeys.add(TransportConstants.CRL_PATH_PROP_NAME);
+      allowableAcceptorKeys.add(TransportConstants.HANDSHAKE_TIMEOUT);
 
       ALLOWABLE_ACCEPTOR_KEYS = 
Collections.unmodifiableSet(allowableAcceptorKeys);
 

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/c05ec28d/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/server/config/JMSConfigurationTest.java
----------------------------------------------------------------------
diff --git 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/server/config/JMSConfigurationTest.java
 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/server/config/JMSConfigurationTest.java
index 165e6bf..2f0e351 100644
--- 
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/server/config/JMSConfigurationTest.java
+++ 
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/server/config/JMSConfigurationTest.java
@@ -21,13 +21,18 @@ import javax.jms.ConnectionFactory;
 import javax.jms.Queue;
 import javax.jms.Topic;
 import javax.naming.Context;
+import java.net.URI;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 
+import io.netty.buffer.ByteBuf;
 import org.apache.activemq.artemis.api.core.TransportConfiguration;
 import org.apache.activemq.artemis.core.registry.JndiBindingRegistry;
 import 
org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnectorFactory;
+import org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants;
 import org.apache.activemq.artemis.core.server.ActiveMQServer;
+import org.apache.activemq.artemis.core.server.ActiveMQServers;
 import org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl;
 import org.apache.activemq.artemis.jms.server.JMSServerManager;
 import 
org.apache.activemq.artemis.jms.server.config.ConnectionFactoryConfiguration;
@@ -38,9 +43,13 @@ import 
org.apache.activemq.artemis.jms.server.config.impl.JMSConfigurationImpl;
 import 
org.apache.activemq.artemis.jms.server.config.impl.JMSQueueConfigurationImpl;
 import 
org.apache.activemq.artemis.jms.server.config.impl.TopicConfigurationImpl;
 import org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl;
+import org.apache.activemq.artemis.junit.Wait;
 import org.apache.activemq.artemis.tests.unit.util.InVMNamingContext;
 import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
 import org.apache.activemq.artemis.utils.RandomUtil;
+import org.apache.activemq.transport.netty.NettyTransport;
+import org.apache.activemq.transport.netty.NettyTransportFactory;
+import org.apache.activemq.transport.netty.NettyTransportListener;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -97,4 +106,46 @@ public class JMSConfigurationTest extends ActiveMQTestBase {
 
       server.stop();
    }
+
+   @Test
+   public void testHandshakeTimeoutWithValueSet() throws Exception {
+      final int HANDSHAKE_TIMEOUT = 5;
+
+      ActiveMQServer server = 
addServer(ActiveMQServers.newActiveMQServer(createDefaultConfig(false)
+                                                                             
.clearAcceptorConfigurations()
+                                                                             
.addAcceptorConfiguration("netty", 
"tcp://localhost:61616?handshake-timeout=5")));
+      server.start();
+
+      TransportConfiguration tc = 
server.getConfiguration().getAcceptorConfigurations().iterator().next();
+      String host = (String) 
tc.getParams().get(TransportConstants.HOST_PROP_NAME);
+      String port = (String) 
tc.getParams().get(TransportConstants.PORT_PROP_NAME);
+      Object handshakeTimeout = 
tc.getParams().get(TransportConstants.HANDSHAKE_TIMEOUT);
+      assertNotNull(handshakeTimeout);
+      assertEquals(HANDSHAKE_TIMEOUT, 
Integer.parseInt(handshakeTimeout.toString()));
+
+      NettyTransport transport = NettyTransportFactory.createTransport(new 
URI("tcp://" + host + ":" + port));
+      transport.setTransportListener(new NettyTransportListener() {
+         @Override
+         public void onData(ByteBuf incoming) {
+
+         }
+
+         @Override
+         public void onTransportClosed() {
+         }
+
+         @Override
+         public void onTransportError(Throwable cause) {
+         }
+
+      });
+
+      try {
+         transport.connect();
+         assertTrue("Connection should be closed now", Wait.waitFor(() -> 
!transport.isConnected(), TimeUnit.SECONDS.toMillis(HANDSHAKE_TIMEOUT + 1)));
+      } finally {
+         transport.close();
+         server.stop();
+      }
+   }
 }

Reply via email to