> I think the only option is to split JAXRS and JAXWS into different maven projects if number of jars/dependencies is a concern.
Or exclude some of the jars from cxf-frontend-jaxrs as I suggested to Willem ? Thus advanced users will just get a couple of extra jars. William Tam wrote: > > If you look at the runtime dependencies, there are not that many. I > think the only option is to split JAXRS and JAXWS into different maven > projects if number of jars/dependencies is a concern. > > <dependency> > <groupId>org.apache.camel</groupId> > <artifactId>camel-core</artifactId> > </dependency> > > <dependency> > <groupId>org.apache.camel</groupId> > <artifactId>camel-spring</artifactId> > </dependency> > > <dependency> > <groupId>commons-logging</groupId> > <artifactId>commons-logging-api</artifactId> > </dependency> > > <dependency> > <groupId>org.apache.cxf</groupId> > <artifactId>cxf-rt-frontend-jaxrs</artifactId> > <version>${cxf-version}</version> > </dependency> > > <dependency> > <groupId>org.apache.cxf</groupId> > <artifactId>cxf-rt-transports-http-jetty</artifactId> > <version>${cxf-version}</version> > </dependency> > > <dependency> > <groupId>org.apache.cxf</groupId> > <artifactId>cxf-rt-frontend-jaxws</artifactId> > <version>${cxf-version}</version> > </dependency> > > <dependency> > <groupId>org.springframework</groupId> > <artifactId>spring-core</artifactId> > </dependency> > > <dependency> > <groupId>org.springframework</groupId> > <artifactId>spring-beans</artifactId> > </dependency> > > <dependency> > <groupId>org.springframework</groupId> > <artifactId>spring-context</artifactId> > </dependency> > > > Hadrian Zbarcea wrote: >> Chill... >> >> Christian made a valid point. There are a few *types* of dependencies in >> Camel: >> 1. compile dependencies - which cannot be avoided and should be kept to a >> minimum >> 2. test runtime dependencies - needed for tests, which again cannot be >> avoided but should be tagged as such in the pom, and i am pretty sure >> some dependencies are only needed by tests, so users don't need to drag >> them along >> 3. user runtime dependencies - jars not really needed by camel, not even >> for tests, but which customers may need to use features in the underlying >> technology abstracted by camel. >> >> Since camel intends to abstract a particular technology, how much of >> abstraction leak is acceptable? That is how much is it reasonable to >> expect a user to know about the underlying technology (cxf packaging and >> dependencies in this case) to effectively use it? The cxf guys made a >> conscious decision a few years back to use fine grained jars, which are >> small, can be combined in various ways and make cxf more efficient, with >> a smaller footprint at runtime and probably faster. Definitely good >> things for cxf. Does this make things more complicated for Camel? Of >> course it does. Unfortunately there's no easy solution. Some advanced >> users, like Christian, would want the optimized minimum, others would >> prefer the convenience of "throw them all in there and camel will load >> what it needs". >> >> Christian, since you brought this up, what do you think a reasonable >> solution for you would be? >> >> Hadrian >> >> >> On Jan 21, 2010, at 5:09 AM, Sergey Beryozkin wrote: >> >> >>>>> I totally agree that CXF / camel-cxf is a having way way to many >>>>> dependencies out of the box. >>>>> >>>>> >>>>>> S.B : lets limit the scope of the discussion. Christian has not >>>>>> initiated >>>>>> this thread to complain about the fact CXF brings up to 81 jars in >>>>>> total but >>>>>> rather to raise a valid issue to do with the fact that JAXWS only >>>>>> users get >>>>>> up to 10 jars they don't need. >>>>>> >>>> CI: I am entitled to pitch in my opinion that camel-cxf which is >>>> supposed to be a layer on top of pure CXF to bridge Camel with CXF is >>>> using to many jars out of the box. It may be the same if I create a >>>> pure CXF java app where being dependent on cxf-core also loads many >>>> jars which I may not be interested in using. >>>> >>> ok... >>> >>> >>>> 81 jars is a fact. Camel only adds camel-cxf.jar, camel-core.jar, >>>> camel-spring.jar etc. I assume Christian may or may not have counted >>>> those common Spring jars in there as well. And Camel also deps on >>>> commons-logging and commons-management. And if using JDK1.5 some JAXB >>>> + Activation stuff. But Camel should not bring in more than 8 or so >>>> jars. >>>> >>>> So if I am a JAXWS only user, do I really need 71 jars? >>>> Using the old Axis 1.4 did not bring in 71 jars to use. >>>> >>>> >>> So what ? Users use CXF to get a high quality web services support. Some >>> of these jars are specs, some are needed to let users do advanced >>> services. Users can exclude the jars they do not need. Camel can have an >>> axis 1.4 component for users who like Axis. >>> >>> >>>>> 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? >>>>> >>>>> >>>>>> S.B : I'm pretty sure a good persentage of those jars is needed by >>>>>> other >>>>>> camel components too. >>>>>> >>>> CI: I really doubt it. The only shared jars would be Spring and >>>> commons-logging, JAXB if using JDK1.5 etc. >>>> >>> ok... >>> >>> >>>> >>>>> 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. >>>>> >>>>> >>>>>> S.B : Really ? Just for fun, how about doing a simple calculation and >>>>>> compare a number of jars CXF brings with the number of jars a >>>>>> Camel-based >>>>>> application of moderate complexity brings ? >>>>>> >>>> CI: I think you misunderstood me. I am talking about camel-cxf is fat >>>> in terms of java code. >>>> >>> I see... >>> >>> >>>> If you see the number of classes it has to bridge Camel with CXF. >>>> Dan Kulp is also confused why so many classes is needed. >>>> >>>> Maybe this should be discussed on a different thread as the original >>>> point about 81 jars has nothing to do >>>> with the number of classes/code in camel-cxf. >>>> >>>> >>>> >>>> >>>> >>>>> I wonder why thereis so much pluming code in there. I would assume >>>>> less code >>>>> was needed >>>>> to bridge the Camel agnostic API with the world of CXF. >>>>> >>>>> >>>>> >>>>>> 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 >>>>>> >>>>>> >>>>>> >>>>> >>>>> -- >>>>> Claus Ibsen >>>>> Apache Camel Committer >>>>> >>>>> Author of Camel in Action: http://www.manning.com/ibsen/ >>>>> Open Source Integration: http://fusesource.com >>>>> Blog: http://davsclaus.blogspot.com/ >>>>> Twitter: http://twitter.com/davsclaus >>>>> >>>>> >>>> >>>> -- >>>> Claus Ibsen >>>> Apache Camel Committer >>>> >>>> Author of Camel in Action: http://www.manning.com/ibsen/ >>>> Open Source Integration: http://fusesource.com >>>> Blog: http://davsclaus.blogspot.com/ >>>> Twitter: http://twitter.com/davsclaus >>>> >> >> >> > > -- View this message in context: http://old.nabble.com/Why-does-camel-cxf-need-cxf-rt-frontend-jaxrs-tp27237712p27260617.html Sent from the Camel Development mailing list archive at Nabble.com.