Author: jboynes
Date: Mon Mar 13 15:20:40 2006
New Revision: 385698

URL: http://svn.apache.org/viewcvs?rev=385698&view=rev
Log:
support ws entry points with stax loader

Added:
    
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/InterfaceWSDLLoader.java
   (with props)
Modified:
    incubator/tuscany/java/sca/binding.axis2/src/main/resources/system.fragment
    
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/client/BootstrapHelper.java
    
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/StAXUtil.java
    
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/AggregateLoader.java
    
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/AssemblyConstants.java
    
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/EntryPointLoader.java
    
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java
    
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLModelContentHandlerImpl.java
    
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/types/wsdl/WSDLServiceContract.java
    
incubator/tuscany/java/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/TuscanyContextListener.java

Modified: 
incubator/tuscany/java/sca/binding.axis2/src/main/resources/system.fragment
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/binding.axis2/src/main/resources/system.fragment?rev=385698&r1=385697&r2=385698&view=diff
==============================================================================
--- incubator/tuscany/java/sca/binding.axis2/src/main/resources/system.fragment 
(original)
+++ incubator/tuscany/java/sca/binding.axis2/src/main/resources/system.fragment 
Mon Mar 13 15:20:40 2006
@@ -34,4 +34,8 @@
         <system:implementation.system 
class="org.apache.tuscany.binding.axis2.builder.WebServiceEntryPointConfigurationBuilder"/>
     </component>
 
+    <component 
name="org.apache.tuscany.binding.axis2.loader.WebServiceBindingLoaderr">
+        <system:implementation.system 
class="org.apache.tuscany.binding.axis2.loader.WebServiceBindingLoader"/>
+    </component>
+
 </moduleFragment>

Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/client/BootstrapHelper.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/client/BootstrapHelper.java?rev=385698&r1=385697&r2=385698&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/client/BootstrapHelper.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/client/BootstrapHelper.java
 Mon Mar 13 15:20:40 2006
@@ -109,11 +109,14 @@
     }
 
     private static AggregateContext bootstrapStaxLoader(SystemAggregateContext 
systemContext, AssemblyModelContext modelContext) throws ConfigurationException 
{
-        ModuleComponent loaderComponent = 
StAXUtil.bootstrapLoader(SYSTEM_LOADER_COMPONENT, modelContext);
-        systemContext.registerModelObject(loaderComponent);
         AggregateContext loaderContext = (AggregateContext) 
systemContext.getContext(SYSTEM_LOADER_COMPONENT);
-        
loaderContext.registerModelObject(loaderComponent.getComponentImplementation());
-        loaderContext.fireEvent(EventContext.MODULE_START, null);
+        if (loaderContext == null) {
+            ModuleComponent loaderComponent = 
StAXUtil.bootstrapLoader(SYSTEM_LOADER_COMPONENT, modelContext);
+            systemContext.registerModelObject(loaderComponent);
+            loaderContext = (AggregateContext) 
systemContext.getContext(SYSTEM_LOADER_COMPONENT);
+            
loaderContext.registerModelObject(loaderComponent.getComponentImplementation());
+            loaderContext.fireEvent(EventContext.MODULE_START, null);
+        }
         return loaderContext;
     }
 

Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/StAXUtil.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/StAXUtil.java?rev=385698&r1=385697&r2=385698&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/StAXUtil.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/StAXUtil.java
 Mon Mar 13 15:20:40 2006
@@ -32,6 +32,7 @@
 import org.apache.tuscany.core.loader.assembly.PropertyLoader;
 import org.apache.tuscany.core.loader.assembly.ReferenceLoader;
 import org.apache.tuscany.core.loader.assembly.ServiceLoader;
+import org.apache.tuscany.core.loader.assembly.InterfaceWSDLLoader;
 import org.apache.tuscany.core.loader.system.SystemImplementationLoader;
 import org.apache.tuscany.core.system.assembly.SystemAssemblyFactory;
 import org.apache.tuscany.core.system.assembly.SystemImplementation;
@@ -97,6 +98,7 @@
         components.add(bootstrapLoader(factory, ComponentTypeLoader.class));
         components.add(bootstrapLoader(factory, EntryPointLoader.class));
         components.add(bootstrapLoader(factory, ExternalServiceLoader.class));
+        components.add(bootstrapLoader(factory, InterfaceWSDLLoader.class));
         components.add(bootstrapLoader(factory, ModuleFragmentLoader.class));
         components.add(bootstrapLoader(factory, ModuleLoader.class));
         components.add(bootstrapLoader(factory, PropertyLoader.class));

Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/AggregateLoader.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/AggregateLoader.java?rev=385698&r1=385697&r2=385698&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/AggregateLoader.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/AggregateLoader.java
 Mon Mar 13 15:20:40 2006
@@ -20,6 +20,10 @@
 import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
+import javax.wsdl.Import;
+import javax.wsdl.WSDLException;
+import javax.wsdl.Definition;
+import javax.wsdl.factory.WSDLFactory;
 
 import org.apache.tuscany.model.assembly.Aggregate;
 import org.apache.tuscany.model.assembly.AssemblyModelObject;
@@ -34,20 +38,37 @@
  * @version $Rev$ $Date$
  */
 public abstract class AggregateLoader extends AbstractLoader {
+    private static final WSDLFactory wsdlFactory;
+    static {
+        try {
+            wsdlFactory = WSDLFactory.newInstance();
+        } catch (WSDLException e) {
+            throw new ExceptionInInitializerError(e);
+        }
+    }
+
     public void loadAggregate(XMLStreamReader reader, Aggregate aggregate, 
ResourceLoader resourceLoader) throws XMLStreamException, 
ConfigurationLoadException {
         aggregate.setName(reader.getAttributeValue(null, "name"));
         while (true) {
             switch (reader.next()) {
             case START_ELEMENT:
-                AssemblyModelObject o = registry.load(reader, resourceLoader);
-                if (o instanceof EntryPoint) {
-                    aggregate.getEntryPoints().add((EntryPoint) o);
-                } else if (o instanceof ExternalService) {
-                    aggregate.getExternalServices().add((ExternalService) o);
-                } else if (o instanceof Component) {
-                    aggregate.getComponents().add((Component) o);
-                } else if (o instanceof Wire) {
-                    aggregate.getWires().add((Wire) o);
+                if (AssemblyConstants.IMPORT_WSDL.equals(reader.getName())) {
+                    Definition definition = wsdlFactory.newDefinition();
+                    Import wsdlImport = definition.createImport();
+                    wsdlImport.setNamespaceURI(reader.getAttributeValue(null, 
"namespace"));
+                    wsdlImport.setLocationURI(reader.getAttributeValue(null, 
"location"));
+                    aggregate.getWSDLImports().add(wsdlImport);
+                } else {
+                    AssemblyModelObject o = registry.load(reader, 
resourceLoader);
+                    if (o instanceof EntryPoint) {
+                        aggregate.getEntryPoints().add((EntryPoint) o);
+                    } else if (o instanceof ExternalService) {
+                        aggregate.getExternalServices().add((ExternalService) 
o);
+                    } else if (o instanceof Component) {
+                        aggregate.getComponents().add((Component) o);
+                    } else if (o instanceof Wire) {
+                        aggregate.getWires().add((Wire) o);
+                    }
                 }
                 reader.next();
                 break;

Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/AssemblyConstants.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/AssemblyConstants.java?rev=385698&r1=385697&r2=385698&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/AssemblyConstants.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/AssemblyConstants.java
 Mon Mar 13 15:20:40 2006
@@ -28,6 +28,8 @@
     public static final QName COMPONENT_TYPE = new QName(SCA_NAMESPACE, 
"componentType");
     public static final QName ENTRY_POINT = new QName(SCA_NAMESPACE, 
"entryPoint");
     public static final QName EXTERNAL_SERVICE = new QName(SCA_NAMESPACE, 
"externalService");
+    public static final QName IMPORT_WSDL = new QName(SCA_NAMESPACE, 
"import.wsdl");
+    public static final QName INTERFACE_WSDL = new QName(SCA_NAMESPACE, 
"interface.wsdl");
     public static final QName MODULE = new QName(SCA_NAMESPACE, "module");
     public static final QName MODULE_FRAGMENT = new QName(SCA_NAMESPACE, 
"moduleFragment");
     public static final QName PROPERTY = new QName(SCA_NAMESPACE, "property");

Modified: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/EntryPointLoader.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/EntryPointLoader.java?rev=385698&r1=385697&r2=385698&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/EntryPointLoader.java
 (original)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/EntryPointLoader.java
 Mon Mar 13 15:20:40 2006
@@ -36,6 +36,8 @@
 import org.apache.tuscany.model.assembly.Reference;
 import org.apache.tuscany.model.assembly.Service;
 import org.apache.tuscany.model.assembly.ServiceURI;
+import org.apache.tuscany.model.assembly.ServiceContract;
+import org.apache.tuscany.model.assembly.impl.ServiceContractImpl;
 import org.apache.tuscany.common.resource.ResourceLoader;
 
 /**
@@ -69,16 +71,20 @@
         configuredReference.setReference(reference);
         entryPoint.setConfiguredReference(configuredReference);
 
-        ServiceURI source = factory.createServiceURI(null, entryPoint, 
configuredReference);
-
         while (true) {
             switch (reader.next()) {
             case START_ELEMENT:
-                AssemblyModelObject o = registry.load(reader, resourceLoader);
-                if (o instanceof Binding) {
-                    entryPoint.getBindings().add((Binding) o);
-                } else if (o instanceof Reference) {
-                    // todo we need to store the reference info here to that 
it can be used to generate wires in the aggregate
+                QName qname = reader.getName();
+                if (AssemblyConstants.REFERENCE.equals(qname)) {
+                    String uri = reader.getElementText();
+                    configuredReference.getTargets().add(uri);
+                } else {
+                    AssemblyModelObject o = registry.load(reader, 
resourceLoader);
+                    if (o instanceof Binding) {
+                        entryPoint.getBindings().add((Binding) o);
+                    } else if (o instanceof ServiceContract) {
+                        service.setServiceContract((ServiceContract) o);
+                    }
                 }
                 reader.next();
                 break;

Added: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/InterfaceWSDLLoader.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/InterfaceWSDLLoader.java?rev=385698&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/InterfaceWSDLLoader.java
 (added)
+++ 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/InterfaceWSDLLoader.java
 Mon Mar 13 15:20:40 2006
@@ -0,0 +1,49 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ *  Licensed 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.core.loader.assembly;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.tuscany.common.resource.ResourceLoader;
+import org.apache.tuscany.core.config.ConfigurationLoadException;
+import org.apache.tuscany.model.assembly.Scope;
+import org.apache.tuscany.model.types.wsdl.WSDLServiceContract;
+
+/**
+ * @version $Rev$ $Date$
+ */
[EMAIL PROTECTED]("MODULE")
+public class InterfaceWSDLLoader extends AbstractLoader {
+    public QName getXMLType() {
+        return AssemblyConstants.INTERFACE_WSDL;
+    }
+
+    public Class<WSDLServiceContract> getModelType() {
+        return WSDLServiceContract.class;
+    }
+
+    public WSDLServiceContract load(XMLStreamReader reader, ResourceLoader 
resourceLoader) throws XMLStreamException, ConfigurationLoadException {
+        assert AssemblyConstants.INTERFACE_WSDL.equals(reader.getName());
+        WSDLServiceContract serviceContract = 
factory.createWSDLServiceContract();
+        serviceContract.setScope(Scope.INSTANCE);
+        serviceContract.setPortTypeURI(reader.getAttributeValue(null, 
"interface"));
+        serviceContract.setCallbackPortTypeURI(reader.getAttributeValue(null, 
"callbackInterface"));
+        return serviceContract;
+    }
+}

Propchange: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/InterfaceWSDLLoader.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/assembly/InterfaceWSDLLoader.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Modified: 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java?rev=385698&r1=385697&r2=385698&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleImpl.java
 Mon Mar 13 15:20:40 2006
@@ -127,6 +127,16 @@
                 if (serviceContract != null)
                     service.setServiceContract(serviceContract);
                 componentType.getServices().add(service);
+
+                ConfiguredReference configuredReference = 
entryPoint.getConfiguredReference();
+                ServiceURI sourceURI = factory.createServiceURI(null, 
entryPoint, configuredReference);
+                for (String target : configuredReference.getTargets()) {
+                    ServiceURI targetURI =factory.createServiceURI(null, 
target);
+                    Wire wire=factory.createWire();
+                    wire.setSource(sourceURI);
+                    wire.setTarget(targetURI);
+                    getWires().add(wire);
+                }
             }
             for (ExternalService externalService : getExternalServices()) {
                 if (externalService.getOverrideOption()==null || 
externalService.getOverrideOption()==OverrideOption.NO)

Modified: 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLModelContentHandlerImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLModelContentHandlerImpl.java?rev=385698&r1=385697&r2=385698&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLModelContentHandlerImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLModelContentHandlerImpl.java
 Mon Mar 13 15:20:40 2006
@@ -262,8 +262,8 @@
         final WSDLServiceContract 
serviceContract=factory.createWSDLServiceContract();
         serviceContract.setScope(Scope.INSTANCE);
         
-        
((WSDLServiceContractImpl)serviceContract).setPortTypeURI(object.getInterface());
-        
((WSDLServiceContractImpl)serviceContract).setCallbackPortTypeURI(object.getCallbackInterface());
+        serviceContract.setPortTypeURI(object.getInterface());
+        serviceContract.setCallbackPortTypeURI(object.getCallbackInterface());
         
         linkServiceContract(object, serviceContract);
 
@@ -529,6 +529,10 @@
         configuredReference.setReference(reference);
         entryPoint.setConfiguredReference(configuredReference);
         
+        for (String uri : (List<String>)object.getReference()) {
+            configuredReference.getTargets().add(uri);
+        }
+/*
         linkers.add(new Runnable() {
             public void run() {
                 currentAggregate.getEntryPoints().add(entryPoint);
@@ -547,7 +551,9 @@
                 currentAggregate.getWires().addAll(wires);
             };
         });
-        
+*/
+
+        currentAggregate.getEntryPoints().add(entryPoint);
         currentEntryPoint=entryPoint;
         return entryPoint;
     }

Modified: 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/types/wsdl/WSDLServiceContract.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/types/wsdl/WSDLServiceContract.java?rev=385698&r1=385697&r2=385698&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/types/wsdl/WSDLServiceContract.java
 (original)
+++ 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/types/wsdl/WSDLServiceContract.java
 Mon Mar 13 15:20:40 2006
@@ -49,4 +49,7 @@
      */
     void setCallbackPortType(PortType portType);
 
+    void setPortTypeURI(String portTypeURI);
+
+    void setCallbackPortTypeURI(String callbackPortTypeURI);
 }

Modified: 
incubator/tuscany/java/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/TuscanyContextListener.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/TuscanyContextListener.java?rev=385698&r1=385697&r2=385698&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/TuscanyContextListener.java
 (original)
+++ 
incubator/tuscany/java/sca/tomcat/src/main/java/org/apache/tuscany/tomcat/TuscanyContextListener.java
 Mon Mar 13 15:20:40 2006
@@ -33,10 +33,10 @@
 import org.apache.tuscany.core.config.ConfigurationException;
 import org.apache.tuscany.core.config.ConfigurationLoadException;
 import org.apache.tuscany.core.config.ModuleComponentConfigurationLoader;
-import 
org.apache.tuscany.core.config.impl.ModuleComponentConfigurationLoaderImpl;
 import org.apache.tuscany.core.context.AggregateContext;
 import org.apache.tuscany.core.context.EventContext;
 import org.apache.tuscany.core.runtime.RuntimeContext;
+import org.apache.tuscany.core.client.BootstrapHelper;
 import org.apache.tuscany.model.assembly.AssemblyFactory;
 import org.apache.tuscany.model.assembly.AssemblyModelContext;
 import org.apache.tuscany.model.assembly.ModuleComponent;
@@ -85,9 +85,10 @@
         
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
         try {
             AssemblyModelContext modelContext = new 
AssemblyModelContextImpl(modelFactory, modelLoader, systemLoader, 
resourceLoader);
-            ModuleComponentConfigurationLoader loader = new 
ModuleComponentConfigurationLoaderImpl(modelContext);
 
             try {
+                ModuleComponentConfigurationLoader loader = 
BootstrapHelper.getConfigurationLoader(runtime.getSystemContext(), 
modelContext);
+
                 // Load the SCDL configuration of the application module
                 ModuleComponent moduleComponent = 
loader.loadModuleComponent(ctx.getName(), ctx.getPath());
 


Reply via email to