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/21 01:05:28 UTC
svn commit: r558193 - in /incubator/tuscany/java/sca:
itest/contribution-import-export/test-import-wsdl/src/test/java/helloworld/
modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/
modules/contribution/src/main/java/org/apache/tusc...
Author: lresende
Date: Fri Jul 20 16:05:27 2007
New Revision: 558193
URL: http://svn.apache.org/viewvc?view=rev&rev=558193
Log:
Updates to ModelReseolver extensibility
- Couple small fixes to get the proper artifact type resolver
- Adding a strawman for WSDLModelResolver
Added:
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/test-import-wsdl/src/test/java/helloworld/HelloWorldServerTestCase.java
incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.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-runtime/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/module/WSDLInterfaceRuntimeModuleActivator.java
Modified: incubator/tuscany/java/sca/itest/contribution-import-export/test-import-wsdl/src/test/java/helloworld/HelloWorldServerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/contribution-import-export/test-import-wsdl/src/test/java/helloworld/HelloWorldServerTestCase.java?view=diff&rev=558193&r1=558192&r2=558193
==============================================================================
--- incubator/tuscany/java/sca/itest/contribution-import-export/test-import-wsdl/src/test/java/helloworld/HelloWorldServerTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/contribution-import-export/test-import-wsdl/src/test/java/helloworld/HelloWorldServerTestCase.java Fri Jul 20 16:05:27 2007
@@ -27,8 +27,6 @@
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-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;
@@ -50,18 +48,16 @@
// Contribute the SCA contribution
ContributionService contributionService = domain.getContributionService();
- ModelResolver wsdlContributionResolver = new ModelResolverImpl(cl);
File wsdlContribLocation = new File("../contrib-wsdl/target/classes");
URL wsdlContribURL = wsdlContribLocation.toURL();
- Contribution wsdlContribution = contributionService.contribute("http://import-export/contrib-wsdl", wsdlContribURL, wsdlContributionResolver, false);
+ Contribution wsdlContribution = contributionService.contribute("http://import-export/contrib-wsdl", wsdlContribURL, false);
for (Composite deployable : wsdlContribution.getDeployables() ) {
domain.getDomainCompositeHelper().addComposite(deployable);
}
- ModelResolver helloWorldContributionResolver = new ModelResolverImpl(cl);
File helloWorldContribLocation = new File("./target/classes/");
URL helloWorldContribURL = helloWorldContribLocation.toURL();
- Contribution consumerContribution = contributionService.contribute("http://import-export/helloworld", helloWorldContribURL, helloWorldContributionResolver, false);
+ Contribution consumerContribution = contributionService.contribute("http://import-export/helloworld", helloWorldContribURL, false);
for (Composite deployable : consumerContribution.getDeployables() ) {
domain.getDomainCompositeHelper().addComposite(deployable);
}
Modified: incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java?view=diff&rev=558193&r1=558192&r2=558193
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/assembly-xml/src/main/java/org/apache/tuscany/sca/assembly/xml/CompositeProcessor.java Fri Jul 20 16:05:27 2007
@@ -520,32 +520,42 @@
// Resolve constraining type
ConstrainingType constrainingType = composite.getConstrainingType();
- constrainingType = resolver.resolveModel(ConstrainingType.class, constrainingType);
- composite.setConstrainingType(constrainingType);
+ if (constrainingType != null ) {
+ constrainingType = resolver.resolveModel(ConstrainingType.class, constrainingType);
+ composite.setConstrainingType(constrainingType);
+ }
// Resolve includes in the composite
for (int i = 0, n = composite.getIncludes().size(); i < n; i++) {
Composite include = composite.getIncludes().get(i);
- include = resolver.resolveModel(Composite.class, include);
- composite.getIncludes().set(i, include);
+ if (include != null) {
+ include = resolver.resolveModel(Composite.class, include);
+ composite.getIncludes().set(i, include);
+ }
}
// resolve and extensions to the standard SCDL that appear in the
// SCDL.
for (int i = 0, n = composite.getExtensions().size(); i < n; i++) {
Object model = composite.getExtensions().get(i);
- extensionProcessor.resolve(model, resolver);
+ if (model != null) {
+ extensionProcessor.resolve(model, resolver);
+ }
}
// Resolve component implementations, services and references
for (Component component: composite.getComponents()) {
constrainingType = component.getConstrainingType();
- constrainingType = resolver.resolveModel(ConstrainingType.class, constrainingType);
- component.setConstrainingType(constrainingType);
+ if (constrainingType != null) {
+ constrainingType = resolver.resolveModel(ConstrainingType.class, constrainingType);
+ component.setConstrainingType(constrainingType);
+ }
Implementation implementation = component.getImplementation();
- implementation = resolveImplementation(implementation, resolver);
- component.setImplementation(implementation);
+ if (implementation != null) {
+ implementation = resolveImplementation(implementation, resolver);
+ component.setImplementation(implementation);
+ }
resolveContracts(component.getServices(), resolver);
resolveContracts(component.getReferences(), resolver);
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=558193&r1=558192&r2=558193
==============================================================================
--- 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 Fri Jul 20 16:05:27 2007
@@ -21,7 +21,6 @@
import java.lang.reflect.Constructor;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.Map;
public class ExtensibleModelResolver extends DefaultModelResolver implements ModelResolver {
@@ -35,6 +34,18 @@
initializeModelResolverInstances();
}
+ private ModelResolver getResolverInstance(Class<?> modelType) {
+ Class<?>[] classes = modelType.getInterfaces();
+ for (Class<?> c : classes) {
+ ModelResolver resolverInstance = resolverInstances.get(c);
+ if (resolverInstance != null) {
+ return resolverInstance;
+ }
+ }
+
+ return resolverInstances.get(modelType);
+ }
+
private void initializeModelResolverInstances() {
for (Class<?> resolverType : resolverRegistry.getResolverTypes()) {
Class<? extends ModelResolver> resolverInstanceType = resolverRegistry.getResolver(resolverType);
@@ -43,7 +54,7 @@
try {
Constructor constructor = resolverInstanceType.getConstructor(ClassLoader.class);
if (constructor != null) {
- resolverInstance = (ModelResolver) constructor.newInstance(this.classLoader);
+ resolverInstance = (ModelResolver) constructor.newInstance(this.classLoader.get());
} else {
resolverInstance = (ModelResolver) resolverInstanceType.newInstance();
}
@@ -57,7 +68,7 @@
}
public void addModel(Object resolved) {
- ModelResolver resolver = resolverInstances.get(resolved.getClass());
+ ModelResolver resolver = getResolverInstance(resolved.getClass());
if (resolver != null) {
resolver.addModel(resolved);
} else {
@@ -66,7 +77,7 @@
}
public Object removeModel(Object resolved) {
- ModelResolver resolver = resolverInstances.get(resolved.getClass());
+ ModelResolver resolver = getResolverInstance(resolved.getClass());
if (resolver != null) {
return resolver.removeModel(resolved);
} else {
@@ -75,7 +86,7 @@
}
public <T> T resolveModel(Class<T> modelClass, T unresolved) {
- ModelResolver resolver = resolverInstances.get(modelClass);
+ ModelResolver resolver = getResolverInstance(modelClass);
if (resolver != null) {
return resolver.resolveModel(modelClass, unresolved);
} else {
Modified: incubator/tuscany/java/sca/modules/interface-wsdl-runtime/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/module/WSDLInterfaceRuntimeModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-wsdl-runtime/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/module/WSDLInterfaceRuntimeModuleActivator.java?view=diff&rev=558193&r1=558192&r2=558193
==============================================================================
--- incubator/tuscany/java/sca/modules/interface-wsdl-runtime/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/module/WSDLInterfaceRuntimeModuleActivator.java (original)
+++ incubator/tuscany/java/sca/modules/interface-wsdl-runtime/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/module/WSDLInterfaceRuntimeModuleActivator.java Fri Jul 20 16:05:27 2007
@@ -21,15 +21,18 @@
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessorExtensionPoint;
import org.apache.tuscany.sca.contribution.processor.URLArtifactProcessorExtensionPoint;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.core.ModelFactoryExtensionPoint;
import org.apache.tuscany.sca.core.ModuleActivator;
import org.apache.tuscany.sca.interfacedef.wsdl.DefaultWSDLFactory;
+import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
import org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory;
import org.apache.tuscany.sca.interfacedef.wsdl.introspect.DefaultWSDLInterfaceIntrospector;
import org.apache.tuscany.sca.interfacedef.wsdl.introspect.WSDLInterfaceIntrospector;
import org.apache.tuscany.sca.interfacedef.wsdl.xml.WSDLDocumentProcessor;
import org.apache.tuscany.sca.interfacedef.wsdl.xml.WSDLInterfaceProcessor;
+import org.apache.tuscany.sca.interfacedef.wsdl.xml.WSDLModelResolver;
/**
* @version $Rev$ $Date$
@@ -55,6 +58,9 @@
// Register .wsdl document processor
URLArtifactProcessorExtensionPoint documentProcessors = registry.getExtensionPoint(URLArtifactProcessorExtensionPoint.class);
documentProcessors.addArtifactProcessor(new WSDLDocumentProcessor(wsdlFactory, null));
+
+ ModelResolverExtensionPoint resolvers = registry.getExtensionPoint(ModelResolverExtensionPoint.class);
+ resolvers.addResolver(WSDLDefinition.class, WSDLModelResolver.class);
}
public void stop(ExtensionPointRegistry registry) {
Added: 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=auto&rev=558193
==============================================================================
--- incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java (added)
+++ incubator/tuscany/java/sca/modules/interface-wsdl-xml/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/xml/WSDLModelResolver.java Fri Jul 20 16:05:27 2007
@@ -0,0 +1,34 @@
+/*
+ * 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.interfacedef.wsdl.xml;
+
+import org.apache.tuscany.sca.contribution.resolver.DefaultModelResolver;
+
+/**
+ * An Model Resolver for WSDL artifact types.
+ *
+ * @version $Rev: 557916 $ $Date: 2007-07-20 01:04:40 -0700 (Fri, 20 Jul 2007) $
+ */
+public class WSDLModelResolver extends DefaultModelResolver {
+
+ public WSDLModelResolver(ClassLoader cl) {
+ super(cl);
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org