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

svn commit: r636985 - 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/ assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ a...

Author: rfeng
Date: Thu Mar 13 20:48:47 2008
New Revision: 636985

URL: http://svn.apache.org/viewvc?rev=636985&view=rev
Log:
Fix for TUSCANY-2078

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/ComponentProperty.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/PropertyUtil.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentPropertyImpl.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/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=636985&r1=636984&r2=636985&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 Thu Mar 13 20:48:47 2008
@@ -31,6 +31,9 @@
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathExpressionException;
+import javax.xml.xpath.XPathFactory;
 
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
 import org.apache.tuscany.sca.assembly.Binding;
@@ -75,7 +78,9 @@
  * @version $Rev$ $Date$
  */
 public class CompositeProcessor extends BaseAssemblyProcessor implements StAXArtifactProcessor<Composite> {
-
+    // FIXME: to be refactored
+    private XPathFactory xPathFactory = XPathFactory.newInstance();
+    
     /**
      * Construct a new composite processor
      * 
@@ -235,7 +240,33 @@
                             // Read a <component><property>
                             componentProperty = assemblyFactory.createComponentProperty();
                             property = componentProperty;
-                            componentProperty.setSource(getString(reader, SOURCE));
+                            String source = getString(reader, SOURCE);
+                            if(source!=null) {
+                                source = source.trim();
+                            }
+                            componentProperty.setSource(source);
+                            if (source != null) {
+                                // $<name>/...
+                                if (source.charAt(0) == '$') {
+                                    int index = source.indexOf('/');
+                                    if (index == -1) {
+                                        // Tolerating $prop
+                                        source = source + "/";
+                                        index = source.length() - 1;
+                                    }
+                                    source = source.substring(index + 1);
+                                    if ("".equals(source)) {
+                                        source = ".";
+                                    }
+                                }
+                                XPath xpath = xPathFactory.newXPath();
+                                xpath.setNamespaceContext(reader.getNamespaceContext());
+                                try {
+                                    componentProperty.setSourceXPathExpression(xpath.compile(source));
+                                } catch (XPathExpressionException e) {
+                                    throw new ContributionReadException(e);
+                                }
+                            }
                             componentProperty.setFile(getString(reader, FILE));
                             policyProcessor.readPolicies(property, reader);
                             readAbstractProperty(componentProperty, reader);
@@ -852,7 +883,7 @@
                     component.setImplementation(implementation);
                 } catch ( PolicyValidationException e ) {
                     throw new ContributionResolveException("PolicyValidation exception when processing implementation of component '" 
-                                                           + component.getName() + "' due to " + e.getMessage());
+                                                           + component.getName() + "' due to " + e.getMessage(), e);
                 }
             
             }

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentProperty.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentProperty.java?rev=636985&r1=636984&r2=636985&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentProperty.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ComponentProperty.java Thu Mar 13 20:48:47 2008
@@ -18,6 +18,8 @@
  */
 package org.apache.tuscany.sca.assembly;
 
+import javax.xml.xpath.XPathExpression;
+
 /**
  * Represents a configured property of a component.
  * 
@@ -56,6 +58,18 @@
      *            composite
      */
     void setSource(String source);
+    
+    /**
+     * Get the XPath expression for the source attribute
+     * @return the XPath expression for the source attribute
+     */
+    XPathExpression getSourceXPathExpression();
+    
+    /**
+     * Set the XPath expression for the source attribute
+     * @param sourceXPathExpression the XPath expression for the source attribute
+     */
+    void setSourceXPathExpression(XPathExpression sourceXPathExpression);
 
     /**
      * Returns a URI to a file containing the property value.

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/PropertyUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/PropertyUtil.java?rev=636985&r1=636984&r2=636985&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/PropertyUtil.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/PropertyUtil.java Thu Mar 13 20:48:47 2008
@@ -24,10 +24,13 @@
 import java.net.URI;
 import java.net.URL;
 import java.net.URLConnection;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
+import javax.xml.XMLConstants;
 import javax.xml.namespace.NamespaceContext;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
@@ -36,7 +39,6 @@
 import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMResult;
 import javax.xml.transform.sax.SAXSource;
-import javax.xml.xpath.XPath;
 import javax.xml.xpath.XPathConstants;
 import javax.xml.xpath.XPathExpression;
 import javax.xml.xpath.XPathExpressionException;
@@ -59,18 +61,11 @@
     private static final DocumentBuilderFactory DOC_BUILDER_FACTORY = DocumentBuilderFactory.newInstance();
     private static final TransformerFactory TRANSFORMER_FACTORY = TransformerFactory.newInstance();
     
-    static private Document evaluate(NamespaceContext nsContext, Node node, String xPathExpression)
+    static private Document evaluate(Document node, XPathExpression expression)
         throws XPathExpressionException, ParserConfigurationException {
-        XPath path = XPATH_FACTORY.newXPath();
-        
-        if (nsContext != null) {
-            path.setNamespaceContext(nsContext);
-        } else {
-            path.setNamespaceContext(new DOMNamespaceContext(node));
-        }
-        
-        XPathExpression expression = path.compile(xPathExpression);
-        Node result = (Node)expression.evaluate(node, XPathConstants.NODE);
+
+        Node value = node.getDocumentElement();
+        Node result = (Node)expression.evaluate(value, XPathConstants.NODE);
         if (result == null) {
             return null;
         }
@@ -139,19 +134,8 @@
 
                     Document compositePropDefValues = (Document)compositeProp.getValue();
 
-                    // Adding /value because the document root is "value"
-                    String path = source.substring(index);
-                    String xpath = null;
-
-                    if ("/".equals(path)) {
-                        // trailing / is not legal for xpath
-                        xpath = "/value";
-                    } else {
-                        xpath = "/value" + path;
-                    }
-
                     // FIXME: How to deal with namespaces?
-                    Document node = evaluate(null, compositePropDefValues, xpath);
+                    Document node = evaluate(compositePropDefValues, aProperty.getSourceXPathExpression());
 
                     if (node != null) {
                         aProperty.setValue(node);
@@ -178,15 +162,42 @@
         }
 
         public String getNamespaceURI(String prefix) {
-            return node.lookupNamespaceURI(prefix);
+            if (prefix == null) {
+                throw new IllegalArgumentException("Prefix is null");
+            } else if (XMLConstants.XML_NS_PREFIX.equals(prefix)) {
+                return XMLConstants.XML_NS_URI;
+            } else if (XMLConstants.XMLNS_ATTRIBUTE.equals(prefix)) {
+                return XMLConstants.XMLNS_ATTRIBUTE_NS_URI;
+            }
+            String ns = node.lookupNamespaceURI(prefix);
+            return ns == null ? XMLConstants.NULL_NS_URI : ns;
         }
 
         public String getPrefix(String namespaceURI) {
+            if (namespaceURI == null) {
+                throw new IllegalArgumentException("Namespace URI is null");
+            } else if (XMLConstants.XML_NS_URI.equals(namespaceURI)) {
+                return XMLConstants.XML_NS_PREFIX;
+            } else if (XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(namespaceURI)) {
+                return XMLConstants.XMLNS_ATTRIBUTE;
+            }
             return node.lookupPrefix(namespaceURI);
         }
 
         public Iterator<?> getPrefixes(String namespaceURI) {
-            return null;
+            // Not implemented
+            if (namespaceURI == null) {
+                throw new IllegalArgumentException("Namespace URI is null");
+            } else if (XMLConstants.XML_NS_URI.equals(namespaceURI)) {
+                return Arrays.asList(XMLConstants.XML_NS_PREFIX).iterator();
+            } else if (XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(namespaceURI)) {
+                return Arrays.asList(XMLConstants.XMLNS_ATTRIBUTE).iterator();
+            }
+            String prefix = getPrefix(namespaceURI);
+            if (prefix == null) {
+                return Collections.emptyList().iterator();
+            }
+            return Arrays.asList(prefix).iterator();
         }
 
     }

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentPropertyImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentPropertyImpl.java?rev=636985&r1=636984&r2=636985&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentPropertyImpl.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ComponentPropertyImpl.java Thu Mar 13 20:48:47 2008
@@ -19,6 +19,8 @@
 
 package org.apache.tuscany.sca.assembly.impl;
 
+import javax.xml.xpath.XPathExpression;
+
 import org.apache.tuscany.sca.assembly.ComponentProperty;
 import org.apache.tuscany.sca.assembly.Property;
 
@@ -31,6 +33,7 @@
     private String file;
     private Property property;
     private String source;
+    private XPathExpression sourceXPathExpression;
     
     /**
      * Constructs a new component property.
@@ -77,6 +80,14 @@
 
     public void setSource(String source) {
         this.source = source;
+    }
+
+    public XPathExpression getSourceXPathExpression() {
+        return sourceXPathExpression;
+    }
+
+    public void setSourceXPathExpression(XPathExpression sourceXPathExpression) {
+        this.sourceXPathExpression = sourceXPathExpression;
     }
 
 }

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=636985&r1=636984&r2=636985&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 Thu Mar 13 20:48:47 2008
@@ -32,11 +32,9 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Hashtable;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
-import javax.xml.namespace.NamespaceContext;
 import javax.xml.namespace.QName;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
@@ -51,11 +49,9 @@
 import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
-import javax.xml.xpath.XPath;
 import javax.xml.xpath.XPathConstants;
 import javax.xml.xpath.XPathExpression;
 import javax.xml.xpath.XPathExpressionException;
-import javax.xml.xpath.XPathFactory;
 
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
 import org.apache.tuscany.sca.assembly.Composite;
@@ -545,18 +541,15 @@
                                                                 XPathExpressionException,
                                                                 TransformerConfigurationException,
                                                                 TransformerException  {
-        XPathFactory xpathFactory = XPathFactory.newInstance();
-        XPath path = xpathFactory.newXPath();
-        path.setNamespaceContext(new DOMNamespaceContext(doc));
         int prefixCount = 1;
         
         for ( PolicySet policySet : policySets ) {
             if ( policySet.getAppliesTo() != null ) {
-                addApplicablePolicySets(policySet, path, doc, prefixCount);
+                addApplicablePolicySets(policySet, doc, prefixCount);
             }
             
             if ( policySet.getAlwaysAppliesTo() != null ) {
-                addAlwaysApplicablePolicySets(policySet, path, doc, prefixCount);
+                addAlwaysApplicablePolicySets(policySet, doc, prefixCount);
             }
         }
         
@@ -569,8 +562,8 @@
         return sw.toString().getBytes();
     }
     
-    private void addAlwaysApplicablePolicySets(PolicySet policySet, XPath path, Document doc, int prefixCount) throws XPathExpressionException {
-        XPathExpression expression = path.compile(policySet.getAlwaysAppliesTo());
+    private void addAlwaysApplicablePolicySets(PolicySet policySet, Document doc, int prefixCount) throws XPathExpressionException {
+        XPathExpression expression = policySet.getAlwaysAppliesToXPathExpression();
         NodeList result = (NodeList)expression.evaluate(doc, XPathConstants.NODESET);
         
         if ( result != null ) {
@@ -600,8 +593,8 @@
         }
     }
     
-    private void addApplicablePolicySets(PolicySet policySet, XPath path, Document doc, int prefixCount) throws XPathExpressionException {
-        XPathExpression expression = path.compile(policySet.getAppliesTo());
+    private void addApplicablePolicySets(PolicySet policySet, Document doc, int prefixCount) throws XPathExpressionException {
+        XPathExpression expression = policySet.getAppliesToXPathExpression();
         NodeList result = (NodeList)expression.evaluate(doc, XPathConstants.NODESET);
         
         if ( result != null ) {
@@ -683,55 +676,6 @@
             element.setAttributeNodeNS(attr);
         }
         return prefix;
-    }
-    
-    private static class DOMNamespaceContext implements NamespaceContext {
-        private Node node;
-
-        /**
-         * @param node
-         */
-        public DOMNamespaceContext(Node node) {
-            super();
-            this.node = node;
-        }
-
-        public String getNamespaceURI(String prefix) {
-            return node.lookupNamespaceURI(prefix);
-        }
-
-        public String getPrefix(String namespaceURI) {
-            return node.lookupPrefix(namespaceURI);
-        }
-
-        public Iterator<?> getPrefixes(String namespaceURI) {
-            return null;
-        }
-
-    }
-    
-    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);
-            
-            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();
-        } else {
-            return null;
-        }
     }
 
 }

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=636985&r1=636984&r2=636985&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 Thu Mar 13 20:48:47 2008
@@ -33,6 +33,9 @@
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathExpressionException;
+import javax.xml.xpath.XPathFactory;
 
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
@@ -59,6 +62,7 @@
 
     private PolicyFactory policyFactory;
     private StAXArtifactProcessor<Object> extensionProcessor;
+    private XPathFactory xpathFactory = XPathFactory.newInstance();
     
     public PolicySetProcessor(ModelFactoryExtensionPoint modelFactories) {
         this.policyFactory = modelFactories.getFactory(PolicyFactory.class);
@@ -91,6 +95,20 @@
         
         policySet.setAppliesTo(appliesTo);
         policySet.setAlwaysAppliesTo(alwaysAppliesTo);
+
+        XPath path = xpathFactory.newXPath();
+        path.setNamespaceContext(reader.getNamespaceContext());
+        try {
+            if (appliesTo != null) {
+                policySet.setAppliesToXPathExpression(path.compile(appliesTo));
+            }
+            if (alwaysAppliesTo != null) {
+                policySet.setAlwaysAppliesToXPathExpression(path.compile(alwaysAppliesTo));
+            }
+        } catch (XPathExpressionException e) {
+            throw new ContributionReadException(e);
+        }  
+        
         readProvidedIntents(policySet, reader);
         
         int event = reader.getEventType();

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=636985&r1=636984&r2=636985&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 Thu Mar 13 20:48:47 2008
@@ -22,6 +22,7 @@
 import java.util.Map;
 
 import javax.xml.namespace.QName;
+import javax.xml.xpath.XPathExpression;
 
 /**
  * Represents a policy set. See the Policy Framework specification for a
@@ -49,7 +50,6 @@
      * @return
      */
     //List<Operation> getOperations();
-
     /**
      * Returns the list of
      * 
@@ -64,7 +64,6 @@
      */
     List<Intent> getProvidedIntents();
 
-
     /**
      * Returns the list of concrete policies, either WS-Policy policy
      * attachments, policy references, or policies expressed in another policy
@@ -87,7 +86,7 @@
      * @param unresolved whether the model element is unresolved
      */
     void setUnresolved(boolean unresolved);
-    
+
     /**
      * Returns the xpath expression that is to be used to evaluate
      * if this PolicySet applies to specific attachment point
@@ -95,23 +94,21 @@
      * @return the xpath expression
      */
     String getAppliesTo();
-    
+
     /**
      * Sets the xpath expression that is to be used to evaluate
      * if this PolicySet applies to specific attachment point
      * 
-     * @return 
      */
     void setAppliesTo(String xpath);
-    
-    
+
     /**
      * Returns the policies / policy attachments provided thro intent maps
      * 
      * @return
      */
-    Map<Intent, List<Object>>getMappedPolicies();
-    
+    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
@@ -120,13 +117,37 @@
      * @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);
+
+    /**
+     * Get the XPath expression for the appliesTo attribute
+     * @return the XPath expression for the appliesTo attribute
+     */
+    XPathExpression getAppliesToXPathExpression();
+
+    /**
+     * Set the XPath expression for the appliesTo attribute
+     * @param xpathExpression the XPath expression for the appliesTo attribute
+     */
+    void setAppliesToXPathExpression(XPathExpression xpathExpression);
+
+    /**
+     * Get the XPath expression for the alwaysAppliesTo attribute
+     * @return the XPath expression for the alwaysAppliesTo attribute
+     */
+    XPathExpression getAlwaysAppliesToXPathExpression();
+
+    /**
+     * Set the XPath expression for the alwaysAppliesTo attribute
+     * @param xpathExpression the XPath expression for the alwaysAppliesTo attribute
+     */
+    void setAlwaysAppliesToXPathExpression(XPathExpression xpathExpression);
+
 }

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=636985&r1=636984&r2=636985&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 Thu Mar 13 20:48:47 2008
@@ -24,6 +24,7 @@
 import java.util.Map;
 
 import javax.xml.namespace.QName;
+import javax.xml.xpath.XPathExpression;
 
 import org.apache.tuscany.sca.policy.Intent;
 import org.apache.tuscany.sca.policy.PolicySet;
@@ -46,6 +47,9 @@
     private boolean unresolved = true;
     private String alwaysAppliesTo;
     
+    private XPathExpression appliesToXPathExpression;
+    private XPathExpression alwaysAppliesToXPathExpression;
+    
     public String getAlwaysAppliesTo() {
         return alwaysAppliesTo;
     }
@@ -125,4 +129,21 @@
     public String toString() {
         return getName().toString();
     }
+
+    public XPathExpression getAppliesToXPathExpression() {
+        return appliesToXPathExpression;
+    }
+
+    public void setAppliesToXPathExpression(XPathExpression appliesToXPathExpression) {
+        this.appliesToXPathExpression = appliesToXPathExpression;
+    }
+
+    public XPathExpression getAlwaysAppliesToXPathExpression() {
+        return alwaysAppliesToXPathExpression;
+    }
+
+    public void setAlwaysAppliesToXPathExpression(XPathExpression alwaysAppliesToXPathExpression) {
+        this.alwaysAppliesToXPathExpression = alwaysAppliesToXPathExpression;
+    }
+
 }



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