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/04 18:42:51 UTC
svn commit: r633563 - 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/
contribution-impl/src/main/java/org/apache/tuscany/sca/co...
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: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org