From 00963d0eba44bbdbcc7a36a1b4d97ee1befd1d57 Mon Sep 17 00:00:00 2001 From: antelder Date: Thu, 20 Jan 2011 23:42:12 +0000 Subject: Partially fix TUSCANY-3675 to get some distributed domain functions working again git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1061571 13f79535-47bb-0310-9956-ffa450edef68 --- .../hazelcast/HazelcastDomainRegistryFactory.java | 2 +- .../hazelcast/HazelcastEndpointRegistry.java | 6 ++-- .../sca/endpoint/hazelcast/RegistryConfig.java | 40 ++++++++++++++++++++++ 3 files changed, 44 insertions(+), 4 deletions(-) (limited to 'sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany') diff --git a/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastDomainRegistryFactory.java b/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastDomainRegistryFactory.java index 87c60e4b38..291553705b 100644 --- a/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastDomainRegistryFactory.java +++ b/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastDomainRegistryFactory.java @@ -40,7 +40,7 @@ public class HazelcastDomainRegistryFactory extends BaseDomainRegistryFactory { protected EndpointRegistry createEndpointRegistry(String endpointRegistryURI, String domainURI) { Properties properties = registry.getExtensionPoint(UtilityExtensionPoint.class).getUtility(RuntimeProperties.class).getProperties(); - return new HazelcastEndpointRegistry(registry, properties, domainURI); + return new HazelcastEndpointRegistry(registry, properties, endpointRegistryURI, domainURI); } public String[] getSupportedSchemes() { diff --git a/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java b/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java index 004aa81816..aa97ff3a1b 100644 --- a/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java +++ b/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/HazelcastEndpointRegistry.java @@ -72,8 +72,8 @@ public class HazelcastEndpointRegistry extends BaseEndpointRegistry implements E protected Object shutdownMutex = new Object(); protected Properties properties; - public HazelcastEndpointRegistry(ExtensionPointRegistry registry, Properties properties, String domainURI) { - super(registry, null, null, domainURI); + public HazelcastEndpointRegistry(ExtensionPointRegistry registry, Properties properties, String endpointRegistryURI, String domainURI) { + super(registry, null, endpointRegistryURI, domainURI); this.assemblyFactory = registry.getExtensionPoint(FactoryExtensionPoint.class).getFactory(AssemblyFactory.class); this.properties = properties; } @@ -157,7 +157,7 @@ public class HazelcastEndpointRegistry extends BaseEndpointRegistry implements E // TUSCANY-3675 - domainRegistryURI properties don't seem to be copied into the // properties collection anywhere config = new XmlConfigBuilder().build(); - RegistryConfig rc = new RegistryConfig(properties); + RegistryConfig rc = RegistryConfig.parseConfigURI(domainRegistryURI); config.setPort(rc.getBindPort()); //config.setPortAutoIncrement(false); diff --git a/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/RegistryConfig.java b/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/RegistryConfig.java index bd44e69867..4bf3d6c73a 100644 --- a/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/RegistryConfig.java +++ b/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/RegistryConfig.java @@ -20,7 +20,9 @@ package org.apache.tuscany.sca.endpoint.hazelcast; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Properties; @@ -134,4 +136,42 @@ public class RegistryConfig { public String getPassword() { return password; } + + /** + * Parse the config string into a Properties object. + * The config URI has the following format: + * uri:?name=value&... + */ + public static RegistryConfig parseConfigURI(String configURI) { + Properties properties = new Properties(); + int c = configURI.indexOf(':'); + if (c > -1) { + configURI = configURI.substring(c+1); + } + int qm = configURI.indexOf('?'); + if (qm < 0) { + properties.setProperty("defaultDomainName", configURI); + } else { + if (qm == 0) { + properties.setProperty("defaultDomainName", "default"); + } else { + properties.setProperty("defaultDomainName", configURI.substring(0, qm)); + } + if (configURI.length() > qm+1) { + Map params = new HashMap(); + for (String param : configURI.substring(qm+1).split("&")) { + String[] px = param.split("="); + if (px.length == 2) { + params.put(px[0], px[1]); + } else { + params.put(px[0], ""); + } + } + for (String name : params.keySet()) { + properties.setProperty(name, params.get(name)); + } + } + } + return new RegistryConfig(properties); + } } -- cgit v1.2.3