Hi, Claus.  I have done what I hope was a fairly full tracing through the
code of camel-core, and I can now say that I appreciate your concern about
adding things to core!  I also took a closer look at the Saga and Kamelet
components, and that helped to correct a misconception that I had --
components are not solely for implementing things like transport
implementations into Camel, and that it is (arguably) a more suitable
mechanism for adding anything that does not have a strict and solid reason
for existing in core.  So I will implement this EIP as a component, and not
inside of core.  I created a markdown file with my notes when I traced
through core.  If you, or anyone else, might be interested, I can attach it
to a reply here.

Thanks,
Steve

On Wed, Nov 24, 2021 at 10:20 AM Claus Ibsen <claus.ib...@gmail.com> wrote:

> Hi
>
> Adding EIPs or changes to the DSL is not a Camel end user task, and is
> not documented thoroughly.
> Adding new EIPs happens more rarely and there is maybe a little
> hesitation to add because when its in the DSL it stays for a long
> time.
> Also the DSL can become bloated - there are some mistakes from Camel
> v1 and v2 that we have today.
>
> That said to add a new EIP there are 2 ways
>
> - The EIP is implemented fully in the core, so all its code are in core.
> - The EIP is implemeted in a component and are located in camel-xxx in
> the components folder. Examples are circuit breakers, saga, kamelet
> and maybe others I forgot.
>
> So first you need to find out if its the former or the latter. However
> for both cases, the the DSL model are in the core and there is a fair
> bit of code to write to add a new model.
> Therefore its a good idea to find a simple EIP and see where its used
> in the code - can be ConvertBodyDefinition (are in core). Or if its
> outside then maybe KameletDefinition which is the latest EIP added.
>
> The reifer is the "guy" that sits between the model (DSL) and the
> processor (implementation), so all 3 are separated in their own JARs.
>
> And on top of that then there is also the new YAML DSL, so adding a
> new EIP can require some coding there too, but that can be done
> afterwards.
> At first is to get the regular Java and XML DSLs to work. The XML DSL
> is source generated with a maven plugin, and it can "have weird
> problems" if the DSL model is wrong.
> So if you have a very complex EIP then it can be tricky sometimes.
>
>
>
> On Mon, Nov 22, 2021 at 10:16 PM Steve973 <steve...@gmail.com> wrote:
> >
> > Hi, all.  I am working on a new version of the Dynamic Router processor
> > that implements the pattern spec much more closely, and I have the
> initial
> > implementation complete, but I want to test it (among other ways) by
> using
> > it in the DSL.  I haven't seen any documentation on how to do this, or
> any
> > tutorials.  Have I missed something?  Could anyone give some kind of
> > overview?  I could probably use a different processor and trace up
> through
> > the classes to see what all is involved, but I don't want to miss
> anything,
> > and this would be great documentation to have.  If it would be helpful
> for
> > other contributors, I would not mind putting it together for inclusion in
> > the overall documentation.
> >
> > Thanks,
> > Steve
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>

Reply via email to