Some (all) good points Raymon I think this is a very good summary and I have nothing to add :-)
Currently we are trying to use some workarounds: - Live without CDI ... I think this is less painful than we think at the moment. - Build our own Endpoint DSL :-) ... not quite difficult - Wrap Morphia for MongoDB in our own OSGI bundle (may that works) And last but not least: Contributing to open source is definitely an option for me. But first I have to "get my feet wet" ... With kind regards Bert. Am Di., 6. Sept. 2022 um 10:35 Uhr schrieb ski n <raymondmees...@gmail.com>: > Hi Bert, > > The mailing list is fine for general discussions regarding Camel. It's > surely not just about questions on errors, but some share experience, > blogs, releases, projects or just need to some help with decisions they > need to make. This is all community based, so sometimes you are lucky that > people have time and the knowledge to help you, in other times there is no > one. We just help each other the best we can. > > Just note that the Camel Framework is both old and huge. It supports > hundreds technologies. Some have very good documentation, some are not so > well documented. You are very welcome to help when you have the time. > > More on Karaf. I personally have not a lot of knowledge on OSGi and CDI in > particular. I did run Camel with various runtimes including Karaf, Wildfly, > Spring Boot, Main and I build my own runtime Assimbly runtime (See also > discussion on runtimes: > https://lists.apache.org/list?users@camel.apache.org:2022-1 in the > archive). > > My personal experience is that every runtime has its advantages and > disadvantages. I had the easiest experience with Spring Boot, but for sure > other runtimes have their appeal. I agree that Karaf is very strong in > concept, but in practice can be complicated. Karaf actually was one of (or > the first) supported runtime for Camel, but that was purely focussed at > XML. Over the years it lost some traction, this is because modularization > in general (whether it's through OSGi or Java Modularization/Jigsaw) adds > complexity to applications and integrations. A lot of developer and > projects like frameworks and libraries abbondon this idea. For OSGi they > need for example build seperate jars and maintain extra files. The > popularity is fading. However there are still some developers that provide > excellent work in this area (like Jean-Baptiste Onofre) and who knows when > more people/companies will work on it will gain popularity. > > I think OSGi still have many advantages like: > > 1. BuildTime Modularity > 2. Runtime Modularity > 3. Hybrid (Works equally good on premisse and the cloud) > > That said I too had some issues with it. For example getting Groovy to > work properly: > > https://issues.apache.org/jira/browse/KARAF-7397?filter=-2 > > At the end I found that for most runtimes one needs to adjust too much > code to let it run for the specific runtime. I just want to write plain > Java/Camel code and used Maven/Docker for modularization/containerization. > That's why I created my own runtime project ( > https://github.com/assimbly/runtime). In comparison to my project, Karaf > however is excellent documented :) > > My point is that in open source there are always multiple strategies to > work on problems: > > 1. Report/Ask > > Use channels to ask/report. For Camel these are the mailing list, Zulip > (chat), StackOverflow and Jira. The mailing list/zulip are the most > approachable, but there you probably only get a direction how to get to a > solution (or even nothing, when there is no one to help on that subject. Or > Claus is on vacation...). StackOverflow and Jira have more chance that it > will get solved, but then it is expected that you provide a clear > description of the problem, the versions/runtime/os you need and often code > to reproduce the problem. But also this is best effort. > > 2. Workaround > > In a lot of cases, because Camel is just Java there are ways to workaround > an issue. I would say 9 out of 10 I could find some solution for things I > run into and that weren't well documented. Sometimes I asked a collegue and > we did some pair programming. > > 3. Commercial offerings > > If you need dedicated support (for example because you are in a large > organization) you can get commercial support from for example Red Hat, > Talend (and other > https://camel.apache.org/manual/commercial-camel-offerings.html). As a > free contractor I am dependent on the organization where I work for how > this is arranged, so this is not always on option. > > 4. Multiple middleware > > Though it may complicate your stack, it's sometimes good to mix middleware > tools. For example do some work on low-code level, and some in Camel code. > Maybe you don't need such difficult use cases in your code anymore when you > combine Camel with other middleware. There are Camel based platforms > (Syndesis, Dovetail, Assimbly Gateway) or non-camel based (Apache NiFi, > Apache Hop, Apache Kafka). Such middleware complement each other well. > > 5. Contribute > > Of course, the best way to make open source project better, is to deep > dive and contribute yourself by code or documentation. > https://camel.apache.org/community/contributing/ > > In open source your are the driver. Rock on. > > Raymond > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Tue, Sep 6, 2022 at 8:47 AM Bert Speckels <bert.speck...@gmail.com> > wrote: > >> Thank you for clarification. >> >> Documentation about Camel Blueprint always reads only as an XML version of >> the Java DSL, which I don't particularly like. Maybe this is not entirely >> correct, but all blueprint documentation is about camel routes as XML, >> nothing about annotation based CDI (@Service + @Inject etc). Do I miss >> something? >> >> The other obstacle is a MongoDB ORM library for OSGI (currently we use >> Morphia). But that is of no concern to the Camel community ;-) >> >> All this disappoints me mainly because I actually think Camel and Karaf >> are >> perfect for our purpose ... for many use cases ... but in the end there is >> a lack of OSGI support for important frameworks/libraries. OSGI doesn't >> seem to be popular in the Java community...otherwise there would be more >> documentation and support here. I think OSGI is the best solution between >> microservices and monoliths, although I think Java is only partially >> suitable for microservices, at least if you want to run 100+ camel routes >> as individual microservices. >> >> Please forgive me for using this mailing list for such general >> "discussions" and sharing of experiences. I know: Normally, this mailing >> list is about very specific error situations... >> >> With kind regards >> Bert Speckels >> >> Nicolas Filotto <nfilo...@talend.com> schrieb am Mo., 5. Sept. 2022, >> 17:17: >> >> > Hi, >> > >> > Regarding camel-cdi, it has been deprecated in 2.x and removed in 3.x >> > AFAIK now you are supposed to use camel-blueprint instead. >> > Regarding camel-mongodb, it has been removed in 3.16.0 because we met >> some >> > problems when upgrading the version of the driver, if really needed >> please >> > create a Jira ticket in the Camel project, I will try to find a >> solution to >> > put it back. >> > >> > Regards, >> > Nicolas >> > >> > >> > >> > ------------------------------ >> > *From:* Bert Speckels <bert.speck...@gmail.com> >> > *Sent:* Monday, September 5, 2022 12:44 >> > *To:* users@camel.apache.org <users@camel.apache.org> >> > *Subject:* Re: Camel and OSGI support >> > >> > >> > >> > Hi Again >> > >> > In fact, I'm extremely frustrated now. So excuse me if I sound a little >> > rude at this point. Actually I'm not like that. But not much remains of >> the >> > promising approach with Camel and Apache Karaf... similar to our first >> > approach with Quarkus. >> > >> > So far I've only encountered obstacles trying to use the following in >> > Karaf. >> > >> > CDI (most important) >> > camel-cdi apparently no longer exists as an OSGI bundle and pax-cdi >> alone >> > is not enough, because CDI (injection) is mainly used when building >> routes. >> > As far as I understand, this is only possible with Camel-CDI. >> > >> > MongoDB >> > Camel-mongo doesn't seem to exist either. It may be sufficient here to >> > address the MongoDB driver directly, since we probably do not >> necessarily >> > need the Camel-specific MongoDB API. The only thing missing is a >> suitable >> > OR mapper with OSGI support. >> > >> > EndpointDSL >> > camel-endpointsdsl does not support OSGI. However, there is an >> alternative >> > to this, although I don't really like concatenating configuration >> > parameters in a string. >> > >> > It's extremely frustrating right now having to figure all of this out >> > yourself. I just hope that one of you can explain to me that CDI still >> > works with Camel and Karaf. >> > >> > WIth kind regards >> > Bert. >> > >> > Am So., 4. Sept. 2022 um 15:42 Uhr schrieb Bert Speckels < >> > bert.speck...@gmail.com>: >> > >> > > Hello there >> > > >> > > I'm a bit desperate at the moment: We're switching our Camel routes >> (in a >> > > monolith, Camel 3.14.2) to OSGI bundles (Apache Karaf and upgrade to >> > Camel >> > > 3.18.1). Unfortunately I have some difficulties with this. >> > > >> > > For one thing, I'm missing a few Camel features: Unfortunately, >> > > "camel-endpointsdsl" doesn't exist as an OSGI feature/bundle, right? >> > > Neither 3.14.2 nmor 3.18.1 has OSGI support for that. >> > > >> > > Also missing in Camel 3.18.1 is the OSGI support of MongoDB, which >> still >> > > exists in 3.14. >> > > >> > > Also using CDI is quite confusing for me. Aries, Blueprint, Pax CDI, >> > > Camel-CDI... so many combinations... @Service, @OsgiServiceProvider, >> > > @Inject, @Reference... so many annotations, some of which are >> apparently >> > > deprecated. Currently we are using weld in our monolith: >> weld-se-shaded, >> > > deltaspike-cdictrl-weld with Camel-CDI. >> > > >> > > Overall, many (all?) tutorials and examples seem to be very outdated: >> I >> > > rarely find examples from 2020 or later. Apparently, even after 2020, >> so >> > > much has changed at Camel. Maybe you can point me to one or the other >> > > problem where I can get current information: OSGI-Mongo-Support, CDI, >> > > camel-endopointsdsl... >> > > >> > > With kind regards >> > > Bert Speckels >> > > >> > >> > *As a recipient of an email from Talend, your contact personal data will >> > be on our systems. Please see our privacy notice. >> > <https://www.talend.com/privacy/>* >> > >> > >> > >> >