Hi

Dont you have a "problem" with the flow style that you can't "end" the
split and do something after it

For example having a split in the middle, where a and b are outside
the splitter then you can do in Java as

from x
    to a
    split
        to sub 1
        to sub 2
    end
    to b

And this is a bit "tricky" for new users to Camel DSL to learn.

So I think maybe it's okay to not have the flow and keep the yaml dsl
as-is (although it can be verbose with those nested steps)



On Wed, Feb 24, 2021 at 9:16 AM Luca Burgazzoli <lburgazz...@gmail.com> wrote:
>
> Additional question: should we support "flow" like route definition ?
> To give an example of what a "flow" is, here a simple route that split and
> process each item individually:
>
> - from:
>     uri: "direct:route"
>     steps:
>       - split:
>           tokenize: ","
>           steps:
>             - to: "mock:split"
>
> A "flow" variant would be:
>
> - from:
>     uri: "direct:route"
>     steps:
>       - split:
>           tokenize: ","
>       - to: "mock:split"
>
> So in essence, if steps are not explicit configured on an OutputNode (in
> this case "split"), then such processor is the one to which each subsequent
> steps is attached. This helps to mimics the Java DSL but at the same time,
> it may be confusing so the new YAML DSL does not support this pattern out
> of the box: should I enable it ?
>
> ---
> Luca Burgazzoli
>
>
> On Wed, Feb 24, 2021 at 7:09 AM Claus Ibsen <claus.ib...@gmail.com> wrote:
>
> > Hi Luca
> >
> >
> > On Tue, Feb 23, 2021 at 8:16 PM Luca Burgazzoli <lburgazz...@gmail.com>
> > wrote:
> > >
> > > Hi,
> > >
> > > over the past weeks I've worked to clean up the YAML DSL I've created for
> > > camel-k [1] which ended up in a complete rewrite [2].
> > >
> > > The new implementation is in large part auto generated out of the camel
> > > model (with some minor manual adjustments), it does not use reflection,
> > it is
> > > based on the SnakeYAML Engine [3] and it includes a much simpler
> > generator
> > > for the JSON schema as all the information are attached to the generated
> > > code.
> > >
> > > The engine behind the DSL is pretty much stable and there are some tasks
> > > I'd still have to do but as they are pretty much internal and may require
> > > some change to the Camel model, I'd like to merge my work on Camel as
> > soon
> > > as possible hence, I have some question about the process:
> > >
> >
> > Yeah its great work and we should get it into Camel 3.9.
> > This new DSL will also help us in the future to keep the DSL model
> > more stable and useable for more languages.
> >
> >
> > > - the engine leverages some new APIs from Java 11 (var is pretty useful
> > for
> > > code generation), I don't remember what was our plan to move Camel to
> > Java
> > > 11 so wonder if I need to migrate the code to Java 8 or if we'll move to
> > > Java 11 soon
> >
> > Yes var is much greater for code generation. I hit roadblocks with the
> > cimple code generator
> > where using var would benefit greatly. And therefore the current
> > implementation lacks some
> > features that are in the regular simple language.
> >
> > About Java 11 then we have some components today that requires Java 11
> > at runtime, like camel-joor.
> > I am fine with the yaml dsl being Java 11 only. In the maven pom.xml
> > we can make some way to skip this module if you use Java 8 compiler.
> > And for releasing we can use Java 11 compiler with target 1.8 for all
> > other modules, and then 1.11 for this module.
> >
> > > - the code generation is based on JavaPoet [4] and I have plans to
> > migrate
> > > to the camel own tool but since it does not affect the correctness of the
> > > code, I think I could delay the migration to a later stage.
> >
> > Yeah that is okay as the code generator is a one process and part of
> > building. the Camel project,
> > and not for end users to run.
> >
> > > - I could make the YAML DSL part of a new camel-snakeyaml component but
> > for
> > > modularity, I wonder if we should introduce specific artifacts like
> > > camel-dsl-yaml, camel-dsl-xml-io, etc.
> > >
> >
> > Yes I would like to have this in its own module name.
> > We use camel-endpointdsl and camel-componentdsl today, so it could
> > also be named camel-yaml-dsl
> >
> >
> >
> > > Let me know,
> > > Luca
> > >
> > > [1]
> > >
> > https://github.com/apache/camel-k-runtime/tree/master/camel-k-loader-yaml
> > > [2] https://github.com/lburgazzoli/camel-yaml-dsl
> > > [3] https://bitbucket.org/asomov/snakeyaml-engine/
> > > [4] https://github.com/square/javapoet
> > >
> > >
> > > ---
> > > Luca Burgazzoli
> >
> >
> >
> > --
> > 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

Reply via email to