diff options
author | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2008-07-08 23:04:16 +0000 |
---|---|---|
committer | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2008-07-08 23:04:16 +0000 |
commit | 755737f1cef0f827f6c87c3d55560adebdb776f0 (patch) | |
tree | 2cba3090f524805b9e7a75efd06b2168b44b57d0 /java/sca/modules/definitions-xml | |
parent | a54ec2b53c3e478c61bc5c71548321ba33017773 (diff) |
TUSCANY-2354 - Applying a slightly modified version of Ram's patch to get a sucessful build
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@675018 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
2 files changed, 36 insertions, 12 deletions
diff --git a/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsProcessor.java b/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsProcessor.java index 6958501922..7709a9577e 100644 --- a/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsProcessor.java +++ b/java/sca/modules/definitions-xml/src/main/java/org/apache/tuscany/sca/definitions/xml/SCADefinitionsProcessor.java @@ -22,6 +22,9 @@ package org.apache.tuscany.sca.definitions.xml; import static javax.xml.stream.XMLStreamConstants.END_ELEMENT; import static javax.xml.stream.XMLStreamConstants.START_ELEMENT; +import java.util.List; +import java.util.ArrayList; + import javax.xml.namespace.QName; import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamException; @@ -40,6 +43,7 @@ import org.apache.tuscany.sca.definitions.impl.SCADefinitionsImpl; import org.apache.tuscany.sca.policy.Intent; import org.apache.tuscany.sca.policy.IntentAttachPointType; import org.apache.tuscany.sca.policy.PolicySet; +import org.apache.tuscany.sca.policy.ProfileIntent; import org.apache.tuscany.sca.policy.QualifiedIntent; import org.apache.tuscany.sca.monitor.Monitor; @@ -173,12 +177,28 @@ public class SCADefinitionsProcessor extends BaseStAXArtifactProcessor implement // start by adding all of the top level artifacts into the resolver as there // are many cross artifact references in a definitions file and we don't want // to be dependent on the order things appear + + List<Intent> simpleIntents = new ArrayList<Intent>(); + List<ProfileIntent> profileIntents = new ArrayList<ProfileIntent>(); + List<QualifiedIntent> qualifiedIntents = new ArrayList<QualifiedIntent>(); + List<PolicySet> simplePolicySets = new ArrayList<PolicySet>(); + List<PolicySet> referredPolicySets = new ArrayList<PolicySet>(); for (Intent policyIntent : scaDefns.getPolicyIntents()) { - resolver.addModel(policyIntent); - } + if (policyIntent instanceof ProfileIntent) + profileIntents.add((ProfileIntent)policyIntent); + else if (policyIntent instanceof QualifiedIntent) + qualifiedIntents.add((QualifiedIntent)policyIntent); + else simpleIntents.add(policyIntent); + + resolver.addModel(policyIntent); + } for (PolicySet policySet : scaDefns.getPolicySets()) { + if (policySet.getReferencedPolicySets().isEmpty()) + simplePolicySets.add(policySet); + else referredPolicySets.add(policySet); + resolver.addModel(policySet); } @@ -193,15 +213,20 @@ public class SCADefinitionsProcessor extends BaseStAXArtifactProcessor implement // now resolve everything to ensure that any references between // artifacts are satisfied - for (int count = 0, size = scaDefns.getPolicyIntents().size(); count < size; count++) { - Intent intent = scaDefns.getPolicyIntents().get(count); - extensionProcessor.resolve(intent, resolver); - } + for (Intent policyIntent : simpleIntents) + extensionProcessor.resolve(policyIntent, resolver); - for (int count = 0, size = scaDefns.getPolicySets().size(); count < size; count++) { - PolicySet policySet = scaDefns.getPolicySets().get(count); + for (ProfileIntent policyIntent : profileIntents) + extensionProcessor.resolve(policyIntent, resolver); + + for (QualifiedIntent policyIntent : qualifiedIntents) + extensionProcessor.resolve(policyIntent, resolver); + + for (PolicySet policySet : simplePolicySets) extensionProcessor.resolve(policySet, resolver); - } + + for (PolicySet policySet : referredPolicySets) + extensionProcessor.resolve(policySet, resolver); for (int count = 0, size = scaDefns.getBindingTypes().size(); count < size; count++) { IntentAttachPointType bindingType = scaDefns.getBindingTypes().get(count); diff --git a/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/test_definitions.xml b/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/test_definitions.xml index e01a29863a..6750944697 100644 --- a/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/test_definitions.xml +++ b/java/sca/modules/definitions-xml/src/test/resources/org/apache/tuscany/sca/definitions/test_definitions.xml @@ -30,8 +30,7 @@ <!-- Intents and Policysets to assume targetnamespace -->
<intent name="TestIntentOne"
- constrains="sca:binding"
- >
+ constrains="sca:binding">
<description>
Test Intent
</description>
@@ -39,7 +38,7 @@ <intent name="TestIntentTwo"
constrains="sca:binding"
- requires="TestIntentOne">
+ requires="test:TestIntentOne">
<description>
Protect messages from unauthorized reading or modification
</description>
|