Author: svkrish
Date: Tue Mar  4 09:42:44 2008
New Revision: 633563

URL: http://svn.apache.org/viewvc?rev=633563&view=rev
Log:
adding support for externally configurable policysets

Modified:
    
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/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/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
    
incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java
    
incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java
    
incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySet.java
    
incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicySetImpl.java

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=633563&r1=633562&r2=633563&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
 Tue Mar  4 09:42:44 2008
@@ -832,7 +832,7 @@
                 
                 resolveImplIntentsAndPolicySets(implementation, 
component.getApplicablePolicySets(), resolver);
                 
-                copyPoliciesToComponent(component, implementation, resolver);
+                copyPoliciesToComponent(component, implementation, resolver, 
true);
                 
                 //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
@@ -842,7 +842,7 @@
                 //resolved implementation may contain intents and policysets 
specified at 
                 //componentType (either in the componentType side file or in 
annotations if its a 
                 //java implementation).  This has to be consolidated in to the 
component.
-                copyPoliciesToComponent(component, implementation, resolver);
+                copyPoliciesToComponent(component, implementation, resolver, 
false);
                 
                 component.setImplementation(implementation);
             }
@@ -876,7 +876,8 @@
     
     private void copyPoliciesToComponent(Component component, 
                                          Implementation implementation, 
-                                         ModelResolver resolver) throws 
ContributionResolveException {
+                                         ModelResolver resolver,
+                                         boolean clearImplSettings) throws 
ContributionResolveException {
         if (implementation instanceof PolicySetAttachPoint) {
             //add implementation policies into component... since 
implementation instance are 
             //reused and its likely that this implementation instance will not 
hold after its resolution
@@ -887,7 +888,9 @@
             if ( implementation instanceof OperationsConfigurator ) {
                 boolean notFound;
                 List<ConfiguredOperation> opsFromImplementation = new 
ArrayList<ConfiguredOperation>();
-                for ( ConfiguredOperation implConfOp : 
((OperationsConfigurator)implementation).getConfiguredOperations() ) {
+                List<ConfiguredOperation> implConfOperations = 
+                    new 
ArrayList<ConfiguredOperation>(((OperationsConfigurator)implementation).getConfiguredOperations());
+                for ( ConfiguredOperation implConfOp : implConfOperations ) {
                     notFound = true;
                     for ( ConfiguredOperation compConfOp : 
((OperationsConfigurator)component).getConfiguredOperations() ) {
                         if ( implConfOp.getName().equals(compConfOp.getName()) 
) {
@@ -902,11 +905,18 @@
                     if ( notFound ) {
                         opsFromImplementation.add(implConfOp);
                     }
+                    
+                    if ( clearImplSettings ) {
+                        
((OperationsConfigurator)implementation).getConfiguredOperations().remove(implConfOp);
+                    }
                 }
                 
((OperationsConfigurator)component).getConfiguredOperations().addAll(opsFromImplementation);
             }
-            
((PolicySetAttachPoint)implementation).getRequiredIntents().clear();
-            ((PolicySetAttachPoint)implementation).getPolicySets().clear();
+            
+            if ( clearImplSettings ) {
+                
((PolicySetAttachPoint)implementation).getRequiredIntents().clear();
+                ((PolicySetAttachPoint)implementation).getPolicySets().clear();
+            }
         }
     }
     

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=633563&r1=633562&r2=633563&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
 Tue Mar  4 09:42:44 2008
@@ -192,7 +192,7 @@
     private void determineApplicableDomainPolicySets(Contract contract, 
                                                      PolicySetAttachPoint 
policiedBinding) 
                                                             throws 
PolicyComputationException {
-        if ( domainPolicySets != null) {
+        //if ( domainPolicySets != null) {
             
determineApplicableDomainPolicySets(policiedBinding.getApplicablePolicySets(), 
                                                 policiedBinding,
                                                 policiedBinding.getType());
@@ -208,6 +208,6 @@
                             policiedBinding.getRequiredIntents());
                 }
             }
-        }
+        //}
     }
 }

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=633563&r1=633562&r2=633563&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
 Tue Mar  4 09:42:44 2008
@@ -117,7 +117,7 @@
             //if there are intents that are not provided by any policy set 
throw a warning
             //TODO: resolved to domain policy registry and attach suitable 
policy sets to the implementation
             //...for now using the SCA Definitions instead of registry
-            if ( domainPolicySets != null)  {
+            //if ( domainPolicySets != null)  {
                 
determineApplicableDomainPolicySets(component.getApplicablePolicySets(), 
                                                     component,
                                                     
policiedImplementation.getType());
@@ -126,7 +126,7 @@
                     throw new PolicyComputationException("The following are 
unfulfilled intents for component implementation - " + component
                         .getName() + "\nUnfulfilled Intents = " + 
component.getRequiredIntents());
                 }
-            }
+            //}
             
             //the intents list could have been trimmed when matching for 
policysets
             //since the bindings may need the original set of intents we copy 
that back

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=633563&r1=633562&r2=633563&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
 Tue Mar  4 09:42:44 2008
@@ -273,6 +273,7 @@
         
             confOp.getPolicySets().clear();
             confOp.getPolicySets().addAll(policySetTable.values());
+            policySetTable.clear();
             
             //expand profile intents
             for ( PolicySet policySet : confOp.getPolicySets() ) {
@@ -291,18 +292,17 @@
     protected void determineApplicableDomainPolicySets(List<PolicySet> 
applicablePolicySets,
                                                      PolicySetAttachPoint 
policySetAttachPoint,
                                                      IntentAttachPointType 
intentAttachPointType) {
-        //String scdlFragment = null; //write parentelement as scdl fragment 
and store it here
+
         if (policySetAttachPoint.getRequiredIntents().size() > 0) {
-            for (PolicySet policySet : domainPolicySets) {
-                //if 
(PolicyValidationUtils.isPolicySetApplicable(scdlFragment, 
policySet.getAppliesTo(), intentAttachPointType)) {
-                if ( applicablePolicySets.contains(policySet)) {
-                    int prevSize = 
policySetAttachPoint.getRequiredIntents().size();
-                    
trimProvidedIntents(policySetAttachPoint.getRequiredIntents(), policySet);
-                    // if any intent was trimmed off, then this policyset must
-                    // be attached to the intent attachpoint's policyset
-                    if (prevSize != 
policySetAttachPoint.getRequiredIntents().size()) {
-                        policySetAttachPoint.getPolicySets().add(policySet);
-                    }
+            //since the set of applicable policysets for this attachpoint is 
known 
+            //we only need to check in that list if there is a policyset that 
matches
+            for (PolicySet policySet : applicablePolicySets) {
+                int prevSize = 
policySetAttachPoint.getRequiredIntents().size();
+                trimProvidedIntents(policySetAttachPoint.getRequiredIntents(), 
policySet);
+                // if any intent was trimmed off, then this policyset must
+                // be attached to the intent attachpoint's policyset
+                if (prevSize != 
policySetAttachPoint.getRequiredIntents().size()) {
+                    policySetAttachPoint.getPolicySets().add(policySet);
                 }
             } 
         }

Modified: 
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java?rev=633563&r1=633562&r2=633563&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
 Tue Mar  4 09:42:44 2008
@@ -159,7 +159,9 @@
     private String POLICYSET_PREFIX = "tp_";
     private String APPLICABLE_POLICYSET_ATTR_NS = 
"http://tuscany.apache.org/xmlns/sca/1.0";; 
     private String APPLICABLE_POLICYSET_ATTR = "applicablePolicySets"; 
+    private String POLICY_SETS_ATTR = "policySets"; 
     private String APPLICABLE_POLICYSET_ATTR_PREFIX = "tuscany";
+    private String SCA10_NS = "http://www.osoa.org/xmlns/sca/1.0";;
 
     public ContributionServiceImpl(ContributionRepository repository,
                                    PackageProcessor packageProcessor,
@@ -537,45 +539,22 @@
         }
     }
     
-    private byte[] addApplicablePolicySets(Document doc, Collection<PolicySet> 
policySets) throws XPathExpressionException,
+    private byte[] addApplicablePolicySets(Document doc, Collection<PolicySet> 
policySets) throws 
+                                                                
XPathExpressionException,
                                                                 
TransformerConfigurationException,
                                                                 
TransformerException  {
         XPathFactory xpathFactory = XPathFactory.newInstance();
         XPath path = xpathFactory.newXPath();
         path.setNamespaceContext(new DOMNamespaceContext(doc));
-        XPathExpression expression = null;
-        NodeList result = null;
-        int count = 1;
+        int prefixCount = 1;
         
         for ( PolicySet policySet : policySets ) {
-            expression = path.compile(policySet.getAppliesTo());
-            result = (NodeList)expression.evaluate(doc, 
XPathConstants.NODESET);
+            if ( policySet.getAppliesTo() != null ) {
+                addApplicablePolicySets(policySet, path, doc, prefixCount);
+            }
             
-            if ( result != null ) {
-                for ( int counter = 0 ; counter < result.getLength() ; 
++counter ) {
-                    Node aResultNode = result.item(counter);
-                
-                    String applicablePolicySets = null;
-                    String policySetPrefix = POLICYSET_PREFIX + count++;
-                    String appPolicyAttrPrefix = 
APPLICABLE_POLICYSET_ATTR_PREFIX;
-                    
-                    policySetPrefix = declareNamespace((Element)aResultNode, 
policySetPrefix, policySet.getName().getNamespaceURI());
-                    appPolicyAttrPrefix = 
declareNamespace((Element)aResultNode, appPolicyAttrPrefix, 
APPLICABLE_POLICYSET_ATTR_NS);
-                    if ( 
aResultNode.getAttributes().getNamedItemNS(APPLICABLE_POLICYSET_ATTR_NS, 
APPLICABLE_POLICYSET_ATTR) != null ) {
-                        applicablePolicySets =
-                            
aResultNode.getAttributes().getNamedItemNS(APPLICABLE_POLICYSET_ATTR_NS, 
APPLICABLE_POLICYSET_ATTR).getNodeValue();
-                    }
-                    
-                    if ( applicablePolicySets != null && 
applicablePolicySets.length() > 0 ) {
-                        applicablePolicySets = applicablePolicySets + " " + 
policySetPrefix + ":" + policySet.getName().getLocalPart();
-                    } else {
-                        applicablePolicySets = policySetPrefix + ":" + 
policySet.getName().getLocalPart();
-                    }
-                    
-                    
((Element)aResultNode).setAttributeNS(APPLICABLE_POLICYSET_ATTR_NS, 
-                                                          appPolicyAttrPrefix 
+ ":" + APPLICABLE_POLICYSET_ATTR, 
-                                                     applicablePolicySets);
-                }
+            if ( policySet.getAlwaysAppliesTo() != null ) {
+                addAlwaysApplicablePolicySets(policySet, path, doc, 
prefixCount);
             }
         }
         
@@ -588,6 +567,69 @@
         return sw.toString().getBytes();
     }
     
+    private void addAlwaysApplicablePolicySets(PolicySet policySet, XPath 
path, Document doc, int prefixCount) throws XPathExpressionException {
+        XPathExpression expression = 
path.compile(policySet.getAlwaysAppliesTo());
+        NodeList result = (NodeList)expression.evaluate(doc, 
XPathConstants.NODESET);
+        
+        if ( result != null ) {
+            for ( int counter = 0 ; counter < result.getLength() ; ++counter ) 
{
+                Node aResultNode = result.item(counter);
+            
+                String alwaysApplicablePolicySets = null;
+                String policySetPrefix = POLICYSET_PREFIX + prefixCount++;
+                String policySetsAttrPrefix = "sca";
+                
+                policySetPrefix = declareNamespace((Element)aResultNode, 
policySetPrefix, policySet.getName().getNamespaceURI());
+                policySetsAttrPrefix = declareNamespace((Element)aResultNode, 
policySetsAttrPrefix, SCA10_NS);
+                if ( aResultNode.getAttributes().getNamedItem( 
POLICY_SETS_ATTR) != null ) {
+                    alwaysApplicablePolicySets =
+                        
aResultNode.getAttributes().getNamedItem(POLICY_SETS_ATTR).getNodeValue();
+                }
+                
+                if ( alwaysApplicablePolicySets != null && 
alwaysApplicablePolicySets.length() > 0 ) {
+                    alwaysApplicablePolicySets = alwaysApplicablePolicySets + 
" " + policySetPrefix + ":" + policySet.getName().getLocalPart();
+                } else {
+                    alwaysApplicablePolicySets = policySetPrefix + ":" + 
policySet.getName().getLocalPart();
+                }
+                
+                ((Element)aResultNode).setAttribute(POLICY_SETS_ATTR, 
+                                                      
alwaysApplicablePolicySets);
+            }
+        }
+    }
+    
+    private void addApplicablePolicySets(PolicySet policySet, XPath path, 
Document doc, int prefixCount) throws XPathExpressionException {
+        XPathExpression expression = path.compile(policySet.getAppliesTo());
+        NodeList result = (NodeList)expression.evaluate(doc, 
XPathConstants.NODESET);
+        
+        if ( result != null ) {
+            for ( int counter = 0 ; counter < result.getLength() ; ++counter ) 
{
+                Node aResultNode = result.item(counter);
+            
+                String applicablePolicySets = null;
+                String policySetPrefix = POLICYSET_PREFIX + prefixCount++;
+                String appPolicyAttrPrefix = APPLICABLE_POLICYSET_ATTR_PREFIX;
+                
+                policySetPrefix = declareNamespace((Element)aResultNode, 
policySetPrefix, policySet.getName().getNamespaceURI());
+                appPolicyAttrPrefix = declareNamespace((Element)aResultNode, 
appPolicyAttrPrefix, APPLICABLE_POLICYSET_ATTR_NS);
+                if ( 
aResultNode.getAttributes().getNamedItemNS(APPLICABLE_POLICYSET_ATTR_NS, 
APPLICABLE_POLICYSET_ATTR) != null ) {
+                    applicablePolicySets =
+                        
aResultNode.getAttributes().getNamedItemNS(APPLICABLE_POLICYSET_ATTR_NS, 
APPLICABLE_POLICYSET_ATTR).getNodeValue();
+                }
+                
+                if ( applicablePolicySets != null && 
applicablePolicySets.length() > 0 ) {
+                    applicablePolicySets = applicablePolicySets + " " + 
policySetPrefix + ":" + policySet.getName().getLocalPart();
+                } else {
+                    applicablePolicySets = policySetPrefix + ":" + 
policySet.getName().getLocalPart();
+                }
+                
+                
((Element)aResultNode).setAttributeNS(APPLICABLE_POLICYSET_ATTR_NS, 
+                                                      appPolicyAttrPrefix + 
":" + APPLICABLE_POLICYSET_ATTR, 
+                                                 applicablePolicySets);
+            }
+        }
+    }
+    
     private byte[] addApplicablePolicySets(URL artifactUrl) throws 
ContributionReadException {
         try {
             DocumentBuilderFactory dbFac = 
DocumentBuilderFactory.newInstance();
@@ -666,18 +708,22 @@
 
     }
     
-    private static String print(Node node) throws Exception {
+    private static String print(Node node)  {
         if ( node.getNodeType() != 3 ) {
             
System.out.println("********************************************************" + 
node.getNodeType());
             StringWriter sw = new StringWriter();
             Source domSource = new DOMSource(node);
             Result finalResult = new StreamResult(sw);
-            Transformer t = TransformerFactory.newInstance().newTransformer();
-            
-            t.setOutputProperty("omit-xml-declaration", "yes");
-            //System.out.println(" ***** - " + t.getOutputProperties());
-            t.transform(domSource, finalResult);
             
+            try {
+                Transformer t = 
TransformerFactory.newInstance().newTransformer();
+                
+                t.setOutputProperty("omit-xml-declaration", "yes");
+                //System.out.println(" ***** - " + t.getOutputProperties());
+                t.transform(domSource, finalResult);
+            } catch ( Exception e ) {
+                e.printStackTrace();
+             }
             System.out.println(sw.toString());
             
System.out.println("********************************************************");
             return sw.toString();

Modified: 
incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java?rev=633563&r1=633562&r2=633563&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java
 Tue Mar  4 09:42:44 2008
@@ -28,6 +28,7 @@
     String WHITE_SPACE = " ";
     String COLON = ":";
     String SCA10_NS = "http://www.osoa.org/xmlns/sca/1.0";;
+    String TUSCANY_NS = "http://tuscany.apache.org/xmlns/sca/1.0";;
     String INTENT = "intent";
     String POLICY_SET = "policySet";
     String POLICY_SET_REFERENCE = "policySetReference";
@@ -39,6 +40,7 @@
     String DESCRIPTION = "description";
     String PROVIDES = "provides";
     String APPLIES_TO = "appliesTo";
+    String ALWAYS_APPLIES_TO = "alwaysAppliesTo";
     String QUALIFIER = ".";
     String INTENT_MAP_QUALIFIER = "qualifier";
     String REQUIRES = "requires";

Modified: 
incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java?rev=633563&r1=633562&r2=633563&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/policy-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicySetProcessor.java
 Tue Mar  4 09:42:44 2008
@@ -73,6 +73,7 @@
         PolicySet policySet = policyFactory.createPolicySet();
         policySet.setName(getQName(reader, NAME));
         String appliesTo = reader.getAttributeValue(null, APPLIES_TO);
+        String alwaysAppliesTo = reader.getAttributeValue(TUSCANY_NS, 
ALWAYS_APPLIES_TO);
         
         //TODO: with 1.0 version of specs the applies to xpath is given 
related to the immediate
         //parent whereas the runtime evaluates the xpath aginst the composite 
element.  What the runtime
@@ -82,7 +83,12 @@
             appliesTo = "//" + appliesTo;
         }
         
+        if ( alwaysAppliesTo != null && !alwaysAppliesTo.startsWith("/") ) {
+            alwaysAppliesTo = "//" + alwaysAppliesTo;
+        }
+        
         policySet.setAppliesTo(appliesTo);
+        policySet.setAlwaysAppliesTo(alwaysAppliesTo);
         readProvidedIntents(policySet, reader);
         
         int event = reader.getEventType();
@@ -243,6 +249,7 @@
         writer.writeAttribute(NAME, 
                               policySet.getName().getPrefix() + COLON + 
policySet.getName().getLocalPart());
         writer.writeAttribute(APPLIES_TO, policySet.getAppliesTo());
+        writer.writeAttribute(TUSCANY_NS, ALWAYS_APPLIES_TO, 
policySet.getAlwaysAppliesTo());
         
         writeProvidedIntents(policySet, writer);
         

Modified: 
incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySet.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySet.java?rev=633563&r1=633562&r2=633563&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySet.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/PolicySet.java
 Tue Mar  4 09:42:44 2008
@@ -111,4 +111,22 @@
      * @return
      */
     Map<Intent, List<Object>>getMappedPolicies();
+    
+    /**
+     * Gets the xpath expression that is to be used to evaluate
+     * the SCA Artifacts that this policyset will always apply to
+     * immaterial of an intent declared on the SCA Artifact
+     * 
+     * @return the xpath expression
+     */
+    String getAlwaysAppliesTo();
+    
+    /**
+     * Sets the xpath expression that is to be used to evaluate
+     * the SCA Artifacts that this policyset will always apply to
+     * immaterial of an intent declared on the SCA Artifact
+     * 
+     * @return 
+     */
+    void setAlwaysAppliesTo(String xpath);
 }

Modified: 
incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicySetImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicySetImpl.java?rev=633563&r1=633562&r2=633563&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicySetImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/policy/src/main/java/org/apache/tuscany/sca/policy/impl/PolicySetImpl.java
 Tue Mar  4 09:42:44 2008
@@ -44,7 +44,16 @@
     private List<Object> policies = new ArrayList<Object>();
     Map<Intent, List<Object>>  mappedPolicies = new Hashtable<Intent, 
List<Object>>();
     private boolean unresolved = true;
+    private String alwaysAppliesTo;
     
+    public String getAlwaysAppliesTo() {
+        return alwaysAppliesTo;
+    }
+
+    public void setAlwaysAppliesTo(String alwaysAppliesTo) {
+        this.alwaysAppliesTo = alwaysAppliesTo;
+    }
+
     protected PolicySetImpl() {
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to