From c057c51d8c40a264493c0cbc687fb805b169de2f Mon Sep 17 00:00:00 2001 From: antelder Date: Fri, 29 Jan 2010 14:08:43 +0000 Subject: Update tribes registry to also support the tuscany registry uri format git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@904504 13f79535-47bb-0310-9956-ffa450edef68 --- .../tuscany/sca/endpoint/hazelcast/ConfigURI.java | 168 --------------------- .../hazelcast/HazelcastEndpointRegistry.java | 5 +- .../sca/endpoint/hazelcast/ConfigURITestCase.java | 106 ------------- 3 files changed, 3 insertions(+), 276 deletions(-) delete mode 100644 sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/ConfigURI.java delete mode 100644 sca-java-2.x/trunk/modules/endpoint-hazelcast/src/test/java/org/apache/tuscany/sca/endpoint/hazelcast/ConfigURITestCase.java (limited to 'sca-java-2.x/trunk/modules/endpoint-hazelcast/src') diff --git a/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/ConfigURI.java b/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/ConfigURI.java deleted file mode 100644 index 0eee731249..0000000000 --- a/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/ConfigURI.java +++ /dev/null @@ -1,168 +0,0 @@ -/* - * 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.tuscany.sca.endpoint.hazelcast; - -import java.net.URI; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - - -/** - * Utility to parse the config uri string. - * - * tuscany:[domainName]?listen=[port|ip:port]]&password=abc&multicast=[off|port|ip:port]&remotes=ip:port,ip:port,... - - * listen - defines the local bind address and port, it defaults to all network interfaces on port 14820 and if that port in use it will try incrementing by one till a free port is found. - * password - is the password other nodes must use to connect to this domain. The default is 'tuscany'. - * multicast - defines if multicast discovery is used and if so what multicast ip group and port is used. - * The default is multicast is off if remotes= is specified (only for now due to a Hazelcast limitation that is planned to be fixed), - * otherwise if remotes= is not specified then multicast defaults to 224.5.12.10:51482 - * remotes - a list of ipAddress:port for remote nodes - * - * TODO: move this to a base module as it will also be used by the SCAClient - * add JCA encryption config - */ -public class ConfigURI { - - private String domainName = "default"; - private String bindAddress = null; // null means all network adapters - private int listenPort = 14820; - private String password = "tuscany"; - private boolean multicastDisabled = false; - private String multicastAddress = "224.5.12.10"; - private int multicastPort = 51482; - private List remotes = new ArrayList(); - private String uri; - - public ConfigURI(String uri) { - this.uri = uri; - parseURI(uri); - } - - private void parseURI(String uri) { - if (uri.startsWith("tuscanyclient:")) { - uri = uri.replace("tuscanyclient:", "tuscany:"); - } - - if (!uri.startsWith("tuscany:")) { - throw new IllegalArgumentException("Config URI must start with 'tuscany:'"); - } - - // make it a URI so java.net.URI can be used to parse it - int i = uri.indexOf(":"); - if (uri.charAt("tuscany:".length()) != '/') { - uri = uri.replaceFirst(":", ":/"); - } - if (uri.charAt("tuscany:".length()+1) != '/') { - uri = uri.replaceFirst(":/", "://"); - } - URI configURI = URI.create(uri); - - this.domainName = configURI.getHost(); - - String query = configURI.getQuery(); - if (query != null && query.length() > 0) { - String[] params = query.split("&"); - Map paramMap = new HashMap(); - for (String param : params) { - paramMap.put(param.split("=")[0], param.split("=")[1]); - } - for (String name : paramMap.keySet()) { - String value = paramMap.get(name); - if ("listen".equals(name)) { - if (value.indexOf(":") == -1) { - this.listenPort = Integer.parseInt(value); - } else { - String[] addr = value.split(":"); - this.bindAddress = addr[0]; - this.listenPort = Integer.parseInt(addr[1]); - } - } else if ("multicast".equals(name)) { - if ("off".equalsIgnoreCase(value)) { - this.multicastDisabled = true; - } else { - if (value.indexOf(":") == -1) { - this.multicastAddress = value; - } else { - String[] addr = value.split(":"); - this.multicastAddress = addr[0]; - this.multicastPort = Integer.parseInt(addr[1]); - } - } - } else if ("password".equals(name)) { - this.password = value; - } else if ("remotes".equals(name)) { - String[] ips = value.split(","); - for (String ip : ips) { - if (ip.indexOf(":") == -1) { - remotes.add(ip + ":14820"); - } else { - remotes.add(ip); - } - } - if (paramMap.containsKey("multicast")) { - throw new IllegalArgumentException("Cannot have multicast and remotes (for now)"); - } else { - this.multicastDisabled = true; - } - } - } - } - } - - public String getDomainName() { - return domainName; - } - - public String getBindAddress() { - return bindAddress; - } - - public int getListenPort() { - return listenPort; - } - - public String getPassword() { - return password; - } - - public boolean isMulticastDisabled() { - return multicastDisabled; - } - - public String getMulticastAddress() { - return multicastAddress; - } - - public int getMulticastPort() { - return multicastPort; - } - - public List getRemotes() { - return remotes; - } - - public String toString() { - return uri; - } - -} diff --git a/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java b/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java index e50f0511cf..afdee1484f 100644 --- a/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java +++ b/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java @@ -32,6 +32,7 @@ import org.apache.tuscany.sca.core.LifeCycleListener; import org.apache.tuscany.sca.runtime.BaseEndpointRegistry; import org.apache.tuscany.sca.runtime.EndpointRegistry; import org.apache.tuscany.sca.runtime.RuntimeEndpoint; +import org.apache.tuscany.sca.runtime.TuscanyURI; import com.hazelcast.config.Config; import com.hazelcast.config.TcpIpConfig; @@ -51,7 +52,7 @@ import com.hazelcast.nio.Address; public class HazelcastEndpointRegistry extends BaseEndpointRegistry implements EndpointRegistry, LifeCycleListener, EntryListener, MembershipListener { private final static Logger logger = Logger.getLogger(HazelcastEndpointRegistry.class.getName()); - protected ConfigURI configURI; + protected TuscanyURI configURI; private HazelcastInstance hazelcastInstance; protected Map map; @@ -62,7 +63,7 @@ public class HazelcastEndpointRegistry extends BaseEndpointRegistry implements E String domainRegistryURI, String domainURI) { super(registry, attributes, domainRegistryURI, domainURI); - this.configURI = new ConfigURI(domainRegistryURI); + this.configURI = new TuscanyURI(domainRegistryURI); } public void start() { diff --git a/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/test/java/org/apache/tuscany/sca/endpoint/hazelcast/ConfigURITestCase.java b/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/test/java/org/apache/tuscany/sca/endpoint/hazelcast/ConfigURITestCase.java deleted file mode 100644 index 85821afe39..0000000000 --- a/sca-java-2.x/trunk/modules/endpoint-hazelcast/src/test/java/org/apache/tuscany/sca/endpoint/hazelcast/ConfigURITestCase.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * 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.tuscany.sca.endpoint.hazelcast; - -import java.net.UnknownHostException; - -import junit.framework.Assert; - -import org.junit.Test; - -public class ConfigURITestCase { - - @Test - public void testInvalidPrefix() throws UnknownHostException { - try { - new ConfigURI("foo"); - Assert.fail(); - } catch (IllegalArgumentException e) { - // expected - } - } - - @Test - public void testDomainName() throws UnknownHostException { - ConfigURI configURI = new ConfigURI("tuscany:myDomain"); - Assert.assertEquals("myDomain", configURI.getDomainName()); - Assert.assertFalse(configURI.isMulticastDisabled()); - } - - @Test - public void testListenAddr() throws UnknownHostException { - ConfigURI configURI = new ConfigURI("tuscany:myDomain?listen=4321"); - Assert.assertEquals("myDomain", configURI.getDomainName()); - Assert.assertFalse(configURI.isMulticastDisabled()); - Assert.assertEquals(4321, configURI.getListenPort()); - Assert.assertNull(configURI.getBindAddress()); - } - @Test - public void testListenAddr2() throws UnknownHostException { - ConfigURI configURI = new ConfigURI("tuscany:myDomain?listen=1.1.1.1:4321"); - Assert.assertEquals("myDomain", configURI.getDomainName()); - Assert.assertFalse(configURI.isMulticastDisabled()); - Assert.assertEquals(4321, configURI.getListenPort()); - Assert.assertEquals("1.1.1.1", configURI.getBindAddress()); - } - - @Test - public void testMulticase1() throws UnknownHostException { - ConfigURI configURI = new ConfigURI("tuscany:myDomain?multicast=off"); - Assert.assertEquals("myDomain", configURI.getDomainName()); - Assert.assertTrue(configURI.isMulticastDisabled()); - } - - @Test - public void testMulticase2() throws UnknownHostException { - ConfigURI configURI = new ConfigURI("tuscany:myDomain?multicast=1.2.3.4:67"); - Assert.assertEquals("myDomain", configURI.getDomainName()); - Assert.assertFalse(configURI.isMulticastDisabled()); - Assert.assertEquals("1.2.3.4", configURI.getMulticastAddress()); - Assert.assertEquals(67, configURI.getMulticastPort()); - } - - @Test - public void testMulticase3() throws UnknownHostException { - ConfigURI configURI = new ConfigURI("tuscany:myDomain?multicast=1.2.3.4"); - Assert.assertEquals("myDomain", configURI.getDomainName()); - Assert.assertFalse(configURI.isMulticastDisabled()); - Assert.assertEquals("1.2.3.4", configURI.getMulticastAddress()); - Assert.assertEquals(51482, configURI.getMulticastPort()); - } - - @Test - public void testPassword() { - ConfigURI configURI = new ConfigURI("tuscany:myDomain?password=bla"); - Assert.assertEquals("myDomain", configURI.getDomainName()); - Assert.assertEquals("bla", configURI.getPassword()); - } - - @Test - public void testRemotes() throws UnknownHostException { - ConfigURI configURI = new ConfigURI("tuscany:myDomain?remotes=1.1.1.1:23,2.2.2.2"); - Assert.assertEquals("myDomain", configURI.getDomainName()); - Assert.assertTrue(configURI.isMulticastDisabled()); - Assert.assertEquals(2, configURI.getRemotes().size()); - Assert.assertEquals("1.1.1.1:23", configURI.getRemotes().get(0)); - Assert.assertEquals("2.2.2.2:14820", configURI.getRemotes().get(1)); - } - -} -- cgit v1.2.3