summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/ExtensibleDomainRegistryFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/ExtensibleDomainRegistryFactory.java')
-rw-r--r--sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/ExtensibleDomainRegistryFactory.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/ExtensibleDomainRegistryFactory.java b/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/ExtensibleDomainRegistryFactory.java
index 64af944c9f..ddb4279a4e 100644
--- a/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/ExtensibleDomainRegistryFactory.java
+++ b/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/ExtensibleDomainRegistryFactory.java
@@ -72,6 +72,9 @@ public class ExtensibleDomainRegistryFactory implements DomainRegistryFactory {
}
public DomainRegistry getEndpointRegistry(String endpointRegistryURI, String domainURI) {
+ if (domainURI == null) {
+ domainURI = getDomainName(endpointRegistryURI);
+ }
if (endpointRegistryURI == null) {
endpointRegistryURI = factories.getDomainRegistryMapping().get(domainURI);
if (endpointRegistryURI == null) {
@@ -130,4 +133,24 @@ public class ExtensibleDomainRegistryFactory implements DomainRegistryFactory {
return allSchemes;
}
+ /**
+ * Derive a domain name from a domain URI
+ * Examples:
+ * Domain URI - Domain Name
+ * default default
+ * foo foo
+ * uri:foo foo
+ * uri://foo?key=x&key2=y foo
+ * uri://foo/bar foo/bar
+ */
+ private static String getDomainName(String domainURI) {
+ int scheme = domainURI.indexOf(':');
+ int qm = domainURI.indexOf('?');
+ if (qm == -1) {
+ return domainURI.substring(scheme+1);
+ } else {
+ return domainURI.substring(scheme+1, qm);
+ }
+ }
+
}