Author: lresende
Date: Fri Oct 10 11:03:53 2008
New Revision: 703540

URL: http://svn.apache.org/viewvc?rev=703540&view=rev
Log:
TUSCANY-2634 - Applying RAM's patch to make implementation.spring aware of 
policies.

Modified:
    
tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java
    
tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProcessor.java
    
tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProvider.java
    
tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProviderFactory.java

Modified: 
tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java?rev=703540&r1=703539&r2=703540&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java
 (original)
+++ 
tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementation.java
 Fri Oct 10 11:03:53 2008
@@ -29,6 +29,7 @@
 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 @@
     // 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 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;
+    }
 }

Modified: 
tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProcessor.java?rev=703540&r1=703539&r2=703540&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProcessor.java
 (original)
+++ 
tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProcessor.java
 Fri Oct 10 11:03:53 2008
@@ -134,6 +134,9 @@
                error("LocationAttributeMissing", reader);
             //throw new ContributionReadException(MSG_LOCATION_MISSING);
         }
+        
+        // Read policies
+        policyProcessor.readPolicies(springImplementation, reader);
 
         // Skip to end element
         while (reader.hasNext()) {

Modified: 
tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProvider.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProvider.java?rev=703540&r1=703539&r2=703540&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProvider.java
 (original)
+++ 
tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProvider.java
 Fri Oct 10 11:03:53 2008
@@ -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 @@
     
     // 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 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());

Modified: 
tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProviderFactory.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProviderFactory.java?rev=703540&r1=703539&r2=703540&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProviderFactory.java
 (original)
+++ 
tuscany/java/sca/modules/implementation-spring/src/main/java/org/apache/tuscany/sca/implementation/spring/SpringImplementationProviderFactory.java
 Fri Oct 10 11:03:53 2008
@@ -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.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 @@
 
     private ProxyFactory proxyFactory;
     private JavaPropertyValueObjectFactory propertyFactory;
+    private List<PolicyHandlerTuple> policyHandlerClassNames = null;
 
     /**
      * Simple constructor
@@ -55,6 +60,8 @@
         TransformerExtensionPoint transformers = 
extensionPoints.getExtensionPoint(TransformerExtensionPoint.class);
         MediatorImpl mediator = new MediatorImpl(dataBindings, transformers);
         propertyFactory = new JavaPropertyValueObjectFactory(mediator);
+        
+        policyHandlerClassNames = 
PolicyHandlerDefinitionsLoader.loadPolicyHandlerClassnames();
     }
 
     /**
@@ -66,7 +73,11 @@
      */
     public ImplementationProvider 
createImplementationProvider(RuntimeComponent component,
                                                                
SpringImplementation implementation) {
-        return new SpringImplementationProvider(component, implementation, 
proxyFactory, propertyFactory);
+        return new SpringImplementationProvider(component, 
+                                                implementation, 
+                                                proxyFactory, 
+                                                propertyFactory, 
+                                                policyHandlerClassNames);
     }
 
     /**


Reply via email to