Claus (and others),

Thank you for sharing your thoughts.  I do not think any of that is harsh,
because it makes perfect logical sense, and it is what I figured.  I
thought I would ask, just in case.  I apologize if my questions were
annoying, and/or a waste of time.  Even though I asked these questions
today, I am perfectly fine with sticking with standard Java and its tools.
Thank you for your patience and good/quick responses.

On Sun, Nov 19, 2023 at 10:36 AM Claus Ibsen <claus.ib...@gmail.com> wrote:

> Hi
>
> Okay it may sound harsh when I and other long term Camel core team
> members say No to X or Y.
> However its a very large code base and a project that is ongoing for
> decades, currently 16 and half years old.
> People come and go, and it's important that everything in Camel can be
> picked up and maintained - also components contributed originally be
> someone whom have left.
> For example if you leave and we have to keep maintaining the dynamic router
> component, and we have not spent hours into its code base, and then have
> trouble doing so
> because of bringing in the original author's favourite set of tools.
> And even more now with a lot of focus on CVEs are other scanner tools that
> make people nervous if they report something, and you have to constantly
> chase around and update dependencies.
>
> The code must be easier to maintain and last for decades. And this means
> its standard Java only, and minimal dependencies. And uses Maven only as a
> build system.
> And that it must work with build from Maven (frankly the maven wrapper we
> have in the source).
> The camel builds system is also doing more than just compiling. We have all
> components generate metadata that gets into a camel-catalog, and also into
> generated DSLs (endpoint and component DSLs).
> And we have a route parser library that can scan the source code and
> generate a "visual report" etc that we use for tooling
> (camel-maven-report-plugin) etc.
> All of this makes it harder to maintain if components are not uniform
> around being standard Java only.
>
> The only place we have some non Java code is in the DSLs for groovy, kotlin
> etc.
>
> And also the camel-yaml-dsl unit tests are groovy based. But that is a semi
> mistake and we eventually need to migrate that to plain Java.
> But those tests are 95% focused only on loading some YAML and parse it via
> the yaml-dsl parser, and not a ton of groovy code.
>
> On the other side its is 100% okay to contribute examples that used Kotlin,
> Lombok and have them on your own code repositories,
> but also contribute some of these to Apache Camel in our example repos.
> However the vast majority of those examples should be maintains Java and
> easy to maintain as well.
> But we are fine with having a set of examples that uses what I mentioned
> before.
>
> And as a component developer you will find out - okay I need to add many
> unit tests to cover all its features and help ensure higher QE and ... yes
> that means something you
> need to write more unit tests code in standard Java with JUnit. And yes we
> use docker test containers for integration tests, and there is the
> "camel-test-infra" that can make this easier.
>
>
>
>
> On Sun, Nov 19, 2023 at 2:12 PM Claus Ibsen <claus.ib...@gmail.com> wrote:
>
> > Hi
> >
> > No lombok is not allowed - we have as minimal dependency as possible.
> >
> >
> >
> > On Sun, Nov 19, 2023 at 2:06 PM Steve973 <steve...@gmail.com> wrote:
> >
> >> Hello.  I completely understand the perspective of limiting the addition
> >> of
> >> libraries for various reasons, and especially when the library is
> included
> >> in the distribution.  I know that I have asked about Lombok before, but
> it
> >> is great for eliminating a lot of boilerplate code, especially when a
> >> class
> >> cannot be created as a Java 17 record.  Also, Lombok is a compile-only
> >> dependency that uses annotation processing to generate the
> aforementioned
> >> boilerplate.  The license also seems compatible.  Is this something that
> >> can be used in the coding of a component?  If not, could somebody please
> >> explain the problem with it?
> >>
> >> Thanks,
> >> Steve
> >>
> >
> >
> > --
> > Claus Ibsen
> > -----------------
> > @davsclaus
> > Camel in Action 2: https://www.manning.com/ibsen2
> >
>
>
> --
> Claus Ibsen
> -----------------
> @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>

Reply via email to