summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/assembly-xml/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/trunk/modules/assembly-xml/src/main')
-rw-r--r--sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsProcessor.java23
1 files changed, 15 insertions, 8 deletions
diff --git a/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsProcessor.java b/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsProcessor.java
index 006b80ee31..0213713ced 100644
--- a/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsProcessor.java
+++ b/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsProcessor.java
@@ -46,6 +46,7 @@ import org.apache.tuscany.sca.definitions.Definitions;
import org.apache.tuscany.sca.definitions.DefinitionsFactory;
import org.apache.tuscany.sca.monitor.Monitor;
import org.apache.tuscany.sca.policy.BindingType;
+import org.apache.tuscany.sca.policy.ExternalAttachment;
import org.apache.tuscany.sca.policy.ImplementationType;
import org.apache.tuscany.sca.policy.Intent;
import org.apache.tuscany.sca.policy.IntentMap;
@@ -118,6 +119,8 @@ public class DefinitionsProcessor extends BaseStAXArtifactProcessor implements S
definitions.getBindingTypes().add((BindingType)extension);
} else if (extension instanceof ImplementationType) {
definitions.getImplementationTypes().add((ImplementationType)extension);
+ } else if (extension instanceof ExternalAttachment) {
+ definitions.getExternalAttachments().add((ExternalAttachment)extension);
}
}
break;
@@ -250,14 +253,17 @@ public class DefinitionsProcessor extends BaseStAXArtifactProcessor implements S
// Flat intentMap structure by creating a policySet for each one
List<PolicySet> copy = new ArrayList<PolicySet>(scaDefns.getPolicySets());
for (PolicySet policySet : copy) {
- //[lresende] Do we need to remove the current policySet and just include the flat one based on qualifiers ?
- //If we don't, the policy is being resolved to the one that has intentMap and no direct concrete policies
- boolean remove = false;
+ // Add PolicySets to model based on qualified intents. The policy builder will be responsible for assigning
+ // the correct policy set.
+ // For example, ManagedTransactionPolicySet will result in:
+ // ManagedTransactionPolicySet (original PolicySet, must exist for matching at build time)
+ // ManagedTransactionPolicySet.managedTransaction.global
+ // ManagedTransactionPolicySet.managedTransaction.local
//process intent maps
for(IntentMap intentMap : policySet.getIntentMaps()) {
for(Qualifier qualifier : intentMap.getQualifiers()) {
- remove = true;
+ // remove = true;
PolicySet qualifiedPolicySet = policyFactory.createPolicySet();
qualifiedPolicySet.setAppliesTo(policySet.getAppliesTo());
@@ -265,7 +271,8 @@ public class DefinitionsProcessor extends BaseStAXArtifactProcessor implements S
qualifiedPolicySet.setAttachTo(policySet.getAttachTo());
qualifiedPolicySet.setAttachToXPathExpression(policySet.getAttachToXPathExpression());
- qualifiedPolicySet.setName(qualifier.getIntent().getName());
+ String qualifiedLocalName = policySet.getName().getLocalPart() + "." + qualifier.getIntent().getName().getLocalPart();
+ qualifiedPolicySet.setName(new QName(policySet.getName().getNamespaceURI(), qualifiedLocalName));
qualifiedPolicySet.getProvidedIntents().clear();
qualifiedPolicySet.getProvidedIntents().add(qualifier.getIntent());
qualifiedPolicySet.getPolicies().clear();
@@ -275,9 +282,9 @@ public class DefinitionsProcessor extends BaseStAXArtifactProcessor implements S
}
}
- if(remove) {
- scaDefns.getPolicySets().remove(policySet);
- }
+// if(remove) {
+// scaDefns.getPolicySets().remove(policySet);
+// }
}
}