Author: keithc Date: Mon May 28 21:39:27 2007 New Revision: 542411 URL: http://svn.apache.org/viewvc?view=rev&rev=542411 Log: Fixing couple of issues in ?wsdl2.
1. Setting the correct url for the binding type. 2. Adding endpoints for all transport listeners. Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBinding.java webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL2.java webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/WSDLSerializationUtil.java Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBinding.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBinding.java?view=diff&rev=542411&r1=542410&r2=542411 ============================================================================== --- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBinding.java (original) +++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisBinding.java Mon May 28 21:39:27 2007 @@ -130,6 +130,8 @@ if (WSDL2Constants.URI_WSDL2_SOAP.equals(type) || Constants.URI_SOAP11_HTTP.equals(type) || Constants.URI_SOAP12_HTTP.equals(type)) { // SOAP Binding specific properties + bindingElement.addAttribute( + omFactory.createOMAttribute(WSDL2Constants.ATTRIBUTE_TYPE, null, WSDL2Constants.URI_WSDL2_SOAP)); property = (String) options.get(WSDL2Constants.ATTR_WSOAP_VERSION); if (property != null) { if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(property)) { @@ -166,14 +168,11 @@ bindingElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.ATTRIBUTE_METHOD_DEFAULT, whttp, property)); } + bindingElement.addAttribute( + omFactory.createOMAttribute(WSDL2Constants.ATTRIBUTE_TYPE, null, WSDL2Constants.URI_WSDL2_HTTP)); } // Common Properties - property = getType(); - if (property != null) { - bindingElement.addAttribute( - omFactory.createOMAttribute(WSDL2Constants.ATTRIBUTE_TYPE, null, property)); - } property = (String) options.get(WSDL2Constants.ATTR_WHTTP_CONTENT_ENCODING); if (property != null) { bindingElement.addAttribute(omFactory.createOMAttribute( Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL2.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL2.java?view=diff&rev=542411&r1=542410&r2=542411 ============================================================================== --- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL2.java (original) +++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL2.java Mon May 28 21:39:27 2007 @@ -14,6 +14,7 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamConstants; +import javax.xml.namespace.QName; import java.io.ByteArrayInputStream; import java.io.StringWriter; import java.io.OutputStream; @@ -164,7 +165,7 @@ // Check whether the axisService has any endpoints. If they exists serialize them else // generate default endpoint elements. Map endpointMap = axisService.getEndpoints(); - if (endpointMap != null && endpointMap.size() > 0) { + if (endpointMap != null && endpointMap.size() > 0) { String[] eprs = axisService.getEPRs(); if (eprs == null) { eprs = new String[]{axisService.getName()}; @@ -172,13 +173,34 @@ OMElement serviceElement = getServiceElement(wsdl, tns, omFactory, interfaceName); Iterator iterator = endpointMap.values().iterator(); while (iterator.hasNext()) { + // With the new binding hierachy in place we need to do some extra checking here. + // If a service has both http and https listners up we should show two separate eprs + // If the service was deployed with a WSDL and it had two endpoints for http and + // https then we have two endpoints populated so we should serialize them instead + // of updating the endpoints. AxisEndpoint axisEndpoint = (AxisEndpoint) iterator.next(); - serviceElement.addChild(axisEndpoint.toWSDL20(wsdl, tns, whttp, eprs[0])); + for (int i = 0; i < eprs.length; i++) { + OMElement endpointElement = axisEndpoint.toWSDL20(wsdl, tns, whttp, eprs[i]); + boolean endpointAlreadyAdded = false; + Iterator endpointsAdded = serviceElement.getChildren(); + while (endpointsAdded.hasNext()) { + OMElement endpoint = (OMElement) endpointsAdded.next(); + // Checking whether a endpoint with the same binding and address exists. + if (endpoint.getAttribute(new QName(WSDL2Constants.BINDING_LOCAL_NAME)).getAttributeValue().equals(endpointElement.getAttribute(new QName(WSDL2Constants.BINDING_LOCAL_NAME)).getAttributeValue()) + && endpoint.getAttribute(new QName(WSDL2Constants.ATTRIBUTE_ADDRESS)).getAttributeValue().equals(endpointElement.getAttribute(new QName(WSDL2Constants.ATTRIBUTE_ADDRESS)).getAttributeValue())) { + endpointAlreadyAdded = true; + } - descriptionElement.addChild(axisEndpoint.getBinding().toWSDL20(wsdl, tns, wsoap, whttp, - interfaceName, - axisService.getNameSpacesMap(), - axisService.getWSAddressingFlag())); + } + if (!endpointAlreadyAdded) { + serviceElement.addChild(endpointElement); + } + } + descriptionElement + .addChild(axisEndpoint.getBinding().toWSDL20(wsdl, tns, wsoap, whttp, + interfaceName, + axisService.getNameSpacesMap(), + axisService.getWSAddressingFlag())); } descriptionElement.addChild(serviceElement); Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/WSDLSerializationUtil.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/WSDLSerializationUtil.java?view=diff&rev=542411&r1=542410&r2=542411 ============================================================================== --- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/WSDLSerializationUtil.java (original) +++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/WSDLSerializationUtil.java Mon May 28 21:39:27 2007 @@ -278,18 +278,18 @@ eprs = new String[]{axisService.getName()}; } OMElement serviceElement = null; + serviceElement = omFactory.createOMElement(WSDL2Constants.SERVICE_LOCAL_NAME, wsdl); + serviceElement.addAttribute(omFactory.createOMAttribute(WSDL2Constants.ATTRIBUTE_NAME, + null, axisService.getName())); + serviceElement.addAttribute(omFactory.createOMAttribute( + WSDL2Constants.INTERFACE_LOCAL_NAME, null, + tns.getPrefix() + ":" + WSDL2Constants.DEFAULT_INTERFACE_NAME)); for (int i = 0; i < eprs.length; i++) { - serviceElement = omFactory.createOMElement(WSDL2Constants.SERVICE_LOCAL_NAME, wsdl); - serviceElement.addAttribute(omFactory.createOMAttribute(WSDL2Constants.ATTRIBUTE_NAME, - null, axisService.getName())); - serviceElement.addAttribute(omFactory.createOMAttribute( - WSDL2Constants.INTERFACE_LOCAL_NAME, null, - tns.getPrefix() + ":" + WSDL2Constants.DEFAULT_INTERFACE_NAME)); OMElement soap11EndpointElement = omFactory.createOMElement(WSDL2Constants.ENDPOINT_LOCAL_NAME, wsdl); soap11EndpointElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.ATTRIBUTE_NAME, null, - WSDL2Constants.DEFAULT_SOAP11_ENDPOINT_NAME)); + WSDL2Constants.DEFAULT_SOAP11_ENDPOINT_NAME + i)); soap11EndpointElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.BINDING_LOCAL_NAME, null, tns.getPrefix() + ":" + axisService.getName() + @@ -301,7 +301,7 @@ omFactory.createOMElement(WSDL2Constants.ENDPOINT_LOCAL_NAME, wsdl); soap12EndpointElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.ATTRIBUTE_NAME, null, - WSDL2Constants.DEFAULT_SOAP12_ENDPOINT_NAME)); + WSDL2Constants.DEFAULT_SOAP12_ENDPOINT_NAME + i)); soap12EndpointElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.BINDING_LOCAL_NAME, null, tns.getPrefix() + ":" + axisService.getName() + @@ -313,7 +313,7 @@ omFactory.createOMElement(WSDL2Constants.ENDPOINT_LOCAL_NAME, wsdl); httpEndpointElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.ATTRIBUTE_NAME, null, - WSDL2Constants.DEFAULT_HTTP_ENDPOINT_NAME)); + WSDL2Constants.DEFAULT_HTTP_ENDPOINT_NAME + i)); httpEndpointElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.BINDING_LOCAL_NAME, null, tns.getPrefix() + ":" + axisService.getName() + Java2WSDLConstants.HTTP_BINDING)); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]