You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/07/22 23:54:39 UTC
svn commit: r558558 - in /incubator/tuscany/java/sca/modules:
assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/
contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/
contribution-impl/src/main/java/org/apache/tuscany/s...
Author: jsdelfino
Date: Sun Jul 22 14:54:31 2007
New Revision: 558558
URL: http://svn.apache.org/viewvc?view=rev&rev=558558
Log:
Setting the proper import/export hierarchy to allow for extensibility and addition of new import/export types on top of the namespace based import/export.
Added:
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/NamespaceExportImpl.java
- copied, changed from r558531, incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionExportImpl.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/NamespaceImportImpl.java
- copied, changed from r558531, incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImportImpl.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/NamespaceExportModelResolverImpl.java
- copied, changed from r558531, incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ContributionExportModelResolverImpl.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/NamespaceImportAllModelResolverImpl.java
- copied, changed from r558531, incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ContributionImportAnyModelResolverImpl.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/NamespaceImportModelResolverImpl.java
- copied, changed from r558531, incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ContributionImportModelResolverImpl.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Export.java
- copied, changed from r558531, incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionExport.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Import.java
- copied, changed from r558531, incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionImport.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/NamespaceExport.java (with props)
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/NamespaceImport.java (with props)
Removed:
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionExportImpl.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImportImpl.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ContributionExportModelResolverImpl.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ContributionImportAnyModelResolverImpl.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ContributionImportModelResolverImpl.java
Modified:
incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeModelResolver.java
incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeModelResolver.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionFactoryImpl.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImpl.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataLoaderImpl.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionExport.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionFactory.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionImport.java
incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java
incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/XSDModelResolver.java
Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeModelResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeModelResolver.java?view=diff&rev=558558&r1=558557&r2=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeModelResolver.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeModelResolver.java Sun Jul 22 14:54:31 2007
@@ -21,7 +21,8 @@
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.ContributionImport;
+import org.apache.tuscany.sca.contribution.Import;
+import org.apache.tuscany.sca.contribution.NamespaceImport;
import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver;
/**
@@ -38,15 +39,16 @@
private Composite resolveImportedModel(Composite unresolved) {
Composite resolved = unresolved;
String namespace = unresolved.getName().getNamespaceURI();
- if (namespace != null && namespace.length() > 0) {
- for (ContributionImport contributionImport : this.contribution.getImports()) {
- if (contributionImport.getNamespace().equals(namespace)) {
+ for (Import import_ : this.contribution.getImports()) {
+ if (import_ instanceof NamespaceImport) {
+ NamespaceImport namespaceImport = (NamespaceImport)import_;
+ if (namespaceImport.getNamespace().equals(namespace)) {
// Delegate the resolution to the import resolver
- resolved = contributionImport.getModelResolver().resolveModel(Composite.class, unresolved);
+ resolved = namespaceImport.getModelResolver().resolveModel(Composite.class, unresolved);
// If resolved... then we are done
- if(unresolved.isUnresolved() == false) {
+ if(resolved.isUnresolved() == false) {
break;
}
}
Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeModelResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeModelResolver.java?view=diff&rev=558558&r1=558557&r2=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeModelResolver.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/ConstrainingTypeModelResolver.java Sun Jul 22 14:54:31 2007
@@ -21,7 +21,8 @@
import org.apache.tuscany.sca.assembly.ConstrainingType;
import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.ContributionImport;
+import org.apache.tuscany.sca.contribution.Import;
+import org.apache.tuscany.sca.contribution.NamespaceImport;
import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver;
/**
@@ -38,15 +39,16 @@
private ConstrainingType resolveImportedModel(ConstrainingType unresolved) {
ConstrainingType resolved = unresolved;
String namespace = unresolved.getName().getNamespaceURI();
- if (namespace != null && namespace.length() > 0) {
- for (ContributionImport contributionImport : this.contribution.getImports()) {
- if (contributionImport.getNamespace().equals(namespace)) {
+ for (Import import_ : this.contribution.getImports()) {
+ if (import_ instanceof NamespaceImport) {
+ NamespaceImport namespaceImport = (NamespaceImport)import_;
+ if (namespaceImport.getNamespace().equals(namespace)) {
// Delegate the resolution to the import resolver
- resolved = contributionImport.getModelResolver().resolveModel(ConstrainingType.class, unresolved);
+ resolved = import_.getModelResolver().resolveModel(ConstrainingType.class, unresolved);
// If resolved... then we are done
- if(unresolved.isUnresolved() == false) {
+ if(resolved.isUnresolved() == false) {
break;
}
}
Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionFactoryImpl.java?view=diff&rev=558558&r1=558557&r2=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionFactoryImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionFactoryImpl.java Sun Jul 22 14:54:31 2007
@@ -24,6 +24,8 @@
import org.apache.tuscany.sca.contribution.ContributionFactory;
import org.apache.tuscany.sca.contribution.ContributionImport;
import org.apache.tuscany.sca.contribution.DeployedArtifact;
+import org.apache.tuscany.sca.contribution.NamespaceExport;
+import org.apache.tuscany.sca.contribution.NamespaceImport;
/**
@@ -42,10 +44,18 @@
}
public ContributionImport createContributionImport() {
- return new ContributionImportImpl();
+ return new NamespaceImportImpl();
}
public ContributionExport createContributionExport() {
- return new ContributionExportImpl();
+ return new NamespaceExportImpl();
+ }
+
+ public NamespaceImport createNamespaceImport() {
+ return new NamespaceImportImpl();
+ }
+
+ public NamespaceExport createNamespaceExport() {
+ return new NamespaceExportImpl();
}
}
Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImpl.java?view=diff&rev=558558&r1=558557&r2=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImpl.java Sun Jul 22 14:54:31 2007
@@ -24,8 +24,8 @@
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.ContributionExport;
-import org.apache.tuscany.sca.contribution.ContributionImport;
+import org.apache.tuscany.sca.contribution.Export;
+import org.apache.tuscany.sca.contribution.Import;
import org.apache.tuscany.sca.contribution.DeployedArtifact;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
@@ -35,8 +35,8 @@
* @version $Rev: 531146 $ $Date: 2007-04-21 22:40:50 -0700 (Sat, 21 Apr 2007) $
*/
public class ContributionImpl extends ArtifactImpl implements Contribution {
- private List<ContributionExport> exports = new ArrayList<ContributionExport>();
- private List<ContributionImport> imports = new ArrayList<ContributionImport>();
+ private List<Export> exports = new ArrayList<Export>();
+ private List<Import> imports = new ArrayList<Import>();
private List<Composite> deployables = new ArrayList<Composite>();
private ModelResolver modelResolver;
@@ -48,11 +48,11 @@
protected ContributionImpl() {
}
- public List<ContributionExport> getExports() {
+ public List<Export> getExports() {
return exports;
}
- public List<ContributionImport> getImports() {
+ public List<Import> getImports() {
return imports;
}
Copied: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/NamespaceExportImpl.java (from r558531, incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionExportImpl.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/NamespaceExportImpl.java?view=diff&rev=558558&p1=incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionExportImpl.java&r1=558531&p2=incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/NamespaceExportImpl.java&r2=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionExportImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/NamespaceExportImpl.java Sun Jul 22 14:54:31 2007
@@ -20,6 +20,7 @@
package org.apache.tuscany.sca.contribution.impl;
import org.apache.tuscany.sca.contribution.ContributionExport;
+import org.apache.tuscany.sca.contribution.NamespaceExport;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
/**
@@ -27,11 +28,11 @@
*
* @version $Rev$ $Date$
*/
-public class ContributionExportImpl implements ContributionExport {
+public class NamespaceExportImpl implements NamespaceExport, ContributionExport {
private String namespace; // The namespace to be imported
private ModelResolver modelResolver;
- protected ContributionExportImpl() {
+ protected NamespaceExportImpl() {
}
public String getNamespace() {
Copied: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/NamespaceImportImpl.java (from r558531, incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImportImpl.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/NamespaceImportImpl.java?view=diff&rev=558558&p1=incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImportImpl.java&r1=558531&p2=incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/NamespaceImportImpl.java&r2=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/ContributionImportImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/impl/NamespaceImportImpl.java Sun Jul 22 14:54:31 2007
@@ -20,6 +20,7 @@
package org.apache.tuscany.sca.contribution.impl;
import org.apache.tuscany.sca.contribution.ContributionImport;
+import org.apache.tuscany.sca.contribution.NamespaceImport;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
/**
@@ -27,12 +28,12 @@
*
* @version $Rev: 527398 $ $Date: 2007-04-10 23:43:31 -0700 (Tue, 10 Apr 2007) $
*/
-public class ContributionImportImpl implements ContributionImport {
+public class NamespaceImportImpl implements NamespaceImport, ContributionImport {
private String namespace; // The namespace to be imported
private String location; // Optional location to hint the where it should be imported
private ModelResolver modelResolver;
- protected ContributionImportImpl() {
+ protected NamespaceImportImpl() {
}
public String getLocation() {
Copied: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/NamespaceExportModelResolverImpl.java (from r558531, incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ContributionExportModelResolverImpl.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/NamespaceExportModelResolverImpl.java?view=diff&rev=558558&p1=incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ContributionExportModelResolverImpl.java&r1=558531&p2=incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/NamespaceExportModelResolverImpl.java&r2=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ContributionExportModelResolverImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/NamespaceExportModelResolverImpl.java Sun Jul 22 14:54:31 2007
@@ -19,22 +19,22 @@
package org.apache.tuscany.sca.contribution.resolver.impl;
-import org.apache.tuscany.sca.contribution.ContributionExport;
+import org.apache.tuscany.sca.contribution.NamespaceExport;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
/**
- * A model resolver implementation, that considers Contribution Exports.
+ * A model resolver implementation for a namespace export.
*
* @version $Rev$ $Date$
*/
-public class ContributionExportModelResolverImpl implements ModelResolver {
+public class NamespaceExportModelResolverImpl implements ModelResolver {
- private ContributionExport contributionExport;
+ private NamespaceExport namespaceExport;
private ModelResolver targetModelResolver;
- public ContributionExportModelResolverImpl(ContributionExport contributionExport, ModelResolver targetModelResolver) {
- this.contributionExport = contributionExport;
+ public NamespaceExportModelResolverImpl(NamespaceExport namespaceExport, ModelResolver targetModelResolver) {
+ this.namespaceExport = namespaceExport;
this.targetModelResolver = targetModelResolver;
}
@@ -47,6 +47,7 @@
}
public <T> T resolveModel(Class<T> modelClass, T unresolved) {
+
// Delegate to the model resolver of the contribution
return targetModelResolver.resolveModel(modelClass, unresolved);
}
Copied: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/NamespaceImportAllModelResolverImpl.java (from r558531, incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ContributionImportAnyModelResolverImpl.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/NamespaceImportAllModelResolverImpl.java?view=diff&rev=558558&p1=incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ContributionImportAnyModelResolverImpl.java&r1=558531&p2=incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/NamespaceImportAllModelResolverImpl.java&r2=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ContributionImportAnyModelResolverImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/NamespaceImportAllModelResolverImpl.java Sun Jul 22 14:54:31 2007
@@ -19,26 +19,27 @@
package org.apache.tuscany.sca.contribution.resolver.impl;
-import java.util.Map;
+import java.util.Collection;
import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.ContributionExport;
-import org.apache.tuscany.sca.contribution.ContributionImport;
+import org.apache.tuscany.sca.contribution.Export;
+import org.apache.tuscany.sca.contribution.NamespaceExport;
+import org.apache.tuscany.sca.contribution.NamespaceImport;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
/**
- * A model resolver implementation, that consider Contribution Imports in any contribution
+ * A model resolver implementation that considers Exports in any available contribution
*
* @version $Rev: 548560 $ $Date: 2007-06-18 19:25:19 -0700 (Mon, 18 Jun 2007) $
*/
-public class ContributionImportAnyModelResolverImpl implements ModelResolver {
+public class NamespaceImportAllModelResolverImpl implements ModelResolver {
- private ContributionImport contributionImport;
- private Map<String, Contribution> contributionRegistry;
+ private NamespaceImport namespaceImport;
+ private Collection<Contribution> contributions;
- public ContributionImportAnyModelResolverImpl(ContributionImport contributionImport, Map<String, Contribution> contributionRegistry) {
- this.contributionImport = contributionImport;
- this.contributionRegistry = contributionRegistry;
+ public NamespaceImportAllModelResolverImpl(NamespaceImport namespaceImport, Collection<Contribution> contributions) {
+ this.namespaceImport = namespaceImport;
+ this.contributions = contributions;
}
public void addModel(Object resolved) {
@@ -50,17 +51,29 @@
}
public <T> T resolveModel(Class<T> modelClass, T unresolved) {
- // This needs to delegate to the matching ContributionExportModelResolver
- // from the contribution matching the import's location URI, or a ModelResolver
- // that goes over all exports with a matching namespace if there is no URI
-
+
+ //TODO optimize and cache results of the resolution later
+
+ // Go over all available contributions
Object resolved = null;
- for (Contribution contribution : contributionRegistry.values()) {
- for (ContributionExport contributionExport : contribution.getExports()) {
- if (contributionImport.getNamespace().equals(contributionExport.getNamespace())) {
- resolved = contributionExport.getModelResolver().resolveModel(modelClass, unresolved);
+ for (Contribution contribution : contributions) {
+
+ // Go over all exports in the contribution
+ for (Export export : contribution.getExports()) {
+ if (export instanceof NamespaceExport) {
+ NamespaceExport namespaceExport = (NamespaceExport)export;
+ if (namespaceImport.getNamespace().equals(namespaceExport.getNamespace())) {
+ Object r = namespaceExport.getModelResolver().resolveModel(modelClass, unresolved);
+ if (r != null) {
+ //FIXME we should test the unresolved flag instead
+ resolved = r;
+ break;
+ }
+ }
}
}
+ if (resolved != null)
+ break;
}
if (resolved != null) {
Copied: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/NamespaceImportModelResolverImpl.java (from r558531, incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ContributionImportModelResolverImpl.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/NamespaceImportModelResolverImpl.java?view=diff&rev=558558&p1=incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ContributionImportModelResolverImpl.java&r1=558531&p2=incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/NamespaceImportModelResolverImpl.java&r2=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/ContributionImportModelResolverImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/resolver/impl/NamespaceImportModelResolverImpl.java Sun Jul 22 14:54:31 2007
@@ -19,21 +19,21 @@
package org.apache.tuscany.sca.contribution.resolver.impl;
-import org.apache.tuscany.sca.contribution.ContributionImport;
+import org.apache.tuscany.sca.contribution.NamespaceImport;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
/**
- * A model resolver implementation, that considers Contribution Imports.
+ * A model resolver implementation for a namespace Import.
*
* @version $Rev$ $Date$
*/
-public class ContributionImportModelResolverImpl implements ModelResolver {
+public class NamespaceImportModelResolverImpl implements ModelResolver {
- private ContributionImport contributionImport;
+ private NamespaceImport namespaceImport;
private ModelResolver targetModelResolver;
- public ContributionImportModelResolverImpl(ContributionImport contributionImport, ModelResolver targetModelResolver) {
- this.contributionImport = contributionImport;
+ public NamespaceImportModelResolverImpl(NamespaceImport namespaceImport, ModelResolver targetModelResolver) {
+ this.namespaceImport = namespaceImport;
this.targetModelResolver = targetModelResolver;
}
@@ -47,9 +47,9 @@
public <T> T resolveModel(Class<T> modelClass, T unresolved) {
- // This needs to delegate to the matching ContributionExportModelResolver
- // from the contribution matching the import's location URI, or a ModelResolver
- // that goes over all exports with a matching namespace if there is no URI
+ // Delegate to the given target model resolver. This is either the model resolver
+ // of a matching export, or a model resolver that considers matching exports
+ // from all available contributions
return targetModelResolver.resolveModel(modelClass, unresolved);
}
Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataLoaderImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataLoaderImpl.java?view=diff&rev=558558&r1=558557&r2=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataLoaderImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionMetadataLoaderImpl.java Sun Jul 22 14:54:31 2007
@@ -28,9 +28,9 @@
import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.ContributionExport;
import org.apache.tuscany.sca.contribution.ContributionFactory;
-import org.apache.tuscany.sca.contribution.ContributionImport;
+import org.apache.tuscany.sca.contribution.NamespaceExport;
+import org.apache.tuscany.sca.contribution.NamespaceImport;
import org.apache.tuscany.sca.contribution.service.ContributionMetadataLoader;
import org.apache.tuscany.sca.contribution.service.ContributionMetadataLoaderException;
@@ -104,20 +104,20 @@
throw new InvalidValueException("Attribute 'namespace' is missing");
}
String location = reader.getAttributeValue(null, "location");
- ContributionImport contributionImport = this.contributionFactory.createContributionImport();
+ NamespaceImport namespaceImport = this.contributionFactory.createNamespaceImport();
if (location != null) {
- contributionImport.setLocation(location);
+ namespaceImport.setLocation(location);
}
- contributionImport.setNamespace(ns);
- contribution.getImports().add(contributionImport);
+ namespaceImport.setNamespace(ns);
+ contribution.getImports().add(namespaceImport);
} else if (EXPORT.equals(element)) {
String ns = reader.getAttributeValue(null, "namespace");
if (ns == null) {
throw new InvalidValueException("Attribute 'namespace' is missing");
}
- ContributionExport contributionExport = this.contributionFactory.createContributionExport();
- contributionExport.setNamespace(ns);
- contribution.getExports().add(contributionExport);
+ NamespaceExport namespaceExport = this.contributionFactory.createNamespaceExport();
+ namespaceExport.setNamespace(ns);
+ contribution.getExports().add(namespaceExport);
}
break;
case XMLStreamConstants.END_ELEMENT:
Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java?view=diff&rev=558558&r1=558557&r2=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/ContributionServiceImpl.java Sun Jul 22 14:54:31 2007
@@ -36,24 +36,25 @@
import org.apache.tuscany.sca.assembly.AssemblyFactory;
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.ContributionExport;
import org.apache.tuscany.sca.contribution.ContributionFactory;
-import org.apache.tuscany.sca.contribution.ContributionImport;
import org.apache.tuscany.sca.contribution.DeployedArtifact;
+import org.apache.tuscany.sca.contribution.Export;
+import org.apache.tuscany.sca.contribution.Import;
+import org.apache.tuscany.sca.contribution.NamespaceExport;
+import org.apache.tuscany.sca.contribution.NamespaceImport;
import org.apache.tuscany.sca.contribution.processor.ContributionPostProcessor;
import org.apache.tuscany.sca.contribution.processor.PackageProcessor;
import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessor;
import org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver;
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint;
-import org.apache.tuscany.sca.contribution.resolver.impl.ContributionExportModelResolverImpl;
-import org.apache.tuscany.sca.contribution.resolver.impl.ContributionImportAnyModelResolverImpl;
-import org.apache.tuscany.sca.contribution.resolver.impl.ContributionImportModelResolverImpl;
+import org.apache.tuscany.sca.contribution.resolver.impl.NamespaceExportModelResolverImpl;
+import org.apache.tuscany.sca.contribution.resolver.impl.NamespaceImportAllModelResolverImpl;
+import org.apache.tuscany.sca.contribution.resolver.impl.NamespaceImportModelResolverImpl;
import org.apache.tuscany.sca.contribution.service.ContributionException;
import org.apache.tuscany.sca.contribution.service.ContributionMetadataLoaderException;
import org.apache.tuscany.sca.contribution.service.ContributionRepository;
import org.apache.tuscany.sca.contribution.service.ContributionService;
-import org.apache.tuscany.sca.contribution.service.util.ConcurrentHashList;
import org.apache.tuscany.sca.contribution.service.util.IOHelper;
/**
@@ -114,7 +115,6 @@
* Contribution registry This is a registry of processed Contributions indexed by URI
*/
private Map<String, Contribution> contributionRegistry = new ConcurrentHashMap<String, Contribution>();
- private ConcurrentHashList<String, Contribution> contributionByExportedNamespace = new ConcurrentHashList<String, Contribution>();
public ContributionServiceImpl(ContributionRepository repository,
PackageProcessor packageProcessor,
@@ -285,32 +285,43 @@
contribution.setLocation(locationURL.toString());
contribution.setModelResolver(modelResolver);
+ //TODO Move the following to the resolve method of the ArtifactProcessor
+ // responsible for handling <imports> and <exports>
+
// Initialize the contribution exports
- for (ContributionExport contributionExport: contribution.getExports()) {
- contributionExport.setModelResolver(new ContributionExportModelResolverImpl(contributionExport, modelResolver));
+ for (Export export: contribution.getExports()) {
+ if (export instanceof NamespaceExport) {
+ export.setModelResolver(new NamespaceExportModelResolverImpl((NamespaceExport)export, modelResolver));
+ }
}
// Initialize the contribution imports
- for (ContributionImport contributionImport: contribution.getImports()) {
-
- if (contributionImport.getLocation() != null && contribution.getLocation().length() > 0) {
+ for (Import import_: contribution.getImports()) {
+ if (import_ instanceof NamespaceImport) {
+ NamespaceImport namespaceImport = (NamespaceImport)import_;
+
// Find a matching contribution
- Contribution targetContribution = contributionRegistry.get(contributionImport.getLocation());
- if (targetContribution != null) {
- // Find a matching contribution export
- for (ContributionExport contributionExport: targetContribution.getExports()) {
- if (contributionImport.getNamespace().equals(contributionExport.getNamespace())) {
- contributionImport.setModelResolver(new ContributionImportModelResolverImpl(contributionImport, contributionExport.getModelResolver()));
- break;
+ if (namespaceImport.getLocation() != null) {
+ Contribution targetContribution = contributionRegistry.get(namespaceImport.getLocation());
+ if (targetContribution != null) {
+
+ // Find a matching contribution export
+ for (Export export: targetContribution.getExports()) {
+ if (export instanceof NamespaceExport) {
+ NamespaceExport namespaceExport = (NamespaceExport)export;
+ if (namespaceImport.getNamespace().equals(namespaceExport.getNamespace())) {
+ namespaceImport.setModelResolver(new NamespaceImportModelResolverImpl(namespaceImport, namespaceExport.getModelResolver()));
+ break;
+ }
+ }
}
}
- }
- }
-
- if (contributionImport.getModelResolver() == null) {
- // Find a matching in any contribution export
- contributionImport.setModelResolver(new ContributionImportAnyModelResolverImpl(contributionImport, contributionRegistry));
+ } else {
+ // Use a resolver that will consider all contributions
+ namespaceImport.setModelResolver(new NamespaceImportAllModelResolverImpl(namespaceImport, contributionRegistry.values()));
+
+ }
}
}
@@ -357,11 +368,6 @@
// store the contribution on the registry
this.contributionRegistry.put(contribution.getURI(), contribution);
-
- //store the contribution based on the namespaces being exported
- for (ContributionExport export : contribution.getExports()) {
- this.contributionByExportedNamespace.put(export.getNamespace(), contribution);
- }
return contribution;
}
Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java?view=diff&rev=558558&r1=558557&r2=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Contribution.java Sun Jul 22 14:54:31 2007
@@ -49,14 +49,14 @@
*
* @return The list of exported artifacts from this contribution
*/
- List<ContributionExport> getExports();
+ List<Export> getExports();
/**
* Get a list of imports based on the Contribution metadata sidefile
*
* @return The list of imported artifacts on this contribution
*/
- List<ContributionImport> getImports();
+ List<Import> getImports();
/**
* Get a list of deployables for the contribution based on the contribution metadata sidefile
Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionExport.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionExport.java?view=diff&rev=558558&r1=558557&r2=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionExport.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionExport.java Sun Jul 22 14:54:31 2007
@@ -19,43 +19,13 @@
package org.apache.tuscany.sca.contribution;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
/**
* The representation of an export for the contribution
- *
+ * @deprecated
+ *
* @version $Rev$ $Date$
*/
-public interface ContributionExport {
+public interface ContributionExport extends NamespaceExport {
- /**
- * Get Namespace that identifies the export
- *
- * @return The exported namespace
- */
- String getNamespace();
-
- /**
- * Set Namespace that identifies the export
- *
- * @param namespace The exported namespace
- */
- void setNamespace(String namespace);
-
- /**
- * Returns the model resolver for the models representing artifacts
- * made available by this export.
- *
- * @return The model resolver
- */
- ModelResolver getModelResolver();
-
- /**
- * Sets the model resolver for the models representing artifacts
- * made available by this export.
- *
- * @param modelResolver
- */
- void setModelResolver(ModelResolver modelResolver);
-
}
Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionFactory.java?view=diff&rev=558558&r1=558557&r2=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionFactory.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionFactory.java Sun Jul 22 14:54:31 2007
@@ -41,15 +41,30 @@
/**
* Create a contribution import model
- *
+ * @deprecated
* @return The new ContributionImport model object
*/
ContributionImport createContributionImport();
/**
* Create a contribution import model
- *
+ * @deprecated
* @return The new ContributoinExport object
*/
ContributionExport createContributionExport();
+
+ /**
+ * Create a namespace import model object
+ *
+ * @return The new NamespaceImport model object
+ */
+ NamespaceImport createNamespaceImport();
+
+ /**
+ * Create a namespace export model object
+ *
+ * @return The new NamespaceExport model object
+ */
+ NamespaceExport createNamespaceExport();
+
}
Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionImport.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionImport.java?view=diff&rev=558558&r1=558557&r2=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionImport.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionImport.java Sun Jul 22 14:54:31 2007
@@ -19,57 +19,13 @@
package org.apache.tuscany.sca.contribution;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
/**
* The representation of an import for the contribution
+ * @deprecated
*
* @version $Rev$ $Date$
*/
-public interface ContributionImport {
-
- /**
- * Get the location used to resolve the definitions for this import
- *
- * @return The import location
- */
- String getLocation();
-
- /**
- * Set the location used to resolve the definitions for this import
- *
- * @param location The import location
- */
- void setLocation(String location);
-
- /**
- * Get Namespace that identifies the import
- *
- * @return The namespace
- */
- String getNamespace();
-
- /**
- * Set Namespace that identifies the import
- *
- * @param namespace The namespace
- */
- void setNamespace(String namespace);
-
- /**
- * Returns the model resolver for the models representing artifacts
- * made available by this import.
- *
- * @return The model resolver
- */
- ModelResolver getModelResolver();
-
- /**
- * Sets the model resolver for the models representing artifacts
- * made available by this import.
- *
- * @param modelResolver The model resolver
- */
- void setModelResolver(ModelResolver modelResolver);
+public interface ContributionImport extends NamespaceImport {
}
Copied: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Export.java (from r558531, incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionExport.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Export.java?view=diff&rev=558558&p1=incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionExport.java&r1=558531&p2=incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Export.java&r2=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionExport.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Export.java Sun Jul 22 14:54:31 2007
@@ -22,26 +22,12 @@
import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
/**
- * The representation of an export for the contribution
+ * The representation of an export.
*
* @version $Rev$ $Date$
*/
-public interface ContributionExport {
+public interface Export {
- /**
- * Get Namespace that identifies the export
- *
- * @return The exported namespace
- */
- String getNamespace();
-
- /**
- * Set Namespace that identifies the export
- *
- * @param namespace The exported namespace
- */
- void setNamespace(String namespace);
-
/**
* Returns the model resolver for the models representing artifacts
* made available by this export.
Copied: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Import.java (from r558531, incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionImport.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Import.java?view=diff&rev=558558&p1=incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionImport.java&r1=558531&p2=incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Import.java&r2=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/ContributionImport.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/Import.java Sun Jul 22 14:54:31 2007
@@ -23,40 +23,12 @@
/**
- * The representation of an import for the contribution
+ * The representation of an import.
*
* @version $Rev$ $Date$
*/
-public interface ContributionImport {
+public interface Import {
- /**
- * Get the location used to resolve the definitions for this import
- *
- * @return The import location
- */
- String getLocation();
-
- /**
- * Set the location used to resolve the definitions for this import
- *
- * @param location The import location
- */
- void setLocation(String location);
-
- /**
- * Get Namespace that identifies the import
- *
- * @return The namespace
- */
- String getNamespace();
-
- /**
- * Set Namespace that identifies the import
- *
- * @param namespace The namespace
- */
- void setNamespace(String namespace);
-
/**
* Returns the model resolver for the models representing artifacts
* made available by this import.
Added: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/NamespaceExport.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/NamespaceExport.java?view=auto&rev=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/NamespaceExport.java (added)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/NamespaceExport.java Sun Jul 22 14:54:31 2007
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.sca.contribution;
+
+
+/**
+ * The representation of an XML namespace export.
+ *
+ * @version $Rev$ $Date$
+ */
+public interface NamespaceExport extends Export {
+
+ /**
+ * Get Namespace that identifies the export
+ *
+ * @return The exported namespace
+ */
+ String getNamespace();
+
+ /**
+ * Set Namespace that identifies the export
+ *
+ * @param namespace The exported namespace
+ */
+ void setNamespace(String namespace);
+
+}
Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/NamespaceExport.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/NamespaceExport.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/NamespaceImport.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/NamespaceImport.java?view=auto&rev=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/NamespaceImport.java (added)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/NamespaceImport.java Sun Jul 22 14:54:31 2007
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.sca.contribution;
+
+
+
+/**
+ * The representation of an XML namespace import.
+ *
+ * @version $Rev$ $Date$
+ */
+public interface NamespaceImport extends Import {
+
+ /**
+ * Get the location used to resolve the definitions for this import
+ *
+ * @return The import location
+ */
+ String getLocation();
+
+ /**
+ * Set the location used to resolve the definitions for this import
+ *
+ * @param location The import location
+ */
+ void setLocation(String location);
+
+ /**
+ * Get Namespace that identifies the import
+ *
+ * @return The namespace
+ */
+ String getNamespace();
+
+ /**
+ * Set Namespace that identifies the import
+ *
+ * @param namespace The namespace
+ */
+ void setNamespace(String namespace);
+
+}
\ No newline at end of file
Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/NamespaceImport.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/NamespaceImport.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java?view=diff&rev=558558&r1=558557&r2=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java (original)
+++ incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java Sun Jul 22 14:54:31 2007
@@ -20,7 +20,8 @@
package org.apache.tuscany.sca.interfacedef.wsdl.xml;
import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.ContributionImport;
+import org.apache.tuscany.sca.contribution.Import;
+import org.apache.tuscany.sca.contribution.NamespaceImport;
import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver;
import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
@@ -38,15 +39,16 @@
private WSDLDefinition resolveImportedModel(WSDLDefinition unresolved) {
WSDLDefinition resolved = unresolved;
String namespace = unresolved.getNamespace();
- if (namespace != null && namespace.length() > 0) {
- for (ContributionImport contributionImport : this.contribution.getImports()) {
- if (contributionImport.getNamespace().equals(namespace)) {
+ for (Import import_ : this.contribution.getImports()) {
+ if (import_ instanceof NamespaceImport) {
+ NamespaceImport namespaceImport = (NamespaceImport)import_;
+ if (namespaceImport.getNamespace().equals(namespace)) {
// Delegate the resolution to the import resolver
- resolved = contributionImport.getModelResolver().resolveModel(WSDLDefinition.class, unresolved);
+ resolved = namespaceImport.getModelResolver().resolveModel(WSDLDefinition.class, unresolved);
// If resolved... then we are done
- if(unresolved.isUnresolved() == false) {
+ if(resolved.isUnresolved() == false) {
break;
}
}
@@ -65,6 +67,5 @@
return (T)resolved;
}
-
}
Modified: incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/XSDModelResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/XSDModelResolver.java?view=diff&rev=558558&r1=558557&r2=558558
==============================================================================
--- incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/XSDModelResolver.java (original)
+++ incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/XSDModelResolver.java Sun Jul 22 14:54:31 2007
@@ -20,8 +20,10 @@
package org.apache.tuscany.sca.interfacedef.wsdl.xml;
import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.ContributionImport;
+import org.apache.tuscany.sca.contribution.Import;
+import org.apache.tuscany.sca.contribution.NamespaceImport;
import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver;
+import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
import org.apache.tuscany.sca.interfacedef.wsdl.XSDefinition;
/**
@@ -38,15 +40,16 @@
private XSDefinition resolveImportedModel(XSDefinition unresolved) {
XSDefinition resolved = unresolved;
String namespace = unresolved.getNamespace();
- if (namespace != null && namespace.length() > 0) {
- for (ContributionImport contributionImport : this.contribution.getImports()) {
- if (contributionImport.getNamespace().equals(namespace)) {
+ for (Import import_ : this.contribution.getImports()) {
+ if (import_ instanceof NamespaceImport) {
+ NamespaceImport namespaceImport = (NamespaceImport)import_;
+ if (namespaceImport.getNamespace().equals(namespace)) {
// Delegate the resolution to the import resolver
- resolved = contributionImport.getModelResolver().resolveModel(XSDefinition.class, unresolved);
+ resolved = namespaceImport.getModelResolver().resolveModel(XSDefinition.class, unresolved);
// If resolved... then we are done
- if(unresolved.isUnresolved() == false) {
+ if(resolved.isUnresolved() == false) {
break;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org