You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2010/07/24 08:47:24 UTC

svn commit: r978814 - in /tuscany/sca-java-2.x/branches/2.0-Beta1: ./ modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/

Author: antelder
Date: Sat Jul 24 06:47:24 2010
New Revision: 978814

URL: http://svn.apache.org/viewvc?rev=978814&view=rev
Log:
Merge r966706,966708,966983 from trunk to beta1 branch for policy intent and policyset updates

Modified:
    tuscany/sca-java-2.x/branches/2.0-Beta1/   (props changed)
    tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
    tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java
    tuscany/sca-java-2.x/branches/2.0-Beta1/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java

Propchange: tuscany/sca-java-2.x/branches/2.0-Beta1/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Jul 24 06:47:24 2010
@@ -1 +1 @@
-/tuscany/sca-java-2.x/trunk:966568,966629,966650-966658,966714
+/tuscany/sca-java-2.x/trunk:966568,966629,966650-966658,966706,966708,966714,966983

Modified: tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java?rev=978814&r1=978813&r2=978814&view=diff
==============================================================================
--- tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java (original)
+++ tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java Sat Jul 24 06:47:24 2010
@@ -1098,8 +1098,17 @@ public class CompositeProcessor extends 
                     //now resolve the implementation so that even if there is a shared instance
                     //for this that is resolved, the specified intents and policysets are safe in the
                     //component and not lost
+                	List<Intent> intents = implementation.getRequiredIntents();
+                	List<PolicySet> policySets = implementation.getPolicySets();
+                	
+                	
                     implementation = resolveImplementation(implementation, resolver, context);
 
+                    implementation.getPolicySets().clear();
+                    implementation.getPolicySets().addAll(policySets);
+                    implementation.getRequiredIntents().clear();
+                    implementation.getRequiredIntents().addAll(intents);
+                    
                     component.setImplementation(implementation);
                 }
 

Modified: tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java?rev=978814&r1=978813&r2=978814&view=diff
==============================================================================
--- tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java (original)
+++ tuscany/sca-java-2.x/branches/2.0-Beta1/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/Constants.java Sat Jul 24 06:47:24 2010
@@ -145,7 +145,30 @@ public interface Constants {
     String AUTHORIZATION_FINE_GRAIN = "authorization.fineGrain";
     QName AUTHORIZATION_FINE_GRAIN_INTENT = new QName(SCA11_NS, AUTHORIZATION_FINE_GRAIN);  
     
-    // TODO - add transaction intent constants
+    String MANAGED_TRANSACTION = "managedTransaction";
+    QName MANAGED_TRANSACTION_INTENT = new QName(SCA11_NS, MANAGED_TRANSACTION);
+    
+    String NO_MANAGED_TRANSACTION = "noManagedTransaction";
+    QName NO_MANAGED_TRANSACTION_INTENT = new QName(SCA11_NS, NO_MANAGED_TRANSACTION);
+    
+    String MANAGED_TRANSACTION_LOCAL = "managedTransaction.local";
+    QName MANAGED_TRANSACTION_LOCAL_INTENT = new QName(SCA11_NS, MANAGED_TRANSACTION_LOCAL);
+    
+    String MANAGED_TRANSACTION_GLOBAL = "managedTransaction.global";
+    QName MANAGED_TRANSACTION_GLOBAL_INTENT = new QName(SCA11_NS, MANAGED_TRANSACTION_GLOBAL);
+    
+    String PROPAGATES_TRANSACTION = "propagatesTransaction";
+    QName PROPAGATES_TRANSACTION_INTENT = new QName(SCA11_NS, PROPAGATES_TRANSACTION);
+    
+    String SUSPENDS_TRANSACTION = "suspendsTransaction";
+    QName SUSPENDS_TRANSACTION_INTENT = new QName(SCA11_NS, SUSPENDS_TRANSACTION);
+    
+    String TRANSACTED_ONE_WAY = "transactedOneWay";
+    QName TRANSACTED_ONE_WAY_INTENT = new QName(SCA11_NS, TRANSACTED_ONE_WAY);
+    
+    String IMMEDIATE_ONE_WAY = "immediateOneWay";
+    QName IMMEDIATE_ONE_WAY_INTENT = new QName(SCA11_NS, IMMEDIATE_ONE_WAY);
+    
     String NOLISTENER = "noListener";
     QName NOLISTENER_INTENT = new QName(SCA11_NS, NOLISTENER);
     

Modified: tuscany/sca-java-2.x/branches/2.0-Beta1/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/branches/2.0-Beta1/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java?rev=978814&r1=978813&r2=978814&view=diff
==============================================================================
--- tuscany/sca-java-2.x/branches/2.0-Beta1/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java (original)
+++ tuscany/sca-java-2.x/branches/2.0-Beta1/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/impl/EndpointReferenceBinderImpl.java Sat Jul 24 06:47:24 2010
@@ -49,6 +49,7 @@ import org.apache.tuscany.sca.interfaced
 import org.apache.tuscany.sca.monitor.Monitor;
 import org.apache.tuscany.sca.monitor.MonitorFactory;
 import org.apache.tuscany.sca.policy.BindingType;
+import org.apache.tuscany.sca.policy.ExtensionType;
 import org.apache.tuscany.sca.policy.Intent;
 import org.apache.tuscany.sca.policy.IntentMap;
 import org.apache.tuscany.sca.policy.PolicySet;
@@ -559,8 +560,8 @@ public class EndpointReferenceBinderImpl
         // this they must be satisfied by reference policy sets
         // Failing this the intent is unresolved and the reference and 
         // service don't match
-        List<Intent> eprIntents = new ArrayList<Intent>();
-        eprIntents.addAll(endpointReference.getRequiredIntents());
+        
+      
         
         // TODO - seems that we should do this loop on a binding by binding basis
         //        rather than each time we do matching
@@ -573,6 +574,13 @@ public class EndpointReferenceBinderImpl
             }
         }
         
+        // Before we start examining intents, remove any whose constrained
+        // types don't include the binding type
+        removeConstrainedIntents(endpointReference, bindingType);
+        
+        List<Intent> eprIntents = new ArrayList<Intent>();
+        eprIntents.addAll(endpointReference.getRequiredIntents());
+        
         // first check the binding type
         for (Intent intent : endpointReference.getRequiredIntents()){ 
             if (bindingType != null && 
@@ -703,7 +711,33 @@ public class EndpointReferenceBinderImpl
         return match;
     }
     
-    protected boolean isQualifiedBy(Intent qualifiableIntent, Intent qualifiedIntent){
+    // Copied from ComponentPolicyBuilder, should probably be refactored
+    protected void removeConstrainedIntents(EndpointReference subject, BindingType bindingType) {
+        List<Intent> intents = subject.getRequiredIntents();
+        
+        // Remove the intents whose @contrains do not include the current element       
+        if(bindingType != null){
+            List<Intent> copy = new ArrayList<Intent>(intents);
+            for (Intent i : copy) {
+                if (i.getConstrainedTypes().size() > 0){
+                    boolean constraintFound = false;
+                    for (ExtensionType constrainedType : i.getConstrainedTypes()){
+                        if (constrainedType.getType().equals(bindingType.getType()) ||
+                            constrainedType.getType().equals(bindingType.getBaseType())){
+                            constraintFound = true;
+                            break;
+                        }
+                    }
+                    if(!constraintFound){
+                        intents.remove(i);
+                    }
+                }
+            }
+        }
+    }
+  
+
+	protected boolean isQualifiedBy(Intent qualifiableIntent, Intent qualifiedIntent){
         if (qualifiedIntent.getQualifiableIntent() == qualifiableIntent){
             return true;
         } else {