Return-Path: Delivered-To: apmail-incubator-cxf-dev-archive@locus.apache.org Received: (qmail 9453 invoked from network); 19 Sep 2006 17:25:59 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 19 Sep 2006 17:25:59 -0000 Received: (qmail 8226 invoked by uid 500); 19 Sep 2006 17:25:58 -0000 Delivered-To: apmail-incubator-cxf-dev-archive@incubator.apache.org Received: (qmail 8171 invoked by uid 500); 19 Sep 2006 17:25:58 -0000 Mailing-List: contact cxf-dev-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-dev@incubator.apache.org Received: (qmail 8162 invoked by uid 99); 19 Sep 2006 17:25:58 -0000 Received: from idunn.apache.osuosl.org (HELO idunn.apache.osuosl.org) (140.211.166.84) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 19 Sep 2006 10:25:58 -0700 X-ASF-Spam-Status: No, hits=0.0 required=5.0 tests= Received: from ([63.65.132.112:60206] helo=amereast-smg2.iona.com) by idunn.apache.osuosl.org (ecelerity 2.1 r(10620)) with ESMTP id 13/15-28275-F1820154 for ; Tue, 19 Sep 2006 10:25:54 -0700 Received: from amereast-ems2.IONAGLOBAL.COM ([10.65.6.84]) by amereast-smg2.iona.com (Switch-3.1.7/Switch-3.1.7) with ESMTP id k8JHJQ1G021654; Tue, 19 Sep 2006 13:19:42 -0400 (EDT) Received: from [10.59.0.19] ([10.59.0.19]) by amereast-ems2.IONAGLOBAL.COM with Microsoft SMTPSVC(5.0.2195.6713); Tue, 19 Sep 2006 13:25:37 -0400 From: Daniel Kulp To: cxf-dev@incubator.apache.org Subject: Re: Wrapped operation info Date: Tue, 19 Sep 2006 13:25:39 -0400 User-Agent: KMail/1.9.4 Cc: Dan Diephouse References: <200609151813.12035.daniel.kulp@iona.com> <451012C3.7060604@envoisolutions.com> In-Reply-To: <451012C3.7060604@envoisolutions.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200609191325.40127.daniel.kulp@iona.com> X-OriginalArrivalTime: 19 Sep 2006 17:25:37.0883 (UTC) FILETIME=[9F6B3AB0:01C6DC10] X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N I'd consider that a bug and log it JIRA. That should be unwrappable. Dan On Tuesday September 19 2006 11:54 am, Dan Diephouse wrote: > Speaking of unwrapped operations, currently in JAX-WS we end up with one > way operations like: > > @Oneway > @RequestWrapper(targetNamespace = > "http://cxf.apache.org/greeter_control/types", className = > "org.apache.cxf.greeter_control.types.GreetMeOneWay", localName = > "greetMeOneWay") > @WebMethod(operationName = "greetMeOneWay") > public void greetMeOneWay( > @WebParam(targetNamespace = > "http://cxf.apache.org/greeter_control/types", name = "requestType") > java.lang.String requestType > ); > > However, this doesn't show up as isUnwrappedCapable with the current > WSDLServiceBuilder because it doesn't have an output message. This > causes problems when we create proxies (see the logic thats in > EndpointInvocationHandler right now). It seems like the simplest thing > to do is support one way unwrapped operations. Or we could have the > frontend go back through and modify the service wsdl What do you think? > > - Dan > > Daniel Kulp wrote: > >Guillaume, > > > >>I've raised a JIRA issue about wrapping informations [1]. > >>The wrapping informations for an operation is an effect of > >>the binding, not of the abstract operation. > >>All informations from the OperationInfo should be removed > >>and put in the BindingOperationInfo. > > > >Dan and I had a couple of long discussions about this earlier as well. > > The problem is that unwrapping/wrapping is not an effect for the binding > > either. It's technically completely and artifact of the frontend mapping. > > In some cases, the frontend may need/want the data to be unwrapped, but > > in other cases, it may not. > > > >For example, in JAX-WS, we need to support BOTH mappings of: > >int add(int a, int b) > >and > >AddResponse add(AddRequest req) > >that would map to the same WSDL. > > > >Originally, I was only going to have the "strict" OperationInfo in the > >ServiceModel that strictly represented the wsdl. (One MessagePartInfo in > > the message) After talking with Dan, we decide to make the "strict" > > form the normal one, but allow the frontend to "select" the unwrapped > > form, mostly as a convenience. > > > >>It seems that actually the only information needed is wether > >>the bound operation is wrappable or not, which should be > >>a simple boolean on the BindingOperationInfo > >> > >> boolean isUnwrapped() > >> > >>The WSDLServiceFactory should be modified accordingly to > >>detect wrapped operation when the binding is built and > >>set this boolean flag if only one part is bound to the soap body. > > > >The PROBLEM with this approach is that the "unwrapped capable" logic would > >need to be then embedded into ALL the bindings. The XML binding would > > need it, the CORBA binding (yoko project) would need it, other developer > > bindings would need it, etc... > > > >What we kind of decided on was to, again, for the "default/normal cases", > >autodetect if it matched the "normal" rules and flag it as unwrapped > > capable, but allow the binding and/or frontends to then also participate > > in that. Thus, adding some information to the soap binding to also detect > > the header cases is good, but I'd leave the stuff in the > > WSDLServiceFactory for the other cases. Also, a frontend would > > probably need to have a say in it. It currently COULD by modifying the > > service model after creation from the WSDL. For now, the JAX-WS layer > > can just select one of the two "forms" of the operation stored in the > > model that the WSDLServiceBuilder already provided. > > > >Enjoy! -- J. Daniel Kulp Principal Engineer IONA P: 781-902-8727 C: 508-380-7194 F:781-902-8001 daniel.kulp@iona.com