Author: nadiramra Date: Mon Oct 15 13:51:29 2007 New Revision: 584913 URL: http://svn.apache.org/viewvc?rev=584913&view=rev Log: AXIS2-3090 - ability to disable SOAP 1.2 bindings in auto-generated WSDL files.
Modified: webservices/axis2/trunk/java/modules/kernel/conf/axis2.xml webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL20.java webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/WSDLSerializationUtil.java Modified: webservices/axis2/trunk/java/modules/kernel/conf/axis2.xml URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/conf/axis2.xml?rev=584913&r1=584912&r2=584913&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/kernel/conf/axis2.xml (original) +++ webservices/axis2/trunk/java/modules/kernel/conf/axis2.xml Mon Oct 15 13:51:29 2007 @@ -78,6 +78,9 @@ <!-- Following parameter will completely disable REST handling in Axis2--> <parameter name="disableREST" locked="true">false</parameter> + + <!-- Following parameter will suppress generation of SOAP 1.2 bindings in auto-generated WSDL files --> + <parameter name="disableSOAP12" locked="true">false</parameter> <!--POJO deployer , this will alow users to drop .class file and make that into a service--> <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/> Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java?rev=584913&r1=584912&r2=584913&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java (original) +++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/Constants.java Mon Oct 15 13:51:29 2007 @@ -292,7 +292,8 @@ public static final String DRILL_DOWN_TO_ROOT_CAUSE_FOR_FAULT_REASON = "drillDownToRootCauseForFaultReason"; - public static final String DISABLE_REST = "disableREST"; + public static final String DISABLE_REST = "disableREST"; + public static final String DISABLE_SOAP12 = "disableSOAP12"; // this will contain the keys of all the properties that will be in the message context public static final String TRANSPORT_URL = "TransportURL"; Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java?rev=584913&r1=584912&r2=584913&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java (original) +++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/description/AxisService2WSDL11.java Mon Oct 15 13:51:29 2007 @@ -147,6 +147,7 @@ namespaceMap.put(prefix, axisService.getTargetNamespace()); tns = ele.declareNamespace(axisService.getTargetNamespace(), prefix); + // axis2.xml indicated no HTTP binding? boolean disableREST = false; Parameter disableRESTParameter = axisService.getParameter(org.apache.axis2.Constants.Configuration.DISABLE_REST); @@ -154,6 +155,15 @@ JavaUtils.isTrueExplicitly(disableRESTParameter.getValue())) { disableREST = true; } + + // axis2.xml indicated no SOAP 1.2 binding? + boolean disableSOAP12 = false; + Parameter disableSOAP12Parameter = + axisService.getParameter(org.apache.axis2.Constants.Configuration.DISABLE_SOAP12); + if (disableSOAP12Parameter != null && + JavaUtils.isTrueExplicitly(disableSOAP12Parameter.getValue())) { + disableSOAP12 = true; + } // adding documentation element // <documentation><b>NEW!</b> This method accepts an ISBN @@ -189,12 +199,14 @@ generateMessages(fac, ele); generatePortType(fac, ele); generateSOAP11Binding(fac, ele); - generateSOAP12Binding(fac, ele); + if (!disableSOAP12) { + generateSOAP12Binding(fac, ele); + } if (!disableREST) { generateHTTPBinding(fac, ele); } - generateService(fac, ele, disableREST); + generateService(fac, ele, disableREST, disableSOAP12); addPoliciesToDefinitionElement(policiesInDefinitions.values() .iterator(), definition); @@ -439,15 +451,18 @@ * @param fac the active OMFactory * @param defintions the WSDL <definitions> element under which to put the service * @param disableREST if false, generate REST binding, if true, don't + * @param disableSOAP12 if false, generate SOAP 1.2 binding, if true, don't * @throws Exception if there's a problem */ - public void generateService(OMFactory fac, OMElement defintions, boolean disableREST) + public void generateService(OMFactory fac, OMElement defintions, boolean disableREST, boolean disableSOAP12) throws Exception { OMElement service = fac.createOMElement(SERVICE_LOCAL_NAME, wsdl); defintions.addChild(service); service.addAttribute(ATTRIBUTE_NAME, axisService.getName(), null); generateSOAP11Ports(fac, service); - generateSOAP12Ports(fac, service); + if (!disableSOAP12) { + generateSOAP12Ports(fac, service); + } addPolicyAsExtElement(PolicyInclude.SERVICE_POLICY, axisService .getPolicyInclude(), service); 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?rev=584913&r1=584912&r2=584913&view=diff ============================================================================== --- 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 Mon Oct 15 13:51:29 2007 @@ -25,6 +25,7 @@ import org.apache.axiom.om.OMAttribute; import org.apache.axiom.om.OMNode; import org.apache.axiom.om.OMText; +import org.apache.axiom.soap.SOAP12Constants; import org.apache.axis2.util.XMLUtils; import org.apache.axis2.util.WSDLSerializationUtil; import org.apache.axis2.util.JavaUtils; @@ -184,6 +185,7 @@ // Add the interface element descriptionElement.addChild(getInterfaceElement(wsdl, tns, wsdlx, omFactory, interfaceName)); + // axis2.xml indicated no HTTP binding? boolean disableREST = false; Parameter disableRESTParameter = axisService.getParameter(Constants.Configuration.DISABLE_REST); @@ -192,6 +194,15 @@ disableREST = true; } + // axis2.xml indicated no SOAP 1.2 binding? + boolean disableSOAP12 = false; + Parameter disableSOAP12Parameter = + axisService.getParameter(org.apache.axis2.Constants.Configuration.DISABLE_SOAP12); + if (disableSOAP12Parameter != null && + JavaUtils.isTrueExplicitly(disableSOAP12Parameter.getValue())) { + disableSOAP12 = true; + } + // Check whether the axisService has any endpoints. If they exists serialize them else // generate default endpoint elements. Set bindings = new HashSet(); @@ -212,11 +223,22 @@ AxisEndpoint axisEndpoint = (AxisEndpoint) iterator.next(); AxisBinding axisBinding = axisEndpoint.getBinding(); String type = axisBinding.getType(); + + // If HTTP binding is disabled, do not add. if (WSDL2Constants.URI_WSDL2_HTTP.equals(type)) { if (disableREST) { continue; } } + + // If SOAP 1.2 binding is disabled, do not add. + String propertySOAPVersion = (String)axisBinding.getProperty(WSDL2Constants.ATTR_WSOAP_VERSION); + if (propertySOAPVersion != null) { + if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(propertySOAPVersion)) { + continue; + } + } + bindings.add(axisBinding); for (int i = 0; i < eprs.length; i++) { String epr = eprs[i]; @@ -260,9 +282,11 @@ descriptionElement.addChild( WSDLSerializationUtil.generateSOAP11Binding(omFactory, axisService, wsdl, wsoap, tns)); + if (!disableSOAP12) { descriptionElement.addChild( WSDLSerializationUtil.generateSOAP12Binding(omFactory, axisService, wsdl, wsoap, tns)); + } if (!disableREST) { descriptionElement.addChild( WSDLSerializationUtil.generateHTTPBinding(omFactory, axisService, wsdl, @@ -271,7 +295,7 @@ } descriptionElement .addChild(WSDLSerializationUtil.generateServiceElement(omFactory, wsdl, tns, - axisService, disableREST, eprs)); + axisService, disableREST, disableSOAP12, eprs)); } return descriptionElement; 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?rev=584913&r1=584912&r2=584913&view=diff ============================================================================== --- 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 Oct 15 13:51:29 2007 @@ -281,14 +281,15 @@ * @param tns - The targetnamespace * @param axisService - The AxisService * @param disableREST only generate REST endpoint if this is false + * @param disableSOAP12 only generate SOAP 1.2 endpoint if this is false * @return - The generated service element * @throws AxisFault - Thrown in case an exception occurs */ public static OMElement generateServiceElement(OMFactory omFactory, OMNamespace wsdl, OMNamespace tns, AxisService axisService, - boolean disableREST) + boolean disableREST, boolean disableSOAP12) throws AxisFault { - return generateServiceElement(omFactory, wsdl, tns, axisService, disableREST, null); + return generateServiceElement(omFactory, wsdl, tns, axisService, disableREST, disableSOAP12, null); } /** @@ -298,12 +299,13 @@ * @param tns - The targetnamespace * @param axisService - The AxisService * @param disableREST only generate REST endpoint if this is false + * @param disableSOAP12 only generate SOAP 1.2 endpoint if this is false * @return - The generated service element * @throws AxisFault - Thrown in case an exception occurs */ public static OMElement generateServiceElement(OMFactory omFactory, OMNamespace wsdl, OMNamespace tns, AxisService axisService, - boolean disableREST, String[] eprs) + boolean disableREST, boolean disableSOAP12, String[] eprs) throws AxisFault { if(eprs == null){ eprs = axisService.getEPRs(); @@ -324,6 +326,7 @@ if (epr.startsWith("https://")) { name = WSDL2Constants.DEFAULT_HTTPS_PREFIX; } + OMElement soap11EndpointElement = omFactory.createOMElement(WSDL2Constants.ENDPOINT_LOCAL_NAME, wsdl); soap11EndpointElement.addAttribute(omFactory.createOMAttribute( @@ -336,18 +339,23 @@ soap11EndpointElement.addAttribute( omFactory.createOMAttribute(WSDL2Constants.ATTRIBUTE_ADDRESS, null, epr)); serviceElement.addChild(soap11EndpointElement); - OMElement soap12EndpointElement = - omFactory.createOMElement(WSDL2Constants.ENDPOINT_LOCAL_NAME, wsdl); - soap12EndpointElement.addAttribute(omFactory.createOMAttribute( - WSDL2Constants.ATTRIBUTE_NAME, null, - name + WSDL2Constants.DEFAULT_SOAP12_ENDPOINT_NAME)); - soap12EndpointElement.addAttribute(omFactory.createOMAttribute( - WSDL2Constants.BINDING_LOCAL_NAME, null, - tns.getPrefix() + ":" + axisService.getName() + - Java2WSDLConstants.SOAP12BINDING_NAME_SUFFIX)); - soap12EndpointElement.addAttribute( - omFactory.createOMAttribute(WSDL2Constants.ATTRIBUTE_ADDRESS, null, epr)); - serviceElement.addChild(soap12EndpointElement); + + OMElement soap12EndpointElement = null; + if (!disableSOAP12) { + soap12EndpointElement = + omFactory.createOMElement(WSDL2Constants.ENDPOINT_LOCAL_NAME, wsdl); + soap12EndpointElement.addAttribute(omFactory.createOMAttribute( + WSDL2Constants.ATTRIBUTE_NAME, null, + name + WSDL2Constants.DEFAULT_SOAP12_ENDPOINT_NAME)); + soap12EndpointElement.addAttribute(omFactory.createOMAttribute( + WSDL2Constants.BINDING_LOCAL_NAME, null, + tns.getPrefix() + ":" + axisService.getName() + + Java2WSDLConstants.SOAP12BINDING_NAME_SUFFIX)); + soap12EndpointElement.addAttribute( + omFactory.createOMAttribute(WSDL2Constants.ATTRIBUTE_ADDRESS, null, epr)); + serviceElement.addChild(soap12EndpointElement); + } + OMElement httpEndpointElement = null; if (!disableREST) { httpEndpointElement = @@ -363,13 +371,16 @@ 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); + if (!disableSOAP12) { + OMElement soap12Documentation = omFactory.createOMElement(WSDL2Constants.DOCUMENTATION, wsdl); + soap12Documentation.setText("This endpoint exposes a SOAP 12 binding over a HTTPS"); + soap12EndpointElement.addChild(soap12Documentation); + } if (!disableREST) { OMElement httpDocumentation = omFactory.createOMElement(WSDL2Constants.DOCUMENTATION, wsdl); @@ -380,9 +391,11 @@ 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); + if (!disableSOAP12) { + OMElement soap12Documentation = omFactory.createOMElement(WSDL2Constants.DOCUMENTATION, wsdl); + soap12Documentation.setText("This endpoint exposes a SOAP 12 binding over a HTTP"); + soap12EndpointElement.addChild(soap12Documentation); + } if (!disableREST) { OMElement httpDocumentation = omFactory.createOMElement(WSDL2Constants.DOCUMENTATION, wsdl); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]