Hi folks,

I like Peter's idea on having a separate repository for camel-quarkus.

In addition to his point, I would add that Quarkus is a newly born, cutting
edge technology, which itself should evolve fast and likely may not keep
how it works now for long as we see in, say, Node.js community. Having a
separate repository should let us experiment fast as well and catch up with
the rapid evolution in Quarkus without touching the main Camel codebase.

On Tue, Jun 4, 2019 at 8:07 PM Peter Palaga <ppal...@redhat.com> wrote:

> Hi,
>
> I am fully welcoming the initiative to donate the code of Camel Quarkus
> extensions that currently live in Quarkus git repository [1] to Apache
> Camel community. I believe that's where the code can attract much more
> interested developers and users.
>
> I recently ported a couple of Camel components to Quarkus [2][3] and I
> plan to port more in the future.
>
> I'd like to express my opinion on which git repository should be the
> final home for that code.
>
> As Luca mentioned, there are two options there:
>
> (a) Apache Camel’s main git repository [4] or
> (b) A new separate repository under Apache organization.
>
> I am clearly in favor of (b) and my reasons for that revolve around the
> fact that the Camel main repository currently has 824 Maven modules.
> That size has a number of negative impacts on developers day-to-day life:
>
> * It takes tens of minutes to build without tests and hours with tests.
> * Full test suite cannot be run on each pull request and broken master
> is a possible consequence
> * I was told it is practically not viable to import that big source tree
> into IntelliJ (I am not IntelliJ user). Given enough memory, Eclipse can
> now import the whole source tree in a reasonable time [5]. Anyway,
> working with it feels rather slow.
>
> Adding more modules to support Quarkus would make the situation even worse.
>
> Having a separate repo for the Camel Quarkus extensions would make the
> life easier for both folks working on the Camel side (smaller source
> tree) and on the camel-quarkus side (faster dev builds, faster CI, more
> control over the supported Camel version).
>
> I prepared a proof of concept how such a separate repository could look
> like: https://github.com/ppalaga/camel-quarkus
>
> For the bleeding edge development work the repo is using srcdeps [6][7]
> to manage non-released dependencies of Apache Camel and Quarkus. srcdeps
> allows for declaring dependencies in terms of git commit sha1s instead
> of versions present in remote Maven repositories.
>
> srcdeps is able to reduce the Maven module hierarchy of the dependency
> project to only those modules required by the current repository. Thanks
> to this, only 62 Camel modules need to be built to satisfy
> camel-quarkus. Building those 62 Camel modules takes about two and a
> half minutes on my laptop.
> I am listing various build times of the camel-quarkus repo in the readme
> [8]
>
>
> [1] https://github.com/quarkusio/quarkus/tree/master/extensions/camel
> [2] https://github.com/quarkusio/quarkus/pull/2542
> [3] https://github.com/quarkusio/quarkus/pull/2361
> [4] https://github.com/apache/camel
> [5] https://bugs.eclipse.org/bugs/show_bug.cgi?id=515668
> [6] https://github.com/srcdeps/srcdeps-maven
> [7] http://ppalaga.github.io/presentations/181011-jcon-duesseldorf
> [8] https://github.com/ppalaga/camel-quarkus#fast-build-times
>
> Thanks,
>
> Peter
> --
> Peter Palaga, Red Hat Fuse
>
> On 04/06/2019 12:44, Andrea Cosentino wrote:
> > +1 for working with the Quarkus community.
> >
> > I don't think this would be an incubator project btw, it should be a
> > subproject if it will go in a separate repo or it will be placed in the
> > main repo as a platform.
> >
> > We can discuss this later by the way.
> >
> >
> >
> > Il giorno mar 4 giu 2019 alle ore 12:34 Willem Jiang <
> willem.ji...@gmail.com>
> > ha scritto:
> >
> >> +1 for working with Quarkus to make the Camel Application more light and
> >> fast.
> >>
> >> For the code donation part, we need to go through the IP clearance
> >> process[1].
> >> Please let me know if you have any questions about this.
> >>
> >> [1]https://incubator.apache.org/ip-clearance/
> >>
> >> Willem Jiang
> >>
> >> Twitter: willemjiang
> >> Weibo: 姜宁willem
> >>
> >> On Tue, Jun 4, 2019 at 5:45 PM Luca Burgazzoli <lburgazz...@gmail.com>
> >> wrote:
> >>>
> >>> Hi,
> >>>
> >>> In the past months some folks at Red Hat have been working on the
> >>> integration between Apache Camel and Quarkus. For those not familiar
> >>> with the topic, Quarkus is a new Apache 2 licensed Cloud Native Java
> >>> framework tailored for GraalVM and HotSpot that bring fast startup
> >>> and low memory footprint to Java based application by leverage clever
> >>> build time optimizations and AOT compilation through Substrate VM [1].
> >>>
> >>> The result of the experimentation is available in the Quarkus
> >>> repository [2][3] and I’m also working on an experimental branch
> >>> on Camel K [4] to bring Quarkus on the K side based on my latest
> >>> blog “Adventures in GraalVM: polyglot Camel (k) native routes
> >>> with Quarkus”  [5]
> >>>
> >>> I do believe that both communities can benefit from a collaboration:
> >>>
> >>> Apache Camel can benefit from Quarkus to become
> >>> a) Even more suitable for microservices
> >>> b) Suitable for serverless workloads as Quarkus among others enables
> >>>     built-time warmup of the Camel Context, and elimination of
> dead-code
> >>>     (code that was only used during warmup) which is a key enabler for
> >>>     very fast start-up and low memory footprint Apache Camel can be on
> >>>     the innovative forefront with a cloud native Java stack for running
> >>>     modern serverless workloads on Kubernetes/Knative with Camel K and
> >>>     Camel Quarkus
> >>>
> >>> So I’m proposing to officially support Quarkus in Apache Camel’s main
> >>> repository (or a dedicated one if it suits better) by creating a new
> >>> platform along with those we support as today (Spring Boot, Karaf).
> >>>
> >>> Quarkus’ people is keen to donate the code related to Apache Camel
> >>> hosted in theirs repository to the Apache Software foundation.
> >>>
> >>> There has been some other users in the community whom have tried
> >>> Quarkus and Camel together and written blogs [6] about their
> experience,
> >>> and Claus also posted a quick gif animation of native compiled Camel
> >>> with Quarkus starting up in 7 milliseconds and taking up only 15mb
> >>> of memory [7].
> >>>
> >>> Thoughts ?
> >>>
> >>> Luca
> >>>
> >>> [1] https://quarkus.io/
> >>> [2] https://github.com/quarkusio/quarkus/tree/master/extensions/camel
> >>> [3]
> >> https://github.com/quarkusio/quarkus-quickstarts/tree/master/camel-java
> >>> [4]
> >>>
> >>
> https://github.com/lburgazzoli/apache-camel-k-runtime/tree/quarkus-runtime
> >>> [5] https://bit.ly/2HvOrh0
> >>> [6] https://bit.ly/2WDtCbW
> >>> [7]
> >>>
> >>
> https://www.linkedin.com/feed/update/urn:li:activity:6521869236153970688/
> >>>
> >>> ---
> >>> Luca Burgazzoli
> >>
> >
>
>

Reply via email to