diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-02-20 20:10:37 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-02-20 20:10:37 +0000 |
commit | 3a8a64103bcc4891fb1a1f4cc4538f9d5b62a7ba (patch) | |
tree | ccd8919c277ad88c032acb3167fdd4645586cb07 /java/sca/modules/core-spi | |
parent | 7b9fa54dced70baffa6578b0be902b06092584a7 (diff) |
Start to implement the SCA policy framework 1.1 spec draft from OASIS OpenCSA
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@746356 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/core-spi')
4 files changed, 10 insertions, 9 deletions
diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/endpointresolver/DefaultEndpointResolverFactoryExtensionPoint.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/endpointresolver/DefaultEndpointResolverFactoryExtensionPoint.java index 2aea4baa67..b2d0639a16 100644 --- a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/endpointresolver/DefaultEndpointResolverFactoryExtensionPoint.java +++ b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/endpointresolver/DefaultEndpointResolverFactoryExtensionPoint.java @@ -92,7 +92,7 @@ public class DefaultEndpointResolverFactoryExtensionPoint implements EndpointRes * Load provider factories declared under META-INF/services. * @param registry */ - private void loadProviderFactories() { + private synchronized void loadProviderFactories() { if (loaded) return; diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultDefinitionsProviderExtensionPoint.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultDefinitionsProviderExtensionPoint.java index 47757bee24..fc1c2ed5af 100644 --- a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultDefinitionsProviderExtensionPoint.java +++ b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultDefinitionsProviderExtensionPoint.java @@ -38,6 +38,7 @@ public class DefaultDefinitionsProviderExtensionPoint implements private ExtensionPointRegistry extensionPointRegistry = null; + private boolean loaded; private List<DefinitionsProvider> scaDefnsProviders = new ArrayList<DefinitionsProvider>(); public DefaultDefinitionsProviderExtensionPoint(ExtensionPointRegistry extnPtReg) { @@ -53,13 +54,14 @@ public class DefaultDefinitionsProviderExtensionPoint implements } public List<DefinitionsProvider> getDefinitionsProviders() { - if (scaDefnsProviders.isEmpty()) { - loadProviders(); - } + loadProviders(); return scaDefnsProviders; } - private void loadProviders() { + private synchronized void loadProviders() { + if(loaded) { + return; + } // Get the provider service declarations Set<ServiceDeclaration> defnProviderDecls; DefinitionsProvider aProvider = null; @@ -86,6 +88,6 @@ public class DefaultDefinitionsProviderExtensionPoint implements } catch (Exception e) { throw new RuntimeException(e); } - + loaded = true; } } diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java index 5e17737d58..518927939f 100644 --- a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java +++ b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java @@ -106,7 +106,7 @@ public class DefaultProviderFactoryExtensionPoint implements ProviderFactoryExte * Load provider factories declared under META-INF/services. * @param registry */ - private void loadProviderFactories() { + private synchronized void loadProviderFactories() { if (loaded) return; diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProviderFactory.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProviderFactory.java index b60a14d2da..d9ac4d16b0 100644 --- a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProviderFactory.java +++ b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProviderFactory.java @@ -21,7 +21,6 @@ package org.apache.tuscany.sca.provider; import org.apache.tuscany.sca.assembly.Binding; import org.apache.tuscany.sca.assembly.Implementation; -import org.apache.tuscany.sca.policy.Policy; import org.apache.tuscany.sca.runtime.RuntimeComponent; import org.apache.tuscany.sca.runtime.RuntimeComponentReference; import org.apache.tuscany.sca.runtime.RuntimeComponentService; @@ -29,7 +28,7 @@ import org.apache.tuscany.sca.runtime.RuntimeComponentService; /** * @version $Rev$ $Date$ */ -public interface PolicyProviderFactory<M extends Policy> extends ProviderFactory<M> { +public interface PolicyProviderFactory<M> extends ProviderFactory<M> { /** * Create policy provider for a given reference binding * @param component |