Author: ramkumar
Date: Thu Nov 26 11:04:47 2009
New Revision: 884505

URL: http://svn.apache.org/viewvc?rev=884505&view=rev
Log:
Fixes to add validation for POJO_10006

Modified:
    
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/ContributionContentProcessor.java

Modified: 
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/ContributionContentProcessor.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/ContributionContentProcessor.java?rev=884505&r1=884504&r2=884505&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/ContributionContentProcessor.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/ContributionContentProcessor.java
 Thu Nov 26 11:04:47 2009
@@ -33,6 +33,7 @@
 import org.apache.tuscany.sca.contribution.DefaultImport;
 import org.apache.tuscany.sca.contribution.Export;
 import org.apache.tuscany.sca.contribution.Import;
+import org.apache.tuscany.sca.contribution.java.JavaExport;
 import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
 import 
org.apache.tuscany.sca.contribution.processor.ContributionResolveException;
 import 
org.apache.tuscany.sca.contribution.processor.ExtendedURLArtifactProcessor;
@@ -227,7 +228,23 @@
                if( !preResolved ) preResolve( contribution, resolver, context);
                ModelResolver contributionResolver = 
contribution.getModelResolver();
        
-               // Resolve all artifact models
+               // Validate Java Exports: [JCI100007] A Java package that is 
specified on an export 
+               // element MUST be contained within the contribution containing 
the export element.
+               for (Export export: contribution.getExports()) {
+                       if (export instanceof JavaExport) {
+                               boolean available = false;
+                               String packageName = 
((JavaExport)export).getPackage();
+                               for (Artifact artifact : 
contribution.getArtifacts()) {
+                                       if 
(packageName.equals(artifact.getURI().replace("/", ".")))
+                                                       available = true;
+                               }
+                               if (! available)
+                                       throw new 
ContributionResolveException("[JCI100007] A Java package "+ packageName +" that 
is specified on an export " +
+                                                       "element MUST be 
contained within the contribution containing the export element.");
+                       }
+               }               
+               
+               // Resolve all artifact models
                for (Artifact artifact : contribution.getArtifacts()) {
                    Object model = artifact.getModel();
                    if (model != null) {


Reply via email to