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) {