[jbossws-commits] JBossWS SVN: r3632 - in branches/jbossws-2.0/jbossws-core: src/main/java/org/jboss/ws/tools/wsdl and 3 other directories.
jbossws-commits at lists.jboss.org
jbossws-commits at lists.jboss.org
Tue Jun 19 10:36:06 EDT 2007
Author: thomas.diesler at jboss.com
Date: 2007-06-19 10:36:05 -0400 (Tue, 19 Jun 2007)
New Revision: 3632
Modified:
branches/jbossws-2.0/jbossws-core/.classpath
branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/tools/wsdl/WSDL11Reader.java
branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/tools/wsdl/WSDLDefinitionsFactory.java
branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/tools/jbws1553/JBWS1553TestCase.java
branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/atm-binding-1.wsdl
branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/atm-service.wsdl
branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/atm.wsdl
branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/interface/account.wsdl
branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/interface/frontend.wsdl
branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/interface/ticket.wsdl
Log:
[JBWS-1553] fails to read operations for portType from different namespace
Modified: branches/jbossws-2.0/jbossws-core/.classpath
===================================================================
--- branches/jbossws-2.0/jbossws-core/.classpath 2007-06-19 14:28:49 UTC (rev 3631)
+++ branches/jbossws-2.0/jbossws-core/.classpath 2007-06-19 14:36:05 UTC (rev 3632)
@@ -21,7 +21,7 @@
<classpathentry kind="lib" path="thirdparty/mail.jar"/>
<classpathentry kind="lib" path="thirdparty/servlet-api.jar"/>
<classpathentry kind="lib" path="thirdparty/stax-api.jar"/>
- <classpathentry kind="lib" path="thirdparty/wsdl4j.jar"/>
+ <classpathentry kind="lib" path="thirdparty/wsdl4j.jar" sourcepath="thirdparty/wsdl4j-src.jar"/>
<classpathentry kind="lib" path="thirdparty/wstx.jar"/>
<classpathentry kind="lib" path="thirdparty/xalan.jar"/>
<classpathentry kind="lib" path="thirdparty/xercesImpl.jar"/>
Modified: branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/tools/wsdl/WSDL11Reader.java
===================================================================
--- branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/tools/wsdl/WSDL11Reader.java 2007-06-19 14:28:49 UTC (rev 3631)
+++ branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/tools/wsdl/WSDL11Reader.java 2007-06-19 14:36:05 UTC (rev 3632)
@@ -29,6 +29,7 @@
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
@@ -142,6 +143,14 @@
// SWA handling
private Map<QName, List<String>> skippedSWAParts = new HashMap<QName, List<String>>();
+ // It is generally unsafe to use the getter for a top level element on another top level element.
+ // For examples Binding.getPortType() returns a PortType which might might be undefined
+ // The lists below only contain "defined" top level elements
+ private Map<String, List<Service>> servicesByNamespace = new HashMap<String, List<Service>>();
+ private Map<String, List<Binding>> bindingsByNamespace = new HashMap<String, List<Binding>>();
+ private Map<String, List<PortType>> portTypesByNamespace = new HashMap<String, List<PortType>>();
+ private Map<String, List<Message>> messagesByNamespace = new HashMap<String, List<Message>>();
+
/**
* Takes a WSDL11 Definition element and converts into
* our object graph that has been developed for WSDL20
@@ -159,6 +168,7 @@
destWsdl.setWsdlNamespace(Constants.NS_WSDL11);
processNamespaces(srcWsdl);
+ processTopLevelElements(srcWsdl);
processTypes(srcWsdl, wsdlLoc);
processUnknownExtensibilityElements(srcWsdl, destWsdl);
processServices(srcWsdl);
@@ -171,6 +181,77 @@
return destWsdl;
}
+ private void processTopLevelElements(Definition srcWsdl)
+ {
+ String targetNS = srcWsdl.getTargetNamespace();
+
+ // Messages
+ Collection<Message> messages = srcWsdl.getMessages().values();
+ for (Message message : messages)
+ {
+ List<Message> list = messagesByNamespace.get(targetNS);
+ if (list == null)
+ {
+ list = new ArrayList<Message>();
+ messagesByNamespace.put(targetNS, list);
+ }
+ if (message.isUndefined() == false)
+ list.add(message);
+ }
+
+ // PortTypes
+ Collection<PortType> portTypes = srcWsdl.getPortTypes().values();
+ for (PortType portType : portTypes)
+ {
+ List<PortType> list = portTypesByNamespace.get(targetNS);
+ if (list == null)
+ {
+ list = new ArrayList<PortType>();
+ portTypesByNamespace.put(targetNS, list);
+ }
+ if (portType.isUndefined() == false)
+ list.add(portType);
+ }
+
+ // Bindings
+ Collection<Binding> bindings = srcWsdl.getBindings().values();
+ for (Binding binding : bindings)
+ {
+ List<Binding> list = bindingsByNamespace.get(targetNS);
+ if (list == null)
+ {
+ list = new ArrayList<Binding>();
+ bindingsByNamespace.put(targetNS, list);
+ }
+ if (binding.isUndefined() == false)
+ list.add(binding);
+ }
+
+ // Services
+ Collection<Service> services = srcWsdl.getServices().values();
+ for (Service service : services)
+ {
+ List<Service> list = servicesByNamespace.get(targetNS);
+ if (list == null)
+ {
+ list = new ArrayList<Service>();
+ servicesByNamespace.put(targetNS, list);
+ }
+ list.add(service);
+ }
+
+ // Imports
+ Collection<List<Import>> importLists = srcWsdl.getImports().values();
+ for (List<Import> imports : importLists)
+ {
+ for (Import imp : imports)
+ {
+ Definition impWsdl = imp.getDefinition();
+ processTopLevelElements(impWsdl);
+ }
+ }
+ }
+
private void cleanupTemporaryFiles()
{
for (File current : tempFiles)
@@ -214,18 +295,18 @@
destWsdl.registerNamespaceURI(nsURI, prefix);
}
}
-
+
private void processUnknownExtensibilityElements(ElementExtensible src, Extendable dest) throws WSDLException
{
List extElements = src.getExtensibilityElements();
- for (int i=0; i<extElements.size(); i++)
+ for (int i = 0; i < extElements.size(); i++)
{
ExtensibilityElement extElement = (ExtensibilityElement)extElements.get(i);
processPolicyElements(extElement, dest);
//add processing of further extensibility element types below
}
}
-
+
private void processPolicyElements(ExtensibilityElement extElement, Extendable dest)
{
if (extElement instanceof UnknownExtensibilityElement)
@@ -238,19 +319,17 @@
copyMissingNamespaceDeclarations(element, srcElement);
if (element.getLocalName().equals("Policy"))
{
- dest.addExtensibilityElement(
- new WSDLExtensibilityElement(Constants.WSDL_ELEMENT_POLICY,element));
+ dest.addExtensibilityElement(new WSDLExtensibilityElement(Constants.WSDL_ELEMENT_POLICY, element));
}
else if (element.getLocalName().equals("PolicyReference"))
{
- dest.addExtensibilityElement(
- new WSDLExtensibilityElement(Constants.WSDL_ELEMENT_POLICYREFERENCE,element));
+ dest.addExtensibilityElement(new WSDLExtensibilityElement(Constants.WSDL_ELEMENT_POLICYREFERENCE, element));
}
-
+
}
}
}
-
+
private void processTypes(Definition srcWsdl, URL wsdlLoc) throws IOException, WSDLException
{
log.trace("BEGIN processTypes: " + wsdlLoc);
@@ -352,7 +431,7 @@
parent = parent.getParentNode();
}
}
-
+
private void copyMissingNamespaceDeclarations(Element destElement, Element srcElement)
{
String prefix = destElement.getPrefix();
@@ -365,24 +444,24 @@
{
nsUri = null;
}
- if (prefix!=null && nsUri == null)
+ if (prefix != null && nsUri == null)
{
- destElement.setAttributeNS(Constants.NS_XMLNS,"xmlns:"+prefix,srcElement.lookupNamespaceURI(prefix));
-
+ destElement.setAttributeNS(Constants.NS_XMLNS, "xmlns:" + prefix, srcElement.lookupNamespaceURI(prefix));
+
}
-
+
NamedNodeMap attributes = destElement.getAttributes();
for (int i = 0; i < attributes.getLength(); i++)
{
Attr attr = (Attr)attributes.item(i);
String attrPrefix = attr.getPrefix();
- if (attrPrefix!=null && !attr.getName().startsWith("xmlns") && destElement.lookupNamespaceURI(attrPrefix) == null)
+ if (attrPrefix != null && !attr.getName().startsWith("xmlns") && destElement.lookupNamespaceURI(attrPrefix) == null)
{
- destElement.setAttributeNS(Constants.NS_XMLNS,"xmlns:"+attrPrefix,srcElement.lookupNamespaceURI(attrPrefix));
+ destElement.setAttributeNS(Constants.NS_XMLNS, "xmlns:" + attrPrefix, srcElement.lookupNamespaceURI(attrPrefix));
}
}
NodeList childrenList = destElement.getChildNodes();
- for (int i=0; i<childrenList.getLength(); i++)
+ for (int i = 0; i < childrenList.getLength(); i++)
{
Node node = childrenList.item(i);
if (node instanceof Element)
@@ -543,14 +622,14 @@
if (destWsdl.getInterface(qname) == null)
{
WSDLInterface destInterface = new WSDLInterface(destWsdl, qname);
-
+
//policy extensions
QName policyURIsProp = (QName)srcPortType.getExtensionAttribute(Constants.WSDL_ATTRIBUTE_WSP_POLICYURIS);
if (policyURIsProp != null && !"".equalsIgnoreCase(policyURIsProp.getLocalPart()))
{
destInterface.addProperty(new WSDLProperty(Constants.WSDL_PROPERTY_POLICYURIS, policyURIsProp.getLocalPart()));
}
-
+
// eventing extensions
QName eventSourceProp = (QName)srcPortType.getExtensionAttribute(Constants.WSDL_ATTRIBUTE_WSE_EVENTSOURCE);
if (eventSourceProp != null && eventSourceProp.getLocalPart().equals(Boolean.TRUE.toString()))
@@ -914,9 +993,7 @@
if (destWsdl.getBinding(srcBindingQName) == null)
{
- PortType srcPortType = srcBinding.getPortType();
- if (srcPortType == null)
- throw new WSDLException(WSDLException.INVALID_WSDL, "Cannot find port type for binding: " + srcBindingQName);
+ PortType srcPortType = getDefinedPortType(srcBinding);
// Get binding type
String bindingType = null;
@@ -979,13 +1056,71 @@
return true;
}
+ /** The port might reference a binding which is defined in another wsdl
+ */
+ private Binding getDefinedBinding(Port srcPort) throws WSDLException
+ {
+ Binding srcBinding = srcPort.getBinding();
+ if (srcBinding == null)
+ throw new WSDLException(WSDLException.INVALID_WSDL, "Cannot find binding for port: " + srcPort.getName());
+
+ QName srcBindingName = srcBinding.getQName();
+ if (srcBinding.isUndefined())
+ {
+ String nsURI = srcBindingName.getNamespaceURI();
+ List<Binding> bindings = bindingsByNamespace.get(nsURI);
+ if (bindings == null)
+ throw new WSDLException(WSDLException.INVALID_WSDL, "Cannot find bindings for namespace: " + nsURI);
+
+ for (Binding auxBinding : bindings)
+ {
+ if (srcBindingName.equals(auxBinding.getQName()))
+ {
+ srcBinding = auxBinding;
+ break;
+ }
+ }
+ }
+
+ return srcBinding;
+ }
+
+ /** The binding might reference a port type which is defined in another wsdl
+ */
+ private PortType getDefinedPortType(Binding srcBinding) throws WSDLException
+ {
+ QName srcBindingQName = srcBinding.getQName();
+
+ PortType srcPortType = srcBinding.getPortType();
+ if (srcPortType == null)
+ throw new WSDLException(WSDLException.INVALID_WSDL, "Cannot find port type for binding: " + srcBindingQName);
+
+ QName srcPortTypeName = srcPortType.getQName();
+ if (srcPortType.isUndefined())
+ {
+ String nsURI = srcPortTypeName.getNamespaceURI();
+ List<PortType> portTypes = portTypesByNamespace.get(nsURI);
+ if (portTypes == null)
+ throw new WSDLException(WSDLException.INVALID_WSDL, "Cannot find port types for namespace: " + nsURI);
+
+ for (PortType auxPortType : portTypes)
+ {
+ if (srcPortTypeName.equals(auxPortType.getQName()))
+ {
+ srcPortType = auxPortType;
+ break;
+ }
+ }
+ }
+
+ return srcPortType;
+ }
+
/**
* Identify and mark message parts that belong to
* an SWA binding and can be skipped when processing this WSDL
- * @param srcBinding
- * @param srcWsdl
*/
- private void preProcessSWAParts(Binding srcBinding, Definition srcWsdl)
+ private void preProcessSWAParts(Binding srcBinding, Definition srcWsdl) throws WSDLException
{
Iterator opIt = srcBinding.getBindingOperations().iterator();
@@ -1003,7 +1138,7 @@
}
}
- private void markSWAParts(List extensions, Binding srcBinding, Definition srcWsdl)
+ private void markSWAParts(List extensions, Binding srcBinding, Definition srcWsdl) throws WSDLException
{
Iterator extIt = extensions.iterator();
while (extIt.hasNext())
@@ -1012,7 +1147,7 @@
if (o instanceof MIMEMultipartRelated)
{
- QName portTypeName = srcBinding.getPortType().getQName();
+ QName portTypeName = getDefinedPortType(srcBinding).getQName();
if (log.isTraceEnabled())
log.trace("SWA found on portType" + portTypeName);
@@ -1038,13 +1173,13 @@
}
}
- private Map<QName, Binding> getPortTypeBindings(Definition srcWsdl)
+ private Map<QName, Binding> getPortTypeBindings(Definition srcWsdl) throws WSDLException
{
getAllDefinedBindings(srcWsdl);
return portTypeBindings;
}
- private Map<QName, Binding> getAllDefinedBindings(Definition srcWsdl)
+ private Map<QName, Binding> getAllDefinedBindings(Definition srcWsdl) throws WSDLException
{
if (allBindings != null)
return allBindings;
@@ -1057,7 +1192,7 @@
{
Binding srcBinding = (Binding)itBinding.next();
allBindings.put(srcBinding.getQName(), srcBinding);
- portTypeBindings.put(srcBinding.getPortType().getQName(), srcBinding);
+ portTypeBindings.put(getDefinedPortType(srcBinding).getQName(), srcBinding);
}
// Bindings not available when pulled in through <wsdl:import>
@@ -1072,7 +1207,7 @@
Port srcPort = (Port)itPort.next();
Binding srcBinding = srcPort.getBinding();
allBindings.put(srcBinding.getQName(), srcBinding);
- portTypeBindings.put(srcBinding.getPortType().getQName(), srcBinding);
+ portTypeBindings.put(getDefinedPortType(srcBinding).getQName(), srcBinding);
}
}
@@ -1229,7 +1364,7 @@
{
SOAP12Body body = (SOAP12Body)extElement;
processEncodingStyle(body, destBindingOperation);
-
+
String namespaceURI = body.getNamespaceURI();
destBindingOperation.setNamespaceURI(namespaceURI);
}
@@ -1415,7 +1550,7 @@
{
log.trace("processPort: " + srcPort.getName());
- Binding srcBinding = srcPort.getBinding();
+ Binding srcBinding = getDefinedBinding(srcPort);
QName endpointName = new QName(srcWsdl.getTargetNamespace(), srcPort.getName());
WSDLEndpoint destEndpoint = new WSDLEndpoint(destService, endpointName);
destEndpoint.setBinding(srcBinding.getQName());
Modified: branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/tools/wsdl/WSDLDefinitionsFactory.java
===================================================================
--- branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/tools/wsdl/WSDLDefinitionsFactory.java 2007-06-19 14:28:49 UTC (rev 3631)
+++ branches/jbossws-2.0/jbossws-core/src/main/java/org/jboss/ws/tools/wsdl/WSDLDefinitionsFactory.java 2007-06-19 14:36:05 UTC (rev 3632)
@@ -1,24 +1,24 @@
/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
package org.jboss.ws.tools.wsdl;
// $Id$
@@ -98,8 +98,9 @@
if (wsdlLocation == null)
throw new IllegalArgumentException("URL cannot be null");
- if(log.isDebugEnabled()) log.debug("parse: " + wsdlLocation.toExternalForm());
-
+ if (log.isDebugEnabled())
+ log.debug("parse: " + wsdlLocation.toExternalForm());
+
EntityResolver entityResolver = new JBossWSEntityResolver();
WSDLDefinitions wsdlDefinitions = null;
try
@@ -108,7 +109,7 @@
String defaultNamespace = getDefaultNamespace(wsdlDoc);
if (Constants.NS_WSDL11.equals(defaultNamespace))
{
- WSDLFactory wsdlFactory = WSDLFactory.newInstance(JBossWSDLFactoryImpl.class.getName());
+ WSDLFactory wsdlFactory = WSDLFactory.newInstance(JBossWSDLFactoryImpl.class.getName());
WSDLReader wsdlReader = wsdlFactory.newWSDLReader();
wsdlReader.setFeature("javax.wsdl.verbose", false);
@@ -122,15 +123,15 @@
Boolean flag = (Boolean)entry.getValue();
wsdlReader.setFeature(key, flag.booleanValue());
}
-
+
Definition definition = wsdlReader.readWSDL(new WSDLLocatorImpl(entityResolver, wsdlLocation));
wsdlDefinitions = new WSDL11Reader().processDefinition(definition, wsdlLocation);
wsdlDefinitions.setWsdlDocument(wsdlDoc);
}
else
- {
+ {
throw new WSDLException("Invalid default namespace: " + defaultNamespace);
- }
+ }
if (log.isTraceEnabled())
{
Modified: branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/tools/jbws1553/JBWS1553TestCase.java
===================================================================
--- branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/tools/jbws1553/JBWS1553TestCase.java 2007-06-19 14:28:49 UTC (rev 3631)
+++ branches/jbossws-2.0/jbossws-core/src/test/java/org/jboss/test/ws/tools/jbws1553/JBWS1553TestCase.java 2007-06-19 14:36:05 UTC (rev 3632)
@@ -21,39 +21,41 @@
*/
package org.jboss.test.ws.tools.jbws1553;
+// $Id$
+
import java.io.File;
import java.net.URL;
import javax.xml.namespace.QName;
+import junit.framework.TestCase;
+
import org.jboss.ws.metadata.wsdl.WSDLDefinitions;
import org.jboss.ws.metadata.wsdl.WSDLEndpoint;
-import org.jboss.ws.metadata.wsdl.WSDLInterface;
import org.jboss.ws.metadata.wsdl.WSDLService;
import org.jboss.ws.tools.wsdl.WSDLDefinitionsFactory;
-import junit.framework.TestCase;
-
/**
+ * [JBWS-1553] fails to read operations for portType from different namespace
+ *
+ * http://jira.jboss.org/jira/browse/JBWS-1553
+ *
* @author <a href="mailto:alex.guizar at jboss.com">Alejandro Guizar</a>
- * @version $Revision$
*/
public class JBWS1553TestCase extends TestCase
{
private WSDLDefinitions definitions;
- private static WSDLDefinitionsFactory definitionsFactory = WSDLDefinitionsFactory.newInstance();
protected void setUp() throws Exception
{
URL wsdlLocation = new File("resources/tools/jbws1553/atm-service.wsdl").toURL();
- definitions = definitionsFactory.parse(wsdlLocation);
+ definitions = WSDLDefinitionsFactory.newInstance().parse(wsdlLocation);
}
public void testPortType()
{
- WSDLService atmService = definitions.getService("AtmFrontEndService");
- WSDLEndpoint endpoint = atmService.getEndpoint(new QName("urn:samples:atm", "FrontEndPort"));
- WSDLInterface _interface = endpoint.getInterface();
- assertEquals(new QName("urn:samples:frontend", "FrontEnd"), _interface.getName());
+ WSDLService wsdlService = definitions.getService("AtmFrontEndService");
+ WSDLEndpoint wsdlEndpoint = wsdlService.getEndpoint(new QName("urn:samples:atm", "FrontEndPort"));
+ assertEquals(new QName("urn:samples:atm2", "FrontEnd"), wsdlEndpoint.getInterface().getName());
}
}
Modified: branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/atm-binding-1.wsdl
===================================================================
--- branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/atm-binding-1.wsdl 2007-06-19 14:28:49 UTC (rev 3631)
+++ branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/atm-binding-1.wsdl 2007-06-19 14:36:05 UTC (rev 3632)
@@ -1,95 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="urn:samples:frontend"
- xmlns:tns="urn:samples:frontend"
- xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
- xmlns="http://schemas.xmlsoap.org/wsdl/">
-
- <import namespace="urn:samples:frontend" location="interface/frontend.wsdl" />
-
+<definitions targetNamespace="urn:samples:atm2" xmlns:tns="urn:samples:atm2" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <import namespace="urn:samples:atm" location="atm.wsdl"/>
<binding name="FrontEndBinding" type="tns:FrontEnd">
-
- <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
-
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="connect">
- <soap:operation soapAction="urn:samples:frontend:connect" />
+ <soap:operation soapAction="urn:samples:atm2:connect"/>
<input>
- <soap:body use="literal" namespace="urn:samples:frontend" />
+ <soap:body use="literal" namespace="urn:samples:atm2"/>
</input>
<output>
- <soap:body use="literal" namespace="urn:samples:frontend" />
+ <soap:body use="literal" namespace="urn:samples:atm2"/>
</output>
</operation>
-
<operation name="disconnect">
- <soap:operation soapAction="urn:samples:frontend:disconnect" />
+ <soap:operation soapAction="urn:samples:atm2:disconnect"/>
<input>
- <soap:body use="literal" namespace="urn:samples:frontend" />
+ <soap:body use="literal" namespace="urn:samples:atm2"/>
</input>
</operation>
-
<operation name="status">
- <soap:operation soapAction="urn:samples:frontend:status" />
+ <soap:operation soapAction="urn:samples:atm2:status"/>
<input>
- <soap:body use="literal" namespace="urn:samples:frontend" />
+ <soap:body use="literal" namespace="urn:samples:atm2"/>
</input>
<output>
- <soap:body use="literal" namespace="urn:samples:frontend" />
+ <soap:body use="literal" namespace="urn:samples:atm2"/>
</output>
</operation>
-
<operation name="logOn">
- <soap:operation soapAction="urn:samples:frontend:logOn" />
+ <soap:operation soapAction="urn:samples:atm2:logOn"/>
<input>
- <soap:body use="literal" namespace="urn:samples:frontend" />
+ <soap:body use="literal" namespace="urn:samples:atm2"/>
</input>
<output>
- <soap:body use="literal" namespace="urn:samples:frontend" />
+ <soap:body use="literal" namespace="urn:samples:atm2"/>
</output>
<fault name="unauthorizedAccess">
- <soap:fault name="unauthorizedAccess" use="literal" />
+ <soap:fault name="unauthorizedAccess" use="literal"/>
</fault>
</operation>
-
<operation name="logOff">
- <soap:operation soapAction="urn:samples:frontend:logOff" />
+ <soap:operation soapAction="urn:samples:atm2:logOff"/>
<input>
- <soap:body use="literal" namespace="urn:samples:frontend" />
+ <soap:body use="literal" namespace="urn:samples:atm2"/>
</input>
</operation>
-
<operation name="getBalance">
- <soap:operation soapAction="urn:samples:frontend:getBalance" />
+ <soap:operation soapAction="urn:samples:atm2:getBalance"/>
<input>
- <soap:body use="literal" namespace="urn:samples:frontend" />
+ <soap:body use="literal" namespace="urn:samples:atm2"/>
</input>
<output>
- <soap:body use="literal" namespace="urn:samples:frontend" />
+ <soap:body use="literal" namespace="urn:samples:atm2"/>
</output>
</operation>
-
<operation name="deposit">
- <soap:operation soapAction="urn:samples:frontend:deposit" />
+ <soap:operation soapAction="urn:samples:atm2:deposit"/>
<input>
- <soap:body use="literal" namespace="urn:samples:frontend" />
+ <soap:body use="literal" namespace="urn:samples:atm2"/>
</input>
<output>
- <soap:body use="literal" namespace="urn:samples:frontend" />
+ <soap:body use="literal" namespace="urn:samples:atm2"/>
</output>
</operation>
-
<operation name="withdraw">
- <soap:operation soapAction="urn:samples:frontend:withdraw" />
+ <soap:operation soapAction="urn:samples:atm2:withdraw"/>
<input>
- <soap:body use="literal" namespace="urn:samples:frontend" />
+ <soap:body use="literal" namespace="urn:samples:atm2"/>
</input>
<output>
- <soap:body use="literal" namespace="urn:samples:frontend" />
+ <soap:body use="literal" namespace="urn:samples:atm2"/>
</output>
<fault name="insufficientFunds">
- <soap:fault name="insufficientFunds" use="literal" />
+ <soap:fault name="insufficientFunds" use="literal"/>
</fault>
</operation>
-
+ <operation name="myop">
+ <soap:operation soapAction="urn:samples:atm2:myop"/>
+ <input>
+ <soap:body use="literal" namespace="urn:samples:atm2"/>
+ </input>
+ </operation>
</binding>
-
-</definitions>
+</definitions>
\ No newline at end of file
Modified: branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/atm-service.wsdl
===================================================================
--- branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/atm-service.wsdl 2007-06-19 14:28:49 UTC (rev 3631)
+++ branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/atm-service.wsdl 2007-06-19 14:36:05 UTC (rev 3632)
@@ -1,15 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="urn:samples:atm" xmlns:tns="urn:samples:atm"
- xmlns:front="urn:samples:frontend"
- xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+<definitions targetNamespace="urn:samples:atm" xmlns:tns="urn:samples:atm" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:bindingNS2="urn:samples:atm2"
xmlns="http://schemas.xmlsoap.org/wsdl/">
-
- <import namespace="urn:samples:frontend" location="atm-binding-1.wsdl" />
-
+ <import namespace="urn:samples:atm2" location="atm-binding-1.wsdl"/>
<service name="AtmFrontEndService">
- <port name="FrontEndPort" binding="front:FrontEndBinding">
- <soap:address location="REPLACE_WITH_ACTUAL_URI" />
+ <port name="FrontEndPort" binding="bindingNS2:FrontEndBinding">
+ <soap:address location="REPLACE_WITH_ACTUAL_URI"/>
</port>
</service>
-
-</definitions>
+</definitions>
\ No newline at end of file
Modified: branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/atm.wsdl
===================================================================
--- branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/atm.wsdl 2007-06-19 14:28:49 UTC (rev 3631)
+++ branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/atm.wsdl 2007-06-19 14:36:05 UTC (rev 3632)
@@ -1,57 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="urn:samples:atm"
- xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:samples:atm"
- xmlns:front="urn:samples:frontend" xmlns:tic="urn:samples:ticket"
- xmlns:acc="urn:samples:account"
- xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
- xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-
- <import namespace="urn:samples:frontend" location="interface/frontend.wsdl" />
- <import namespace="urn:samples:ticket" location="interface/ticket.wsdl" />
- <import namespace="urn:samples:account" location="interface/account.wsdl" />
-
- <!-- customer name property -->
- <bpel:property name="customerId" type="xsd:string" />
-
- <!-- location of costumerId inside messages -->
- <bpel:propertyAlias propertyName="tns:customerId"
- messageType="front:logOnRequest" part="customerName" />
- <bpel:propertyAlias propertyName="tns:customerId"
- messageType="front:balanceChange" part="customerName" />
- <bpel:propertyAlias propertyName="tns:customerId"
- messageType="acc:customerMessage" part="customerName" />
- <bpel:propertyAlias propertyName="tns:customerId"
- messageType="acc:accountOperation" part="body" query="/body/customerName" />
-
- <!-- ticket number property -->
- <bpel:property name="ticketId" type="xsd:int" />
-
- <!-- location of ticketId inside messages -->
- <bpel:propertyAlias propertyName="tns:ticketId"
- messageType="tic:ticketMessage" part="ticketNo" />
- <bpel:propertyAlias propertyName="tns:ticketId"
- messageType="front:logOnRequest" part="ticketNo" />
-
- <!-- relationship between the ATM and the process -->
- <plt:partnerLinkType name="Atm-Front">
- <plt:role name="FrontEnd">
- <plt:portType name="front:FrontEnd" />
- </plt:role>
- </plt:partnerLinkType>
-
- <!-- relationship between the process and the ticket issuer -->
- <plt:partnerLinkType name="Front-Ticket">
- <plt:role name="TicketIssuer">
- <plt:portType name="tic:TicketIssuer" />
- </plt:role>
- </plt:partnerLinkType>
-
- <!-- relationship between the process and the account system -->
- <plt:partnerLinkType name="Front-Account">
- <plt:role name="AccountSystem">
- <plt:portType name="acc:AccountSystem" />
- </plt:role>
- </plt:partnerLinkType>
-
+<definitions targetNamespace="urn:samples:atm" xmlns:tns="urn:samples:atm" xmlns:atm="urn:samples:atm2" xmlns:acc="urn:samples:account"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:plt2="http://schemas.xmlsoap.org/ws/2004/03/partner-link/"
+ xmlns:bpel2="http://schemas.xmlsoap.org/ws/2004/03/business-process/" xmlns:tic="urn:samples:ticket" xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <import namespace="urn:samples:account" location="interface/account.wsdl"/>
+ <import namespace="urn:samples:ticket" location="interface/ticket.wsdl"/>
+ <import namespace="urn:samples:atm2" location="interface/frontend.wsdl"/>
+ <bpel2:property name="customerId" type="xsd:string"/>
+ <bpel2:propertyAlias propertyName="tns:customerId" messageType="atm:logOnRequest" part="customerName"/>
+ <bpel2:propertyAlias propertyName="tns:customerId" messageType="atm:balanceChange" part="customerName"/>
+ <bpel2:propertyAlias propertyName="tns:customerId" messageType="acc:customerMessage" part="customerName"/>
+ <bpel2:propertyAlias propertyName="tns:customerId" messageType="acc:accountOperation" part="body">
+ <bpel2:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">/body/customerName</bpel2:query>
+ </bpel2:propertyAlias>
+ <bpel2:property name="ticketId" type="xsd:int"/>
+ <bpel2:propertyAlias propertyName="tns:ticketId" messageType="tic:ticketMessage" part="ticketNo"/>
+ <bpel2:propertyAlias propertyName="tns:ticketId" messageType="atm:logOnRequest" part="ticketNo"/>
+ <plt2:partnerLinkType name="Atm-Front">
+ <plt2:role name="FrontEnd" portType="atm:FrontEnd"/>
+ </plt2:partnerLinkType>
+ <plt2:partnerLinkType name="Front-Ticket">
+ <plt2:role name="TicketIssuer" portType="tic:TicketIssuer"/>
+ </plt2:partnerLinkType>
+ <plt2:partnerLinkType name="Front-Account">
+ <plt2:role name="AccountSystem" portType="acc:AccountSystem"/>
+ </plt2:partnerLinkType>
</definitions>
\ No newline at end of file
Modified: branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/interface/account.wsdl
===================================================================
--- branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/interface/account.wsdl 2007-06-19 14:28:49 UTC (rev 3631)
+++ branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/interface/account.wsdl 2007-06-19 14:36:05 UTC (rev 3632)
@@ -1,69 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="urn:samples:account"
- xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:samples:account"
- xmlns:typ="urn:samples:account" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/
- http://schemas.xmlsoap.org/wsdl/">
-
+<definitions targetNamespace="urn:samples:account" xmlns:tns="urn:samples:account" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:typ="urn:samples:account" xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
-
- <schema targetNamespace="urn:samples:account"
- xmlns="http://www.w3.org/2001/XMLSchema">
-
+ <schema targetNamespace="urn:samples:account" xmlns="http://www.w3.org/2001/XMLSchema">
+
<!-- account data transfer type -->
<complexType name="AccountOperation">
<sequence>
- <element name="customerName" type="xsd:string" />
- <element name="amount" type="xsd:double" />
+ <element name="customerName" type="xsd:string"/>
+ <element name="amount" type="xsd:double"/>
</sequence>
</complexType>
-
+
</schema>
-
</types>
-
- <!-- customer name wrapper -->
- <message name="customerMessage">
- <part name="customerName" type="xsd:string" />
- </message>
-
- <!-- access check response -->
<message name="accessMessage">
- <part name="granted" type="xsd:boolean" />
+ <part name="granted" type="xsd:boolean"/>
</message>
-
- <!-- account balance wrapper -->
- <message name="balanceMessage">
- <part name="balance" type="xsd:double" />
+ <message name="customerMessage">
+ <part name="customerName" type="xsd:string"/>
</message>
-
- <!-- account operation request -->
<message name="accountOperation">
- <part name="body" type="typ:AccountOperation" />
+ <part name="body" type="tns:AccountOperation"/>
</message>
-
- <!-- published account functions -->
+ <message name="balanceMessage">
+ <part name="balance" type="xsd:double"/>
+ </message>
<portType name="AccountSystem">
-
- <!-- tell whether a customer has an active account -->
<operation name="checkAccess">
- <input message="tns:customerMessage" />
- <output message="tns:accessMessage" />
+ <input message="tns:customerMessage"/>
+ <output message="tns:accessMessage"/>
</operation>
-
- <!-- retrieve the balance of an account -->
<operation name="queryBalance">
- <input message="tns:customerMessage" />
- <output message="tns:balanceMessage" />
+ <input message="tns:customerMessage"/>
+ <output message="tns:balanceMessage"/>
</operation>
-
- <!-- increase/decrease the balance of an account -->
<operation name="updateBalance">
- <input message="tns:accountOperation" />
- <output message="tns:balanceMessage" />
+ <input message="tns:accountOperation"/>
+ <output message="tns:balanceMessage"/>
</operation>
-
</portType>
-
</definitions>
\ No newline at end of file
Modified: branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/interface/frontend.wsdl
===================================================================
--- branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/interface/frontend.wsdl 2007-06-19 14:28:49 UTC (rev 3631)
+++ branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/interface/frontend.wsdl 2007-06-19 14:36:05 UTC (rev 3632)
@@ -1,122 +1,89 @@
<?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="urn:samples:frontend"
- xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:samples:frontend"
- xmlns:typ="urn:samples:frontend" xmlns:tic="urn:samples:ticket"
- xmlns:acc="urn:samples:account" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/
- http://schemas.xmlsoap.org/wsdl/">
-
- <import namespace="urn:samples:ticket" location="ticket.wsdl" />
- <import namespace="urn:samples:account" location="account.wsdl" />
-
+<definitions targetNamespace="urn:samples:atm2" xmlns:tns="urn:samples:atm2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:acc="urn:samples:account"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:typ="urn:samples:atm2" xmlns:tic="urn:samples:ticket" xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <import namespace="urn:samples:account" location="account.wsdl"/>
+ <import namespace="urn:samples:ticket" location="ticket.wsdl"/>
<types>
-
- <schema targetNamespace="urn:samples:frontend"
- xmlns="http://www.w3.org/2001/XMLSchema">
-
+ <schema targetNamespace="urn:samples:atm2" xmlns="http://www.w3.org/2001/XMLSchema">
+
<complexType name="UnauthorizedAccess">
<sequence>
- <element name="customerName" type="xsd:string" />
+ <element name="customerName" type="xsd:string"/>
</sequence>
</complexType>
-
- <element name="unauthorizedAccess" type="typ:UnauthorizedAccess" />
-
+
+ <element name="unauthorizedAccess" type="typ:UnauthorizedAccess"/>
+
<complexType name="InsufficientFunds">
<sequence>
- <element name="customerName" type="xsd:string" />
- <element name="amount" type="xsd:double" />
+ <element name="customerName" type="xsd:string"/>
+ <element name="amount" type="xsd:double"/>
</sequence>
</complexType>
-
- <element name="insufficientFunds" type="typ:InsufficientFunds" />
-
+
+ <element name="insufficientFunds" type="typ:InsufficientFunds"/>
+
</schema>
-
</types>
-
- <message name="connectRequest" />
-
- <message name="logOnRequest">
- <part name="ticketNo" type="xsd:int" />
- <part name="customerName" type="xsd:string" />
+ <message name="unauthorizedAccess">
+ <part name="detail" element="tns:unauthorizedAccess"/>
</message>
-
- <message name="logOnResponse" />
-
+ <message name="connectRequest">
+ </message>
+ <message name="mymessage">
+ <part name="body" type="xsd:string"/>
+ </message>
<message name="statusResponse">
- <part name="status" type="xsd:string" />
+ <part name="status" type="xsd:string"/>
</message>
-
<message name="balanceChange">
- <part name="customerName" type="xsd:string" />
- <part name="amount" type="xsd:double" />
+ <part name="customerName" type="xsd:string"/>
+ <part name="amount" type="xsd:double"/>
</message>
-
- <message name="unauthorizedAccess">
- <part name="detail" element="typ:unauthorizedAccess" />
+ <message name="logOnRequest">
+ <part name="ticketNo" type="xsd:int"/>
+ <part name="customerName" type="xsd:string"/>
</message>
-
<message name="insufficientFunds">
- <part name="detail" element="typ:insufficientFunds" />
+ <part name="detail" element="tns:insufficientFunds"/>
</message>
-
- <message name="mymessage">
- <part name="body" type="xsd:string" />
+ <message name="logOnResponse">
</message>
-
- <!-- bank functions available to ATMs -->
<portType name="FrontEnd">
-
- <!-- initiate bank connection -->
<operation name="connect">
- <input message="tns:connectRequest" />
- <output message="tic:ticketMessage" />
+ <input message="tns:connectRequest"/>
+ <output message="tic:ticketMessage"/>
</operation>
-
- <!-- terminate bank connection -->
<operation name="disconnect">
- <input message="tic:ticketMessage" />
+ <input message="tic:ticketMessage"/>
</operation>
-
- <!-- retrieve bank connection status -->
<operation name="status">
- <input message="tic:ticketMessage" />
- <output message="tns:statusResponse" />
+ <input message="tic:ticketMessage"/>
+ <output message="tns:statusResponse"/>
</operation>
-
- <!-- initiate customer session -->
<operation name="logOn">
- <input message="tns:logOnRequest" />
- <output message="tns:logOnResponse" />
- <fault name="unauthorizedAccess" message="tns:unauthorizedAccess" />
+ <input message="tns:logOnRequest"/>
+ <output message="tns:logOnResponse"/>
+ <fault name="unauthorizedAccess" message="tns:unauthorizedAccess"/>
</operation>
-
- <!-- terminate customer session -->
<operation name="logOff">
- <input message="acc:customerMessage" />
+ <input message="acc:customerMessage"/>
</operation>
-
- <!-- retrieve account balance -->
<operation name="getBalance">
- <input message="acc:customerMessage" />
- <output message="acc:balanceMessage" />
+ <input message="acc:customerMessage"/>
+ <output message="acc:balanceMessage"/>
</operation>
-
- <!-- increase account balance -->
<operation name="deposit">
- <input message="tns:balanceChange" />
- <output message="acc:balanceMessage" />
+ <input message="tns:balanceChange"/>
+ <output message="acc:balanceMessage"/>
</operation>
-
- <!-- decrease account balance -->
<operation name="withdraw">
- <input message="tns:balanceChange" />
- <output message="acc:balanceMessage" />
- <fault name="insufficientFunds" message="tns:insufficientFunds" />
+ <input message="tns:balanceChange"/>
+ <output message="acc:balanceMessage"/>
+ <fault name="insufficientFunds" message="tns:insufficientFunds"/>
</operation>
-
+ <operation name="myop">
+ <input message="tns:mymessage"/>
+ </operation>
</portType>
-
</definitions>
\ No newline at end of file
Modified: branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/interface/ticket.wsdl
===================================================================
--- branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/interface/ticket.wsdl 2007-06-19 14:28:49 UTC (rev 3631)
+++ branches/jbossws-2.0/jbossws-core/src/test/resources/tools/jbws1553/interface/ticket.wsdl 2007-06-19 14:36:05 UTC (rev 3632)
@@ -1,28 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="urn:samples:ticket" xmlns:tns="urn:samples:ticket"
- xmlns="http://schemas.xmlsoap.org/wsdl/"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/
- http://schemas.xmlsoap.org/wsdl/">
-
- <!-- ticket creation request -->
- <message name="ticketRequest" />
-
- <!-- ticket number wrapper -->
+<definitions targetNamespace="urn:samples:ticket" xmlns:tns="urn:samples:ticket" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/">
<message name="ticketMessage">
- <part name="ticketNo" type="xsd:int" />
+ <part name="ticketNo" type="xsd:int"/>
</message>
-
- <!-- interface to ticket issuer service -->
+ <message name="ticketRequest">
+ </message>
<portType name="TicketIssuer">
-
- <!-- generate a ticket number, distinct from previous calls -->
<operation name="createTicket">
- <input message="tns:ticketRequest" />
- <output message="tns:ticketMessage" />
+ <input message="tns:ticketRequest"/>
+ <output message="tns:ticketMessage"/>
</operation>
-
</portType>
-
</definitions>
\ No newline at end of file
More information about the jbossws-commits
mailing list