activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From clebertsuco...@apache.org
Subject [1/2] activemq-artemis git commit: ARTEMIS-291 Allow multiple acceptors with same host/port
Date Mon, 02 Nov 2015 15:09:05 GMT
Repository: activemq-artemis
Updated Branches:
  refs/heads/master 0117a2943 -> 667a64f0a


ARTEMIS-291 Allow multiple acceptors with same host/port


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

Branch: refs/heads/master
Commit: 62262805abb5efaba8f57bda2988954322d897e6
Parents: 0117a29
Author: Martyn Taylor <mtaylor@redhat.com>
Authored: Mon Nov 2 12:10:33 2015 +0000
Committer: Martyn Taylor <mtaylor@redhat.com>
Committed: Mon Nov 2 12:42:49 2015 +0000

----------------------------------------------------------------------
 .../server/impl/RemotingServiceImpl.java        |  8 --
 .../tests/unit/core/remoting/AcceptorsTest.java | 56 ++++++++++++
 .../server/impl/fake/FakeAcceptorFactory.java   | 95 ++++++++++++++++++++
 3 files changed, 151 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/62262805/artemis-server/src/main/java/org/apache/activemq/artemis/core/remoting/server/impl/RemotingServiceImpl.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/remoting/server/impl/RemotingServiceImpl.java
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/remoting/server/impl/RemotingServiceImpl.java
index 06428f9..42752bc 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/remoting/server/impl/RemotingServiceImpl.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/remoting/server/impl/RemotingServiceImpl.java
@@ -205,15 +205,7 @@ public class RemotingServiceImpl implements RemotingService, ConnectionLifeCycle
 
       threadPool = Executors.newCachedThreadPool(tFactory);
 
-      HashSet<TransportConfiguration> namelessAcceptors = new HashSet<>();
-
       for (TransportConfiguration info : acceptorsConfig) {
-         TransportConfiguration nameless = info.newTransportConfig("");
-         if (namelessAcceptors.contains(nameless)) {
-            ActiveMQServerLogger.LOGGER.duplicatedAcceptor(info.getName(), "" + info.getParams(),
info.getFactoryClassName());
-            continue;
-         }
-         namelessAcceptors.add(nameless);
          try {
             AcceptorFactory factory = server.getServiceRegistry().getAcceptorFactory(info.getName(),
info.getFactoryClassName());
 

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/62262805/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/remoting/AcceptorsTest.java
----------------------------------------------------------------------
diff --git a/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/remoting/AcceptorsTest.java
b/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/remoting/AcceptorsTest.java
new file mode 100644
index 0000000..88f02b2
--- /dev/null
+++ b/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/remoting/AcceptorsTest.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.activemq.artemis.tests.unit.core.remoting;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.activemq.artemis.api.core.TransportConfiguration;
+import org.apache.activemq.artemis.core.config.Configuration;
+import org.apache.activemq.artemis.core.server.ActiveMQServer;
+import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
+import org.junit.Test;
+
+public class AcceptorsTest extends ActiveMQTestBase {
+
+   @Test
+   public void testMultipleAcceptorsWithSameHostPortDifferentName() throws Exception
+   {
+      final String acceptorFactoryClass = "org.apache.activemq.artemis.tests.unit.core.remoting.server.impl.fake.FakeAcceptorFactory";
+
+      Map<String, Object> params = new HashMap<>();
+      params.put("host", "localhost");
+      params.put("port", 5445);
+
+      Set<TransportConfiguration> tcs = new HashSet<>();
+      tcs.add(new TransportConfiguration(acceptorFactoryClass, params, "Acceptor1"));
+      tcs.add(new TransportConfiguration(acceptorFactoryClass, params, "Acceptor2"));
+
+      Configuration config = createBasicConfig();
+      config.setAcceptorConfigurations(tcs);
+
+      ActiveMQServer server = createServer(config);
+
+      server.start();
+      waitForServerToStart(server);
+
+      assertNotNull(server.getRemotingService().getAcceptor("Acceptor1"));
+      assertNotNull(server.getRemotingService().getAcceptor("Acceptor2"));
+   }
+}

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/62262805/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/remoting/server/impl/fake/FakeAcceptorFactory.java
----------------------------------------------------------------------
diff --git a/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/remoting/server/impl/fake/FakeAcceptorFactory.java
b/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/remoting/server/impl/fake/FakeAcceptorFactory.java
new file mode 100644
index 0000000..3ced505
--- /dev/null
+++ b/tests/unit-tests/src/test/java/org/apache/activemq/artemis/tests/unit/core/remoting/server/impl/fake/FakeAcceptorFactory.java
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.activemq.artemis.tests.unit.core.remoting.server.impl.fake;
+
+import java.util.Map;
+import java.util.concurrent.Executor;
+import java.util.concurrent.ScheduledExecutorService;
+
+import org.apache.activemq.artemis.core.security.ActiveMQPrincipal;
+import org.apache.activemq.artemis.core.server.cluster.ClusterConnection;
+import org.apache.activemq.artemis.core.server.management.NotificationService;
+import org.apache.activemq.artemis.spi.core.protocol.ProtocolManager;
+import org.apache.activemq.artemis.spi.core.remoting.Acceptor;
+import org.apache.activemq.artemis.spi.core.remoting.AcceptorFactory;
+import org.apache.activemq.artemis.spi.core.remoting.BufferHandler;
+import org.apache.activemq.artemis.spi.core.remoting.ConnectionLifeCycleListener;
+
+public class FakeAcceptorFactory implements AcceptorFactory {
+
+   private boolean started = false;
+
+   @Override
+   public Acceptor createAcceptor(String name,
+                                  ClusterConnection clusterConnection,
+                                  Map<String, Object> configuration,
+                                  BufferHandler handler,
+                                  ConnectionLifeCycleListener listener,
+                                  Executor threadPool,
+                                  ScheduledExecutorService scheduledThreadPool,
+                                  Map<String, ProtocolManager> protocolMap) {
+      return new FakeAcceptor();
+   }
+
+   private final class FakeAcceptor implements Acceptor {
+
+      @Override
+      public void pause() {
+
+      }
+
+      @Override
+      public ClusterConnection getClusterConnection() {
+         return null;
+      }
+
+      @Override
+      public Map<String, Object> getConfiguration() {
+         return null;
+      }
+
+      @Override
+      public void setNotificationService(NotificationService notificationService) {
+
+      }
+
+      @Override
+      public void setDefaultActiveMQPrincipal(ActiveMQPrincipal defaultActiveMQPrincipal)
{
+
+      }
+
+      @Override
+      public boolean isUnsecurable() {
+         return false;
+      }
+
+      @Override
+      public void start() throws Exception {
+         started = true;
+      }
+
+      @Override
+      public void stop() throws Exception {
+         started = false;
+      }
+
+      @Override
+      public boolean isStarted() {
+         return started;
+      }
+   }
+}


Mime
View raw message