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());