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/>*
>> >
>> >
>> >
>>
>

Reply via email to