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]