Author: lresende
Date: Thu Feb 25 04:27:14 2010
New Revision: 916114
URL: http://svn.apache.org/viewvc?rev=916114&view=rev
Log:
TUSCANY-3463 - Flatting the intentMaps as policySets to get them resolved
properly
Modified:
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsProcessor.java
Modified:
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsProcessor.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsProcessor.java?rev=916114&r1=916113&r2=916114&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsProcessor.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/DefinitionsProcessor.java
Thu Feb 25 04:27:14 2010
@@ -40,15 +40,18 @@
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
import
org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.core.FactoryExtensionPoint;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
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.ImplementationType;
import org.apache.tuscany.sca.policy.Intent;
+import org.apache.tuscany.sca.policy.IntentMap;
+import org.apache.tuscany.sca.policy.PolicyFactory;
import org.apache.tuscany.sca.policy.PolicySet;
+import org.apache.tuscany.sca.policy.Qualifier;
/**
* Processor for SCA Definitions
@@ -60,6 +63,7 @@
private StAXArtifactProcessorExtensionPoint processors;
private StAXArtifactProcessor<Object> extensionProcessor;
private DefinitionsFactory definitionsFactory;
+ private PolicyFactory policyFactory;
public static final String SCA11_NS =
"http://docs.oasis-open.org/ns/opencsa/sca/200912";
public static final String BINDING = "binding";
@@ -76,7 +80,7 @@
this.processors =
registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
FactoryExtensionPoint factoryExtensionPoint =
registry.getExtensionPoint(FactoryExtensionPoint.class);
this.definitionsFactory =
factoryExtensionPoint.getFactory(DefinitionsFactory.class);
-
+ this.policyFactory =
factoryExtensionPoint.getFactory(PolicyFactory.class);
}
public Definitions read(XMLStreamReader reader, ProcessorContext context)
throws ContributionReadException, XMLStreamException {
@@ -241,6 +245,33 @@
implementationType.getType().toString());
}
}
+
+
+ // 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 ?
+ //Maybe not, as this would resolve to explicitly attached
policySet
+
+ //process intent maps
+ for(IntentMap intentMap : policySet.getIntentMaps()) {
+ for(Qualifier qualifier : intentMap.getQualifiers()) {
+ PolicySet qualifiedPolicySet =
policyFactory.createPolicySet();
+ qualifiedPolicySet.setAppliesTo(policySet.getAppliesTo());
+
qualifiedPolicySet.setAppliesToXPathExpression(policySet.getAttachToXPathExpression());
+ qualifiedPolicySet.setAttachTo(policySet.getAttachTo());
+
qualifiedPolicySet.setAttachToXPathExpression(policySet.getAttachToXPathExpression());
+
+
qualifiedPolicySet.setName(qualifier.getIntent().getName());
+ qualifiedPolicySet.getProvidedIntents().clear();
+
qualifiedPolicySet.getProvidedIntents().add(qualifier.getIntent());
+ qualifiedPolicySet.getPolicies().clear();
+
qualifiedPolicySet.getPolicies().addAll(qualifier.getPolicies());
+
+ scaDefns.getPolicySets().add(qualifiedPolicySet);
+ }
+ }
+ }
}
public QName getArtifactType() {