From 2ebbe9308bb2913933dacff85865214627a6abb0 Mon Sep 17 00:00:00 2001 From: lresende Date: Fri, 10 Oct 2008 18:03:53 +0000 Subject: TUSCANY-2634 - Applying RAM's patch to make implementation.spring aware of policies. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@703540 13f79535-47bb-0310-9956-ffa450edef68 --- .../sca/implementation/spring/SpringImplementation.java | 12 +++++++++++- .../spring/SpringImplementationProcessor.java | 3 +++ .../implementation/spring/SpringImplementationProvider.java | 11 ++++++++++- .../spring/SpringImplementationProviderFactory.java | 13 ++++++++++++- 4 files changed, 36 insertions(+), 3 deletions(-) (limited to 'java/sca/modules') diff --git a/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java b/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java index 56af997fae..ac3ab74f73 100644 --- a/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java +++ b/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java @@ -29,6 +29,7 @@ import org.apache.tuscany.sca.assembly.Reference; import org.apache.tuscany.sca.assembly.Service; import org.apache.tuscany.sca.assembly.impl.ImplementationImpl; import org.apache.tuscany.sca.implementation.spring.xml.SpringBeanElement; +import org.apache.tuscany.sca.policy.util.PolicyHandlerTuple; import org.springframework.core.io.Resource; /** @@ -46,7 +47,8 @@ public class SpringImplementation extends ImplementationImpl implements Implemen // Mapping of Services to Beans private Hashtable serviceMap; // Mapping of property names to Java class - private Hashtable propertyMap; + private Hashtable propertyMap; + private List policyHandlerClassNames = null; protected SpringImplementation() { this.location = null; @@ -146,4 +148,12 @@ public class SpringImplementation extends ImplementationImpl implements Implemen public Class getPropertyClass(String propertyName) { return propertyMap.get(propertyName); } // end method getPropertyClass + + public List getPolicyHandlerClassNames() { + return policyHandlerClassNames; + } + + public void setPolicyHandlerClassNames(List policyHandlerClassNames) { + this.policyHandlerClassNames = policyHandlerClassNames; + } } diff --git a/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProcessor.java b/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProcessor.java index c886c0390c..546006e504 100644 --- a/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProcessor.java +++ b/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProcessor.java @@ -134,6 +134,9 @@ public class SpringImplementationProcessor implements StAXArtifactProcessor policyHandlerClassNames) { super(); + this.implementation = implementation; this.component = component; + this.implementation.setPolicyHandlerClassNames(policyHandlerClassNames); + SCAParentApplicationContext scaParentContext = new SCAParentApplicationContext(component, implementation, proxyService, propertyValueObjectFactory); springContext = new SCAApplicationContext(scaParentContext, implementation.getResource()); diff --git a/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProviderFactory.java b/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProviderFactory.java index f2bb1fd6e8..1789b5a4e0 100644 --- a/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProviderFactory.java +++ b/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProviderFactory.java @@ -18,6 +18,8 @@ */ package org.apache.tuscany.sca.implementation.spring; +import java.util.List; + import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.core.invocation.ExtensibleProxyFactory; import org.apache.tuscany.sca.core.invocation.ProxyFactory; @@ -26,6 +28,8 @@ import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint; import org.apache.tuscany.sca.databinding.TransformerExtensionPoint; import org.apache.tuscany.sca.databinding.impl.MediatorImpl; import org.apache.tuscany.sca.implementation.java.injection.JavaPropertyValueObjectFactory; +import org.apache.tuscany.sca.policy.util.PolicyHandlerDefinitionsLoader; +import org.apache.tuscany.sca.policy.util.PolicyHandlerTuple; import org.apache.tuscany.sca.provider.ImplementationProvider; import org.apache.tuscany.sca.provider.ImplementationProviderFactory; import org.apache.tuscany.sca.runtime.RuntimeComponent; @@ -39,6 +43,7 @@ public class SpringImplementationProviderFactory implements ImplementationProvid private ProxyFactory proxyFactory; private JavaPropertyValueObjectFactory propertyFactory; + private List policyHandlerClassNames = null; /** * Simple constructor @@ -55,6 +60,8 @@ public class SpringImplementationProviderFactory implements ImplementationProvid TransformerExtensionPoint transformers = extensionPoints.getExtensionPoint(TransformerExtensionPoint.class); MediatorImpl mediator = new MediatorImpl(dataBindings, transformers); propertyFactory = new JavaPropertyValueObjectFactory(mediator); + + policyHandlerClassNames = PolicyHandlerDefinitionsLoader.loadPolicyHandlerClassnames(); } /** @@ -66,7 +73,11 @@ public class SpringImplementationProviderFactory implements ImplementationProvid */ public ImplementationProvider createImplementationProvider(RuntimeComponent component, SpringImplementation implementation) { - return new SpringImplementationProvider(component, implementation, proxyFactory, propertyFactory); + return new SpringImplementationProvider(component, + implementation, + proxyFactory, + propertyFactory, + policyHandlerClassNames); } /** -- cgit v1.2.3