summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorramkumar <ramkumar@13f79535-47bb-0310-9956-ffa450edef68>2009-11-26 11:04:47 +0000
committerramkumar <ramkumar@13f79535-47bb-0310-9956-ffa450edef68>2009-11-26 11:04:47 +0000
commitad28106fd44563942efb894d6ba858c88440f6df (patch)
tree82894f2e6ec82b05e6c0e0999e5de3f0516f1fb3
parentfec19c7e06243299009609127df4cef2796a4d43 (diff)
Fixes to add validation for POJO_10006
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@884505 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/ContributionContentProcessor.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/ContributionContentProcessor.java b/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/ContributionContentProcessor.java
index 09a6b7dd80..2331edf3f8 100644
--- a/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/ContributionContentProcessor.java
+++ b/sca-java-2.x/trunk/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/impl/ContributionContentProcessor.java
@@ -33,6 +33,7 @@ import org.apache.tuscany.sca.contribution.DefaultExport;
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 @@ public class ContributionContentProcessor implements ExtendedURLArtifactProcesso
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) {