camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <>
Subject Re: Why does camel-cxf need cxf-rt-frontend-jaxrs
Date Sat, 23 Jan 2010 02:22:33 GMT
Claus Ibsen wrote:
> On Wed, Jan 20, 2010 at 11:51 PM, Christian Schneider
> <> wrote:
>> Hi Sergey,
>> I am just concerned with the dependencies jaxrs brings into our projects.
>> The architects from the projects at my company that use camel and cxf
>> complain about the many dependencies needed to simply do web services.  So I
>> am constantly searching how to have less dependencies.
>> Currently camel-cxf needs 81 jars.
>> When I remove cxf-rt-transports-http-jetty there are 77 jars left.
>> When I also remove cxf-rt-frontend-jaxrs there are only 63 jars left.
> I totally agree that CXF / camel-cxf is a having way way to many
> dependencies out of the box.
> Unfortunately Maven makes it to easy to not think on how many jars. In
> the old days you had to download those .jars yourself and thus you
> would notice if using webservice really needs 81 jars?
> I personally want a lightweight webservice stack where I can choose
> whether or not I want SOAP over JMS, Mail stuff, WS Security, REST
> etc.
> In terms of camel-cxf I also think its grew to fat. I wonder why there
> is so much pluming code in there. I would assume less code was needed
> to bridge the Camel agnostic API with the world of CXF.

There are different ways to integration CXF with Camel, you can deploy a 
service bean with the camel context CXF; you can let the camel context 
to start up the CXF endpoints; you can also leverage the camel 
components to provides transport services for the CXF endpoints.

What we do in camel-cxf is trying to connect the world of CXF and Camel 
together, which means people's knowledge of CXF (such as configuration, 
terms, etc) can be transparently used into camel-cxf endpoint, and the 
user of camel-cxf can talk to other camel component and CXF without any 

As you know CXF has lots front ends and APIs, we can't just isolate our 
interaction with a single cxf-api or cxf-core, and some advance features 
require us to get touch with internal API of CXF.

It will make the life easier, if we just use the JAXWS API, but 
camel-cxf component will not support some other feature of CXF, such as 
JAXRS, simple front end API ...

I'm big fan of KISS principle, if we just want a simple piece of SOAP 
support, we don't need to bring a huge frame work before the user, and 
we do it easily and cleanly.

But if the user is getting familiar with so kind of framework, they may 
ask for more support in camel-xxx.

>> These are still more dependencies than I would like to have but at least a
>> little better. After removing http-jetty the project still compiles without
>> problems so I guess it could be removed.
>> The jaxrs dependency is currently needed and I guess it is not so easy to
>> remove it.
>> While checking the dependencies I found that the repo is added in
>> camel-cxf. I remember that recently Dan added the jaxb jars to maven central
>> so I think this repo can now be removed. I checked with an empty local repo
>> and was able to build camel-cxf.
>> Greetings
>> Christian
>> Am 20.01.2010 10:31, schrieb Sergey Beryozkin:
>>>> Hi all,
>>>> I am using the camel-cxf component to attach a jaxws service to camel.
>>>> Unfortunatelly the camel-cxf component also depends on
>>>> cxf-rt-frontend-jaxrs. Is this necessary? It would be nice if this
>>>> depdendency could be removed or made optional.
>>> Does it cause any issues for you ? Or are you just concerned about extra
>>> module being unnecessarily loaded ?
>>> I'm not sure it makes sense to introduce another camel component
>>> specifically dedicated to handling cxf-rt-frontend-jaxrs.
>>> Some users may have JAXWS and JAXRS services attached through a single
>>> bean with the help of camel-cxf.
>>> cheers, Sergey
>> --
>> Christian Schneider
>> ---

View raw message