summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/endpoint-hazelcast/src
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2010-01-29 14:08:43 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2010-01-29 14:08:43 +0000
commitc057c51d8c40a264493c0cbc687fb805b169de2f (patch)
tree0dc299d85c568417a7e0ab811b083b69f4d034f3 /sca-java-2.x/trunk/modules/endpoint-hazelcast/src
parent34ca7df798da5031aa91b0d04039983cb077ba42 (diff)
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
Diffstat (limited to 'sca-java-2.x/trunk/modules/endpoint-hazelcast/src')
-rw-r--r--sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/ConfigURI.java168
-rw-r--r--sca-java-2.x/trunk/modules/endpoint-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java5
-rw-r--r--sca-java-2.x/trunk/modules/endpoint-hazelcast/src/test/java/org/apache/tuscany/sca/endpoint/hazelcast/ConfigURITestCase.java106
3 files changed, 3 insertions, 276 deletions
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<String> remotes = new ArrayList<String>();
- 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<String, String> paramMap = new HashMap<String, String>();
- 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<String> 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<String, Endpoint>, MembershipListener {
private final static Logger logger = Logger.getLogger(HazelcastEndpointRegistry.class.getName());
- protected ConfigURI configURI;
+ protected TuscanyURI configURI;
private HazelcastInstance hazelcastInstance;
protected Map<Object, Object> 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));
- }
-
-}