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:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2010-02-11 23:23:04 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2010-02-11 23:23:04 +0000
commit24d5ed992bbe513b399971810784ea5838fbba20 (patch)
tree49d0dc373e872f99c0709faf88fae4779543af6d /sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/ExtensibleDomainRegistryFactory.java
parente7913912d681349431b94e2239a225c7731bd68f (diff)
Add a mapping for domainURI and registryURI
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@909172 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r--sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/ExtensibleDomainRegistryFactory.java22
1 files changed, 19 insertions, 3 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 91d223bdaf..aa242f76c8 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
@@ -23,7 +23,9 @@ import java.net.URI;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.core.UtilityExtensionPoint;
@@ -34,6 +36,7 @@ import org.oasisopen.sca.ServiceRuntimeException;
*/
public class ExtensibleDomainRegistryFactory implements DomainRegistryFactory {
private final DomainRegistryFactoryExtensionPoint factories;
+ private String[] allSchemes;
public ExtensibleDomainRegistryFactory(ExtensionPointRegistry registry) {
this.factories = registry.getExtensionPoint(DomainRegistryFactoryExtensionPoint.class);
@@ -64,7 +67,10 @@ public class ExtensibleDomainRegistryFactory implements DomainRegistryFactory {
public EndpointRegistry getEndpointRegistry(String endpointRegistryURI, String domainURI) {
if (endpointRegistryURI == null) {
- endpointRegistryURI = domainURI;
+ endpointRegistryURI = factories.getDomainRegistryMapping().get(domainURI);
+ if (endpointRegistryURI == null) {
+ endpointRegistryURI = domainURI;
+ }
}
URI uri = URI.create(endpointRegistryURI);
@@ -105,8 +111,18 @@ public class ExtensibleDomainRegistryFactory implements DomainRegistryFactory {
}
}
- public String[] getSupportedSchemes() {
- return null;
+ public synchronized String[] getSupportedSchemes() {
+ if (allSchemes == null) {
+ Set<String> supportedSchemes = new HashSet<String>();
+ for (DomainRegistryFactory factory : factories.getDomainRegistryFactories()) {
+ String[] schemes = factory.getSupportedSchemes();
+ if (schemes != null) {
+ supportedSchemes.addAll(Arrays.asList(schemes));
+ }
+ }
+ allSchemes = supportedSchemes.toArray(new String[supportedSchemes.size()]);
+ }
+ return allSchemes;
}
}