Author: tho...@jb... Date: 2006-07-05 06:55:12 -0400 (Wed, 05 Jul 2006) New Revision: 562 Added: trunk/src/main/java/org/jboss/ws/jaxws/client/DispatchImpl.java trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/DocBareServiceImpl.java trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/DocWrappedServiceImpl.java trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/ExampleSEI.java trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/ExampleServiceImpl.java Removed: trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/DocBareService.java trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/DocWrappedService.java trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/ExampleService.java trunk/src/test/resources/jsr181/soapbinding/bare-config.xml trunk/src/test/resources/jsr181/soapbinding/bare-mapping.xml trunk/src/test/resources/jsr181/soapbinding/jaxrpc-mapping.xml trunk/src/test/resources/jsr181/soapbinding/wrapped-config.xml trunk/src/test/resources/jsr181/soapbinding/wrapped-mapping.xml Modified: trunk/src/main/java/org/jboss/ws/addressing/soap/SOAPServerHandler.java trunk/src/main/java/org/jboss/ws/binding/EndpointInvocation.java trunk/src/main/java/org/jboss/ws/binding/soap/JAXRPCBindingProvider.java trunk/src/main/java/org/jboss/ws/binding/soap/JAXWSBindingProviderMessage.java trunk/src/main/java/org/jboss/ws/binding/soap/JAXWSBindingProviderPayload.java trunk/src/main/java/org/jboss/ws/deployment/AbstractAnnotationsMetaDataBuilder.java trunk/src/main/java/org/jboss/ws/deployment/JAXWSClientMetaDataBuilder.java trunk/src/main/java/org/jboss/ws/deployment/JSR109ClientMetaDataBuilder.java trunk/src/main/java/org/jboss/ws/deployment/JSR109MetaDataBuilder.java trunk/src/main/java/org/jboss/ws/deployment/JSR109ServerMetaDataBuilder.java trunk/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilder.java trunk/src/main/java/org/jboss/ws/jaxrpc/CallProxy.java trunk/src/main/java/org/jboss/ws/jaxrpc/ParameterWrapping.java trunk/src/main/java/org/jboss/ws/jaxrpc/ServiceImpl.java trunk/src/main/java/org/jboss/ws/jaxws/client/PortProxy.java trunk/src/main/java/org/jboss/ws/jaxws/spi/ServiceDelegateImpl.java trunk/src/main/java/org/jboss/ws/metadata/EndpointMetaData.java trunk/src/main/java/org/jboss/ws/metadata/OperationMetaData.java trunk/src/main/java/org/jboss/ws/metadata/ServiceMetaData.java trunk/src/main/java/org/jboss/ws/soap/SOAPConnectionImpl.java trunk/src/main/java/org/jboss/ws/soap/SOAPMessageDispatcher.java trunk/src/main/java/org/jboss/ws/tools/helpers/JavaToWSDLHelper.java trunk/src/main/java/org/jboss/ws/tools/helpers/ToolsHelper.java trunk/src/main/java/org/jboss/ws/tools/metadata/ReflectiveMetaDataBuilder.java trunk/src/main/java/org/jboss/ws/wsse/WSSecurityDispatcher.java trunk/src/test/ant/build-jars.xml trunk/src/test/java/org/jboss/test/ws/jbws860/JBWS860TestCase.java trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/JSR181SOAPBindingTestCase.java trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/SubmitBareRequest.java trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/SubmitBareResponse.java trunk/src/test/java/org/jboss/test/ws/jsr181/webmethod/JSR181WebMethodTestCase.java trunk/src/test/java/org/jboss/test/ws/xop/XOPElementRPCTestCase.java trunk/src/test/resources/jsr181/soapbinding/WEB-INF/web.xml Log: JBWS-1025: Implement javax.xml.ws.Dispatch Modified: trunk/src/main/java/org/jboss/ws/addressing/soap/SOAPServerHandler.java =================================================================== --- trunk/src/main/java/org/jboss/ws/addressing/soap/SOAPServerHandler.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/addressing/soap/SOAPServerHandler.java 2006-07-05 10:55:12 UTC (rev 562) @@ -154,7 +154,7 @@ outProps.setAction(ADDR_BUILDER.newURI(addrExt.getOutboundAction())); } else { - log.warn("Unable to resolve replyAction for "+opMetaData.getXmlName()); + log.warn("Unable to resolve replyAction for "+opMetaData.getQName()); } } Modified: trunk/src/main/java/org/jboss/ws/binding/EndpointInvocation.java =================================================================== --- trunk/src/main/java/org/jboss/ws/binding/EndpointInvocation.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/binding/EndpointInvocation.java 2006-07-05 10:55:12 UTC (rev 562) @@ -166,7 +166,7 @@ { ParameterMetaData retMetaData = opMetaData.getReturnParameter(); if (value != null && retMetaData == null) - throw new WSException("Operation does not have a return value: " + opMetaData.getXmlName()); + throw new WSException("Operation does not have a return value: " + opMetaData.getQName()); log.debug("setReturnValue: " + getTypeName(value)); this.returnValue = value; Modified: trunk/src/main/java/org/jboss/ws/binding/soap/JAXRPCBindingProvider.java =================================================================== --- trunk/src/main/java/org/jboss/ws/binding/soap/JAXRPCBindingProvider.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/binding/soap/JAXRPCBindingProvider.java 2006-07-05 10:55:12 UTC (rev 562) @@ -75,7 +75,7 @@ /** On the client side, generate the payload from IN parameters. */ public SOAPMessage bindRequestMessage(OperationMetaData opMetaData, EndpointInvocation epInv, Map<QName, UnboundHeader> unboundHeaders) throws BindingException { - log.debug("bindRequestMessage: " + opMetaData.getXmlName()); + log.debug("bindRequestMessage: " + opMetaData.getQName()); try { @@ -97,7 +97,7 @@ Style style = opMetaData.getStyle(); if (style == Style.RPC) { - QName opQName = opMetaData.getXmlName(); + QName opQName = opMetaData.getQName(); Name opName = new NameImpl(namespaceRegistry.registerQName(opQName)); log.debug("Create RPC body element: " + opName); @@ -186,7 +186,7 @@ /** On the server side, extract the IN parameters from the payload and populate an Invocation object */ public EndpointInvocation unbindRequestMessage(OperationMetaData opMetaData, SOAPMessage reqMessage) throws BindingException { - log.debug("unbindRequestMessage: " + opMetaData.getXmlName()); + log.debug("unbindRequestMessage: " + opMetaData.getQName()); try { @@ -306,7 +306,7 @@ /** On the server side, generate the payload from OUT parameters. */ public SOAPMessage bindResponseMessage(OperationMetaData opMetaData, EndpointInvocation epInv) throws BindingException { - log.debug("bindResponseMessage: " + opMetaData.getXmlName()); + log.debug("bindResponseMessage: " + opMetaData.getQName()); try { @@ -439,7 +439,7 @@ public void unbindResponseMessage(OperationMetaData opMetaData, SOAPMessage resMessage, EndpointInvocation epInv, Map<QName, UnboundHeader> unboundHeaders) throws BindingException { - log.debug("unbindResponseMessage: " + opMetaData.getXmlName()); + log.debug("unbindResponseMessage: " + opMetaData.getQName()); try { Modified: trunk/src/main/java/org/jboss/ws/binding/soap/JAXWSBindingProviderMessage.java =================================================================== --- trunk/src/main/java/org/jboss/ws/binding/soap/JAXWSBindingProviderMessage.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/binding/soap/JAXWSBindingProviderMessage.java 2006-07-05 10:55:12 UTC (rev 562) @@ -59,7 +59,7 @@ /** On the server side, extract the IN parameters from the payload and populate an Invocation object */ public EndpointInvocation unbindRequestMessage(OperationMetaData opMetaData, SOAPMessage reqMessage) throws BindingException { - log.debug("unbindRequestMessage: " + opMetaData.getXmlName()); + log.debug("unbindRequestMessage: " + opMetaData.getQName()); try { @@ -86,7 +86,7 @@ /** On the server side, generate the payload from OUT parameters. */ public SOAPMessage bindResponseMessage(OperationMetaData opMetaData, EndpointInvocation epInv) throws BindingException { - log.debug("bindResponseMessage: " + opMetaData.getXmlName()); + log.debug("bindResponseMessage: " + opMetaData.getQName()); try { Modified: trunk/src/main/java/org/jboss/ws/binding/soap/JAXWSBindingProviderPayload.java =================================================================== --- trunk/src/main/java/org/jboss/ws/binding/soap/JAXWSBindingProviderPayload.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/binding/soap/JAXWSBindingProviderPayload.java 2006-07-05 10:55:12 UTC (rev 562) @@ -64,7 +64,7 @@ /** On the server side, extract the IN parameters from the payload and populate an Invocation object */ public EndpointInvocation unbindRequestMessage(OperationMetaData opMetaData, SOAPMessage reqMessage) throws BindingException { - log.debug("unbindRequestMessage: " + opMetaData.getXmlName()); + log.debug("unbindRequestMessage: " + opMetaData.getQName()); try { @@ -94,7 +94,7 @@ /** On the server side, generate the payload from OUT parameters. */ public SOAPMessage bindResponseMessage(OperationMetaData opMetaData, EndpointInvocation epInv) throws BindingException { - log.debug("bindResponseMessage: " + opMetaData.getXmlName()); + log.debug("bindResponseMessage: " + opMetaData.getQName()); try { Modified: trunk/src/main/java/org/jboss/ws/deployment/AbstractAnnotationsMetaDataBuilder.java =================================================================== --- trunk/src/main/java/org/jboss/ws/deployment/AbstractAnnotationsMetaDataBuilder.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/deployment/AbstractAnnotationsMetaDataBuilder.java 2006-07-05 10:55:12 UTC (rev 562) @@ -71,7 +71,7 @@ { UnifiedMetaData wsMetaData = serviceMetaData.getUnifiedMetaData(); Thread.currentThread().setContextClassLoader(wsMetaData.getClassLoader()); - String serviceName = serviceMetaData.getName().getLocalPart(); + String serviceName = serviceMetaData.getQName().getLocalPart(); JavaToWSDL javaToWSDL = new JavaToWSDL(Constants.NS_WSDL11); javaToWSDL.setUnifiedMetaData(wsMetaData); Modified: trunk/src/main/java/org/jboss/ws/deployment/JAXWSClientMetaDataBuilder.java =================================================================== --- trunk/src/main/java/org/jboss/ws/deployment/JAXWSClientMetaDataBuilder.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/deployment/JAXWSClientMetaDataBuilder.java 2006-07-05 10:55:12 UTC (rev 562) @@ -104,7 +104,7 @@ private void buildMetaDataInternal(ServiceMetaData serviceMetaData, WSDLDefinitions wsdlDefinitions) throws IOException { - QName serviceQName = serviceMetaData.getName(); + QName serviceQName = serviceMetaData.getQName(); // Get the WSDL service WSDLService wsdlService = null; @@ -114,7 +114,7 @@ throw new IllegalArgumentException("Expected a single service element"); wsdlService = wsdlDefinitions.getServices()[0]; - serviceMetaData.setName(wsdlService.getQName()); + serviceMetaData.setQName(wsdlService.getQName()); } else { @@ -195,7 +195,7 @@ private void buildParameterMetaDataRpc(OperationMetaData opMetaData, WSDLInterfaceOperation wsdlOperation, TypeMappingImpl typeMapping) { - log.trace("buildParameterMetaDataRpc: " + opMetaData.getXmlName()); + log.trace("buildParameterMetaDataRpc: " + opMetaData.getQName()); TypesMetaData typesMetaData = opMetaData.getEndpointMetaData().getServiceMetaData().getTypesMetaData(); @@ -255,7 +255,7 @@ private void buildParameterMetaDataDoc(OperationMetaData opMetaData, WSDLInterfaceOperation wsdlOperation, TypeMappingImpl typeMapping) { - log.trace("buildParameterMetaDataDoc: " + opMetaData.getXmlName()); + log.trace("buildParameterMetaDataDoc: " + opMetaData.getQName()); EndpointMetaData epMetaData = opMetaData.getEndpointMetaData(); ServiceMetaData serviceMetaData = epMetaData.getServiceMetaData(); @@ -271,9 +271,6 @@ if (typeMetaData != null) javaTypeName = typeMetaData.getJavaTypeName(); - if (javaTypeName == null) - throw new WSException("Cannot obtain java type mapping for: " + xmlType); - // Check if we need to wrap the parameters boolean isWrapParameters = false; @@ -310,9 +307,6 @@ if (typesMetaData.getTypeMappingByXMLType(xmlType) != null) javaTypeName = typesMetaData.getTypeMappingByXMLType(xmlType).getJavaTypeName(); - if (javaTypeName == null) - throw new WSException("Cannot obtain java/xml type mapping for: " + xmlType); - if (hasReturnMapping) { ParameterMetaData retMetaData = new ParameterMetaData(opMetaData, xmlName, xmlType, javaTypeName); Modified: trunk/src/main/java/org/jboss/ws/deployment/JSR109ClientMetaDataBuilder.java =================================================================== --- trunk/src/main/java/org/jboss/ws/deployment/JSR109ClientMetaDataBuilder.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/deployment/JSR109ClientMetaDataBuilder.java 2006-07-05 10:55:12 UTC (rev 562) @@ -144,7 +144,7 @@ private void buildMetaDataInternal(ServiceMetaData serviceMetaData, WSDLDefinitions wsdlDefinitions, JavaWsdlMapping javaWsdlMapping, UnifiedServiceRefMetaData serviceRefMetaData) throws IOException { - QName serviceQName = serviceMetaData.getName(); + QName serviceQName = serviceMetaData.getQName(); // Get the WSDL service WSDLService wsdlService = null; @@ -154,7 +154,7 @@ throw new IllegalArgumentException("Expected a single service element"); wsdlService = wsdlDefinitions.getServices()[0]; - serviceMetaData.setName(wsdlService.getQName()); + serviceMetaData.setQName(wsdlService.getQName()); } else { Modified: trunk/src/main/java/org/jboss/ws/deployment/JSR109MetaDataBuilder.java =================================================================== --- trunk/src/main/java/org/jboss/ws/deployment/JSR109MetaDataBuilder.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/deployment/JSR109MetaDataBuilder.java 2006-07-05 10:55:12 UTC (rev 562) @@ -200,7 +200,7 @@ private void buildParameterMetaDataRpc(OperationMetaData opMetaData, WSDLInterfaceOperation wsdlOperation, ServiceEndpointMethodMapping seiMethodMapping, TypeMappingImpl typeMapping) { - log.trace("buildParameterMetaDataRpc: " + opMetaData.getXmlName()); + log.trace("buildParameterMetaDataRpc: " + opMetaData.getQName()); TypesMetaData typesMetaData = opMetaData.getEndpointMetaData().getServiceMetaData().getTypesMetaData(); @@ -416,7 +416,7 @@ private void buildParameterMetaDataDoc(OperationMetaData opMetaData, WSDLInterfaceOperation wsdlOperation, ServiceEndpointMethodMapping seiMethodMapping, TypeMappingImpl typeMapping) { - log.trace("buildParameterMetaDataDoc: " + opMetaData.getXmlName()); + log.trace("buildParameterMetaDataDoc: " + opMetaData.getQName()); EndpointMetaData epMetaData = opMetaData.getEndpointMetaData(); ServiceMetaData serviceMetaData = epMetaData.getServiceMetaData(); Modified: trunk/src/main/java/org/jboss/ws/deployment/JSR109ServerMetaDataBuilder.java =================================================================== --- trunk/src/main/java/org/jboss/ws/deployment/JSR109ServerMetaDataBuilder.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/deployment/JSR109ServerMetaDataBuilder.java 2006-07-05 10:55:12 UTC (rev 562) @@ -124,7 +124,7 @@ throw new WSException("Cannot find port in wsdl: " + portName); // set service name - serviceMetaData.setName(wsdlEndpoint.getWsdlService().getQName()); + serviceMetaData.setQName(wsdlEndpoint.getWsdlService().getQName()); ServerEndpointMetaData sepMetaData = new ServerEndpointMetaData(serviceMetaData, portName); sepMetaData.setPortComponentName(pcMetaData.getPortComponentName()); Modified: trunk/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilder.java =================================================================== --- trunk/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilder.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/deployment/JSR181MetaDataBuilder.java 2006-07-05 10:55:12 UTC (rev 562) @@ -289,8 +289,8 @@ if (opMetaData.isDocumentWrapped()) { - xmlName = opMetaData.getXmlName(); - xmlType = opMetaData.getXmlName(); + xmlName = opMetaData.getQName(); + xmlType = opMetaData.getQName(); String requestWrapperType = null; if (method.isAnnotationPresent(RequestWrapper.class)) @@ -551,7 +551,7 @@ private QName getWebParamName(OperationMetaData opMetaData, Map<String, Integer> typeIndexes, Class javaType, WebParam webParam) { QName xmlName = null; - String namespaceURI = opMetaData.getXmlName().getNamespaceURI(); + String namespaceURI = opMetaData.getQName().getNamespaceURI(); if (webParam != null) { if (webParam.targetNamespace().length() > 0) @@ -566,7 +566,7 @@ } if (xmlName == null && opMetaData.isDocumentBare()) - xmlName = new QName(namespaceURI, opMetaData.getXmlName().getLocalPart()); + xmlName = new QName(namespaceURI, opMetaData.getQName().getLocalPart()); if (xmlName == null) { @@ -586,14 +586,14 @@ private QName getWebParamType(OperationMetaData opMetaData, Class javaType) { - String namespaceURI = opMetaData.getXmlName().getNamespaceURI(); + String namespaceURI = opMetaData.getQName().getNamespaceURI(); return ToolsUtils.getXMLType(javaType, namespaceURI); } private QName getWebResultName(OperationMetaData opMetaData, Class javaType, WebResult anWebResult) { QName xmlName = null; - String namespaceURI = opMetaData.getXmlName().getNamespaceURI(); + String namespaceURI = opMetaData.getQName().getNamespaceURI(); if (anWebResult != null) { @@ -625,7 +625,7 @@ + "@Oneway has a return value, declares any checked exceptions or has any INOUT or OUT parameters."); String name = WSDLUtils.getInstance().getJustClassName(exception); - QName xmlName = new QName(omd.getXmlName().getNamespaceURI(), name); + QName xmlName = new QName(omd.getQName().getNamespaceURI(), name); FaultMetaData fmd = new FaultMetaData(omd, xmlName, xmlName, exception.getName()); omd.addFault(fmd); Modified: trunk/src/main/java/org/jboss/ws/jaxrpc/CallProxy.java =================================================================== --- trunk/src/main/java/org/jboss/ws/jaxrpc/CallProxy.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/jaxrpc/CallProxy.java 2006-07-05 10:55:12 UTC (rev 562) @@ -134,7 +134,7 @@ if (opMetaData == null) throw new WSException("Cannot obtain operation meta data for: " + methodName); - call.setOperationName(opMetaData.getXmlName()); + call.setOperationName(opMetaData.getQName()); try { Modified: trunk/src/main/java/org/jboss/ws/jaxrpc/ParameterWrapping.java =================================================================== --- trunk/src/main/java/org/jboss/ws/jaxrpc/ParameterWrapping.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/jaxrpc/ParameterWrapping.java 2006-07-05 10:55:12 UTC (rev 562) @@ -283,7 +283,7 @@ if (wrappedTypes == null) throw new WSException("Cannot generate a type when their is no type information"); - String serviceName = serviceMetaData.getName().getLocalPart(); + String serviceName = serviceMetaData.getQName().getLocalPart(); String parameterName = pmd.getXmlName().getLocalPart(); String endpointName = endpointMetaData.getQName().getLocalPart(); String packageName = endpointMetaData.getServiceEndpointInterface().getPackage().getName(); Modified: trunk/src/main/java/org/jboss/ws/jaxrpc/ServiceImpl.java =================================================================== --- trunk/src/main/java/org/jboss/ws/jaxrpc/ServiceImpl.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/jaxrpc/ServiceImpl.java 2006-07-05 10:55:12 UTC (rev 562) @@ -135,7 +135,7 @@ */ public QName getServiceName() { - return serviceMetaData.getName(); + return serviceMetaData.getQName(); } /** @@ -232,7 +232,7 @@ List<Call> calls = new ArrayList<Call>(); for (OperationMetaData opMetaData : epMetaData.getOperations()) { - Call call = createCall(portName, opMetaData.getXmlName()); + Call call = createCall(portName, opMetaData.getQName()); calls.add(call); } Added: trunk/src/main/java/org/jboss/ws/jaxws/client/DispatchImpl.java =================================================================== --- trunk/src/main/java/org/jboss/ws/jaxws/client/DispatchImpl.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/jaxws/client/DispatchImpl.java 2006-07-05 10:55:12 UTC (rev 562) @@ -0,0 +1,276 @@ +/* + * 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.jaxws.client; + +// $Id$ + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.StringReader; +import java.util.Map; +import java.util.concurrent.Future; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.Marshaller; +import javax.xml.bind.Unmarshaller; +import javax.xml.namespace.QName; +import javax.xml.soap.MessageFactory; +import javax.xml.soap.SOAPElement; +import javax.xml.soap.SOAPEnvelope; +import javax.xml.soap.SOAPException; +import javax.xml.soap.SOAPMessage; +import javax.xml.transform.Source; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; +import javax.xml.ws.AsyncHandler; +import javax.xml.ws.Binding; +import javax.xml.ws.BindingProvider; +import javax.xml.ws.Dispatch; +import javax.xml.ws.Response; +import javax.xml.ws.WebServiceException; +import javax.xml.ws.Service.Mode; + +import org.jboss.logging.Logger; +import org.jboss.util.NotImplementedException; +import org.jboss.util.xml.DOMWriter; +import org.jboss.ws.metadata.EndpointMetaData; +import org.jboss.ws.metadata.ServiceMetaData; +import org.jboss.ws.soap.SOAPBodyImpl; +import org.jboss.ws.soap.SOAPConnectionImpl; + +/** + * The Dispatch interface provides support for the dynamic invocation of a service endpoint operations. + * The javax.xml.ws.Service interface acts as a factory for the creation of Dispatch instances. + * + * @author Tho...@jb... + * @since 04-Jul-2006 + */ +public class DispatchImpl<T> implements Dispatch<T> +{ + // provide logging + private final Logger log = Logger.getLogger(DispatchImpl.class); + + private BindingProvider bindingProvider = new BindingProviderImpl(); + private EndpointMetaData epMetaData; + private JAXBContext jaxbContext; + private Class<T> type; + private Mode mode; + + public DispatchImpl(ServiceMetaData serviceMetaData, QName portName, Class<T> type, Mode mode) + { + this.type = type; + this.mode = mode; + initDispatch(serviceMetaData, portName); + } + + public DispatchImpl(ServiceMetaData serviceMetaData, QName portName, JAXBContext jbc, Mode mode) + { + this.jaxbContext = jbc; + this.mode = mode; + initDispatch(serviceMetaData, portName); + } + + public Object invoke(Object obj) + { + SOAPMessage reqMsg = getRequestMessage(obj); + try + { + String targetAddress = epMetaData.getEndpointAddress(); + SOAPMessage resMsg = new SOAPConnectionImpl().call(reqMsg, targetAddress); + Object retObj = getReturnObject(resMsg); + return retObj; + } + catch (SOAPException ex) + { + throw new WebServiceException("Cannot dispatch request message"); + } + } + + public Response invokeAsync(Object obj) + { + throw new NotImplementedException(); + } + + public Future invokeAsync(Object obj, AsyncHandler asynchandler) + { + throw new NotImplementedException(); + } + + public void invokeOneWay(Object obj) + { + SOAPMessage reqMsg = getRequestMessage(obj); + try + { + String targetAddress = epMetaData.getEndpointAddress(); + new SOAPConnectionImpl().callOneWay(reqMsg, targetAddress); + } + catch (SOAPException ex) + { + throw new WebServiceException("Cannot dispatch request message"); + } + } + + public Map<String, Object> getRequestContext() + { + return bindingProvider.getRequestContext(); + } + + public Map<String, Object> getResponseContext() + { + return bindingProvider.getResponseContext(); + } + + public Binding getBinding() + { + return bindingProvider.getBinding(); + } + + private void initDispatch(ServiceMetaData serviceMetaData, QName portName) + { + epMetaData = serviceMetaData.getEndpoint(portName); + if (epMetaData == null && serviceMetaData.getEndpoints().size() == 1) + { + log.warn("Cannot find port meta data for: " + portName); + epMetaData = serviceMetaData.getEndpoints().get(0); + } + if (epMetaData == null) + throw new WebServiceException("Cannot find port meta data for: " + portName); + + if (type == SOAPMessage.class && mode == Mode.MESSAGE) + { + // accepted + } + else if (type == Source.class) + { + // accepted + } + else if (jaxbContext != null && mode == Mode.PAYLOAD) + { + // accepted + } + else + { + throw new WebServiceException("Unsupported type/mode: " + (type != null ? type.getName() : null) + "/" + mode); + } + } + + private SOAPMessage getRequestMessage(Object obj) + { + SOAPMessage reqMsg = null; + try + { + MessageFactory factory = MessageFactory.newInstance(); + if (type == SOAPMessage.class) + { + reqMsg = (SOAPMessage)obj; + } + else if (type == Source.class) + { + Source source = (Source)obj; + if (mode == Mode.PAYLOAD) + { + reqMsg = factory.createMessage(); + SOAPBodyImpl soapBody = (SOAPBodyImpl)reqMsg.getSOAPBody(); + soapBody.setPayload(source); + } + if (mode == Mode.MESSAGE) + { + TransformerFactory tf = TransformerFactory.newInstance(); + ByteArrayOutputStream baos = new ByteArrayOutputStream(1024); + tf.newTransformer().transform(source, new StreamResult(baos)); + reqMsg = factory.createMessage(null, new ByteArrayInputStream(baos.toByteArray())); + } + } + else if (jaxbContext != null) + { + Marshaller marshaller = jaxbContext.createMarshaller(); + marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true); + ByteArrayOutputStream baos = new ByteArrayOutputStream(1024); + marshaller.marshal(obj, baos); + + reqMsg = factory.createMessage(); + SOAPBodyImpl soapBody = (SOAPBodyImpl)reqMsg.getSOAPBody(); + StreamSource source = new StreamSource(new ByteArrayInputStream(baos.toByteArray())); + soapBody.setPayload(source); + } + } + catch (RuntimeException rte) + { + throw rte; + } + catch (Exception ex) + { + throw new WebServiceException("Cannot create request message", ex); + } + + if (reqMsg == null) + throw new WebServiceException("Cannot create request message for: " + obj); + + return reqMsg; + } + + private Object getReturnObject(SOAPMessage resMsg) + { + Object retObj = null; + try + { + if (type == SOAPMessage.class) + { + retObj = resMsg; + } + else if (type == Source.class) + { + if (mode == Mode.PAYLOAD) + { + SOAPBodyImpl soapBody = (SOAPBodyImpl)resMsg.getSOAPBody(); + SOAPElement soapElement = (SOAPElement)soapBody.getChildElements().next(); + String xmlPayload = DOMWriter.printNode(soapElement, false); + retObj = new StreamSource(new StringReader(xmlPayload)); + } + if (mode == Mode.MESSAGE) + { + SOAPEnvelope soapEnvelope = resMsg.getSOAPPart().getEnvelope(); + String xmlMessage = DOMWriter.printNode(soapEnvelope, false); + retObj = new StreamSource(new StringReader(xmlMessage)); + } + } + else if (jaxbContext != null) + { + SOAPBodyImpl soapBody = (SOAPBodyImpl)resMsg.getSOAPBody(); + SOAPElement soapElement = (SOAPElement)soapBody.getChildElements().next(); + + Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); + retObj = unmarshaller.unmarshal(soapElement); + } + } + catch (RuntimeException rte) + { + throw rte; + } + catch (Exception ex) + { + throw new WebServiceException("Cannot create request message", ex); + } + return retObj; + } +} Property changes on: trunk/src/main/java/org/jboss/ws/jaxws/client/DispatchImpl.java ___________________________________________________________________ Name: svn:keywords + Id Revision Name: svn:eol-style + LF Modified: trunk/src/main/java/org/jboss/ws/jaxws/client/PortProxy.java =================================================================== --- trunk/src/main/java/org/jboss/ws/jaxws/client/PortProxy.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/jaxws/client/PortProxy.java 2006-07-05 10:55:12 UTC (rev 562) @@ -103,7 +103,7 @@ if (opMetaData == null) throw new WSException("Cannot obtain operation meta data for: " + methodName); - QName opName = opMetaData.getXmlName(); + QName opName = opMetaData.getQName(); try { Modified: trunk/src/main/java/org/jboss/ws/jaxws/spi/ServiceDelegateImpl.java =================================================================== --- trunk/src/main/java/org/jboss/ws/jaxws/spi/ServiceDelegateImpl.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/jaxws/spi/ServiceDelegateImpl.java 2006-07-05 10:55:12 UTC (rev 562) @@ -27,6 +27,7 @@ import java.net.URL; import java.net.URLClassLoader; import java.rmi.Remote; +import java.util.ArrayList; import java.util.Iterator; import java.util.concurrent.Executor; @@ -42,6 +43,7 @@ import org.jboss.util.NotImplementedException; import org.jboss.ws.deployment.JAXWSClientMetaDataBuilder; import org.jboss.ws.jaxrpc.MetaDataSynchronization; +import org.jboss.ws.jaxws.client.DispatchImpl; import org.jboss.ws.jaxws.client.JAXWSClient; import org.jboss.ws.jaxws.client.PortProxy; import org.jboss.ws.metadata.EndpointMetaData; @@ -106,6 +108,10 @@ } @Override + /** + * The getPort method returns a stub. A service client uses this stub to invoke operations on the target service endpoint. + * The serviceEndpointInterface specifies the service endpoint interface that is supported by the created dynamic proxy or stub instance. + */ public <T> T getPort(Class<T> seiClass) { return getPort(null, seiClass); @@ -120,31 +126,40 @@ @Override public <T> Dispatch<T> createDispatch(QName qname, Class<T> type, Mode mode) { - throw new NotImplementedException(); + DispatchImpl dispatch = new DispatchImpl(serviceMetaData, qname, type, mode); + return dispatch; } @Override - public Dispatch<Object> createDispatch(QName qname, JAXBContext jaxbcontext, Mode mode) + public Dispatch<Object> createDispatch(QName qname, JAXBContext jbc, Mode mode) { - throw new NotImplementedException(); + DispatchImpl dispatch = new DispatchImpl(serviceMetaData, qname, jbc, mode); + return dispatch; } + /** Gets the name of this service. */ @Override public QName getServiceName() { - throw new NotImplementedException(); + return serviceMetaData.getQName(); } + /** Returns an Iterator for the list of QNames of service endpoints grouped by this service */ @Override - public Iterator getPorts() + public Iterator<QName> getPorts() { - throw new NotImplementedException(); + ArrayList<QName> portNames = new ArrayList<QName>(); + for (EndpointMetaData epMetaData : serviceMetaData.getEndpoints()) + { + portNames.add(epMetaData.getQName()); + } + return portNames.iterator(); } @Override public URL getWSDLDocumentLocation() { - throw new NotImplementedException(); + return serviceMetaData.getWsdlLocation(); } @Override Modified: trunk/src/main/java/org/jboss/ws/metadata/EndpointMetaData.java =================================================================== --- trunk/src/main/java/org/jboss/ws/metadata/EndpointMetaData.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/metadata/EndpointMetaData.java 2006-07-05 10:55:12 UTC (rev 562) @@ -299,7 +299,7 @@ OperationMetaData opMetaData = null; for (OperationMetaData auxOperation : operations) { - QName opQName = auxOperation.getXmlName(); + QName opQName = auxOperation.getQName(); if (opQName.equals(xmlName)) { if (opMetaData == null) Modified: trunk/src/main/java/org/jboss/ws/metadata/OperationMetaData.java =================================================================== --- trunk/src/main/java/org/jboss/ws/metadata/OperationMetaData.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/metadata/OperationMetaData.java 2006-07-05 10:55:12 UTC (rev 562) @@ -56,7 +56,7 @@ // The parent interface private EndpointMetaData epMetaData; - private QName xmlName; + private QName qname; private QName responseName; private String javaName; private Method javaMethod; @@ -66,33 +66,33 @@ private List<FaultMetaData> faults = new ArrayList<FaultMetaData>(); private ParameterMetaData returnParam; - public OperationMetaData(QName xmlName, String javaName) + public OperationMetaData(QName qname, String javaName) { UnifiedMetaData umd = new UnifiedMetaData(); ServiceMetaData smd = new ServiceMetaData(umd, new QName("mock-service")); ServerEndpointMetaData epmd = new ServerEndpointMetaData(smd, new QName("mock-endpoint")); - initOperationMetaData(epmd, xmlName, javaName); + initOperationMetaData(epmd, qname, javaName); } - public OperationMetaData(EndpointMetaData epMetaData, QName xmlName, String javaName) + public OperationMetaData(EndpointMetaData epMetaData, QName qname, String javaName) { - log.trace("new OperationMetaData: [xmlName=" + xmlName + ",javaName=" + javaName + "]"); - initOperationMetaData(epMetaData, xmlName, javaName); + log.trace("new OperationMetaData: [xmlName=" + qname + ",javaName=" + javaName + "]"); + initOperationMetaData(epMetaData, qname, javaName); } - private void initOperationMetaData(EndpointMetaData epMetaData, QName xmlName, String javaName) + private void initOperationMetaData(EndpointMetaData epMetaData, QName qname, String javaName) { this.epMetaData = epMetaData; - this.xmlName = xmlName; + this.qname = qname; this.javaName = javaName; - if (xmlName == null) - throw new IllegalArgumentException("Invalid null xmlName argument"); + if (qname == null) + throw new IllegalArgumentException("Invalid null qname argument"); if (javaName == null) - throw new IllegalArgumentException("Invalid null javaName argument, for: " + xmlName); + throw new IllegalArgumentException("Invalid null javaName argument, for: " + qname); - String nsURI = xmlName.getNamespaceURI(); - String localPart = xmlName.getLocalPart(); + String nsURI = qname.getNamespaceURI(); + String localPart = qname.getLocalPart(); this.responseName = new QName(nsURI, localPart + "Response"); } @@ -101,9 +101,9 @@ return epMetaData; } - public QName getXmlName() + public QName getQName() { - return xmlName; + return qname; } public QName getResponseName() @@ -493,7 +493,7 @@ public String toString() { StringBuilder buffer = new StringBuilder("\nOperationMetaData:"); - buffer.append("\n xmlName=" + xmlName); + buffer.append("\n xmlName=" + qname); buffer.append("\n javaName=" + javaName); buffer.append("\n style=" + getStyle() + "/" + getUse() + (getStyle() == Style.DOCUMENT ? "/" + getParameterStyle() : "")); buffer.append("\n oneWay=" + oneWayOperation); Modified: trunk/src/main/java/org/jboss/ws/metadata/ServiceMetaData.java =================================================================== --- trunk/src/main/java/org/jboss/ws/metadata/ServiceMetaData.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/metadata/ServiceMetaData.java 2006-07-05 10:55:12 UTC (rev 562) @@ -72,7 +72,7 @@ // The service endpoints private Map<QName, EndpointMetaData> endpoints = new LinkedHashMap<QName, EndpointMetaData>(); - private QName name; + private QName qname; private String wsdName; private String wsdlFile; private String jaxrpcMappingFile; @@ -95,7 +95,7 @@ public ServiceMetaData(UnifiedMetaData wsMetaData, QName name) { this.wsMetaData = wsMetaData; - this.name = name; + this.qname = name; this.types = new TypesMetaData(this); } @@ -104,14 +104,14 @@ return wsMetaData; } - public void setName(QName name) + public void setQName(QName name) { - this.name = name; + this.qname = name; } - public QName getName() + public QName getQName() { - return name; + return qname; } public String getWebserviceDescriptionName() @@ -253,7 +253,22 @@ WSDLDefinitions wsdlDefinitions = (WSDLDefinitions)wsMetaData.getWSDLDefinition(wsdlFile); if (wsdlDefinitions == null && wsdlFile != null) { - URL wsdlLocation = null; + URL wsdlLocation = getWsdlLocation(); + if (wsdlLocation == null) + throw new IllegalArgumentException("Cannot find wsdl in deployment: " + wsdlFile); + + WSDLDefinitionsFactory factory = WSDLDefinitionsFactory.newInstance(); + wsdlDefinitions = factory.parse(wsdlLocation); + wsMetaData.addWSDLDefinition(wsdlFile, wsdlDefinitions); + } + return wsdlDefinitions; + } + + public URL getWsdlLocation() + { + URL wsdlLocation = null; + if (wsdlFile != null) + { try { wsdlLocation = new URL(wsdlFile); @@ -266,14 +281,8 @@ { wsdlLocation = wsMetaData.getResourceLoader().getResource(wsdlFile); } - if (wsdlLocation == null) - throw new IllegalArgumentException("Cannot find wsdl in deployment: " + wsdlFile); - - WSDLDefinitionsFactory factory = WSDLDefinitionsFactory.newInstance(); - wsdlDefinitions = factory.parse(wsdlLocation); - wsMetaData.addWSDLDefinition(wsdlFile, wsdlDefinitions); - } - return wsdlDefinitions; + } + return wsdlLocation; } public TypeMappingImpl getTypeMapping() @@ -366,14 +375,14 @@ /** Assert that the given namespace is the WSDL's target namespace */ public void assertTargetNamespace(String targetNS) { - if (getName().getNamespaceURI().equals(targetNS) == false) + if (getQName().getNamespaceURI().equals(targetNS) == false) throw new WSException("Requested namespace is not WSDL target namespace: " + targetNS); } public String toString() { StringBuilder buffer = new StringBuilder("\nServiceMetaData:"); - buffer.append("\n name=" + name); + buffer.append("\n name=" + qname); buffer.append("\n wsdName=" + wsdName); buffer.append("\n wsdlFile=" + wsdlFile); buffer.append("\n jaxrpcFile=" + jaxrpcMappingFile); Modified: trunk/src/main/java/org/jboss/ws/soap/SOAPConnectionImpl.java =================================================================== --- trunk/src/main/java/org/jboss/ws/soap/SOAPConnectionImpl.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/soap/SOAPConnectionImpl.java 2006-07-05 10:55:12 UTC (rev 562) @@ -98,14 +98,21 @@ */ public SOAPMessage call(SOAPMessage reqMessage, Object endpoint) throws SOAPException { - return call(reqMessage, endpoint, false); + return callInternal(reqMessage, endpoint, false); } /** - * Sends the given message to the specified endpoint. + * Sends the given message to the specified endpoint. This method is logically + * non blocking. */ - public SOAPMessage call(SOAPMessage reqMessage, Object endpoint, boolean oneway) throws SOAPException + public SOAPMessage callOneWay(SOAPMessage reqMessage, Object endpoint) throws SOAPException { + return callInternal(reqMessage, endpoint, true); + } + + /** Sends the given message to the specified endpoint. */ + private SOAPMessage callInternal(SOAPMessage reqMessage, Object endpoint, boolean oneway) throws SOAPException + { if (reqMessage == null) throw new IllegalArgumentException("Given SOAPMessage cannot be null"); if (endpoint == null) Modified: trunk/src/main/java/org/jboss/ws/soap/SOAPMessageDispatcher.java =================================================================== --- trunk/src/main/java/org/jboss/ws/soap/SOAPMessageDispatcher.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/soap/SOAPMessageDispatcher.java 2006-07-05 10:55:12 UTC (rev 562) @@ -111,7 +111,7 @@ } } - log.debug("getDispatchDestination: " + (opMetaData != null ? opMetaData.getXmlName() : null)); + log.debug("getDispatchDestination: " + (opMetaData != null ? opMetaData.getQName() : null)); return opMetaData; } } \ No newline at end of file Modified: trunk/src/main/java/org/jboss/ws/tools/helpers/JavaToWSDLHelper.java =================================================================== --- trunk/src/main/java/org/jboss/ws/tools/helpers/JavaToWSDLHelper.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/tools/helpers/JavaToWSDLHelper.java 2006-07-05 10:55:12 UTC (rev 562) @@ -192,7 +192,7 @@ wsdl.addInterface(wsdlInterface); } - QName xmlName = op.getXmlName(); + QName xmlName = op.getQName(); String opname = xmlName.getLocalPart(); if(opname == null || opname.length() == 0) throw new WSException("opname is null or blank"); @@ -267,7 +267,7 @@ wsdl.addBinding(wsdlBinding); } - String opname = op.getXmlName().getLocalPart(); + String opname = op.getQName().getLocalPart(); //Operation Level WSDLBindingOperation wsdlBindingOperation = new WSDLBindingOperation(wsdlBinding); wsdlBindingOperation.setRef(new QName(wsdl.getTargetNamespace(), opname)); @@ -326,7 +326,7 @@ { if(endpoint == null) throw new WSException("Illegal Null Argument: endpt"); - String serviceName = endpoint.getServiceMetaData().getName().getLocalPart(); + String serviceName = endpoint.getServiceMetaData().getQName().getLocalPart(); //Create a WSDLService WSDLService wsdlService = new WSDLService(wsdl); @@ -361,7 +361,7 @@ */ private void buildServiceMapping(EndpointMetaData endpoint, String interfaceName) { - QName origQName = endpoint.getServiceMetaData().getName(); + QName origQName = endpoint.getServiceMetaData().getQName(); String serviceInterfaceName = endpoint.getServiceEndpointInterface().getPackage().getName() + "." + origQName.getLocalPart(); QName serviceQName = new QName(origQName.getNamespaceURI(), origQName.getLocalPart(), "serviceNS"); @@ -385,7 +385,7 @@ { ServiceEndpointMethodMapping methodMapping = new ServiceEndpointMethodMapping(seiMapping); methodMapping.setJavaMethodName(operation.getJavaName()); - methodMapping.setWsdlOperation(operation.getXmlName().getLocalPart()); + methodMapping.setWsdlOperation(operation.getQName().getLocalPart()); boolean isWrapped = operation.isDocumentWrapped(); methodMapping.setWrappedElement(isWrapped); int i = 0; @@ -477,7 +477,7 @@ WsdlMessageMapping messageMapping = new WsdlMessageMapping(paramMapping); messageMapping.setWsdlMessagePartName(name); - String messageName = interfaceName + "_" + operation.getXmlName().getLocalPart(); + String messageName = interfaceName + "_" + operation.getQName().getLocalPart(); if ("OUT".equals(mode)) messageName += "Response"; QName messageQName = new QName(wsdl.getTargetNamespace(), messageName, "wsdlMsgNS"); @@ -494,7 +494,7 @@ WsdlReturnValueMapping returnMapping = new WsdlReturnValueMapping(methodMapping); returnMapping.setMethodReturnValue(type); returnMapping.setWsdlMessagePartName(name); - String messageName = interfaceName + "_" + operation.getXmlName().getLocalPart() + "Response";; + String messageName = interfaceName + "_" + operation.getQName().getLocalPart() + "Response";; QName messageQName = new QName(wsdl.getTargetNamespace(), messageName, "wsdlMsgNS"); returnMapping.setWsdlMessage(messageQName); methodMapping.setWsdlReturnValueMapping(returnMapping); Modified: trunk/src/main/java/org/jboss/ws/tools/helpers/ToolsHelper.java =================================================================== --- trunk/src/main/java/org/jboss/ws/tools/helpers/ToolsHelper.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/tools/helpers/ToolsHelper.java 2006-07-05 10:55:12 UTC (rev 562) @@ -218,14 +218,14 @@ { for (ParameterMetaData parameter : operation.getParameters()) { - String name = endpointClass.getSimpleName() + "_" + operation.getXmlName().getLocalPart() + "_RequestStruct"; + String name = endpointClass.getSimpleName() + "_" + operation.getQName().getLocalPart() + "_RequestStruct"; createWrapperType(parameter, name, packageName, index, classLoader, outDir); } ParameterMetaData returnParameter = operation.getReturnParameter(); if (returnParameter != null) { - String name = endpointClass.getSimpleName() + "_" + operation.getXmlName().getLocalPart() + "_ResponseStruct"; + String name = endpointClass.getSimpleName() + "_" + operation.getQName().getLocalPart() + "_ResponseStruct"; createWrapperType(returnParameter, name, packageName, index, classLoader, outDir); } } Modified: trunk/src/main/java/org/jboss/ws/tools/metadata/ReflectiveMetaDataBuilder.java =================================================================== --- trunk/src/main/java/org/jboss/ws/tools/metadata/ReflectiveMetaDataBuilder.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/tools/metadata/ReflectiveMetaDataBuilder.java 2006-07-05 10:55:12 UTC (rev 562) @@ -154,7 +154,7 @@ if (om.isDocumentWrapped()) { - QName xmlName = new QName(tmd.typeNamespace, om.getXmlName().getLocalPart()); + QName xmlName = new QName(tmd.typeNamespace, om.getQName().getLocalPart()); QName xmlType = xmlName; wrappedParameter = new ParameterMetaData(om, xmlName, xmlType, null); @@ -276,7 +276,7 @@ private ParameterMetaData getParameterMetaData(Class type, OperationMetaData om, OperationConfig config, int index) { QName xmlType = ToolsUtils.getXMLType(type, tmd.typeNamespace); - QName xmlName = getXmlName(type, config, index, om.isDocumentBare() ? om.getXmlName().getLocalPart() : null); + QName xmlName = getXmlName(type, config, index, om.isDocumentBare() ? om.getQName().getLocalPart() : null); ParameterMetaData pm = new ParameterMetaData(om, xmlName, xmlType, type.getName()); pm.setInHeader(isHeaderParameter(config, index)); Modified: trunk/src/main/java/org/jboss/ws/wsse/WSSecurityDispatcher.java =================================================================== --- trunk/src/main/java/org/jboss/ws/wsse/WSSecurityDispatcher.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/main/java/org/jboss/ws/wsse/WSSecurityDispatcher.java 2006-07-05 10:55:12 UTC (rev 562) @@ -127,7 +127,7 @@ opMetaData = soapMessage.getOperationMetaData(epMetaData); } - String operation = opMetaData.getXmlName().toString(); + String operation = opMetaData.getQName().toString(); String port = opMetaData.getEndpointMetaData().getQName().getLocalPart(); if (hasRequirements(config, operation, port)) @@ -154,7 +154,7 @@ opMetaData = soapMessage.getOperationMetaData(epMetaData); } - String operation = opMetaData.getXmlName().toString(); + String operation = opMetaData.getQName().toString(); String port = opMetaData.getEndpointMetaData().getQName().getLocalPart(); List<OperationDescription<RequireOperation>> operations = buildRequireOperations(config, operation, port); @@ -227,7 +227,7 @@ SOAPMessageImpl soapMessage = (SOAPMessageImpl)ctx.getMessage(); OperationMetaData opMetaData = ctx.getOperationMetaData(); - String operation = opMetaData.getXmlName().toString(); + String operation = opMetaData.getQName().toString(); String port = opMetaData.getEndpointMetaData().getQName().getLocalPart(); Config operationConfig = getConfig(config, port, operation); Modified: trunk/src/test/ant/build-jars.xml =================================================================== --- trunk/src/test/ant/build-jars.xml 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/test/ant/build-jars.xml 2006-07-05 10:55:12 UTC (rev 562) @@ -676,9 +676,9 @@ <!-- jbossws-jsr181-soapbinding --> <war warfile="${build.test.dir}/libs/jbossws-jsr181-soapbinding.war" webxml="${build.test.dir}/resources/jsr181/soapbinding/WEB-INF/web.xml"> <classes dir="${build.test.dir}/classes"> - <include name="org/jboss/test/ws/jsr181/soapbinding/DocBareService.class"/> - <include name="org/jboss/test/ws/jsr181/soapbinding/DocWrappedService.class"/> - <include name="org/jboss/test/ws/jsr181/soapbinding/ExampleService.class"/> + <include name="org/jboss/test/ws/jsr181/soapbinding/DocBareServiceImpl.class"/> + <include name="org/jboss/test/ws/jsr181/soapbinding/DocWrappedServiceImpl.class"/> + <include name="org/jboss/test/ws/jsr181/soapbinding/ExampleServiceImpl.class"/> <include name="org/jboss/test/ws/jsr181/soapbinding/SubmitBareRequest.class"/> <include name="org/jboss/test/ws/jsr181/soapbinding/SubmitBareResponse.class"/> <include name="org/jboss/test/ws/jsr181/soapbinding/PurchaseOrder.class"/> Modified: trunk/src/test/java/org/jboss/test/ws/jbws860/JBWS860TestCase.java =================================================================== --- trunk/src/test/java/org/jboss/test/ws/jbws860/JBWS860TestCase.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/test/java/org/jboss/test/ws/jbws860/JBWS860TestCase.java 2006-07-05 10:55:12 UTC (rev 562) @@ -57,7 +57,7 @@ assertNotNull(wsdlDef); } - public void testHervletAccess() throws Exception + public void testServletAccess() throws Exception { HttpURLConnection con = (HttpURLConnection)new URL("http://" + getServerHost() + ":8080/test/TestServlet").openConnection(); BufferedReader isr = new BufferedReader(new InputStreamReader(con.getInputStream())); Deleted: trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/DocBareService.java =================================================================== --- trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/DocBareService.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/DocBareService.java 2006-07-05 10:55:12 UTC (rev 562) @@ -1,62 +0,0 @@ -/* - * 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.test.ws.jsr181.soapbinding; - -import javax.jws.WebMethod; -import javax.jws.WebParam; -import javax.jws.WebResult; -import javax.jws.WebService; -import javax.jws.soap.SOAPBinding; - -import org.jboss.logging.Logger; - -/** - * Test the JSR-181 annotation: javax.jws.SOAPBinding - * - * @author Tho...@jb... - * @author <a href="mailto:jas...@jb...">Jason T. Greene</a> - * @since 16-Oct-2005 - */ -@WebService -@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE) -public class DocBareService -{ - // Provide logging - private static Logger log = Logger.getLogger(ExampleService.class); - - @WebMethod(operationName = "SubmitPO") - public SubmitBareResponse submitPO(SubmitBareRequest poRequest) - { - log.info("submitPO: " + poRequest); - SubmitBareResponse poResponse = new SubmitBareResponse(poRequest.getProduct()); - return poResponse; - } - - @WebMethod(operationName = "SubmitNamespacedPO") - @WebResult(targetNamespace = "http://namespace/result", name="SubmitBareResponse") - public SubmitBareResponse submitNamespacedPO(@WebParam(targetNamespace = "http://namespace/request") SubmitBareRequest poRequest) - { - log.info("submitNamespacedPO: " + poRequest); - SubmitBareResponse poResponse = new SubmitBareResponse(poRequest.getProduct()); - return poResponse; - } -} Copied: trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/DocBareServiceImpl.java (from rev 545, trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/DocBareService.java) =================================================================== --- trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/DocBareService.java 2006-07-03 17:31:58 UTC (rev 545) +++ trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/DocBareServiceImpl.java 2006-07-05 10:55:12 UTC (rev 562) @@ -0,0 +1,62 @@ +/* + * 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.test.ws.jsr181.soapbinding; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebResult; +import javax.jws.WebService; +import javax.jws.soap.SOAPBinding; + +import org.jboss.logging.Logger; + +/** + * Test the JSR-181 annotation: javax.jws.SOAPBinding + * + * @author Tho...@jb... + * @author <a href="mailto:jas...@jb...">Jason T. Greene</a> + * @since 16-Oct-2005 + */ +@WebService(serviceName = "DocBareService", name = "DocBareServicePort") +@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE) +public class DocBareServiceImpl +{ + // Provide logging + private static Logger log = Logger.getLogger(ExampleServiceImpl.class); + + @WebMethod(operationName = "SubmitPO") + public SubmitBareResponse submitPO(SubmitBareRequest poRequest) + { + log.info("submitPO: " + poRequest); + SubmitBareResponse poResponse = new SubmitBareResponse(poRequest.getProduct()); + return poResponse; + } + + @WebMethod(operationName = "SubmitNamespacedPO") + @WebResult(targetNamespace = "http://namespace/result", name = "SubmitBareResponse") + public SubmitBareResponse submitNamespacedPO(@WebParam(targetNamespace = "http://namespace/request") SubmitBareRequest poRequest) + { + log.info("submitNamespacedPO: " + poRequest); + SubmitBareResponse poResponse = new SubmitBareResponse(poRequest.getProduct()); + return poResponse; + } +} Deleted: trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/DocWrappedService.java =================================================================== --- trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/DocWrappedService.java 2006-07-05 09:22:32 UTC (rev 561) +++ trunk/src/test/java/org/jboss/test/ws/jsr181/soapbinding/DocWrappedService.java 2006-07-05 10:55:12 UTC (rev 562) @@ -1,68 +0,0 @@ -/* - * 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 listin... [truncated message content] |