Author: ramkumar
Date: Mon Nov 16 11:57:01 2009
New Revision: 880717

URL: http://svn.apache.org/viewvc?rev=880717&view=rev
Log:
Fixes for validating uniqueness in <import.java> and <export.java>

Modified:
    
tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java
    
tuscany/java/sca/modules/contribution/src/main/resources/contribution-xml-validation-messages.properties

Modified: 
tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java?rev=880717&r1=880716&r2=880717&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java
 (original)
+++ 
tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/xml/ContributionMetadataProcessor.java
 Mon Nov 16 11:57:01 2009
@@ -34,6 +34,8 @@
 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 @@
                             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 <import.java/> element MUST be
+                                       // unique across all other 
<import.java/> 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 <export.java/> element MUST be
+                                       // unique across all other 
<export.java/> 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);

Modified: 
tuscany/java/sca/modules/contribution/src/main/resources/contribution-xml-validation-messages.properties
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution/src/main/resources/contribution-xml-validation-messages.properties?rev=880717&r1=880716&r2=880717&view=diff
==============================================================================
--- 
tuscany/java/sca/modules/contribution/src/main/resources/contribution-xml-validation-messages.properties
 (original)
+++ 
tuscany/java/sca/modules/contribution/src/main/resources/contribution-xml-validation-messages.properties
 Mon Nov 16 11:57:01 2009
@@ -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 
<import.java/> element is not unique across all other <import.java/> elements 
within the contribution.
+DuplicateJavaExports = The value of the @package attribute on the 
<export.java/> element is not unique across all other <export.java/> elements 
within the contribution.


Reply via email to