You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2016/12/09 21:24:54 UTC

activemq-artemis git commit: ARTEMIS-882 Supporting lists on URIs

Repository: activemq-artemis
Updated Branches:
  refs/heads/1.x 3758f2a0c -> 78042ba0e


ARTEMIS-882 Supporting lists on URIs

(cherry picked from commit dc472192f41875bd390f3f2f00af0f98b7c08c6c)


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

Branch: refs/heads/1.x
Commit: 78042ba0e1bfb6be056e1f98ca6d893779a4d3ab
Parents: 3758f2a
Author: Clebert Suconic <cl...@apache.org>
Authored: Fri Dec 9 12:47:40 2016 -0500
Committer: Clebert Suconic <cl...@apache.org>
Committed: Fri Dec 9 16:24:45 2016 -0500

----------------------------------------------------------------------
 .../artemis/api/core/client/ActiveMQClient.java |  2 +-
 .../core/client/impl/ServerLocatorImpl.java     |  4 +-
 .../serverLocator/TCPServerLocatorSchema.java   |  7 +--
 .../jms/client/ActiveMQConnectionFactory.java   |  2 +-
 .../artemis/tests/integration/jms/URITest.java  | 46 ++++++++++++++++++++
 5 files changed, 55 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/78042ba0/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/client/ActiveMQClient.java
----------------------------------------------------------------------
diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/client/ActiveMQClient.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/client/ActiveMQClient.java
index 0ad80fc..a07ef6d 100644
--- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/client/ActiveMQClient.java
+++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/client/ActiveMQClient.java
@@ -289,7 +289,7 @@ public final class ActiveMQClient {
     */
    public static ServerLocator createServerLocator(final String url) throws Exception {
       ServerLocatorParser parser = new ServerLocatorParser();
-      return parser.newObject(new URI(url), null);
+      return parser.newObject(parser.expandURI(url), null);
    }
 
    /**

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/78042ba0/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ServerLocatorImpl.java
----------------------------------------------------------------------
diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ServerLocatorImpl.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ServerLocatorImpl.java
index beb1b13..949ef90 100644
--- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ServerLocatorImpl.java
+++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/client/impl/ServerLocatorImpl.java
@@ -397,7 +397,9 @@ public final class ServerLocatorImpl implements ServerLocatorInternal, Discovery
 
    public static ServerLocator newLocator(String uri) {
       try {
-         return newLocator(new URI(uri));
+         ServerLocatorParser parser = new ServerLocatorParser();
+         URI newURI = parser.expandURI(uri);
+         return parser.newObject(newURI, null);
       } catch (Exception e) {
          throw new RuntimeException(e);
       }

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/78042ba0/artemis-core-client/src/main/java/org/apache/activemq/artemis/uri/schema/serverLocator/TCPServerLocatorSchema.java
----------------------------------------------------------------------
diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/uri/schema/serverLocator/TCPServerLocatorSchema.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/uri/schema/serverLocator/TCPServerLocatorSchema.java
index 9468a50..5a2724e 100644
--- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/uri/schema/serverLocator/TCPServerLocatorSchema.java
+++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/uri/schema/serverLocator/TCPServerLocatorSchema.java
@@ -30,7 +30,8 @@ import org.apache.activemq.artemis.utils.IPV6Util;
 import org.apache.activemq.artemis.utils.uri.BeanSupport;
 import org.apache.activemq.artemis.utils.uri.SchemaConstants;
 
-public class TCPServerLocatorSchema extends AbstractServerLocatorSchema {
+public class
+TCPServerLocatorSchema extends AbstractServerLocatorSchema {
 
    @Override
    public String getSchemaName() {
@@ -45,9 +46,9 @@ public class TCPServerLocatorSchema extends AbstractServerLocatorSchema {
       TransportConfiguration[] tcs = new TransportConfiguration[configurations.size()];
       configurations.toArray(tcs);
       if (options.isHa()) {
-         return ActiveMQClient.createServerLocatorWithHA(tcs);
+         return BeanSupport.setData(uri, ActiveMQClient.createServerLocatorWithHA(tcs), query);
       } else {
-         return ActiveMQClient.createServerLocatorWithoutHA(tcs);
+         return BeanSupport.setData(uri, ActiveMQClient.createServerLocatorWithoutHA(tcs), query);
       }
    }
 

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/78042ba0/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQConnectionFactory.java
----------------------------------------------------------------------
diff --git a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQConnectionFactory.java b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQConnectionFactory.java
index 91dee3c..4d314ce 100644
--- a/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQConnectionFactory.java
+++ b/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQConnectionFactory.java
@@ -204,7 +204,7 @@ public class ActiveMQConnectionFactory implements ConnectionFactoryOptions, Exte
    public ActiveMQConnectionFactory(String url) {
       ConnectionFactoryParser cfParser = new ConnectionFactoryParser();
       try {
-         URI uri = new URI(url);
+         URI uri = cfParser.expandURI(url);
          serverLocator = ServerLocatorImpl.newLocator(uri);
          cfParser.populateObject(uri, this);
       } catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/78042ba0/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/URITest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/URITest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/URITest.java
new file mode 100644
index 0000000..b66b10b
--- /dev/null
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/URITest.java
@@ -0,0 +1,46 @@
+/**
+ * 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.integration.jms;
+
+import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
+import org.apache.activemq.artemis.api.core.client.ServerLocator;
+import org.apache.activemq.artemis.api.jms.ActiveMQJMSClient;
+import org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl;
+import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class URITest {
+
+   @Test
+   public void testParseURIs() throws Throwable {
+      ActiveMQConnectionFactory factory = ActiveMQJMSClient.createConnectionFactory("(tcp://localhost:61616,tcp://localhost:61617)?blockOnDurableSend=false", "some name");
+      Assert.assertEquals(2, ((ServerLocatorImpl) factory.getServerLocator()).getInitialConnectors().length);
+
+      ActiveMQConnectionFactory factory2 = new ActiveMQConnectionFactory("(tcp://localhost:61614,tcp://localhost:61616)?blockOnDurableSend=false");
+      Assert.assertEquals(2, ((ServerLocatorImpl) factory2.getServerLocator()).getInitialConnectors().length);
+
+      ServerLocator locator = ServerLocatorImpl.newLocator("(tcp://localhost:61616,tcp://localhost:61617)?blockOnDurableSend=false");
+      Assert.assertEquals(2, ((ServerLocatorImpl) locator).getInitialConnectors().length);
+
+      ServerLocator locator2 = ActiveMQClient.createServerLocator("(tcp://localhost:61616,tcp://localhost:61617)?blockOnDurableSend=false");
+      Assert.assertEquals(2, ((ServerLocatorImpl) locator2).getInitialConnectors().length);
+
+   }
+
+}