You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sv...@apache.org on 2008/03/12 13:10:04 UTC

svn commit: r636290 - in /incubator/tuscany/java/sca/modules: assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ implementation-java-xml/src/test/java/org/apache/tuscany/...

Author: svkrish
Date: Wed Mar 12 05:09:58 2008
New Revision: 636290

URL: http://svn.apache.org/viewvc?rev=636290&view=rev
Log:
cleaning up policy computation and fixing holes in policy inheritance in operations

Modified:
    incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java
    incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BindingPolicyComputer.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeWireBuilderImpl.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ImplementationPolicyComputer.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/PolicyComputer.java
    incubator/tuscany/java/sca/modules/implementation-java-xml/src/test/java/org/apache/tuscany/sca/implementation/java/xml/ReadTestCase.java
    incubator/tuscany/java/sca/modules/implementation-java-xml/src/test/resources/org/apache/tuscany/sca/implementation/java/xml/definitions.xml
    incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyValidationUtils.java

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java?rev=636290&r1=636289&r2=636290&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/BaseAssemblyProcessor.java Wed Mar 12 05:09:58 2008
@@ -254,8 +254,7 @@
                             PolicyValidationUtils.validateIntents(policiedImpl, policiedImpl.getType());
                             
                             resolvePolicySets(policiedImpl.getPolicySets(), resolver);
-                            PolicyValidationUtils.validatePolicySets(policiedImpl, 
-                                                                     policiedImpl.getApplicablePolicySets());
+                            PolicyValidationUtils.validatePolicySets(policiedImpl);
                             
                             if ( implementation instanceof OperationsConfigurator ) {
                                 OperationsConfigurator opsConfigurator = (OperationsConfigurator)implementation;
@@ -264,7 +263,9 @@
                                     PolicyValidationUtils.validateIntents(implOp, policiedImpl.getType());
                                     
                                     resolvePolicySets(implOp.getPolicySets(), resolver);
-                                    PolicyValidationUtils.validatePolicySets(implOp, policiedImpl.getApplicablePolicySets());
+                                    PolicyValidationUtils.validatePolicySets(implOp, 
+                                                                             policiedImpl.getType(),
+                                                                             policiedImpl.getApplicablePolicySets());
                                 }
                             }
                             
@@ -389,7 +390,7 @@
                             //applies to the binding as well
                             addInheritedPolicySets(((PolicySetAttachPoint)binding).getApplicablePolicySets(), 
                                                    confOp.getApplicablePolicySets());
-                            PolicyValidationUtils.validatePolicySets(confOp);
+                            PolicyValidationUtils.validatePolicySets(confOp, ((PolicySetAttachPoint)binding).getType());
                             
                             addInheritedIntents(((PolicySetAttachPoint)binding).getRequiredIntents(), 
                                                 confOp.getRequiredIntents());
@@ -442,7 +443,7 @@
                                 //applies to the binding as well
                                 addInheritedPolicySets(((PolicySetAttachPoint)binding).getApplicablePolicySets(), 
                                                        confOp.getApplicablePolicySets());
-                                PolicyValidationUtils.validatePolicySets(confOp);
+                                PolicyValidationUtils.validatePolicySets(confOp, ((PolicySetAttachPoint)binding).getType());
                             }
                         }
                     }

Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java?rev=636290&r1=636289&r2=636290&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java Wed Mar 12 05:09:58 2008
@@ -887,7 +887,7 @@
                     //add the inherited applicablePolicysets
                     addInheritedPolicySets(policiedImpl.getApplicablePolicySets(), implConfOp.getApplicablePolicySets());
                     
-                    PolicyValidationUtils.validatePolicySets(implConfOp);
+                    PolicyValidationUtils.validatePolicySets(implConfOp, policiedImpl.getType());
                     
                     addInheritedIntents(((PolicySetAttachPoint)implementation).getRequiredIntents(), 
                                         implConfOp.getRequiredIntents());

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BindingPolicyComputer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BindingPolicyComputer.java?rev=636290&r1=636289&r2=636290&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BindingPolicyComputer.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BindingPolicyComputer.java Wed Mar 12 05:09:58 2008
@@ -20,6 +20,7 @@
 package org.apache.tuscany.sca.assembly.builder.impl;
 
 import java.util.ArrayList;
+import java.util.Hashtable;
 import java.util.List;
 
 import javax.xml.namespace.QName;
@@ -35,6 +36,7 @@
 import org.apache.tuscany.sca.policy.IntentAttachPointType;
 import org.apache.tuscany.sca.policy.PolicySet;
 import org.apache.tuscany.sca.policy.PolicySetAttachPoint;
+import org.apache.tuscany.sca.policy.util.PolicyComputationUtils;
 import org.apache.tuscany.sca.policy.util.PolicyValidationException;
 
 /**
@@ -47,63 +49,63 @@
     }
     
     public void computeBindingIntentsAndPolicySets(Contract contract)  throws PolicyValidationException {
-        computeIntents(contract.getBindings(), contract.getRequiredIntents());
-        computePolicySets(contract.getApplicablePolicySets(), contract.getBindings(), contract.getPolicySets());
-        
-        /*for ( Binding binding : contract.getBindings() ) {
-            if ( binding instanceof IntentAttachPoint ) {
-                computeIntentsForOperations((IntentAttachPoint)binding);
-            }
-            
-            if ( binding instanceof PolicySetAttachPoint ) {
-                computePolicySetsForOperations(((PolicySetAttachPoint)binding).getApplicablePolicySets(), 
-                                               (PolicySetAttachPoint)binding);
+        for (Binding binding : contract.getBindings()) {
+            if (binding instanceof PolicySetAttachPoint) {
+                computeIntents((IntentAttachPoint)binding, contract.getRequiredIntents());
+                
+                aggregateAndPruneApplicablePolicySets(contract.getApplicablePolicySets(), 
+                                                      ((PolicySetAttachPoint)binding).getApplicablePolicySets());
+
+                computePolicySets((PolicySetAttachPoint)binding, contract.getPolicySets());
+                
+                if ( binding instanceof OperationsConfigurator && 
+                        contract instanceof OperationsConfigurator ) {
+                    //add or merge service operations to the binding
+                    addInheritedOpConfOnBindings((OperationsConfigurator)contract,
+                                                 (OperationsConfigurator)binding,
+                                                 (PolicySetAttachPoint)binding);
+                
+                    computeIntentsForOperations((IntentAttachPoint)binding);
+                    computePolicySetsForOperations(contract.getApplicablePolicySets(), 
+                                                   (PolicySetAttachPoint)binding);
+                }
             }
-        }*/
+        }
         
         if ( contract.getCallback() != null ) {
-            computeIntents(contract.getCallback().getBindings(), 
-                           contract.getCallback().getRequiredIntents());
-            computePolicySets(contract.getApplicablePolicySets(), 
-                              contract.getCallback().getBindings(), 
-                              contract.getCallback().getPolicySets());
+            for (Binding binding : contract.getCallback().getBindings()) {
+                if (binding instanceof PolicySetAttachPoint) {
+                    computeIntents((IntentAttachPoint)binding, contract.getCallback().getRequiredIntents());
+            
+                    aggregateAndPruneApplicablePolicySets(contract.getApplicablePolicySets(), 
+                                                          ((PolicySetAttachPoint)binding).getApplicablePolicySets());
+
+                    computePolicySets((PolicySetAttachPoint)binding, contract.getCallback().getPolicySets());
+                }
+            }
         }
     }
     
-    private void computeIntents(List<Binding> bindings, List<Intent> inheritedIntents) throws PolicyValidationException {
-        for (Binding binding : bindings) {
-            if (binding instanceof IntentAttachPoint) {
-                IntentAttachPoint policiedBinding = (IntentAttachPoint)binding;
-                //since the parent component could also contain intents that apply to implementation
-                //and binding elements within, we filter out only those that apply to this binding type
-                List<Intent> prunedIntents = computeInheritableIntents(policiedBinding.getType(), 
-                                                                       inheritedIntents);
-                policiedBinding.getRequiredIntents().addAll(prunedIntents);
-                
-                normalizeIntents(policiedBinding);
-                
-                computeIntentsForOperations((IntentAttachPoint)policiedBinding);
-            }
-        }
+    
+    private void computeIntents(IntentAttachPoint policiedBinding, List<Intent> inheritedIntents) 
+                                                                    throws PolicyValidationException {
+            //since the parent component could also contain intents that apply to implementation
+            //and binding elements within, we filter out only those that apply to this binding type
+            List<Intent> prunedIntents = computeInheritableIntents(policiedBinding.getType(), 
+                                                                   inheritedIntents);
+            policiedBinding.getRequiredIntents().addAll(prunedIntents);
+            
+            normalizeIntents(policiedBinding);
     }
     
-    private void computePolicySets(List<PolicySet> applicablePolicySets,
-                                   List<Binding> bindings,
+    
+    private void computePolicySets(PolicySetAttachPoint policiedBinding,
                                    List<PolicySet> inheritedPolicySets) throws PolicyValidationException {
-        for (Binding binding : bindings) {
-            if ( binding instanceof PolicySetAttachPoint ) {
-                PolicySetAttachPoint policiedBinding = (PolicySetAttachPoint)binding;
-                
-                policiedBinding.getApplicablePolicySets().addAll(applicablePolicySets);
-                List<PolicySet> prunedPolicySets = computeInheritablePolicySets(policiedBinding,
-                                                                                inheritedPolicySets,
-                                                                                policiedBinding.getApplicablePolicySets());
-                policiedBinding.getPolicySets().addAll(prunedPolicySets);
-                normalizePolicySets(policiedBinding);
-                computePolicySetsForOperations(applicablePolicySets, policiedBinding);
-
-            }
-        }
+                
+        List<PolicySet> prunedPolicySets = computeInheritablePolicySets(inheritedPolicySets,
+                                                                        policiedBinding.getApplicablePolicySets());
+        policiedBinding.getPolicySets().addAll(prunedPolicySets);
+        normalizePolicySets(policiedBinding);
     }
     
     public void determineApplicableBindingPolicySets(Contract source, Contract target) throws PolicyComputationException {
@@ -207,5 +209,57 @@
                 }
             }
         //}
+    }
+    
+    private void addInheritedOpConfOnBindings(OperationsConfigurator source, 
+                                              OperationsConfigurator target,
+                                              PolicySetAttachPoint attachPoint) throws PolicyValidationException {
+        boolean found = false;
+        
+        List<ConfiguredOperation> additionalOperations = new ArrayList<ConfiguredOperation>();
+        for ( ConfiguredOperation sourceConfOp : source.getConfiguredOperations() ) {
+            for ( ConfiguredOperation targetConfOp : target.getConfiguredOperations() ) {
+                if ( sourceConfOp.getName().equals(targetConfOp.getName())) {
+                    List<Intent> prunedIntents = computeInheritableIntents(attachPoint.getType(), 
+                                                                           sourceConfOp.getRequiredIntents());
+                    PolicyComputationUtils.addInheritedIntents(prunedIntents, 
+                                                               targetConfOp.getRequiredIntents());
+                    
+                    List<PolicySet> prunedPolicySets  = computeInheritablePolicySets(sourceConfOp.getPolicySets(), 
+                                                                                     attachPoint.getApplicablePolicySets());
+                    PolicyComputationUtils.addInheritedPolicySets(prunedPolicySets, targetConfOp.getPolicySets(), true);
+                    found = true;
+                    break;
+                }
+            }
+            
+            if ( !found ) {
+                additionalOperations.add(sourceConfOp);
+            }
+        }
+        
+        if ( !additionalOperations.isEmpty() ) {
+            target.getConfiguredOperations().addAll(additionalOperations);
+        }
+    }
+    
+    /*private void addInheritedOpConfOnBindings(Contract contract) {      
+        for ( Binding binding : contract.getBindings() ) {
+            if ( binding instanceof OperationsConfigurator ) {
+                addInheritedOperationConfigurations(contract, (OperationsConfigurator)binding);
+            }
+        }
+    }*/
+    
+    private void aggregateAndPruneApplicablePolicySets(List<PolicySet> source, List<PolicySet> target) {
+        target.addAll(source);
+        //strip duplicates
+        Hashtable<QName, PolicySet> policySetTable = new Hashtable<QName, PolicySet>();
+        for ( PolicySet policySet : target ) {
+            policySetTable.put(policySet.getName(), policySet);
+        }
+        
+        target.clear();
+        target.addAll(policySetTable.values());
     }
 }

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeWireBuilderImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeWireBuilderImpl.java?rev=636290&r1=636289&r2=636290&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeWireBuilderImpl.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeWireBuilderImpl.java Wed Mar 12 05:09:58 2008
@@ -49,6 +49,7 @@
 import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
 import org.apache.tuscany.sca.policy.Intent;
 import org.apache.tuscany.sca.policy.PolicySet;
+import org.apache.tuscany.sca.policy.util.PolicyComputationUtils;
 
 public class CompositeWireBuilderImpl {
 
@@ -825,19 +826,19 @@
     
     private void addPoliciesFromPromotedService(CompositeService compositeService) {
         //inherit intents and policies from promoted service
-        addInheritedIntents(compositeService.getPromotedService().getRequiredIntents(), 
+        PolicyComputationUtils.addInheritedIntents(compositeService.getPromotedService().getRequiredIntents(), 
                             compositeService.getRequiredIntents());
-        addInheritedPolicySets(compositeService.getPromotedService().getPolicySets(), 
+        PolicyComputationUtils.addInheritedPolicySets(compositeService.getPromotedService().getPolicySets(), 
                                compositeService.getPolicySets(), true);
         addInheritedOperationConfigurations(compositeService.getPromotedService(), compositeService);
     }
     
     private void addPoliciesFromPromotedReference(CompositeReference compositeReference) {
         for ( Reference promotedReference : compositeReference.getPromotedReferences() ) {
-           addInheritedIntents(promotedReference.getRequiredIntents(), 
+           PolicyComputationUtils.addInheritedIntents(promotedReference.getRequiredIntents(), 
                                compositeReference.getRequiredIntents());
        
-           addInheritedPolicySets(promotedReference.getPolicySets(), 
+           PolicyComputationUtils.addInheritedPolicySets(promotedReference.getPolicySets(), 
                                   compositeReference.getPolicySets(), true);
            addInheritedOperationConfigurations(promotedReference, compositeReference);
         }
@@ -853,7 +854,7 @@
                 //compute the intents for operations under service element
                 bindingPolicyComputer.computeIntentsForOperations(service);
                 //add or merge service operations to the binding
-                addInheritedOpConfOnBindings(service);
+                //addInheritedOpConfOnBindings(service);
                 bindingPolicyComputer.computeBindingIntentsAndPolicySets(service);
                 bindingPolicyComputer.determineApplicableBindingPolicySets(service, null);
             } catch ( Exception e ) {
@@ -869,12 +870,12 @@
             try {
                 //compute the intents for operations under service element
                 bindingPolicyComputer.computeIntentsForOperations(reference);
-                addInheritedOpConfOnBindings(reference);
+                //addInheritedOpConfOnBindings(reference);
                 
                 if (compReference.getCallback() != null) {
-                    addInheritedIntents(compReference.getRequiredIntents(), 
+                    PolicyComputationUtils.addInheritedIntents(compReference.getRequiredIntents(), 
                                         compReference.getCallback().getRequiredIntents());
-                    addInheritedPolicySets(compReference.getPolicySets(), 
+                    PolicyComputationUtils.addInheritedPolicySets(compReference.getPolicySets(), 
                                            compReference.getCallback().getPolicySets(), 
                                            false);
                 }
@@ -900,8 +901,8 @@
                 Service service = componentService.getService();
                 if (service != null) {
                     // reconcile intents and policysets from componentType
-                     addInheritedIntents(service.getRequiredIntents(), componentService.getRequiredIntents());
-                     addInheritedPolicySets(service.getPolicySets(), componentService.getPolicySets(), true);
+                     PolicyComputationUtils.addInheritedIntents(service.getRequiredIntents(), componentService.getRequiredIntents());
+                     PolicyComputationUtils.addInheritedPolicySets(service.getPolicySets(), componentService.getPolicySets(), true);
                      
                      //reconcile intents and policysets for operations 
                      boolean notFound;
@@ -910,8 +911,8 @@
                          notFound = true;
                          for ( ConfiguredOperation csConfOp : componentService.getConfiguredOperations() ) {
                              if ( csConfOp.getName().equals(ctsConfOp.getName()) ) {
-                                 addInheritedIntents(ctsConfOp.getRequiredIntents(), csConfOp.getRequiredIntents());
-                                 addInheritedPolicySets(ctsConfOp.getPolicySets(), csConfOp.getPolicySets(), true);
+                                 PolicyComputationUtils.addInheritedIntents(ctsConfOp.getRequiredIntents(), csConfOp.getRequiredIntents());
+                                 PolicyComputationUtils.addInheritedPolicySets(ctsConfOp.getPolicySets(), csConfOp.getPolicySets(), true);
                                  notFound = false;
                              } 
                          }
@@ -924,9 +925,9 @@
                 }
                 
                 if ( componentService.getCallback() != null ) {
-                    addInheritedIntents(componentService.getRequiredIntents(), 
+                    PolicyComputationUtils.addInheritedIntents(componentService.getRequiredIntents(), 
                                         componentService.getCallback().getRequiredIntents());
-                    addInheritedPolicySets(componentService.getPolicySets(), 
+                    PolicyComputationUtils.addInheritedPolicySets(componentService.getPolicySets(), 
                                            componentService.getCallback().getPolicySets(), 
                                            false);
                 }
@@ -935,14 +936,14 @@
                     //compute the intents for operations under service element
                     bindingPolicyComputer.computeIntentsForOperations(componentService);
                     //compute intents and policyset for each binding
-                    addInheritedOpConfOnBindings(componentService);
+                    //addInheritedOpConfOnBindings(componentService);
                     bindingPolicyComputer.computeBindingIntentsAndPolicySets(componentService);
                     bindingPolicyComputer.determineApplicableBindingPolicySets(componentService, null);
     
                     if ( componentService.getCallback() != null ) {
-                        addInheritedIntents(componentService.getRequiredIntents(), 
+                        PolicyComputationUtils.addInheritedIntents(componentService.getRequiredIntents(), 
                                         componentService.getCallback().getRequiredIntents());
-                        addInheritedPolicySets(componentService.getPolicySets(), 
+                        PolicyComputationUtils.addInheritedPolicySets(componentService.getPolicySets(), 
                                            componentService.getCallback().getPolicySets(), 
                                            false);
                     }
@@ -956,14 +957,14 @@
                 Reference reference = componentReference.getReference();
                 if (reference != null) {
                     // reconcile intents and policysets
-                    addInheritedIntents(reference.getRequiredIntents(), componentReference.getRequiredIntents());
-                    addInheritedPolicySets(reference.getPolicySets(), componentReference.getPolicySets(), true);
+                    PolicyComputationUtils.addInheritedIntents(reference.getRequiredIntents(), componentReference.getRequiredIntents());
+                    PolicyComputationUtils.addInheritedPolicySets(reference.getPolicySets(), componentReference.getPolicySets(), true);
                 }
                 
                 if ( componentReference.getCallback() != null ) {
-                    addInheritedIntents(componentReference.getRequiredIntents(), 
+                    PolicyComputationUtils.addInheritedIntents(componentReference.getRequiredIntents(), 
                                         componentReference.getCallback().getRequiredIntents());
-                    addInheritedPolicySets(componentReference.getPolicySets(), 
+                    PolicyComputationUtils.addInheritedPolicySets(componentReference.getPolicySets(), 
                                            componentReference.getCallback().getPolicySets(), 
                                            false);
                 }
@@ -972,15 +973,15 @@
                     //compute the intents for operations under reference element
                     bindingPolicyComputer.computeIntentsForOperations(componentReference);
                     //compute intents and policyset for each binding
-                    addInheritedOpConfOnBindings(componentReference);
+                    //addInheritedOpConfOnBindings(componentReference);
                     bindingPolicyComputer.computeBindingIntentsAndPolicySets(componentReference);
                     bindingPolicyComputer.determineApplicableBindingPolicySets(componentReference, null);
     
                 
                     if ( componentReference.getCallback() != null ) {
-                        addInheritedIntents(componentReference.getRequiredIntents(), 
+                        PolicyComputationUtils.addInheritedIntents(componentReference.getRequiredIntents(), 
                                             componentReference.getCallback().getRequiredIntents());
-                        addInheritedPolicySets(componentReference.getPolicySets(), 
+                        PolicyComputationUtils.addInheritedPolicySets(componentReference.getPolicySets(), 
                                                componentReference.getCallback().getPolicySets(), 
                                                false);
                     }
@@ -990,50 +991,20 @@
                 }
             }
         } 
-        
-    }
-    
-    /******************************************************************************************************/
-    /*policy computation methods common to implementation and binding types */
-    /******************************************************************************************************/
-    private void addInheritedIntents(List<Intent> sourceList, List<Intent> targetList) {
-        if (sourceList != null) {
-            targetList.addAll(sourceList);
-        }
     }
     
-    private  void addInheritedPolicySets(List<PolicySet> sourceList, List<PolicySet> targetList, boolean checkOverrides) {
-        //check overrides is true when policysets are to be copied from componentType to component level
-        if ( checkOverrides ) {
-            //aggregate all the provided intents present in the target
-            List<Intent> targetProvidedIntents = new ArrayList<Intent>();
-            for ( PolicySet policySet : targetList ) {
-                targetProvidedIntents.addAll(policySet.getProvidedIntents());
-            }
-            
-            //for every policy set in the source check if it provides one of the intents that is 
-            //already provided by the policysets in the destination and do not copy them.
-            for ( PolicySet policySet : sourceList ) {
-                for ( Intent sourceProvidedIntent : policySet.getProvidedIntents() ) {
-                    if ( !targetProvidedIntents.contains(sourceProvidedIntent) ) {
-                        targetList.add(policySet);
-                    }
-                }
-            }
-        } else {
-            targetList.addAll(sourceList);
-        }
-    }
-
-    private void addInheritedOperationConfigurations(OperationsConfigurator source, OperationsConfigurator target) {
+    private void addInheritedOperationConfigurations(OperationsConfigurator source, 
+                                                     OperationsConfigurator target) {
         boolean found = false;
         
         List<ConfiguredOperation> additionalOperations = new ArrayList<ConfiguredOperation>();
         for ( ConfiguredOperation sourceConfOp : source.getConfiguredOperations() ) {
             for ( ConfiguredOperation targetConfOp : target.getConfiguredOperations() ) {
                 if ( sourceConfOp.getName().equals(targetConfOp.getName())) {
-                    addInheritedIntents(sourceConfOp.getRequiredIntents(), targetConfOp.getRequiredIntents());
-                    addInheritedPolicySets(sourceConfOp.getPolicySets(), targetConfOp.getPolicySets(), true);
+                    PolicyComputationUtils.addInheritedIntents(sourceConfOp.getRequiredIntents(), 
+                                                               targetConfOp.getRequiredIntents());
+                    PolicyComputationUtils.addInheritedPolicySets(sourceConfOp.getPolicySets(), 
+                                                                  targetConfOp.getPolicySets(), true);
                     found = true;
                     break;
                 }
@@ -1049,11 +1020,4 @@
         }
     }
     
-    private void addInheritedOpConfOnBindings(Contract contract) {      
-        for ( Binding binding : contract.getBindings() ) {
-            if ( binding instanceof OperationsConfigurator ) {
-                addInheritedOperationConfigurations(contract, (OperationsConfigurator)binding);
-            }
-        }
-    }
 }

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ImplementationPolicyComputer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ImplementationPolicyComputer.java?rev=636290&r1=636289&r2=636290&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ImplementationPolicyComputer.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ImplementationPolicyComputer.java Wed Mar 12 05:09:58 2008
@@ -58,8 +58,7 @@
                                         parent.getRequiredIntents());
             
             
-            List<PolicySet> prunedPolicySets = computeInheritablePolicySets(policiedImplementation, 
-                                                                            parent.getPolicySets(),
+            List<PolicySet> prunedPolicySets = computeInheritablePolicySets(parent.getPolicySets(),
                                                                             parent.getApplicablePolicySets());
             parent.getPolicySets().clear();
             parent.getPolicySets().addAll(prunedPolicySets);

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/PolicyComputer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/PolicyComputer.java?rev=636290&r1=636289&r2=636290&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/PolicyComputer.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/PolicyComputer.java Wed Mar 12 05:09:58 2008
@@ -167,8 +167,7 @@
         }
     }
     
-    protected List<PolicySet> computeInheritablePolicySets(PolicySetAttachPoint policySetAttachPoint,
-                                                           List<PolicySet> inheritablePolicySets,
+    protected List<PolicySet> computeInheritablePolicySets(List<PolicySet> inheritablePolicySets,
                                                            List<PolicySet> applicablePolicySets) 
                                                                throws PolicyValidationException {
         List<PolicySet> validInheritablePolicySets = new ArrayList<PolicySet>();

Modified: incubator/tuscany/java/sca/modules/implementation-java-xml/src/test/java/org/apache/tuscany/sca/implementation/java/xml/ReadTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-xml/src/test/java/org/apache/tuscany/sca/implementation/java/xml/ReadTestCase.java?rev=636290&r1=636289&r2=636290&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-xml/src/test/java/org/apache/tuscany/sca/implementation/java/xml/ReadTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-xml/src/test/java/org/apache/tuscany/sca/implementation/java/xml/ReadTestCase.java Wed Mar 12 05:09:58 2008
@@ -110,7 +110,7 @@
         mapper = null;
     }
 
-    public void stestReadComposite() throws Exception {
+    public void testReadComposite() throws Exception {
         CompositeProcessor compositeProcessor = new CompositeProcessor(new DefaultContributionFactory(), assemblyFactory, policyFactory, staxProcessor);
         InputStream is = getClass().getResourceAsStream("Calculator.composite");
         XMLStreamReader reader = inputFactory.createXMLStreamReader(is);

Modified: incubator/tuscany/java/sca/modules/implementation-java-xml/src/test/resources/org/apache/tuscany/sca/implementation/java/xml/definitions.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-xml/src/test/resources/org/apache/tuscany/sca/implementation/java/xml/definitions.xml?rev=636290&r1=636289&r2=636290&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-xml/src/test/resources/org/apache/tuscany/sca/implementation/java/xml/definitions.xml (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-xml/src/test/resources/org/apache/tuscany/sca/implementation/java/xml/definitions.xml Wed Mar 12 05:09:58 2008
@@ -83,4 +83,18 @@
  <sca:intent name="tuscanyIntent_2.qualified" />
  <sca:intent name="tuscanyIntent_6.qualified1" />
  <sca:intent name="tuscanyIntent_6.qualified2" />
+ 
+ <sca:policySet name="tuscanyPolicySet_4"
+ 	provides="tuscanyIntent_6"
+ 	appliesTo="/sca:composite/sca:component"
+ 	xmlns="http://test"
+ 	xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ 	<sca:intentMap provides="tuscanyIntent_6" default="qualified2">
+        <sca:qualifier name="qualified2">
+            <wsp:Policy>
+                <!-- policy expression and policy subject for "qualified2" alternative" -->
+            </wsp:Policy>
+        </sca:qualifier>
+    </sca:intentMap>
+ </sca:policySet>
 </sca:definitions>

Modified: incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyValidationUtils.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyValidationUtils.java?rev=636290&r1=636289&r2=636290&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyValidationUtils.java (original)
+++ incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/util/PolicyValidationUtils.java Wed Mar 12 05:09:58 2008
@@ -72,23 +72,33 @@
 
     public static void validatePolicySets(PolicySetAttachPoint policySetAttachPoint)
         throws PolicyValidationException {
-        validatePolicySets(policySetAttachPoint, policySetAttachPoint.getApplicablePolicySets());
+        validatePolicySets(policySetAttachPoint, 
+                           policySetAttachPoint.getType(),
+                           policySetAttachPoint.getApplicablePolicySets());
+    }
+    
+    public static void validatePolicySets(PolicySetAttachPoint policySetAttachPoint,
+                                          IntentAttachPointType attachPointType)
+        throws PolicyValidationException {
+        validatePolicySets(policySetAttachPoint,
+                           attachPointType,
+                           policySetAttachPoint.getApplicablePolicySets());
     }
 
     public static void validatePolicySets(PolicySetAttachPoint policySetAttachPoint,
-                                      List<PolicySet> applicablePolicySets)
+                                          IntentAttachPointType attachPointType,
+                                          List<PolicySet> applicablePolicySets)
         throws PolicyValidationException {
         // Since the applicablePolicySets in a policySetAttachPoint will already
         // have the list of policysets that might ever be applicable to this attachPoint,
         // just check if the defined policysets feature in the list of applicable
         // policysets
-        IntentAttachPointType attachPointType = policySetAttachPoint.getType();
         for (PolicySet definedPolicySet : policySetAttachPoint.getPolicySets()) {
             if (!definedPolicySet.isUnresolved()) {
                 if (!applicablePolicySets.contains(definedPolicySet)) {
                     throw new PolicyValidationException("Policy Set '" + definedPolicySet
                         .getName()
-                        + "' does not apply to binding type  "
+                        + "' does not apply to extension type  "
                         + attachPointType.getName());
                 }
             } else {



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org