Author: dkulp Date: Tue Dec 15 03:11:51 2009 New Revision: 890621 URL: http://svn.apache.org/viewvc?rev=890621&view=rev Log: Merged revisions 890610 via svnmerge from https://svn.apache.org/repos/asf/cxf/branches/2.2.x-fixes
................ r890610 | dkulp | 2009-12-14 21:49:03 -0500 (Mon, 14 Dec 2009) | 9 lines Merged revisions 890462 via svnmerge from https://svn.apache.org/repos/asf/cxf/trunk ........ r890462 | dkulp | 2009-12-14 15:02:11 -0500 (Mon, 14 Dec 2009) | 1 line [CXF-2582] Fix issues with holders for the first response part ........ ................ Modified: cxf/branches/2.1.x-fixes/ (props changed) cxf/branches/2.1.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java cxf/branches/2.1.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java cxf/branches/2.1.x-fixes/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/hello_world_holder.wsdl Propchange: cxf/branches/2.1.x-fixes/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: cxf/branches/2.1.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java?rev=890621&r1=890620&r2=890621&view=diff ============================================================================== --- cxf/branches/2.1.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java (original) +++ cxf/branches/2.1.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java Tue Dec 15 03:11:51 2009 @@ -410,31 +410,29 @@ if (outputWrapElement.size() == 1 && inputWrapElement != null) { QName outElement = outputWrapElement.iterator().next(); boolean sameWrapperChild = false; - if (outputWrapElement.size() > 1) { - for (QName inElement : inputWrapElement) { - if (isSameWrapperChild(inElement, outElement)) { - JavaParameter jpIn = null; - for (JavaParameter j : method.getParameters()) { - if (inElement.equals(j.getQName())) { - jpIn = j; - } + for (QName inElement : inputWrapElement) { + if (isSameWrapperChild(inElement, outElement)) { + JavaParameter jpIn = null; + for (JavaParameter j : method.getParameters()) { + if (inElement.equals(j.getQName())) { + jpIn = j; } - JavaParameter jp = getParameterFromQName(outputPart.getElementQName(), outElement, - JavaType.Style.INOUT, outputPart); - if (!qualified) { - jp.setTargetNamespace(""); - } - if (!jpIn.getClassName().equals(jp.getClassName())) { - jp.setStyle(JavaType.Style.OUT); - } - addParameter(method, jp); - sameWrapperChild = true; + } + JavaParameter jp = getParameterFromQName(outputPart.getElementQName(), outElement, + JavaType.Style.INOUT, outputPart); + if (!qualified) { + jp.setTargetNamespace(""); + } + if (!jpIn.getClassName().equals(jp.getClassName())) { + jp.setStyle(JavaType.Style.OUT); + } + addParameter(method, jp); + sameWrapperChild = true; - if (method.getReturn() == null) { - addVoidReturn(method); - } - break; + if (method.getReturn() == null) { + addVoidReturn(method); } + break; } } if (!sameWrapperChild) { Modified: cxf/branches/2.1.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java?rev=890621&r1=890620&r2=890621&view=diff ============================================================================== --- cxf/branches/2.1.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java (original) +++ cxf/branches/2.1.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java Tue Dec 15 03:11:51 2009 @@ -831,16 +831,21 @@ processor.execute(); Class<?> clz = classLoader.loadClass("org.apache.cxf.w2j.hello_world_holder.Greeter"); - assertEquals(1, clz.getMethods().length); + assertEquals(2, clz.getMethods().length); + + Class<?> para = classLoader.loadClass("org.apache.cxf.w2j.hello_world_holder.types.GreetMe"); + Method method = clz.getMethod("sayHi", new Class[] {Holder.class, para}); + assertEquals("GreetMeResponse", method.getReturnType().getSimpleName()); SOAPBinding soapBindingAnno = AnnotationUtil.getPrivClassAnnotation(clz, SOAPBinding.class); + if (soapBindingAnno == null) { + soapBindingAnno = method.getAnnotation(SOAPBinding.class); + } + assertNotNull(soapBindingAnno); assertEquals("BARE", soapBindingAnno.parameterStyle().name()); assertEquals("LITERAL", soapBindingAnno.use().name()); assertEquals("DOCUMENT", soapBindingAnno.style().name()); - Class<?> para = classLoader.loadClass("org.apache.cxf.w2j.hello_world_holder.types.GreetMe"); - Method method = clz.getMethod("sayHi", new Class[] {Holder.class, para}); - assertEquals("GreetMeResponse", method.getReturnType().getSimpleName()); WebParam webParamAnno = AnnotationUtil.getWebParam(method, "greetMe"); assertEquals(true, webParamAnno.header()); @@ -848,6 +853,7 @@ webParamAnno = AnnotationUtil.getWebParam(method, "sayHi"); assertEquals("INOUT", webParamAnno.mode().name()); + method = clz.getMethod("testInOut", Holder.class, Integer.TYPE); } @Test Modified: cxf/branches/2.1.x-fixes/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/hello_world_holder.wsdl URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/hello_world_holder.wsdl?rev=890621&r1=890620&r2=890621&view=diff ============================================================================== --- cxf/branches/2.1.x-fixes/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/hello_world_holder.wsdl (original) +++ cxf/branches/2.1.x-fixes/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/hello_world_holder.wsdl Tue Dec 15 03:11:51 2009 @@ -18,69 +18,103 @@ under the License. --> <wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://cxf.apache.org/w2j/hello_world_holder" xmlns:x1="http://cxf.apache.org/w2j/hello_world_holder/types" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://cxf.apache.org/w2j/hello_world_holder" name="HelloWorld"> - <wsdl:types> - <schema targetNamespace="http://cxf.apache.org/w2j/hello_world_holder/types" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> - <element name="sayHi"> - <complexType> - <sequence> - <element name="responseType" type="xsd:string"/> - </sequence> - </complexType> - </element> - <element name="sayHiResponse"> - <complexType> - <sequence> - <element name="responseType" type="xsd:string"/> - </sequence> - </complexType> - </element> - <element name="greetMe"> - <complexType> - <sequence> - <element name="requestType" type="xsd:string"/> - </sequence> - </complexType> - </element> - <element name="greetMeResponse"> - <complexType> - <sequence> - <element name="responseType" type="xsd:string"/> - </sequence> - </complexType> - </element> - </schema> - </wsdl:types> - <wsdl:message name="sayHi"> - <wsdl:part name="sayIn" element="x1:sayHi"/> - <wsdl:part name="sayHeader" element="x1:greetMe"/> - </wsdl:message> - <wsdl:message name="sayHiResponse"> - <wsdl:part name="sayIn" element="x1:sayHi"/> - <wsdl:part name="sayHeader" element="x1:greetMeResponse"/> - </wsdl:message> - <wsdl:portType name="Greeter"> - <wsdl:operation name="sayHi"> - <wsdl:input name="sayHiRequest" message="tns:sayHi"/> - <wsdl:output name="sayHiResponse" message="tns:sayHiResponse"/> - </wsdl:operation> - </wsdl:portType> - <wsdl:binding name="Greeter_SOAPBinding" type="tns:Greeter"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <wsdl:operation name="sayHi"> - <soap:operation style="document"/> - <wsdl:input> - <soap:body use="literal"/> - <soap:header message="tns:sayHi" part="sayHeader" use="literal"/> - </wsdl:input> - <wsdl:output> - <soap:body use="literal"/> - <soap:header message="tns:sayHiResponse" part="sayHeader" use="literal"/> - </wsdl:output> - </wsdl:operation> - </wsdl:binding> - <wsdl:service name="SOAPService"> - <wsdl:port name="SoapPort" binding="tns:Greeter_SOAPBinding"> - <soap:address location="http://localhost:9000/SoapContext/SoapPort"/> - </wsdl:port> - </wsdl:service> + <wsdl:types> + <schema targetNamespace="http://cxf.apache.org/w2j/hello_world_holder/types" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> + <element name="sayHi"> + <complexType> + <sequence> + <element name="responseType" type="xsd:string"/> + </sequence> + </complexType> + </element> + <element name="sayHiResponse"> + <complexType> + <sequence> + <element name="responseType" type="xsd:string"/> + </sequence> + </complexType> + </element> + <element name="greetMe"> + <complexType> + <sequence> + <element name="requestType" type="xsd:string"/> + </sequence> + </complexType> + </element> + <element name="greetMeResponse"> + <complexType> + <sequence> + <element name="responseType" type="xsd:string"/> + </sequence> + </complexType> + </element> + <element name="testInOut"> + <complexType> + <sequence> + <element minOccurs='0' name='val' type='xsd:int'/> + <element name='num' type='xsd:int'/> + </sequence> + </complexType> + </element> + <element name="testInOutResponse"> + <complexType> + <sequence> + <element minOccurs='0' name='val' type='xsd:int'/> + </sequence> + </complexType> + </element> + </schema> + </wsdl:types> + <wsdl:message name="sayHi"> + <wsdl:part name="sayIn" element="x1:sayHi"/> + <wsdl:part name="sayHeader" element="x1:greetMe"/> + </wsdl:message> + <wsdl:message name="sayHiResponse"> + <wsdl:part name="sayIn" element="x1:sayHi"/> + <wsdl:part name="sayHeader" element="x1:greetMeResponse"/> + </wsdl:message> + <wsdl:message name="testInOut"> + <wsdl:part name="testInOut" element="x1:testInOut"/> + </wsdl:message> + <wsdl:message name="testInOutResponse"> + <wsdl:part name="testInOutResponse" element="x1:testInOutResponse"/> + </wsdl:message> + <wsdl:portType name="Greeter"> + <wsdl:operation name="sayHi"> + <wsdl:input name="sayHiRequest" message="tns:sayHi"/> + <wsdl:output name="sayHiResponse" message="tns:sayHiResponse"/> + </wsdl:operation> + <wsdl:operation name="testInOut"> + <wsdl:input name="testInOut" message="tns:testInOut"/> + <wsdl:output name="testInOutResponse" message="tns:testInOutResponse"/> + </wsdl:operation> + </wsdl:portType> + <wsdl:binding name="Greeter_SOAPBinding" type="tns:Greeter"> + <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> + <wsdl:operation name="sayHi"> + <soap:operation style="document"/> + <wsdl:input> + <soap:body use="literal"/> + <soap:header message="tns:sayHi" part="sayHeader" use="literal"/> + </wsdl:input> + <wsdl:output> + <soap:body use="literal"/> + <soap:header message="tns:sayHiResponse" part="sayHeader" use="literal"/> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="testInOut"> + <soap:operation style="document"/> + <wsdl:input> + <soap:body use="literal"/> + </wsdl:input> + <wsdl:output> + <soap:body use="literal"/> + </wsdl:output> + </wsdl:operation> + </wsdl:binding> + <wsdl:service name="SOAPService"> + <wsdl:port name="SoapPort" binding="tns:Greeter_SOAPBinding"> + <soap:address location="http://localhost:9000/SoapContext/SoapPort"/> + </wsdl:port> + </wsdl:service> </wsdl:definitions>
