Author: keithc Date: Fri Jun 8 03:55:11 2007 New Revision: 545475 URL: http://svn.apache.org/viewvc?view=rev&rev=545475 Log: cleaning up ?wsdl2 stuff. The https endpoints will have the prefix "Secure" Fixing bug in WSDL11ToAxisServiceBuilder.java (Not necessary creating a new AxisBinding when we have alresdy created one to hold the same details, so using the same reference and have a field processBindings which keeps track of unique bindings) Serializing unique bindings only.
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.java webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL20.java webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL2Constants.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/AxisEndpoint.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.java?view=diff&rev=545475&r1=545474&r2=545475 ============================================================================== --- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.java (original) +++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisEndpoint.java Fri Jun 8 03:55:11 2007 @@ -115,9 +115,17 @@ public OMElement toWSDL20(OMNamespace wsdl, OMNamespace tns, OMNamespace whttp, String epr) { String property; + String name; + if (epr.startsWith("https://")) { + // The reason to do this is to have camel case + String endpointName = this.getName(); + name = WSDL2Constants.DEFAULT_HTTPS_PREFIX + endpointName.substring(0,1).toUpperCase() + endpointName.substring(1); + } else { + name = this.getName(); + } OMFactory omFactory = OMAbstractFactory.getOMFactory(); OMElement endpointElement = omFactory.createOMElement(WSDL2Constants.ENDPOINT_LOCAL_NAME, wsdl); - endpointElement.addAttribute(omFactory.createOMAttribute(WSDL2Constants.ATTRIBUTE_NAME, null, this.getName())); + endpointElement.addAttribute(omFactory.createOMAttribute(WSDL2Constants.ATTRIBUTE_NAME, null, name)); endpointElement.addAttribute(omFactory.createOMAttribute(WSDL2Constants.BINDING_LOCAL_NAME, null, tns.getPrefix() + ":" + getBinding().getName().getLocalPart())); endpointElement.addAttribute(omFactory.createOMAttribute(WSDL2Constants.ATTRIBUTE_ADDRESS, null, epr)); HTTPAuthenticationScheme authenticationScheme = (HTTPAuthenticationScheme) this.options.get(WSDL2Constants.ATTR_WHTTP_AUTHENTICATION_TYPE); Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL20.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL20.java?view=diff&rev=545475&r1=545474&r2=545475 ============================================================================== --- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL20.java (original) +++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL20.java Fri Jun 8 03:55:11 2007 @@ -22,6 +22,8 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.Map; +import java.util.Set; +import java.util.HashSet; public class AxisService2WSDL20 implements WSDL2Constants { @@ -161,8 +163,9 @@ // Check whether the axisService has any endpoints. If they exists serialize them else // generate default endpoint elements. + Set bindings = new HashSet(); 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()}; @@ -176,6 +179,7 @@ // https then we have two endpoints populated so we should serialize them instead // of updating the endpoints. AxisEndpoint axisEndpoint = (AxisEndpoint) iterator.next(); + bindings.add(axisEndpoint.getBinding()); for (int i = 0; i < eprs.length; i++) { String epr = eprs[i]; if (!epr.endsWith("/")) { @@ -187,8 +191,13 @@ 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())) { + 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; } @@ -197,11 +206,15 @@ serviceElement.addChild(endpointElement); } } + } + Iterator iter = bindings.iterator(); + while (iter.hasNext()) { + AxisBinding binding = (AxisBinding) iter.next(); descriptionElement - .addChild(axisEndpoint.getBinding().toWSDL20(wsdl, tns, wsoap, whttp, - interfaceName, - axisService.getNameSpacesMap(), - axisService.getWSAddressingFlag())); + .addChild(binding.toWSDL20(wsdl, tns, wsoap, whttp, + interfaceName, + axisService.getNameSpacesMap(), + axisService.getWSAddressingFlag())); } descriptionElement.addChild(serviceElement); @@ -215,7 +228,8 @@ WSDLSerializationUtil.generateSOAP12Binding(omFactory, axisService, wsdl, wsoap, tns)); descriptionElement.addChild( - WSDLSerializationUtil.generateHTTPBinding(omFactory, axisService, wsdl, whttp, tns)); + WSDLSerializationUtil.generateHTTPBinding(omFactory, axisService, wsdl, whttp, + tns)); descriptionElement .addChild(WSDLSerializationUtil.generateServiceElement(omFactory, wsdl, tns, axisService)); Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java?view=diff&rev=545475&r1=545474&r2=545475 ============================================================================== --- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java (original) +++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java Fri Jun 8 03:55:11 2007 @@ -164,6 +164,9 @@ private static final String JAVAX_WSDL_VERBOSE_MODE_KEY = "javax.wsdl.verbose"; + // As bindings are processed add it to this array so that we dont process the same binding twice + private Map processedBindings; + /** * constructor taking in the service name and the port name * @@ -316,6 +319,8 @@ Port port; AxisEndpoint axisEndpoint = null; + processedBindings = new HashMap(); + // process the port type for this binding // although we support multiports they must be belongs to same port type and should have the // same soap style @@ -367,14 +372,23 @@ copyExtensibleElements(wsdl4jPort.getExtensibilityElements(), wsdl4jDefinition, axisEndpoint, BINDING); - AxisBinding axisBinding = new AxisBinding(); + Binding wsdl4jBinding = wsdl4jDefinition.getBinding(wsdl4jPort.getBinding().getQName()); - axisBinding.setName(wsdl4jBinding.getQName()); - axisBinding.setParent(axisEndpoint); - axisEndpoint.setBinding(axisBinding); addDocumentation(axisEndpoint, wsdl4jPort.getDocumentationElement()); - populateBinding(axisBinding, wsdl4jBinding, isSetMessageQNames); + if (processedBindings.containsKey(wsdl4jBinding.getQName())) { + axisEndpoint.setBinding( + (AxisBinding) processedBindings.get(wsdl4jBinding.getQName())); + } else { + AxisBinding axisBinding = new AxisBinding(); + axisBinding.setName(wsdl4jBinding.getQName()); + axisBinding.setParent(axisEndpoint); + axisEndpoint.setBinding(axisBinding); + axisEndpoint.setBinding(axisBinding); + populateBinding(axisBinding, wsdl4jBinding, isSetMessageQNames); + processedBindings.put(wsdl4jBinding.getQName(), axisBinding); + } + } private void populatePortType(PortType wsdl4jPortType) throws AxisFault { Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL2Constants.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL2Constants.java?view=diff&rev=545475&r1=545474&r2=545475 ============================================================================== --- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL2Constants.java (original) +++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/WSDL2Constants.java Fri Jun 8 03:55:11 2007 @@ -36,6 +36,7 @@ String DEFAULT_SOAP11_ENDPOINT_NAME = "SOAP11Endpoint"; String DEFAULT_SOAP12_ENDPOINT_NAME = "SOAP12Endpoint"; String DEFAULT_HTTP_ENDPOINT_NAME = "HTTPEndpoint"; + String DEFAULT_HTTPS_PREFIX = "Secure"; String DEFAULT_INTERFACE_NAME = "ServiceInterface"; String TYPES_LOCAL_NALE = "types"; String INTERFACE_LOCAL_NAME = "interface"; 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=545475&r1=545474&r2=545475 ============================================================================== --- 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 Fri Jun 8 03:55:11 2007 @@ -285,15 +285,19 @@ WSDL2Constants.INTERFACE_LOCAL_NAME, null, tns.getPrefix() + ":" + WSDL2Constants.DEFAULT_INTERFACE_NAME)); for (int i = 0; i < eprs.length; i++) { + String name = ""; String epr = eprs[i]; if (!epr.endsWith("/")) { epr = epr + "/"; } + if (epr.startsWith("https://")) { + name = WSDL2Constants.DEFAULT_HTTPS_PREFIX; + } OMElement soap11EndpointElement = omFactory.createOMElement(WSDL2Constants.ENDPOINT_LOCAL_NAME, wsdl); soap11EndpointElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.ATTRIBUTE_NAME, null, - WSDL2Constants.DEFAULT_SOAP11_ENDPOINT_NAME + i)); + name + WSDL2Constants.DEFAULT_SOAP11_ENDPOINT_NAME)); soap11EndpointElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.BINDING_LOCAL_NAME, null, tns.getPrefix() + ":" + axisService.getName() + @@ -305,7 +309,7 @@ omFactory.createOMElement(WSDL2Constants.ENDPOINT_LOCAL_NAME, wsdl); soap12EndpointElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.ATTRIBUTE_NAME, null, - WSDL2Constants.DEFAULT_SOAP12_ENDPOINT_NAME + i)); + name + WSDL2Constants.DEFAULT_SOAP12_ENDPOINT_NAME)); soap12EndpointElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.BINDING_LOCAL_NAME, null, tns.getPrefix() + ":" + axisService.getName() + @@ -317,13 +321,34 @@ omFactory.createOMElement(WSDL2Constants.ENDPOINT_LOCAL_NAME, wsdl); httpEndpointElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.ATTRIBUTE_NAME, null, - WSDL2Constants.DEFAULT_HTTP_ENDPOINT_NAME + i)); + name + WSDL2Constants.DEFAULT_HTTP_ENDPOINT_NAME)); httpEndpointElement.addAttribute(omFactory.createOMAttribute( WSDL2Constants.BINDING_LOCAL_NAME, null, tns.getPrefix() + ":" + axisService.getName() + Java2WSDLConstants.HTTP_BINDING)); httpEndpointElement.addAttribute( omFactory.createOMAttribute(WSDL2Constants.ATTRIBUTE_ADDRESS, null, epr)); serviceElement.addChild(httpEndpointElement); + if (epr.startsWith("https://")) { + OMElement soap11Documentation = omFactory.createOMElement(WSDL2Constants.DOCUMENTATION, wsdl); + soap11Documentation.setText("This endpoint exposes a SOAP 11 binding over a HTTPS"); + soap11EndpointElement.addChild(soap11Documentation); + OMElement soap12Documentation = omFactory.createOMElement(WSDL2Constants.DOCUMENTATION, wsdl); + soap12Documentation.setText("This endpoint exposes a SOAP 12 binding over a HTTPS"); + soap12EndpointElement.addChild(soap12Documentation); + OMElement httpDocumentation = omFactory.createOMElement(WSDL2Constants.DOCUMENTATION, wsdl); + httpDocumentation.setText("This endpoint exposes a HTTP binding over a HTTPS"); + httpEndpointElement.addChild(httpDocumentation); + } else if (epr.startsWith("http://")) { + OMElement soap11Documentation = omFactory.createOMElement(WSDL2Constants.DOCUMENTATION, wsdl); + soap11Documentation.setText("This endpoint exposes a SOAP 11 binding over a HTTP"); + soap11EndpointElement.addChild(soap11Documentation); + OMElement soap12Documentation = omFactory.createOMElement(WSDL2Constants.DOCUMENTATION, wsdl); + soap12Documentation.setText("This endpoint exposes a SOAP 12 binding over a HTTP"); + soap12EndpointElement.addChild(soap12Documentation); + OMElement httpDocumentation = omFactory.createOMElement(WSDL2Constants.DOCUMENTATION, wsdl); + httpDocumentation.setText("This endpoint exposes a HTTP binding over a HTTP"); + httpEndpointElement.addChild(httpDocumentation); + } } return serviceElement; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]