From 24d5ed992bbe513b399971810784ea5838fbba20 Mon Sep 17 00:00:00 2001 From: rfeng Date: Thu, 11 Feb 2010 23:23:04 +0000 Subject: Add a mapping for domainURI and registryURI git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@909172 13f79535-47bb-0310-9956-ffa450edef68 --- ...DefaultDomainRegistryFactoryExtensionPoint.java | 10 +++++++++- .../DomainRegistryFactoryExtensionPoint.java | 7 +++++++ .../runtime/ExtensibleDomainRegistryFactory.java | 22 +++++++++++++++++++--- 3 files changed, 35 insertions(+), 4 deletions(-) (limited to 'sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime') diff --git a/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DefaultDomainRegistryFactoryExtensionPoint.java b/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DefaultDomainRegistryFactoryExtensionPoint.java index 600ebb7bce..bd59103d59 100644 --- a/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DefaultDomainRegistryFactoryExtensionPoint.java +++ b/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DefaultDomainRegistryFactoryExtensionPoint.java @@ -21,7 +21,9 @@ package org.apache.tuscany.sca.runtime; import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.core.LifeCycleListener; @@ -30,13 +32,14 @@ import org.apache.tuscany.sca.extensibility.ServiceHelper; import org.oasisopen.sca.ServiceRuntimeException; /** - * + * Default implementation of DomainRegistryFactoryExtensionPoint */ public class DefaultDomainRegistryFactoryExtensionPoint implements DomainRegistryFactoryExtensionPoint, LifeCycleListener { private ExtensionPointRegistry registry; private boolean loaded; private List factories = new ArrayList(); + private Map domainRegistryMapping = new HashMap(); /** * @param registry @@ -82,10 +85,15 @@ public class DefaultDomainRegistryFactoryExtensionPoint implements DomainRegistr } public void start() { + // Empty } public void stop() { ServiceHelper.stop(factories); } + public Map getDomainRegistryMapping() { + return domainRegistryMapping; + } + } diff --git a/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DomainRegistryFactoryExtensionPoint.java b/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DomainRegistryFactoryExtensionPoint.java index a373402db4..f1582c3d70 100644 --- a/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DomainRegistryFactoryExtensionPoint.java +++ b/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/DomainRegistryFactoryExtensionPoint.java @@ -20,11 +20,18 @@ package org.apache.tuscany.sca.runtime; import java.util.List; +import java.util.Map; /** * Extension point for DomainRegistryFactory */ public interface DomainRegistryFactoryExtensionPoint { + /** + * Return a mapping between domain URI and domain registry URI + * @return A mutable map + */ + Map getDomainRegistryMapping(); + /** * Add a DomainRegistryFactory * @param factory 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 supportedSchemes = new HashSet(); + 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; } } -- cgit v1.2.3