You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sl...@apache.org on 2010/08/09 15:37:46 UTC
svn commit: r983640 - in
/tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml:
IntentProcessor.java PolicyConstants.java
Author: slaws
Date: Mon Aug 9 13:37:45 2010
New Revision: 983640
URL: http://svn.apache.org/viewvc?rev=983640&view=rev
Log:
TUSCANY-3647 - mark all qualified intents as mutually exclusive with one another if the qualifiable intent is marked as mutuallyExclusive
Modified:
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentProcessor.java
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java
Modified: tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentProcessor.java?rev=983640&r1=983639&r2=983640&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentProcessor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentProcessor.java Mon Aug 9 13:37:45 2010
@@ -125,6 +125,14 @@ public class IntentProcessor extends Bas
readExcludedIntents(intent, reader);
readConstrainedTypes(intent, reader);
+
+ String mutuallyExclusiveString = reader.getAttributeValue(null, MUTUALLY_EXCLUSIVE);
+ if (mutuallyExclusiveString != null &&
+ mutuallyExclusiveString.equals("true")){
+ intent.setMutuallyExclusive(true);
+ } else {
+ intent.setMutuallyExclusive(false);
+ }
Intent current = intent;
int event = reader.getEventType();
@@ -146,6 +154,7 @@ public class IntentProcessor extends Bas
boolean isDefault = defaultQ == null ? false : Boolean.parseBoolean(defaultQ);
String qualifiedIntentName = intentLocalName + QUALIFIER + qualifierName;
Intent qualified = policyFactory.createIntent();
+ qualified.setUnresolved(false);
qualified.setType(intent.getType());
qualified.setName(new QName(qualifiedIntentName));
if (isDefault) {
@@ -198,6 +207,19 @@ public class IntentProcessor extends Bas
if (intent.getQualifiedIntents().size() == 1) {
intent.setDefaultQualifiedIntent(intent.getQualifiedIntents().get(0));
}
+
+ // set all qualified intents as excluding one another if the qualifiable
+ // intent is set to be mutually exclusive
+ if (intent.isMutuallyExclusive()){
+ for (Intent qualifiedIntent : intent.getQualifiedIntents()){
+ for (Intent excludedIntent : intent.getQualifiedIntents()){
+ if (qualifiedIntent != excludedIntent){
+ qualifiedIntent.getExcludedIntents().add(excludedIntent);
+ }
+ }
+ }
+ }
+
return intent;
}
Modified: tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java?rev=983640&r1=983639&r2=983640&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/PolicyConstants.java Mon Aug 9 13:37:45 2010
@@ -52,6 +52,7 @@ public interface PolicyConstants {
String EXTERNAL_ATTACHMENT = "externalAttachment";
String INTENTS = "intents";
String POLICY_SETS = "policySets";
+ String MUTUALLY_EXCLUSIVE = "mutuallyExclusive";
String ALWAYS_PROVIDES = "alwaysProvides";
String MAY_PROVIDE = "mayProvide";