> Personally, I've used blueprint with OSGI, Camel for several years now - still works just fine even with the latest version of Karaf (4.3.X - haven't tried 4.4.1), Camel (3.18.1), and JDK 11.
Just to add more info, our camel routes are bundled as OSGI / JAR files, and use BLUEPRINT with the JAVA DSL. The camel-context.xml file embedded in the META-INF folder just bootstraps the Java DSL routebuilders. You can bundle POJO's and standard Java code when implementing Processors etc, the only XML file needed is that camel-context.xml. On Tue, Sep 6, 2022 at 4:36 AM George Daswani <georgedasw...@hotmail.com> wrote: > Personally, I've used blueprint with OSGI, Camel for several years now - > still works just fine even with the latest version of Karaf (4.3.X - > haven't tried 4.4.1), Camel (3.18.1), and JDK 11. > > On Tue, Sep 6, 2022 at 4:03 AM Bert Speckels <bert.speck...@gmail.com> > wrote: > >> 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/>* >> >> > >> >> > >> >> > >> >> >> > >> >