From 81d3b65d274e57f93a5dc769be126d35aa3ac652 Mon Sep 17 00:00:00 2001 From: ramkumar Date: Mon, 16 Nov 2009 11:57:01 +0000 Subject: Fixes for validating uniqueness in and git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@880717 13f79535-47bb-0310-9956-ffa450edef68 --- .../xml/ContributionMetadataProcessor.java | 26 +++++++++++++++++++++- ...contribution-xml-validation-messages.properties | 3 ++- 2 files changed, 27 insertions(+), 2 deletions(-) (limited to 'java') diff --git a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java index 4700041775..eebc49edbb 100644 --- a/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java +++ b/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java @@ -34,6 +34,8 @@ import org.apache.tuscany.sca.contribution.ContributionFactory; import org.apache.tuscany.sca.contribution.ContributionMetadata; import org.apache.tuscany.sca.contribution.Export; import org.apache.tuscany.sca.contribution.Import; +import org.apache.tuscany.sca.contribution.java.JavaImport; +import org.apache.tuscany.sca.contribution.java.JavaExport; import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor; import org.apache.tuscany.sca.contribution.processor.ContributionReadException; import org.apache.tuscany.sca.contribution.processor.ContributionResolveException; @@ -157,8 +159,30 @@ public class ContributionMetadataProcessor extends BaseStAXArtifactProcessor imp Object extension = extensionProcessor.read(reader, context); if (extension != null && contribution != null) { if (extension instanceof Import) { - contribution.getImports().add((Import)extension); + // The value of the @package attribute on the element MUST be + // unique across all other elements within the contribution. + if (extension instanceof JavaImport) { + for (Import imports : contribution.getImports()) { + if (imports instanceof JavaImport) { + if (((JavaImport)extension).getPackage().equals(((JavaImport) imports).getPackage())) { + error(context.getMonitor(), "DuplicateJavaImports", reader); + } + } + } + } + contribution.getImports().add((Import)extension); } else if (extension instanceof Export) { + // The value of the @package attribute on the element MUST be + // unique across all other elements within the contribution. + if (extension instanceof JavaExport) { + for (Export exports : contribution.getExports()) { + if (exports instanceof JavaExport) { + if (((JavaExport)extension).getPackage().equals(((JavaExport) exports).getPackage())) { + error(context.getMonitor(), "DuplicateJavaExports", reader); + } + } + } + } contribution.getExports().add((Export)extension); } else { contribution.getExtensions().add(extension); diff --git a/java/sca/modules/contribution/src/main/resources/contribution-xml-validation-messages.properties b/java/sca/modules/contribution/src/main/resources/contribution-xml-validation-messages.properties index 4827fd5e94..2c39055e4b 100644 --- a/java/sca/modules/contribution/src/main/resources/contribution-xml-validation-messages.properties +++ b/java/sca/modules/contribution/src/main/resources/contribution-xml-validation-messages.properties @@ -21,4 +21,5 @@ XMLStreamException = XMLStreamException occured due to : {0} IOException = IOException occured due to : {0} AttributeCompositeMissing = Attribute 'composite' is missing - +DuplicateJavaImports = The value of the @package attribute on the element is not unique across all other elements within the contribution. +DuplicateJavaExports = The value of the @package attribute on the element is not unique across all other elements within the contribution. -- cgit v1.2.3