You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by Claus Ibsen <cl...@gmail.com> on 2020/10/24 17:26:33 UTC
[HEADS UP] - Modularizing camel-core into model and reifier
Hi
I got started this weekend on more modularization of core, where we
can move out model and reifier from the engine, so they are separated.
https://issues.apache.org/jira/browse/CAMEL-15740
I wanted to do this over the weekend where the activity on the master
branch is lower than week days.
I have the work done for the core repo, but would possibly need small
tweaks in camel-karaf (for its blueprint xsd generator) and maybe also
in spring-boot.
With this moduralization we are getting closer to, and would make it
easier in the future to be able to do more build time optimizations
and class unloading / dead code elimination.
My hope is we get to a point where we can offer a full build time
optimization that takes the DSL and via the model and reifiers build
the runtime processors (routes) and then at *real* runtime we can drop
all the model and reifier all together.
Having them separated and in their own module / JAR makes this work easier.
There is still some work as CamelContext has a ModelCamelContext /
Model that we somehow need to find a way to drop in an extreme
optimization.
--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2
Re: [HEADS UP] - Modularizing camel-core into model and reifier
Posted by Claus Ibsen <cl...@gmail.com>.
On Sat, Oct 24, 2020 at 10:35 PM Guillaume Nodet <gn...@apache.org> wrote:
>
> Nice work. I hope we'll be able to leverage that nicely.
> I stopped working on that because I initially focused on splitting the
> model from the runtime + builders, but it's quite difficult to split the
> model from the builders and the builders from the runtime.
>
Yeah the builders and the models are tightly connected. And you can
also argue that builders are part of the model as they help build the
model (from Java DSL).
But your idea of source code generate the Java DSL and other language
DSL is still a great idea. So if we can find a way to make the model
separated from the builder then we are getting closer. Or have a
generic base model, and then extend this for the current model that
are tied to the current builders to keep it compatible with the Java
DSL as we have today.
But if we can get a clean model we can more better be able to
experiment with source code generate a new Java DSL and for other
languages. Its when we can do this we can easier support this - as in
the past it was hand maintained and they got out of sync.
> Guillaume
>
> Le sam. 24 oct. 2020 à 19:26, Claus Ibsen <cl...@gmail.com> a écrit :
>
> > Hi
> >
> > I got started this weekend on more modularization of core, where we
> > can move out model and reifier from the engine, so they are separated.
> > https://issues.apache.org/jira/browse/CAMEL-15740
> >
> > I wanted to do this over the weekend where the activity on the master
> > branch is lower than week days.
> >
> > I have the work done for the core repo, but would possibly need small
> > tweaks in camel-karaf (for its blueprint xsd generator) and maybe also
> > in spring-boot.
> >
> > With this moduralization we are getting closer to, and would make it
> > easier in the future to be able to do more build time optimizations
> > and class unloading / dead code elimination.
> >
> > My hope is we get to a point where we can offer a full build time
> > optimization that takes the DSL and via the model and reifiers build
> > the runtime processors (routes) and then at *real* runtime we can drop
> > all the model and reifier all together.
> >
> > Having them separated and in their own module / JAR makes this work easier.
> >
> > There is still some work as CamelContext has a ModelCamelContext /
> > Model that we somehow need to find a way to drop in an extreme
> > optimization.
> >
> >
> >
> > --
> > Claus Ibsen
> > -----------------
> > http://davsclaus.com @davsclaus
> > Camel in Action 2: https://www.manning.com/ibsen2
> >
>
>
> --
> ------------------------
> Guillaume Nodet
--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2
Re: [HEADS UP] - Modularizing camel-core into model and reifier
Posted by Guillaume Nodet <gn...@apache.org>.
Nice work. I hope we'll be able to leverage that nicely.
I stopped working on that because I initially focused on splitting the
model from the runtime + builders, but it's quite difficult to split the
model from the builders and the builders from the runtime.
Guillaume
Le sam. 24 oct. 2020 à 19:26, Claus Ibsen <cl...@gmail.com> a écrit :
> Hi
>
> I got started this weekend on more modularization of core, where we
> can move out model and reifier from the engine, so they are separated.
> https://issues.apache.org/jira/browse/CAMEL-15740
>
> I wanted to do this over the weekend where the activity on the master
> branch is lower than week days.
>
> I have the work done for the core repo, but would possibly need small
> tweaks in camel-karaf (for its blueprint xsd generator) and maybe also
> in spring-boot.
>
> With this moduralization we are getting closer to, and would make it
> easier in the future to be able to do more build time optimizations
> and class unloading / dead code elimination.
>
> My hope is we get to a point where we can offer a full build time
> optimization that takes the DSL and via the model and reifiers build
> the runtime processors (routes) and then at *real* runtime we can drop
> all the model and reifier all together.
>
> Having them separated and in their own module / JAR makes this work easier.
>
> There is still some work as CamelContext has a ModelCamelContext /
> Model that we somehow need to find a way to drop in an extreme
> optimization.
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>
--
------------------------
Guillaume Nodet
Re: [HEADS UP] - Modularizing camel-core into model and reifier
Posted by Claus Ibsen <cl...@gmail.com>.
Hi
Okay done with some more work.
So we now have started to splitup into base vs engine.
Where the intention is that whats in -engine is related to the full
routing engine, with routes, DSL, model, and everything.
And then the base is minimalistic. However the classes in base-engine
(camel.impl.engine) has not been analyzed whether that can be in base
vs base-engine.
But they are internal, so they should be able to be moved in the future also.
On Sun, Oct 25, 2020 at 4:16 PM Claus Ibsen <cl...@gmail.com> wrote:
>
> Hi
>
> Some more work on the way. Now the camel-core-model,
> camel-core-reifier are separated from camel-base and are independent.
> After that its camel-core-processor to see if we can get it
> independent from camel-base. There are some base processors that may
> belong in camel-base.
> And then leave camel-core-processor for the EIP implementations. But
> need to find a balance.
>
> Having that last thing we are much closer on having the model and
> routing engine (RouteBuilder) / XML DSL et all as optional. So Camel
> can be very light for some use-cases where you dont need routing or
> the DSL.
>
> On Sun, Oct 25, 2020 at 12:32 PM Claus Ibsen <cl...@gmail.com> wrote:
> >
> > Hi
> >
> > I got further and now the processors are moved into camel-core-processor.
> >
> > Which means we have model, reifier and processors splitted up.
> > There is a little bit to do in the other modules to not depend on
> > camel-base but they can use camel-core-processor instead.
> >
> > Also the processors can be split up into eip (or model) processors and
> > base processors. Then we are closer to also offer a simple camel
> > context
> > that has no route builder, no model, routing engine etc. But for a
> > tiny runtime usecases where its okay to just use camel as a producer
> > or consumer template without routing.
> >
> >
> > On Sat, Oct 24, 2020 at 7:26 PM Claus Ibsen <cl...@gmail.com> wrote:
> > >
> > > Hi
> > >
> > > I got started this weekend on more modularization of core, where we
> > > can move out model and reifier from the engine, so they are separated.
> > > https://issues.apache.org/jira/browse/CAMEL-15740
> > >
> > > I wanted to do this over the weekend where the activity on the master
> > > branch is lower than week days.
> > >
> > > I have the work done for the core repo, but would possibly need small
> > > tweaks in camel-karaf (for its blueprint xsd generator) and maybe also
> > > in spring-boot.
> > >
> > > With this moduralization we are getting closer to, and would make it
> > > easier in the future to be able to do more build time optimizations
> > > and class unloading / dead code elimination.
> > >
> > > My hope is we get to a point where we can offer a full build time
> > > optimization that takes the DSL and via the model and reifiers build
> > > the runtime processors (routes) and then at *real* runtime we can drop
> > > all the model and reifier all together.
> > >
> > > Having them separated and in their own module / JAR makes this work easier.
> > >
> > > There is still some work as CamelContext has a ModelCamelContext /
> > > Model that we somehow need to find a way to drop in an extreme
> > > optimization.
> > >
> > >
> > >
> > > --
> > > Claus Ibsen
> > > -----------------
> > > http://davsclaus.com @davsclaus
> > > Camel in Action 2: https://www.manning.com/ibsen2
> >
> >
> >
> > --
> > Claus Ibsen
> > -----------------
> > http://davsclaus.com @davsclaus
> > Camel in Action 2: https://www.manning.com/ibsen2
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2
Re: [HEADS UP] - Modularizing camel-core into model and reifier
Posted by Claus Ibsen <cl...@gmail.com>.
Hi
Some more work on the way. Now the camel-core-model,
camel-core-reifier are separated from camel-base and are independent.
After that its camel-core-processor to see if we can get it
independent from camel-base. There are some base processors that may
belong in camel-base.
And then leave camel-core-processor for the EIP implementations. But
need to find a balance.
Having that last thing we are much closer on having the model and
routing engine (RouteBuilder) / XML DSL et all as optional. So Camel
can be very light for some use-cases where you dont need routing or
the DSL.
On Sun, Oct 25, 2020 at 12:32 PM Claus Ibsen <cl...@gmail.com> wrote:
>
> Hi
>
> I got further and now the processors are moved into camel-core-processor.
>
> Which means we have model, reifier and processors splitted up.
> There is a little bit to do in the other modules to not depend on
> camel-base but they can use camel-core-processor instead.
>
> Also the processors can be split up into eip (or model) processors and
> base processors. Then we are closer to also offer a simple camel
> context
> that has no route builder, no model, routing engine etc. But for a
> tiny runtime usecases where its okay to just use camel as a producer
> or consumer template without routing.
>
>
> On Sat, Oct 24, 2020 at 7:26 PM Claus Ibsen <cl...@gmail.com> wrote:
> >
> > Hi
> >
> > I got started this weekend on more modularization of core, where we
> > can move out model and reifier from the engine, so they are separated.
> > https://issues.apache.org/jira/browse/CAMEL-15740
> >
> > I wanted to do this over the weekend where the activity on the master
> > branch is lower than week days.
> >
> > I have the work done for the core repo, but would possibly need small
> > tweaks in camel-karaf (for its blueprint xsd generator) and maybe also
> > in spring-boot.
> >
> > With this moduralization we are getting closer to, and would make it
> > easier in the future to be able to do more build time optimizations
> > and class unloading / dead code elimination.
> >
> > My hope is we get to a point where we can offer a full build time
> > optimization that takes the DSL and via the model and reifiers build
> > the runtime processors (routes) and then at *real* runtime we can drop
> > all the model and reifier all together.
> >
> > Having them separated and in their own module / JAR makes this work easier.
> >
> > There is still some work as CamelContext has a ModelCamelContext /
> > Model that we somehow need to find a way to drop in an extreme
> > optimization.
> >
> >
> >
> > --
> > Claus Ibsen
> > -----------------
> > http://davsclaus.com @davsclaus
> > Camel in Action 2: https://www.manning.com/ibsen2
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2
Re: [HEADS UP] - Modularizing camel-core into model and reifier
Posted by Claus Ibsen <cl...@gmail.com>.
Hi
I got further and now the processors are moved into camel-core-processor.
Which means we have model, reifier and processors splitted up.
There is a little bit to do in the other modules to not depend on
camel-base but they can use camel-core-processor instead.
Also the processors can be split up into eip (or model) processors and
base processors. Then we are closer to also offer a simple camel
context
that has no route builder, no model, routing engine etc. But for a
tiny runtime usecases where its okay to just use camel as a producer
or consumer template without routing.
On Sat, Oct 24, 2020 at 7:26 PM Claus Ibsen <cl...@gmail.com> wrote:
>
> Hi
>
> I got started this weekend on more modularization of core, where we
> can move out model and reifier from the engine, so they are separated.
> https://issues.apache.org/jira/browse/CAMEL-15740
>
> I wanted to do this over the weekend where the activity on the master
> branch is lower than week days.
>
> I have the work done for the core repo, but would possibly need small
> tweaks in camel-karaf (for its blueprint xsd generator) and maybe also
> in spring-boot.
>
> With this moduralization we are getting closer to, and would make it
> easier in the future to be able to do more build time optimizations
> and class unloading / dead code elimination.
>
> My hope is we get to a point where we can offer a full build time
> optimization that takes the DSL and via the model and reifiers build
> the runtime processors (routes) and then at *real* runtime we can drop
> all the model and reifier all together.
>
> Having them separated and in their own module / JAR makes this work easier.
>
> There is still some work as CamelContext has a ModelCamelContext /
> Model that we somehow need to find a way to drop in an extreme
> optimization.
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2
Re: [HEADS UP] - Modularizing camel-core into model and reifier
Posted by Claus Ibsen <cl...@gmail.com>.
Hi
I just pushed the changes to the core, karaf and spring boot git repos.
On Sat, Oct 24, 2020 at 7:26 PM Claus Ibsen <cl...@gmail.com> wrote:
>
> Hi
>
> I got started this weekend on more modularization of core, where we
> can move out model and reifier from the engine, so they are separated.
> https://issues.apache.org/jira/browse/CAMEL-15740
>
> I wanted to do this over the weekend where the activity on the master
> branch is lower than week days.
>
> I have the work done for the core repo, but would possibly need small
> tweaks in camel-karaf (for its blueprint xsd generator) and maybe also
> in spring-boot.
>
> With this moduralization we are getting closer to, and would make it
> easier in the future to be able to do more build time optimizations
> and class unloading / dead code elimination.
>
> My hope is we get to a point where we can offer a full build time
> optimization that takes the DSL and via the model and reifiers build
> the runtime processors (routes) and then at *real* runtime we can drop
> all the model and reifier all together.
>
> Having them separated and in their own module / JAR makes this work easier.
>
> There is still some work as CamelContext has a ModelCamelContext /
> Model that we somehow need to find a way to drop in an extreme
> optimization.
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2