Return-Path: Delivered-To: apmail-camel-dev-archive@www.apache.org Received: (qmail 16940 invoked from network); 24 Jul 2009 09:07:54 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 24 Jul 2009 09:07:54 -0000 Received: (qmail 29877 invoked by uid 500); 24 Jul 2009 09:08:59 -0000 Delivered-To: apmail-camel-dev-archive@camel.apache.org Received: (qmail 29805 invoked by uid 500); 24 Jul 2009 09:08:59 -0000 Mailing-List: contact dev-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list dev@camel.apache.org Received: (qmail 29795 invoked by uid 500); 24 Jul 2009 09:08:59 -0000 Delivered-To: apmail-activemq-camel-dev@activemq.apache.org Received: (qmail 29792 invoked by uid 99); 24 Jul 2009 09:08:59 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 24 Jul 2009 09:08:59 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 24 Jul 2009 09:08:55 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id C6006234C051 for ; Fri, 24 Jul 2009 02:08:33 -0700 (PDT) Message-ID: <1469478849.1248426513810.JavaMail.jira@brutus> Date: Fri, 24 Jul 2009 02:08:33 -0700 (PDT) From: "Willem Jiang (JIRA)" To: camel-dev@activemq.apache.org Subject: [jira] Resolved: (CAMEL-1818) camel-cxf should fully support cxf jbi transport In-Reply-To: <1299368401.1247216733753.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-JIRA-FingerPrint: ae95407df07c98740808b2ef9da0087c X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/activemq/browse/CAMEL-1818?page=3Dcom.atla= ssian.jira.plugin.system.issuetabpanels:all-tabpanel ] Willem Jiang resolved CAMEL-1818. --------------------------------- Resolution: Won't Fix > camel-cxf should fully support cxf jbi transport > ------------------------------------------------ > > Key: CAMEL-1818 > URL: https://issues.apache.org/activemq/browse/CAMEL-1818 > Project: Apache Camel > Issue Type: Improvement > Components: camel-cxf > Affects Versions: 1.6.0 > Reporter: Ron Gavlin > Assignee: Willem Jiang > > I would like to incorporate the camel-cxf component into smx-camel and us= e wsdl2java-generated stubs to send jbi requests and receive jbi responses = from smx-cxf-bc and smx-cxf-se endpoints. Essentially, what I can do today = in the smx-cxf-se container with proxies I would also like to be able to do= in the smx-camel. > The discussion on this topic with willem and ffang is pasted below. > =09willem: i have code currently running in smx-cxf-se that I would= like to move into smx-camel. The code in smx-cxf-se uses wsdl2java to prox= y to a smx-cxf-bc provider. If I bundle the camel-cxf component within smx-= camel, should I be able to port this code over from smx-cxf-se to smx-camel= ? > =09=09willem: of course, I would provide a jbi location uri as the = proxy address. > =09=09rong: wsdl2java generated artifacts can be used in camel-cx= f. > =09=09willem: so in this scenario, I am not explicitly using camel-= cxf at all. I presume it is being used behind the scenes to send a camel Cx= fExchange which then gets converted into a jbi exchange on its way to the s= mx-cxf-bc provider. Is that how you would understand it? > =09=09willem: the smx-cxf-bc provider allows me to share the same j= bi endpoint configuration across numerous camel routes defined in different= smx-camel sus. > =09=09rong: Do you still want to use the smx-cxf-bc for the trans= port work ? > =09=09rong: are you using SMX 3? > =09=09willem: i see it as providing a single exit/entry point on th= e bus that can be shared across numerous camel routes. Yes, I am still on s= mx3. > =09=09rong: do you just want route the jbi message to camel and l= et camel call the POJO as the smx-cxf-se does? > =09=09willem: what advantage would defining a separate smx-camel su= with a route "from jbi to cxf" have over directly using the smx-cxf-bc pro= vider? > =09=09willem: no, i have a service that choreographs multiple exter= nal SOAP services. Today, the work is done in smx-cxf-se. It would be more = convenient to do the choreography work in camel where I can inline other me= diation/routing operations with the external SOAP service invocations. > =09=09willem: I know how the smx-cxf-se proxies to smx-cxf-bc provi= der endpoints. However, it is not clear how the wsdl2java-generated classes= running in smx-camel would use camel-cxf behind the scenes to send a jbi m= essage to the smx-cxf-bc provider endpoint. > =09=09rong; If you just want to routing the raw message and don't= get the CXF interceptor get touch of the message, you could route the JBI = message into the camel. > =09=09willem: I am not sure I understand your comment. When I say s= mx-cxf-bc provider, I am using the term "provider" in jbi speak, meaning it= is a proxy to an external service. So, I am not trying to route a message = into camel, I am trying to route a message out of camel to the "jbi provide= r". Does that make sense? > =09=09rong: but for camel-cxf , it doesn't take the transport and= soap stack business apart. if you still want to the smx-cxf-se's marshal a= nd unmarshal work do inside the camel, you still need to route the message = to smx-cxf-se and camel-cxf can't do it. > =09=09willem: doesn't cxf's native support for the jbi transport me= an that the wsdl2java-generated stubs running in smx-camel do the jbi work = for me. I was thinking I was only using camel-cxf to essentially import the= relevant cxf jars. When the smx-cxf-se proxies to the smx-cxf-bc provider,= is it doing more for me than I realize? > =09=09rong: wsdl2java generated artifacts are for the mapping bet= ween the xml message and Java objects, they can't handle the jbi transport = themselves. It need the CXF runtime to handle it. > =09=09rong : I don't know what the smx-cxf-se proxies does, maybe= I need to ask ffang to join this discussion. > =09=09willem: i was thinking the same thing... > =09=09ffang: ping > =09=09rong:pong > =09=09ffang: i have been chatting with willem about moving some int= egration logic from a smx-cxf-se component to smx-camel. Do you have a mome= nt to read our discussion history here and provide additional insight regar= ding how proxies to smx-cxf-bc providers work in smx-cxf-se? > =09=09rong: sure, basically, proxy in cxf se means, cxf se can hol= d the proxy of provider endpoint inside jbi bus, then from within the cxf s= e endpoint, can use this proxy to send message exchange to the provider end= point just like a normal java invocation, but the provider endpoint must ha= s the wsdl interface > =09=09ffang: So, ii am trying to determine if the smx-cxf-se itself= has magic to support proxying to smx-cxf-bc providers or if all the magic = is the cxf runtime's support for jbi destinations... > =09=09rong: so you can from smx-cxf-se, use proxy of other cxf se = endpoint/ cxf bc provider/ jsr181 se endpoint, because all of these provide= r endpoint has wsdl as interface > =09=09ffang: does smx-cxf-se still need to marshal and unmarshal = of the incoming and outgoing JBI message ? > =09=09rong: in your scenario, if camel se(as a provider) has wsdl = interface, then it should be ok > =09=09willem: yeah > =09=09ffang: Does the wsdl interface means SEI ? > =09=09ffang: so, in smx-camel, if i bundle the camel-cxf component = to incorporate the cxf runtime and I use wsdl2java-generated stubs with a j= bi locationUri pointing to the smx-cxf-bc provider (just like I do in smx-c= xf-se today), the code should port from smx-cxf-se to smx-camel? > =09=09rong: yeah, cxf se proxy use cxf JBI destination underlying,= but it doesn't care the provider endpoint on the other side is cxf bc prov= ider or not, any provider has wsdl interface should be ok > =09=09willem: yeah > =09=09ffang: but in this case, i wouldn't be using the cxf-se proxy= . i am running in smx-camel and trying to send a jbi request to smx-cxf-bc = provider using wsdl2java-generated classes. > =09=09ffang: is all the work i need being done in the cxf jbi trans= port layer and not in the cxf-se? > =09=09ffang: the jbi proxy work, i mean > =09=09rong: yeah, basically it's cxf runtime issue, I mean here ma= inly involve ClientProxyFactoryBean(which is cxf client proxy) an cxf JBI t= ransport > =09=09willem: can we use ClientProxyFactoryBean from camel-cxf now= ? > =09=09ffang: am I correct that the major drawback of using this tec= hnique, i.e., ClientProxyFactoryBean, is that only synchronous invocations = are supported. OTOH, if I manually build the request rather than using wsdl= 2java-generated classes, then I can asynchronously send the request, correc= t? > =09=09ffang: camel-cxf uses ClientProxyFactoryBean to create the = proxy to send the request to out side of service. > =09=09ffang: I think the issue is how to initial the JBI transpor= t in normal CXF endpoint. > =09=09ffang: current camel-cxf endpoint can't consume the JBI mes= sage directly. > =09=09rong: yeah > =09=09rong: actually no > =09=09willem: when the cxf runtime sees a jbi location uri, doesn't= it know to automatically perform this initialization? I would think camel-= cxf endpoint would play any role here, except making sure it brings with it= the jbi transport jars. > =09=09rong: even we use sendSync in proxy to send out MessageChang= r, but for cxf client api level, we have asyn, so the asyn/sync of cxf clie= nt api decouple with the underlying transport > =09=09rong: think about cxf client can support async over http tra= nsport, which is sync indeed > =09=09willem: s/would/would not > =09=09rong: yes, if you take a look at the CxfSeProxyFactoryBean = in cxf-se, cxf-se did some customization on the client side. > =09=09willem: it's easy do use JBI transport, just do like cf.setA= ddress("jbi://" + "anything"); > =09=09ffang: it looks like CxfSeProxyFactoryBean has a reasonable a= mount of goodness to make proxies work with MTOM attachments, etc. Any idea= how much of this functionality would have to be integrated into cxf, camel= -cxf, or smx-camel? Would it make sense to move this into the cxf jbi libra= ry as a helper class so that smx-cxf-se and camel can share it? > =09=09rong: yeah, maybe some interceptors should move to cxf code = base, if these would be shared by camel-cxf also > =09=09willem, ffang: so it sounds to me like camel-cxf does not cur= rently fully support the cxf jbi transport. If you agree, I'll open a Camel= JIRA for this functionality to be added to the camel-cxf component. > =09=09rong=EF=BC=9A current camel JBI related work is done in ser= vicemix-camel component, I don't know if it is right for camel-cxf do consu= me or produce any JBI related message. > =09=09rong: if you want to camel-cxf handle the JBI message from = smx-cxf-se and smx-cxf-bc, we need to do merge the JBI related work in to c= amel-cxf. > =09=09rong: please feel free to fill that requirement. > =09=09willem: yes, i want camel-cxf to send jbi request and receive= jbi response from both smx-cxf-se & smx-cxf-bc. So, should that be a camel= -cxf JIRA? > =09=09rong: yes, camel-cxf can cover that. > =09=09willem, ffang: thanks for your assistance. i'll open a camel-= cxf JIRA then. --=20 This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.