summaryrefslogtreecommitdiffstats
path: root/java/sca/modules
diff options
context:
space:
mode:
authorlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2008-10-10 18:03:53 +0000
committerlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2008-10-10 18:03:53 +0000
commit2ebbe9308bb2913933dacff85865214627a6abb0 (patch)
treed442298eaffbe5c2e94ea08e166765fe3306fd54 /java/sca/modules
parente822f411bb629c30b37f042e8db1f2e2430f9d4f (diff)
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
Diffstat (limited to 'java/sca/modules')
-rw-r--r--java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java12
-rw-r--r--java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProcessor.java3
-rw-r--r--java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProvider.java11
-rw-r--r--java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProviderFactory.java13
4 files changed, 36 insertions, 3 deletions
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<String, SpringBeanElement> serviceMap;
// Mapping of property names to Java class
- private Hashtable<String, Class> propertyMap;
+ private Hashtable<String, Class> propertyMap;
+ private List<PolicyHandlerTuple> 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<PolicyHandlerTuple> getPolicyHandlerClassNames() {
+ return policyHandlerClassNames;
+ }
+
+ public void setPolicyHandlerClassNames(List<PolicyHandlerTuple> 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<Spri
error("LocationAttributeMissing", reader);
//throw new ContributionReadException(MSG_LOCATION_MISSING);
}
+
+ // Read policies
+ policyProcessor.readPolicies(springImplementation, reader);
// Skip to end element
while (reader.hasNext()) {
diff --git a/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProvider.java b/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProvider.java
index d7724f1723..537a2c9a11 100644
--- a/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProvider.java
+++ b/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProvider.java
@@ -19,10 +19,13 @@
package org.apache.tuscany.sca.implementation.spring;
+import java.util.List;
+
import org.apache.tuscany.sca.core.invocation.ProxyFactory;
import org.apache.tuscany.sca.implementation.java.injection.JavaPropertyValueObjectFactory;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.invocation.Invoker;
+import org.apache.tuscany.sca.policy.util.PolicyHandlerTuple;
import org.apache.tuscany.sca.provider.ImplementationProvider;
import org.apache.tuscany.sca.runtime.RuntimeComponent;
import org.apache.tuscany.sca.runtime.RuntimeComponentService;
@@ -38,6 +41,8 @@ public class SpringImplementationProvider implements ImplementationProvider {
// A Spring application context object
private AbstractApplicationContext springContext;
+
+ private SpringImplementation implementation;
/**
* Constructor for the provider - takes a component definition and a Spring implementation
@@ -48,9 +53,13 @@ public class SpringImplementationProvider implements ImplementationProvider {
public SpringImplementationProvider(RuntimeComponent component,
SpringImplementation implementation,
ProxyFactory proxyService,
- JavaPropertyValueObjectFactory propertyValueObjectFactory) {
+ JavaPropertyValueObjectFactory propertyValueObjectFactory,
+ List<PolicyHandlerTuple> 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<PolicyHandlerTuple> 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);
}
/**