Claus Ibsen wrote:
On Wed, Jan 20, 2010 at 11:51 PM, Christian Schneider
<ch...@die-schneider.net> 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
issue.
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 java.net 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
---
http://www.liquid-reality.de