Return-Path: Delivered-To: apmail-incubator-cxf-commits-archive@locus.apache.org Received: (qmail 84653 invoked from network); 7 Feb 2007 04:02:44 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 7 Feb 2007 04:02:44 -0000 Received: (qmail 38154 invoked by uid 500); 7 Feb 2007 04:02:50 -0000 Delivered-To: apmail-incubator-cxf-commits-archive@incubator.apache.org Received: (qmail 37969 invoked by uid 500); 7 Feb 2007 04:02:50 -0000 Mailing-List: contact cxf-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cxf-dev@incubator.apache.org Delivered-To: mailing list cxf-commits@incubator.apache.org Received: (qmail 37915 invoked by uid 99); 7 Feb 2007 04:02:50 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Feb 2007 20:02:50 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: domain of james.mao@iona.com designates 65.223.216.181 as permitted sender) Received: from [65.223.216.181] (HELO amereast-smg1.iona.com) (65.223.216.181) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Feb 2007 20:02:39 -0800 Received: from amer-ems1.IONAGLOBAL.COM ([10.65.6.25]) by amereast-smg1.iona.com (Switch-3.1.7/Switch-3.1.7) with ESMTP id l1741l1O016728; Tue, 6 Feb 2007 23:01:47 -0500 (EST) Received: from [10.129.9.24] ([10.129.9.24]) by amer-ems1.IONAGLOBAL.COM with Microsoft SMTPSVC(6.0.3790.1830); Tue, 6 Feb 2007 23:02:16 -0500 Message-ID: <45C94F92.2000707@iona.com> Date: Wed, 07 Feb 2007 12:03:30 +0800 From: James Mao User-Agent: Thunderbird 1.5.0.9 (Windows/20061207) MIME-Version: 1.0 To: cxf-dev@incubator.apache.org CC: cxf-commits@incubator.apache.org Subject: Re: svn commit: r504289 - in /incubator/cxf/trunk: rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/header/ testutils/ testutils/src/main/java/org/apache/header_test/rpc/ testutils/src/main/resources/wsdl/ tools/wsdl2java/src/main/java/org/apache/cxf/t... References: <20070206205616.28FE51A981C@eris.apache.org> In-Reply-To: <20070206205616.28FE51A981C@eris.apache.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 07 Feb 2007 04:02:17.0295 (UTC) FILETIME=[C1DFEDF0:01C74A6C] X-Virus-Checked: Checked by ClamAV on apache.org This fix should also into tools2. If there is bug in code gen, please fix into tools2 directly, almost all the code has been ported to tools2 I'll reopen the CXF-261 to do the fix in tools2. Cheers, James. > Author: dkulp > Date: Tue Feb 6 12:56:15 2007 > New Revision: 504289 > > URL: http://svn.apache.org/viewvc?view=rev&rev=504289 > Log: > Testcase for CXF-261 > > * CXF-261 is no longer applicable, but nothing tests it. Added a rcp/literal soap header test > * That said, the code generator was broken for rpc/literal with headers (headers are always doc/literal). Fixed that and added a test in testutils to check to makre sure the generated code is correct. > > > Added: > incubator/cxf/trunk/testutils/src/main/java/org/apache/header_test/rpc/ > incubator/cxf/trunk/testutils/src/main/java/org/apache/header_test/rpc/TestRPCHeaderImpl.java (with props) > incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader_rpc.wsdl (with props) > Modified: > incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/header/HeaderClientServerTest.java > incubator/cxf/trunk/testutils/pom.xml > incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/ParameterProcessor.java > incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/ServiceProcessor.java > > Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/header/HeaderClientServerTest.java > URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/header/HeaderClientServerTest.java?view=diff&rev=504289&r1=504288&r2=504289 > ============================================================================== > --- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/header/HeaderClientServerTest.java (original) > +++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/header/HeaderClientServerTest.java Tue Feb 6 12:56:15 2007 > @@ -36,6 +36,10 @@ > import org.apache.header_test.SOAPHeaderService; > import org.apache.header_test.TestHeader; > import org.apache.header_test.TestHeaderImpl; > +import org.apache.header_test.rpc.SOAPRPCHeaderService; > +import org.apache.header_test.rpc.TestRPCHeader; > +import org.apache.header_test.rpc.TestRPCHeaderImpl; > +import org.apache.header_test.rpc.types.HeaderMessage; > import org.apache.header_test.types.TestHeader1; > import org.apache.header_test.types.TestHeader1Response; > import org.apache.header_test.types.TestHeader2; > @@ -54,27 +58,31 @@ > private final QName portName = new QName("http://apache.org/header_test", > "SoapHeaderPort"); > > - private TestHeader proxy; > - > public void setUp() throws Exception { > super.setUp(); > BusFactory.setDefaultBus(getBus()); > > Object implementor = new TestHeaderImpl(); > String address = "http://localhost:9104/SoapHeaderContext/SoapHeaderPort"; > - EndpointImpl e = (EndpointImpl) Endpoint.publish(address, implementor); > + EndpointImpl e = (EndpointImpl) Endpoint.publish(address, implementor); > + e.getServer().getEndpoint().getInInterceptors().add(new LoggingInInterceptor()); > + e.getServer().getEndpoint().getOutInterceptors().add(new LoggingOutInterceptor()); > > + implementor = new TestRPCHeaderImpl(); > + address = "http://localhost:9104/SoapHeaderRPCContext/SoapHeaderRPCPort"; > + e = (EndpointImpl)Endpoint.publish(address, implementor); > e.getServer().getEndpoint().getInInterceptors().add(new LoggingInInterceptor()); > e.getServer().getEndpoint().getOutInterceptors().add(new LoggingOutInterceptor()); > + > } > - > + > public void testInHeader() throws Exception { > URL wsdl = getClass().getResource("/wsdl/soapheader.wsdl"); > assertNotNull(wsdl); > > SOAPHeaderService service = new SOAPHeaderService(wsdl, serviceName); > assertNotNull(service); > - proxy = service.getPort(portName, TestHeader.class); > + TestHeader proxy = service.getPort(portName, TestHeader.class); > try { > TestHeader1 val = new TestHeader1(); > for (int idx = 0; idx < 2; idx++) { > @@ -93,7 +101,7 @@ > > SOAPHeaderService service = new SOAPHeaderService(wsdl, serviceName); > assertNotNull(service); > - proxy = service.getPort(portName, TestHeader.class); > + TestHeader proxy = service.getPort(portName, TestHeader.class); > try { > TestHeader2 in = new TestHeader2(); > String val = new String(TestHeader2Response.class.getSimpleName()); > @@ -119,7 +127,7 @@ > > SOAPHeaderService service = new SOAPHeaderService(wsdl, serviceName); > assertNotNull(service); > - proxy = service.getPort(portName, TestHeader.class); > + TestHeader proxy = service.getPort(portName, TestHeader.class); > > try { > TestHeader3 in = new TestHeader3(); > @@ -154,7 +162,7 @@ > > SOAPHeaderService service = new SOAPHeaderService(wsdl, serviceName); > assertNotNull(service); > - proxy = service.getPort(portName, TestHeader.class); > + TestHeader proxy = service.getPort(portName, TestHeader.class); > try { > TestHeader5 in = new TestHeader5(); > String val = new String(TestHeader5.class.getSimpleName()); > @@ -178,7 +186,7 @@ > > SOAPHeaderService service = new SOAPHeaderService(wsdl, serviceName); > assertNotNull(service); > - proxy = service.getPort(portName, TestHeader.class); > + TestHeader proxy = service.getPort(portName, TestHeader.class); > > TestHeader6 in = new TestHeader6(); > String val = new String(TestHeader6.class.getSimpleName()); > @@ -209,7 +217,7 @@ > > SOAPHeaderService service = new SOAPHeaderService(wsdl, serviceName); > assertNotNull(service); > - proxy = service.getPort(portName, TestHeader.class); > + TestHeader proxy = service.getPort(portName, TestHeader.class); > try { > proxy.testHeader4("cxf"); > } catch (Exception e) { > @@ -218,6 +226,56 @@ > } > } > > + public void testRPCInHeader() throws Exception { > + URL wsdl = getClass().getResource("/wsdl/soapheader_rpc.wsdl"); > + assertNotNull(wsdl); > + > + SOAPRPCHeaderService service > + = new SOAPRPCHeaderService(wsdl, > + new QName("http://apache.org/header_test/rpc", "SOAPRPCHeaderService")); > + assertNotNull(service); > + TestRPCHeader proxy = service.getSoapRPCHeaderPort(); > + try { > + HeaderMessage header = new HeaderMessage(); > + header.setHeaderVal("header"); > + > + for (int idx = 0; idx < 2; idx++) { > + String returnVal = proxy.testHeader1("part", header); > + assertNotNull(returnVal); > + assertEquals("part/header", returnVal); > + } > + } catch (UndeclaredThrowableException ex) { > + throw (Exception)ex.getCause(); > + } > + } > + > + public void testRPCInOutHeader() throws Exception { > + URL wsdl = getClass().getResource("/wsdl/soapheader_rpc.wsdl"); > + assertNotNull(wsdl); > + > + SOAPRPCHeaderService service > + = new SOAPRPCHeaderService(wsdl, > + new QName("http://apache.org/header_test/rpc", "SOAPRPCHeaderService")); > + assertNotNull(service); > + TestRPCHeader proxy = service.getSoapRPCHeaderPort(); > + try { > + HeaderMessage header = new HeaderMessage(); > + Holder holder = new Holder(header); > + > + for (int idx = 0; idx < 2; idx++) { > + holder.value.setHeaderVal("header" + idx); > + String returnVal = proxy.testInOutHeader("part" + idx, holder); > + > + assertNotNull(returnVal); > + assertEquals("header" + idx, returnVal); > + assertEquals("part" + idx, holder.value.getHeaderVal()); > + } > + } catch (UndeclaredThrowableException ex) { > + throw (Exception)ex.getCause(); > + } > + } > + > + > public static void main(String[] args) { > junit.textui.TestRunner.run(HeaderClientServerTest.class); > } > > Modified: incubator/cxf/trunk/testutils/pom.xml > URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/pom.xml?view=diff&rev=504289&r1=504288&r2=504289 > ============================================================================== > --- incubator/cxf/trunk/testutils/pom.xml (original) > +++ incubator/cxf/trunk/testutils/pom.xml Tue Feb 6 12:56:15 2007 > @@ -244,6 +244,9 @@ > ${basedir}/src/main/resources/wsdl/soapheader2.wsdl > > > + ${basedir}/src/main/resources/wsdl/soapheader_rpc.wsdl > + > + > ${basedir}/src/main/resources/wsdl/locator.wsdl > > -p > > Added: incubator/cxf/trunk/testutils/src/main/java/org/apache/header_test/rpc/TestRPCHeaderImpl.java > URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/java/org/apache/header_test/rpc/TestRPCHeaderImpl.java?view=auto&rev=504289 > ============================================================================== > --- incubator/cxf/trunk/testutils/src/main/java/org/apache/header_test/rpc/TestRPCHeaderImpl.java (added) > +++ incubator/cxf/trunk/testutils/src/main/java/org/apache/header_test/rpc/TestRPCHeaderImpl.java Tue Feb 6 12:56:15 2007 > @@ -0,0 +1,48 @@ > +/** > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + */ > +package org.apache.header_test.rpc; > + > +import javax.jws.WebService; > +import javax.xml.ws.Holder; > + > +import org.apache.header_test.rpc.types.HeaderMessage; > + > + > +@WebService(serviceName = "SOAPRPCHeaderService", > + portName = "SoapRPCHeaderPort", > + endpointInterface = "org.apache.header_test.rpc.TestRPCHeader", > + targetNamespace = "http://apache.org/header_test/rpc") > + > +public class TestRPCHeaderImpl implements TestRPCHeader { > + > + public String testHeader1(String in, HeaderMessage inHeader) { > + if (in == null || inHeader == null) { > + throw new IllegalArgumentException("TestHeader1 part not found."); > + } > + > + return in + "/" + inHeader.getHeaderVal(); > + } > + > + public String testInOutHeader(String in, Holder inOutHeader) { > + String tmp = inOutHeader.value.getHeaderVal(); > + inOutHeader.value.setHeaderVal(in); > + return tmp; > + } > + > +} > > Propchange: incubator/cxf/trunk/testutils/src/main/java/org/apache/header_test/rpc/TestRPCHeaderImpl.java > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: incubator/cxf/trunk/testutils/src/main/java/org/apache/header_test/rpc/TestRPCHeaderImpl.java > ------------------------------------------------------------------------------ > svn:keywords = Rev Date > > Added: incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader_rpc.wsdl > URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader_rpc.wsdl?view=auto&rev=504289 > ============================================================================== > --- incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader_rpc.wsdl (added) > +++ incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader_rpc.wsdl Tue Feb 6 12:56:15 2007 > @@ -0,0 +1,88 @@ > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > + > > Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader_rpc.wsdl > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader_rpc.wsdl > ------------------------------------------------------------------------------ > svn:keywords = Rev Date > > Propchange: incubator/cxf/trunk/testutils/src/main/resources/wsdl/soapheader_rpc.wsdl > ------------------------------------------------------------------------------ > svn:mime-type = text/xml > > Modified: incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/ParameterProcessor.java > URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/ParameterProcessor.java?view=diff&rev=504289&r1=504288&r2=504289 > ============================================================================== > --- incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/ParameterProcessor.java (original) > +++ incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/ParameterProcessor.java Tue Feb 6 12:56:15 2007 > @@ -129,7 +129,9 @@ > String targetNamespace = method.getInterface().getNamespace(); > String partName = null; > > - if (method.getSoapStyle() == SOAPBinding.Style.DOCUMENT) { > + if (method.getSoapStyle() == SOAPBinding.Style.DOCUMENT > + || parameter.isHeader()) { > + //headers are always DOCUMENT style > targetNamespace = parameter.getTargetNamespace(); > if (parameter.getQName() != null) { > name = parameter.getQName().getLocalPart(); > @@ -151,7 +153,8 @@ > webParamAnnotation.addArgument("mode", "Mode." + parameter.getStyle().toString(), ""); > } > webParamAnnotation.addArgument("name", name); > - if (method.getSoapStyle() == SOAPBinding.Style.DOCUMENT) { > + if (method.getSoapStyle() == SOAPBinding.Style.DOCUMENT > + || parameter.isHeader()) { > webParamAnnotation.addArgument("targetNamespace", targetNamespace); > } > > > Modified: incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/ServiceProcessor.java > URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/ServiceProcessor.java?view=diff&rev=504289&r1=504288&r2=504289 > ============================================================================== > --- incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/ServiceProcessor.java (original) > +++ incubator/cxf/trunk/tools/wsdl2java/src/main/java/org/apache/cxf/tools/wsdl2java/processor/internal/ServiceProcessor.java Tue Feb 6 12:56:15 2007 > @@ -300,6 +300,8 @@ > private void setParameterAsHeader(JavaParameter parameter) { > parameter.setHeader(true); > parameter.getAnnotation().addArgument("header", "true", ""); > + parameter.getAnnotation().addArgument("name", parameter.getQName().getLocalPart()); > + parameter.getAnnotation().addArgument("targetNamespace", parameter.getTargetNamespace()); > } > > private void processParameter(JavaMethod jm, BindingOperation operation) throws ToolException { > > > >