Return-Path: Delivered-To: apmail-incubator-cxf-dev-archive@locus.apache.org Received: (qmail 79316 invoked from network); 28 Mar 2007 14:40:20 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 28 Mar 2007 14:40:19 -0000 Received: (qmail 46103 invoked by uid 500); 28 Mar 2007 14:40:24 -0000 Delivered-To: apmail-incubator-cxf-dev-archive@incubator.apache.org Received: (qmail 45988 invoked by uid 500); 28 Mar 2007 14:40:24 -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 45978 invoked by uid 99); 28 Mar 2007 14:40:23 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 Mar 2007 07:40:23 -0700 X-ASF-Spam-Status: No, hits=2.0 required=10.0 tests=HTML_MESSAGE X-Spam-Check-By: apache.org Received-SPF: neutral (herse.apache.org: local policy) Received: from [209.85.132.244] (HELO an-out-0708.google.com) (209.85.132.244) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 Mar 2007 07:40:15 -0700 Received: by an-out-0708.google.com with SMTP id b2so2710657ana for ; Wed, 28 Mar 2007 07:39:53 -0700 (PDT) Received: by 10.100.33.14 with SMTP id g14mr253075ang.1175092793159; Wed, 28 Mar 2007 07:39:53 -0700 (PDT) Received: by 10.100.48.18 with HTTP; Wed, 28 Mar 2007 07:39:51 -0700 (PDT) Message-ID: <7b774c950703280739m18b7821ckef3080e53c789896@mail.gmail.com> Date: Wed, 28 Mar 2007 09:39:51 -0500 From: "Dan Diephouse" To: cxf-dev@incubator.apache.org Subject: Re: [PROPOSAL] Client and Conduit changes In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_23849_18443589.1175092791413" References: <7b774c950703221353u5eb42a69ia518c73ec0556ae@mail.gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org ------=_Part_23849_18443589.1175092791413 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline On 3/28/07, Glynn, Eoghan wrote: > > > > I see your point - I suppose there could be a flag. But look > > at it the other way around too. If this type of thing is > > adopted, that doesn't mean that we can do > > client.set(Destination.class, myDestination). > > > > At the moment I'm very strongly against this idea and if > > you're serious about getting it in, I would suggest starting > > another thread outlining your use case so we can discuss > > possible solutions. > > > Can you outline why you're very strongly against the idea of deferring the > creation of a Conduit until we're sure its actually needed? I see it as unnecessary. We've defined an abstraction with boundaries of Conduits and Destinations. I don't really see any reason to go changing this. For instance, I've been talking to James Strachan about using Camel a bit. Camel can do a bit of routing of CXF messages. On the Client side of things, we should be able to send a message in and then get the response some time later from Camel (if there is a response). The idea is that it can work on whatever the representation - pojos, xml, bytes, etc. The boundary into this system from the client perspective would still be a transport. Camel can just add a MessageObserver on a local:// destination. How the message comes into Camel then becomes a matter of the Binding. For the POJO case, I'd like to create an ObjectBinding which doesn't do any serialization. It'd also be nice to have a flag so the SOAP binding produce a Source object ultimately. > > > > Second, no one will be forced to invent new config > > mechanisms. They can use the existing configuration > > mechanisms. i.e. they can declare a and a > > in their XML if thats the route they want to go. > > Then when they grab the Destination/Conduit those will be > > configured according to their configuration. > > > It's the grabbing from the configuration that I'm concerned about. > > What exactly is entailed by the app grabbing from config, plus defining > the config schema upfront? > > Why should application code (that doesn't use a Client) have to concerned > at all with managing config? > It doesn't have to be... See below. Why not just allow the decoupled Destination to be picked up via a config > mechanism that's provided by the CXF framework? > > What is guaranteed to exist for a decoupled MEP? A Conduit instance. > > What is not guaranteed to exist for a decoupled MEP? A Client instance. > > So it seems to that simple logic dictates that the DRE config should be > associated with the one thing we *know* will exist, i.e. the Conduit. Lets compare the two cases of setting up a decoupled endpoint from an XML configuration perspective. Case 1: now Case 2:My Proposal 2a) No Client: No XML configuration is needed, unless you're using JMS. In which case you add a to your XML config 2b) My proposed client config: > > > > > > I'm saying that if someone is just using the transport layer (i.e. no > > client) and using multiple decoupled endpoints, its more > > consistent to just use the Destination* APIs. And its the > > same amount of work. > > > By the "Destination* APIs", do you mean DestinationFactory.getDestination > ()? > > Well, that is exactly what would be used to create a different acksTo or > faultTo in the current scenario. > > And it sounds to me like it would also be required in your proposal too > (assuming you're not proposing new Client.setAcksToEndpoint() etc. APIs) > > So I really don't seen what your consistency argument is based on (?) > > AFAICS in *both* your proposal *and* in the current model, a *different* > mechanism must used to set up the replyTo versus the acksTo/faultTo (if > these are to be different). Correct me please here if I'm wrong. When you use the Client, yes, the Client adds some convenience wrapper methods. When you don't use the Client, you always use the destination apis to set up the decoupled endpoint. > Is introducing an abstract ConduitPolicy really that big an issue? YES! We've already created very complex APIs for transports. Its time to simplify. I would think it much easier for the CXF framework to support a small > extension to its current config schemas, than for a (Client-less) > application to have to manage the config of the DRE itself. You have yet to show where the burden is for a Client-less application which manages a DRE itself. I don't see how its any more complex than what is currently there. - Dan -- Dan Diephouse Envoi Solutions http://envoisolutions.com | http://netzooid.com/blog ------=_Part_23849_18443589.1175092791413--