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