From 815e37e687668f4122a5ace455c2d88a4b922775 Mon Sep 17 00:00:00 2001 From: slaws Date: Wed, 11 Nov 2009 15:35:43 +0000 Subject: Add test for non-unique intent qualifier - POL-3005 git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@834913 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/tuscany/sca/policy/xml/IntentProcessor.java | 14 +++++++++++++- .../policy/xml/policy-xml-validation-messages.properties | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'java') diff --git a/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentProcessor.java b/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentProcessor.java index 49960cf6e8..12767ed55c 100644 --- a/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentProcessor.java +++ b/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/policy/xml/IntentProcessor.java @@ -159,7 +159,19 @@ public class IntentProcessor extends BaseStAXArtifactProcessor implements StAXAr intent.getName().toString()); } } - intent.getQualifiedIntents().add(qualified); + + // check that the qualifier is unique + if ( !intent.getQualifiedIntents().contains(qualified)){ + intent.getQualifiedIntents().add(qualified); + } else { + Monitor.error(context.getMonitor(), + this, + Messages.RESOURCE_BUNDLE, + "QualifierIsNotUnique", + intent.getName().toString(), + qualifierName); + } + qualified.setQualifiableIntent(intent); current = qualified; } diff --git a/java/sca/modules/assembly-xml/src/main/resources/org/apache/tuscany/sca/policy/xml/policy-xml-validation-messages.properties b/java/sca/modules/assembly-xml/src/main/resources/org/apache/tuscany/sca/policy/xml/policy-xml-validation-messages.properties index 6fb369f73f..105158b986 100644 --- a/java/sca/modules/assembly-xml/src/main/resources/org/apache/tuscany/sca/policy/xml/policy-xml-validation-messages.properties +++ b/java/sca/modules/assembly-xml/src/main/resources/org/apache/tuscany/sca/policy/xml/policy-xml-validation-messages.properties @@ -43,4 +43,5 @@ IntentMapProvidesMissing = Required attribute "provides" missing for IntentMap i QualifierNameMissing = Required attribute "name" missing for qualifier definition in PolicySet : {0} ConstrainedTypeNotFound = Unable to find the extension type {0} constrained by intent: {1} MultipleDefaultQualifiers = [POL30004] Intent {0} has more than one qualifier marked as the default qualifier +QualifierIsNotUnique = [POL30005] The intent {0} has more than one qualifier with the name {1} -- cgit v1.2.3