Hi Btw a follow up question.
Would we be able to get to a point where all the model classes (xxxDefinition and helpers etc) can be dropped at runtime, eg for camel-quarkus optimization? And also the refiers as they are the builder from model -> processor. Well what you experiment with is surely a great step in that direction too. On Wed, Jul 24, 2019 at 4:45 PM Guillaume Nodet <gno...@apache.org> wrote: > > Hey everyone ! > > The last weeks, I've spend quite some time working on a camel metamodel. > The idea is to invert the way things are built in camel so instead of > generating the metamodel from the classes, the metamodel would be > maintained manually and used to generate a bunch of things. > > This would bring the following benefits: > - the metamodel would necessarily be up to date > - generate the model classes (XyzDefinition classes) with an homogeneous > fluent api (similar to the new endpoint DSL) > - get rid of some round tripping between java -> json -> java, copying > json files everywhere , so great simplification of the build process > - the DSL allows type-safe + property placeholders / references everywhere > - generate xml readers / parsers without relying on JAXB > - brings extensibility of the DSL as it would be much easier to create > DSLs based on other languages from the metamodel (yaml for example) > > I've pushed a branch that shows my experiments. It's not fully working > yet, but it gives a good idea. It's available at > https://github.com/gnodet/camel/tree/model > I'm progressing a bit slowly as there are lots of step by step adjustements > to do in order to keep compatibility of the DSL. > > Currently the model is generated from the json files, but the idea is to > reverse this process and have the metamodel the real primary input for all > generation. > The model currently looks like: > https://gist.github.com/gnodet/75457febcca9a893c3c1a2b8499189b2 > > The current JAXB model will need to be moved into a separate module so that > it can be kept for compatibility without interfering with the new generated > java DSL. > > So, still quite some work left, but I wanted to bring it to the community > sooner rather than later, especially before I go on PTO for a few weeks > where I'll be mostly offline. > Happy to discuss anything or provide more infos. > > Cheers, > Guillaume Nodet -- Claus Ibsen ----------------- http://davsclaus.com @davsclaus Camel in Action 2: https://www.manning.com/ibsen2