You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/12/15 03:49:03 UTC
svn commit: r890610 - in /cxf/branches/2.2.x-fixes: ./
tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/
tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/
tools/wsdlto/test/src/tes...
Author: dkulp
Date: Tue Dec 15 02:49:03 2009
New Revision: 890610
URL: http://svn.apache.org/viewvc?rev=890610&view=rev
Log:
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.2.x-fixes/ (props changed)
cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java
cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java
cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/hello_world_holder.wsdl
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.2.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.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java?rev=890610&r1=890609&r2=890610&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/ParameterProcessor.java Tue Dec 15 02:49:03 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.2.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.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java?rev=890610&r1=890609&r2=890610&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenTest.java Tue Dec 15 02:49:03 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.2.x-fixes/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/hello_world_holder.wsdl
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/hello_world_holder.wsdl?rev=890610&r1=890609&r2=890610&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/hello_world_holder.wsdl (original)
+++ cxf/branches/2.2.x-fixes/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/hello_world_holder.wsdl Tue Dec 15 02:49:03 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>