You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2007/07/22 03:21:03 UTC
svn commit: r558444 - in /incubator/tuscany/java/sca:
itest/contribution-import-export/contrib-composite/src/test/java/hello/
modules/contribution-impl/src/main/java/org/apache/tuscany/sca/contribution/service/impl/
modules/contribution-impl/src/test/j...
Author: lresende
Date: Sat Jul 21 18:21:01 2007
New Revision: 558444
URL: http://svn.apache.org/viewvc?view=rev&rev=558444
Log:
Updates to ModelReseolver extensibility
- Passing contribution to resolvers, to access imports
- Updates to WSDLModelResolver
Modified:
incubator/tuscany/java/sca/itest/contribution-import-export/contrib-composite/src/test/java/hello/HelloTestCase.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-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleArtifactResolverTestCase.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolver.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java
incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java
Modified: incubator/tuscany/java/sca/itest/contribution-import-export/contrib-composite/src/test/java/hello/HelloTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/contribution-import-export/contrib-composite/src/test/java/hello/HelloTestCase.java?view=diff&rev=558444&r1=558443&r2=558444
==============================================================================
--- incubator/tuscany/java/sca/itest/contribution-import-export/contrib-composite/src/test/java/hello/HelloTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/contribution-import-export/contrib-composite/src/test/java/hello/HelloTestCase.java Sat Jul 21 18:21:01 2007
@@ -20,7 +20,6 @@
import java.io.File;
import java.io.IOException;
-import java.net.Socket;
import java.net.URL;
import junit.framework.TestCase;
@@ -31,9 +30,6 @@
import org.apache.tuscany.sca.contribution.resolver.impl.ModelResolverImpl;
import org.apache.tuscany.sca.contribution.service.ContributionService;
import org.apache.tuscany.sca.host.embedded.impl.EmbeddedSCADomain;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
/**
* Tests that the helloworld server is available
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=558444&r1=558443&r2=558444
==============================================================================
--- 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 Sat Jul 21 18:21:01 2007
@@ -141,11 +141,8 @@
if (sourceURL == null) {
throw new IllegalArgumentException("Source URL for the contribution is null");
}
-
- //FIXME get the right class loader
- ModelResolver extensibleModelResolver = new ExtensibleModelResolver(this.modelResolverExtensionPoint, getClass().getClassLoader());
- return addContribution(contributionURI, sourceURL, null, extensibleModelResolver, storeInRepository);
+ return addContribution(contributionURI, sourceURL, null, null, storeInRepository);
}
public Contribution contribute(String contributionURI, URL sourceURL, ModelResolver modelResolver, boolean storeInRepository) throws ContributionException,
@@ -163,10 +160,7 @@
public Contribution contribute(String contributionURI, URL sourceURL, InputStream input)
throws ContributionException, IOException {
- //FIXME get the right class loader
- ModelResolver extensibleModelResolver = new ExtensibleModelResolver(this.modelResolverExtensionPoint, getClass().getClassLoader());
-
- return addContribution(contributionURI, sourceURL, input, extensibleModelResolver, true);
+ return addContribution(contributionURI, sourceURL, input, null, true);
}
public Contribution contribute(String contributionURI, URL sourceURL, InputStream input, ModelResolver modelResolver)
@@ -227,6 +221,7 @@
public void remove(String contribution) throws ContributionException {
this.contributionRegistry.remove(contribution);
+ //FIXME remove references from contributionByExportedNamespace
}
public void addDeploymentComposite(Contribution contribution, Composite composite) throws ContributionException {
@@ -275,7 +270,15 @@
}
}
+ //initialize contribution based on it's metadata if available
Contribution contribution = initializeContributionMetadata(locationURL, modelResolver);
+
+ //create contribution model resolver
+ if (modelResolver == null) {
+ modelResolver = new ExtensibleModelResolver(this.modelResolverExtensionPoint, getClass().getClassLoader(), contribution);
+ }
+
+ //set contribution initial information
contribution.setURI(contributionURI.toString());
contribution.setLocation(locationURL.toString());
contribution.setModelResolver(modelResolver);
@@ -364,7 +367,6 @@
// Add the loaded model to the model resolver
modelResolver.addModel(model);
}
-
}
}
@@ -404,8 +406,8 @@
@SuppressWarnings("unchecked")
private Object processResolveImportsPhase(Contribution contribution, DeployedArtifact artifact) throws ContributionException {
- for(ContributionImport importedArtifact : contribution.getImports()) {
- String importedContributionURI = importedArtifact.getLocation();
+ for(ContributionImport contributionImport : contribution.getImports()) {
+ String importedContributionURI = contributionImport.getLocation();
if (importedContributionURI != null && importedContributionURI.length() > 0) {
//location provided (contribution uri)
Contribution importedContribution = this.getContribution(importedContributionURI);
@@ -414,7 +416,7 @@
}
} else {
//look into all the contributions that match exported uri
- for(Contribution importedContribution : this.contributionByExportedNamespace.get(importedArtifact.getNamespace())) {
+ for(Contribution importedContribution : this.contributionByExportedNamespace.get(contributionImport.getNamespace())) {
this.artifactProcessor.resolve(artifact.getModel(), importedContribution.getModelResolver());
}
}
@@ -429,8 +431,8 @@
private Composite processResolveImportsPhase(Contribution contribution, Composite deployableComposite) throws ContributionException {
Composite resolvedDeployable = deployableComposite;
- for(ContributionImport importedArtifact : contribution.getImports()) {
- String importedContributionURI = importedArtifact.getLocation();
+ for(ContributionImport contributionImport : contribution.getImports()) {
+ String importedContributionURI = contributionImport.getLocation();
if (importedContributionURI != null && importedContributionURI.length() > 0) {
//location provided (contribution uri)
Contribution importedContribution = this.getContribution(importedContributionURI);
@@ -439,7 +441,7 @@
}
} else {
//look into all the contributions that match exported uri
- for(Contribution importedContribution : this.contributionByExportedNamespace.get(importedArtifact.getNamespace())) {
+ for(Contribution importedContribution : this.contributionByExportedNamespace.get(contributionImport.getNamespace())) {
Composite resolvingDeployable = importedContribution.getModelResolver().resolveModel(Composite.class, deployableComposite);
if (resolvingDeployable != null && resolvingDeployable.isUnresolved() == false) {
resolvedDeployable = resolvingDeployable;
Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleArtifactResolverTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleArtifactResolverTestCase.java?view=diff&rev=558444&r1=558443&r2=558444
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleArtifactResolverTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/test/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleArtifactResolverTestCase.java Sat Jul 21 18:21:01 2007
@@ -41,7 +41,7 @@
resolverExtensionPoint = new DefaultModelResolverExtensionPoint();
resolverExtensionPoint.addResolver(Model.class, DefaultModelResolver.class);
- resolver = new ExtensibleModelResolver(resolverExtensionPoint, getClass().getClassLoader());
+ resolver = new ExtensibleModelResolver(resolverExtensionPoint, getClass().getClassLoader(), null);
factory = new ContributionFactoryImpl();
}
Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolver.java?view=diff&rev=558444&r1=558443&r2=558444
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolver.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/DefaultModelResolver.java Sat Jul 21 18:21:01 2007
@@ -24,8 +24,7 @@
import java.util.HashMap;
import java.util.Map;
-import org.apache.tuscany.sca.contribution.resolver.ClassReference;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.contribution.Contribution;
/**
* A default implementation of an artifact resolver, based on a map.
@@ -38,9 +37,11 @@
private Map<Object, Object> map = new HashMap<Object, Object>();
protected WeakReference<ClassLoader> classLoader;
+ protected Contribution contribution;
- public DefaultModelResolver(ClassLoader classLoader) {
+ public DefaultModelResolver(ClassLoader classLoader, Contribution contribution) {
this.classLoader = new WeakReference<ClassLoader>(classLoader);
+ this.contribution = contribution;
}
public <T> T resolveModel(Class<T> modelClass, T unresolved) {
Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java?view=diff&rev=558444&r1=558443&r2=558444
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/resolver/ExtensibleModelResolver.java Sat Jul 21 18:21:01 2007
@@ -23,13 +23,15 @@
import java.util.HashMap;
import java.util.Map;
+import org.apache.tuscany.sca.contribution.Contribution;
+
public class ExtensibleModelResolver extends DefaultModelResolver implements ModelResolver {
private final ModelResolverExtensionPoint resolverRegistry;
private final Map<Class<?>, ModelResolver> resolverInstances = new HashMap<Class<?>, ModelResolver>();
- public ExtensibleModelResolver(ModelResolverExtensionPoint resolverRegistry, ClassLoader cl) {
- super(cl);
+ public ExtensibleModelResolver(ModelResolverExtensionPoint resolverRegistry, ClassLoader cl, Contribution contribution) {
+ super(cl, contribution);
this.resolverRegistry = resolverRegistry;
initializeModelResolverInstances();
}
@@ -52,9 +54,9 @@
ModelResolver resolverInstance = null;
try {
- Constructor constructor = resolverInstanceType.getConstructor(ClassLoader.class);
+ Constructor constructor = resolverInstanceType.getConstructor(new Class[]{ClassLoader.class, Contribution.class});
if (constructor != null) {
- resolverInstance = (ModelResolver) constructor.newInstance(this.classLoader.get());
+ resolverInstance = (ModelResolver) constructor.newInstance(this.classLoader.get(), this.contribution);
} else {
resolverInstance = (ModelResolver) resolverInstanceType.newInstance();
}
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=558444&r1=558443&r2=558444
==============================================================================
--- 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 Sat Jul 21 18:21:01 2007
@@ -19,7 +19,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.resolver.DefaultModelResolver;
+import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
/**
* An Model Resolver for WSDL artifact types.
@@ -28,7 +31,42 @@
*/
public class WSDLModelResolver extends DefaultModelResolver {
- public WSDLModelResolver(ClassLoader cl) {
- super(cl);
+ public WSDLModelResolver(ClassLoader cl, Contribution contribution) {
+ super(cl,contribution);
}
+
+ private WSDLDefinition resolveImportedModel(WSDLDefinition unresolved) {
+ String namespace = unresolved.getNamespace();
+ if (namespace != null && namespace.length() > 0) {
+ for (ContributionImport contributionImport : this.contribution.getImports()) {
+ if(namespace.equalsIgnoreCase(contributionImport.getNamespace())) {
+ //find who exports it
+
+ //delegate the resolition to the import resolver
+ contributionImport.getModelResolver().resolveModel(WSDLDefinition.class, unresolved);
+ //if resolved... then we are done
+ if(unresolved.isUnresolved() == false) {
+ break;
+ }
+ }
+ }
+ }
+ return unresolved;
+ }
+
+ @Override
+ public <T> T resolveModel(Class<T> modelClass, T unresolved) {
+ return super.resolveModel(modelClass, unresolved);
+ /*
+ WSDLDefinition resolved = (WSDLDefinition) super.resolveModel(modelClass, unresolved);
+
+ if (resolved.isUnresolved()) {
+ resolved = resolveImportedModel(resolved);
+ }
+
+ return null;
+ */
+ }
+
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org