You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2019/11/28 06:47:01 UTC

[camel-k-runtime] branch master updated (4a9ebf3 -> ae55cbf)

This is an automated email from the ASF dual-hosted git repository.

lburgazzoli pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k-runtime.git.


    from 4a9ebf3  YAML: add support for WireTap EIP
     new 1d8d6b7  YAML: add annotation to auto geenrate support classes and quarkus reflective class discovery
     new ae55cbf  chore: suppress uncheckd cast warning

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../{ => camel-k-loader-yaml-common}/pom.xml       |  89 +--------
 .../org/apache/camel/k/loader/yaml/model/Node.java |   0
 .../org/apache/camel/k/loader/yaml/model/Step.java |   4 -
 .../k/loader/yaml/parser/AggregateStepParser.java  |  11 +-
 .../camel/k/loader/yaml/parser/BeanStepParser.java |   0
 .../k/loader/yaml/parser/ChoiceStepParser.java     |   4 +-
 .../k/loader/yaml/parser/ClaimCheckStepParser.java |   0
 .../loader/yaml/parser/ConvertBodyStepParser.java  |   0
 .../k/loader/yaml/parser/DelayStepParser.java      |   5 +-
 .../yaml/parser/DynamicRouterStepParser.java       |  10 +-
 .../k/loader/yaml/parser/EnrichStepParser.java     |  10 +-
 .../k/loader/yaml/parser/FilterStepParser.java     |   9 +-
 .../camel/k/loader/yaml/parser/FromStepParser.java |   4 +-
 .../camel/k/loader/yaml/parser/LogStepParser.java  |   0
 .../camel/k/loader/yaml/parser/LoopStepParser.java |   9 +-
 .../k/loader/yaml/parser/MarshalStepParser.java    |  10 +-
 .../k/loader/yaml/parser/MulticastStepParser.java  |   9 +-
 .../k/loader/yaml/parser/PipelineStepParser.java   |   4 +-
 .../k/loader/yaml/parser/PollEnrichStepParser.java |  10 +-
 .../k/loader/yaml/parser/ProcessStepParser.java    |   0
 .../k/loader/yaml/parser/ProcessorStepParser.java  |   0
 .../yaml/parser/RecipientListStepParser.java       |  10 +-
 .../loader/yaml/parser/RemoveHeaderStepParser.java |  10 +-
 .../yaml/parser/RemoveHeadersStepParser.java       |   0
 .../yaml/parser/RemovePropertiesStepParser.java    |   0
 .../yaml/parser/RemovePropertyStepParser.java      |  10 +-
 .../k/loader/yaml/parser/ResequenceStepParser.java |   9 +-
 .../camel/k/loader/yaml/parser/RestStepParser.java |   4 +-
 .../k/loader/yaml/parser/RouteStepParser.java      |   6 +-
 .../loader/yaml/parser/RoutingSlipStepParser.java  |  10 +-
 .../k/loader/yaml/parser/SampleStepParser.java     |   9 +-
 .../k/loader/yaml/parser/SetBodyStepParser.java    |  10 +-
 .../k/loader/yaml/parser/SetHeaderStepParser.java  |  10 +-
 .../loader/yaml/parser/SetPropertyStepParser.java  |  10 +-
 .../camel/k/loader/yaml/parser/SortStepParser.java |  10 +-
 .../k/loader/yaml/parser/SplitStepParser.java      |   9 +-
 .../k/loader/yaml/parser/StartStepParser.java      |   0
 .../camel/k/loader/yaml/parser/StepParser.java     |   0
 .../k/loader/yaml/parser/StepParserException.java  |   0
 .../k/loader/yaml/parser/StepParserSupport.java    |   0
 .../camel/k/loader/yaml/parser/StopStepParser.java |   0
 .../k/loader/yaml/parser/ThreadsStepParser.java    |   0
 .../k/loader/yaml/parser/ThrottleStepParser.java   |  10 +-
 .../k/loader/yaml/parser/ToDynamicStepParser.java  |  16 +-
 .../camel/k/loader/yaml/parser/ToStepParser.java   |   5 +-
 .../k/loader/yaml/parser/TransformStepParser.java  |  10 +-
 .../k/loader/yaml/parser/UnmarshalStepParser.java  |  10 +-
 .../k/loader/yaml/parser/ValidateStepParser.java   |  10 +-
 .../k/loader/yaml/parser/WireTapStepParser.java    |  15 +-
 .../{ => camel-k-loader-yaml}/pom.xml              |  13 +-
 .../camel/k/loader/yaml/YamlSourceLoader.java      |  28 ++-
 .../camel/k/loader/yaml/DefinitionsTest.groovy     |   0
 .../apache/camel/k/loader/yaml/RoutesTest.groovy   |  14 +-
 .../apache/camel/k/loader/yaml/TestSupport.groovy  |   0
 .../k/loader/yaml/parser/AggregateTest.groovy      |   0
 .../camel/k/loader/yaml/parser/BeanTest.groovy     |   0
 .../camel/k/loader/yaml/parser/ChoiceTest.groovy   |   0
 .../k/loader/yaml/parser/ClaimCheckTest.groovy     |   0
 .../k/loader/yaml/parser/ConvertBodyTest.groovy    |   0
 .../camel/k/loader/yaml/parser/DelayTest.groovy    |   0
 .../k/loader/yaml/parser/DynamicRouterTest.groovy  |   0
 .../camel/k/loader/yaml/parser/EnrichTest.groovy   |   0
 .../camel/k/loader/yaml/parser/FilterTest.groovy   |   0
 .../camel/k/loader/yaml/parser/FromTest.groovy     |   0
 .../camel/k/loader/yaml/parser/LogTest.groovy      |   0
 .../camel/k/loader/yaml/parser/LoopTest.groovy     |   0
 .../camel/k/loader/yaml/parser/MarshalTest.groovy  |   0
 .../k/loader/yaml/parser/MulticastTest.groovy      |   0
 .../camel/k/loader/yaml/parser/PipelineTest.groovy |   2 +-
 .../k/loader/yaml/parser/PollEnrichTest.groovy     |   0
 .../camel/k/loader/yaml/parser/ProcessTest.groovy  |   0
 .../k/loader/yaml/parser/RecipientListTest.groovy  |   0
 .../k/loader/yaml/parser/RemoveHeaderTest.groovy   |   0
 .../k/loader/yaml/parser/RemoveHeadersTest.groovy  |   0
 .../loader/yaml/parser/RemovePropertiesTest.groovy |   0
 .../k/loader/yaml/parser/RemovePropertyTest.groovy |   0
 .../k/loader/yaml/parser/ResequenceTest.groovy     |   0
 .../camel/k/loader/yaml/parser/RestTest.groovy     |   0
 .../k/loader/yaml/parser/RoutingSlipTest.groovy    |   0
 .../camel/k/loader/yaml/parser/SampleTest.groovy   |   0
 .../camel/k/loader/yaml/parser/SetBodyTest.groovy  |   0
 .../k/loader/yaml/parser/SetHeaderTest.groovy      |   0
 .../k/loader/yaml/parser/SetPropertyTest.groovy    |   0
 .../camel/k/loader/yaml/parser/SortTest.groovy     |   0
 .../camel/k/loader/yaml/parser/SplitTest.groovy    |   0
 .../camel/k/loader/yaml/parser/ThreadsTest.groovy  |   0
 .../camel/k/loader/yaml/parser/ThrottleTest.groovy |   0
 .../k/loader/yaml/parser/ToDynamicTest.groovy      |   4 +-
 .../camel/k/loader/yaml/parser/ToTest.groovy       |   0
 .../k/loader/yaml/parser/UnmarshalTest.groovy      |   0
 .../camel/k/loader/yaml/parser/ValidateTest.groovy |   0
 .../camel/k/loader/yaml/parser/WireTapTest.groovy  |   0
 .../src/test/resources/log4j2-test.xml             |   0
 .../resources/routes/RoutesTest_aggregator.yaml    |   0
 .../test/resources/routes/RoutesTest_filter.yaml   |   0
 .../test/resources/routes/RoutesTest_split.yaml    |   0
 camel-k-loader-yaml/pom.xml                        | 208 +--------------------
 .../yaml/support/ProcessorDefinitionMixIn.java     |  43 -----
 .../quarkus/deployment/DeploymentProcessor.java    |  51 ++++-
 camel-k-runtime-bom/pom.xml                        |  10 +
 pom.xml                                            |   5 +
 tooling/camel-k-annotations/pom.xml                |   8 +
 ...YAMLStepParser.java => YAMLNodeDefinition.java} |   8 +-
 .../camel/k/annotation/yaml/YAMLStepParser.java    |   2 +-
 .../maven/GenerateYamlLoaderSupportClasses.java    | 127 +++++++++++++
 ....java => GenerateYamlParserSupportClasses.java} | 139 +-------------
 .../camel/k/tooling/maven/GenerateYamlSupport.java | 138 ++++++++++++++
 .../processors/GenerateYamlSupportClassesTest.java |   9 +-
 108 files changed, 500 insertions(+), 690 deletions(-)
 copy camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/pom.xml (65%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/model/Node.java (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/model/Step.java (97%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/AggregateStepParser.java (90%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/BeanStepParser.java (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/ChoiceStepParser.java (95%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/ClaimCheckStepParser.java (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/ConvertBodyStepParser.java (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/DelayStepParser.java (91%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/DynamicRouterStepParser.java (84%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/EnrichStepParser.java (88%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/FilterStepParser.java (89%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/FromStepParser.java (94%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/LogStepParser.java (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/LoopStepParser.java (89%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/MarshalStepParser.java (84%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/MulticastStepParser.java (89%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/PipelineStepParser.java (92%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/PollEnrichStepParser.java (87%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/ProcessStepParser.java (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/ProcessorStepParser.java (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/RecipientListStepParser.java (84%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/RemoveHeaderStepParser.java (87%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/RemoveHeadersStepParser.java (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/RemovePropertiesStepParser.java (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/RemovePropertyStepParser.java (87%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/ResequenceStepParser.java (92%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/RestStepParser.java (96%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/RouteStepParser.java (95%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/RoutingSlipStepParser.java (85%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/SampleStepParser.java (89%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/SetBodyStepParser.java (84%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/SetHeaderStepParser.java (84%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/SetPropertyStepParser.java (84%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/SortStepParser.java (84%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/SplitStepParser.java (89%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/StartStepParser.java (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/StepParser.java (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/StepParserException.java (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/StepParserSupport.java (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/StopStepParser.java (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/ThreadsStepParser.java (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/ThrottleStepParser.java (84%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/ToDynamicStepParser.java (86%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/ToStepParser.java (93%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/TransformStepParser.java (84%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/UnmarshalStepParser.java (84%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/ValidateStepParser.java (84%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml-common}/src/main/java/org/apache/camel/k/loader/yaml/parser/WireTapStepParser.java (93%)
 copy camel-k-loader-yaml/{ => camel-k-loader-yaml}/pom.xml (95%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/main/java/org/apache/camel/k/loader/yaml/YamlSourceLoader.java (83%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/DefinitionsTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/RoutesTest.groovy (83%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/TestSupport.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/AggregateTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/BeanTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ChoiceTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ClaimCheckTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ConvertBodyTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/DelayTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/DynamicRouterTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/EnrichTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/FilterTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/FromTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/LogTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/LoopTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/MarshalTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/MulticastTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/PipelineTest.groovy (95%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/PollEnrichTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ProcessTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RecipientListTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemoveHeaderTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemoveHeadersTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemovePropertiesTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemovePropertyTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ResequenceTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RestTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RoutingSlipTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SampleTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SetBodyTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SetHeaderTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SetPropertyTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SortTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SplitTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ThreadsTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ThrottleTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ToDynamicTest.groovy (90%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ToTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/UnmarshalTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ValidateTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/groovy/org/apache/camel/k/loader/yaml/parser/WireTapTest.groovy (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/resources/log4j2-test.xml (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/resources/routes/RoutesTest_aggregator.yaml (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/resources/routes/RoutesTest_filter.yaml (100%)
 rename camel-k-loader-yaml/{ => camel-k-loader-yaml}/src/test/resources/routes/RoutesTest_split.yaml (100%)
 delete mode 100644 camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/support/ProcessorDefinitionMixIn.java
 copy tooling/camel-k-annotations/src/main/java/org/apache/camel/k/annotation/yaml/{YAMLStepParser.java => YAMLNodeDefinition.java} (84%)
 create mode 100644 tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateYamlLoaderSupportClasses.java
 rename tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/{GenerateYamlSupportClasses.java => GenerateYamlParserSupportClasses.java} (55%)
 create mode 100644 tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateYamlSupport.java


[camel-k-runtime] 02/02: chore: suppress uncheckd cast warning

Posted by lb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lburgazzoli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k-runtime.git

commit ae55cbfb91871c5a1da0437ae19fd89fec58e358
Author: lburgazzoli <lb...@gmail.com>
AuthorDate: Tue Nov 26 16:31:27 2019 +0100

    chore: suppress uncheckd cast warning
---
 .../java/org/apache/camel/k/loader/yaml/parser/WireTapStepParser.java    | 1 +
 1 file changed, 1 insertion(+)

diff --git a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/WireTapStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/WireTapStepParser.java
index a47fcac..033f7ce 100644
--- a/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/WireTapStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/WireTapStepParser.java
@@ -36,6 +36,7 @@ import org.apache.camel.util.URISupport;
 
 @YAMLStepParser("wiretap")
 public class WireTapStepParser implements ProcessorStepParser {
+    @SuppressWarnings("unchecked")
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         Definition definition = context.node(Definition.class);


[camel-k-runtime] 01/02: YAML: add annotation to auto geenrate support classes and quarkus reflective class discovery

Posted by lb...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lburgazzoli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k-runtime.git

commit 1d8d6b7b612ea3e9a0aa6448fc8b5945c6ade18c
Author: lburgazzoli <lb...@gmail.com>
AuthorDate: Tue Nov 26 16:29:07 2019 +0100

    YAML: add annotation to auto geenrate support classes and quarkus reflective class discovery
---
 .../{ => camel-k-loader-yaml-common}/pom.xml       |  89 +--------
 .../org/apache/camel/k/loader/yaml/model/Node.java |   0
 .../org/apache/camel/k/loader/yaml/model/Step.java |   4 -
 .../k/loader/yaml/parser/AggregateStepParser.java  |  11 +-
 .../camel/k/loader/yaml/parser/BeanStepParser.java |   0
 .../k/loader/yaml/parser/ChoiceStepParser.java     |   4 +-
 .../k/loader/yaml/parser/ClaimCheckStepParser.java |   0
 .../loader/yaml/parser/ConvertBodyStepParser.java  |   0
 .../k/loader/yaml/parser/DelayStepParser.java      |   5 +-
 .../yaml/parser/DynamicRouterStepParser.java       |  10 +-
 .../k/loader/yaml/parser/EnrichStepParser.java     |  10 +-
 .../k/loader/yaml/parser/FilterStepParser.java     |   9 +-
 .../camel/k/loader/yaml/parser/FromStepParser.java |   4 +-
 .../camel/k/loader/yaml/parser/LogStepParser.java  |   0
 .../camel/k/loader/yaml/parser/LoopStepParser.java |   9 +-
 .../k/loader/yaml/parser/MarshalStepParser.java    |  10 +-
 .../k/loader/yaml/parser/MulticastStepParser.java  |   9 +-
 .../k/loader/yaml/parser/PipelineStepParser.java   |   4 +-
 .../k/loader/yaml/parser/PollEnrichStepParser.java |  10 +-
 .../k/loader/yaml/parser/ProcessStepParser.java    |   0
 .../k/loader/yaml/parser/ProcessorStepParser.java  |   0
 .../yaml/parser/RecipientListStepParser.java       |  10 +-
 .../loader/yaml/parser/RemoveHeaderStepParser.java |  10 +-
 .../yaml/parser/RemoveHeadersStepParser.java       |   0
 .../yaml/parser/RemovePropertiesStepParser.java    |   0
 .../yaml/parser/RemovePropertyStepParser.java      |  10 +-
 .../k/loader/yaml/parser/ResequenceStepParser.java |   9 +-
 .../camel/k/loader/yaml/parser/RestStepParser.java |   4 +-
 .../k/loader/yaml/parser/RouteStepParser.java      |   6 +-
 .../loader/yaml/parser/RoutingSlipStepParser.java  |  10 +-
 .../k/loader/yaml/parser/SampleStepParser.java     |   9 +-
 .../k/loader/yaml/parser/SetBodyStepParser.java    |  10 +-
 .../k/loader/yaml/parser/SetHeaderStepParser.java  |  10 +-
 .../loader/yaml/parser/SetPropertyStepParser.java  |  10 +-
 .../camel/k/loader/yaml/parser/SortStepParser.java |  10 +-
 .../k/loader/yaml/parser/SplitStepParser.java      |   9 +-
 .../k/loader/yaml/parser/StartStepParser.java      |   0
 .../camel/k/loader/yaml/parser/StepParser.java     |   0
 .../k/loader/yaml/parser/StepParserException.java  |   0
 .../k/loader/yaml/parser/StepParserSupport.java    |   0
 .../camel/k/loader/yaml/parser/StopStepParser.java |   0
 .../k/loader/yaml/parser/ThreadsStepParser.java    |   0
 .../k/loader/yaml/parser/ThrottleStepParser.java   |  10 +-
 .../k/loader/yaml/parser/ToDynamicStepParser.java  |  16 +-
 .../camel/k/loader/yaml/parser/ToStepParser.java   |   5 +-
 .../k/loader/yaml/parser/TransformStepParser.java  |  10 +-
 .../k/loader/yaml/parser/UnmarshalStepParser.java  |  10 +-
 .../k/loader/yaml/parser/ValidateStepParser.java   |  10 +-
 .../k/loader/yaml/parser/WireTapStepParser.java    |  14 +-
 .../{ => camel-k-loader-yaml}/pom.xml              |  13 +-
 .../camel/k/loader/yaml/YamlSourceLoader.java      |  28 ++-
 .../camel/k/loader/yaml/DefinitionsTest.groovy     |   0
 .../apache/camel/k/loader/yaml/RoutesTest.groovy   |  14 +-
 .../apache/camel/k/loader/yaml/TestSupport.groovy  |   0
 .../k/loader/yaml/parser/AggregateTest.groovy      |   0
 .../camel/k/loader/yaml/parser/BeanTest.groovy     |   0
 .../camel/k/loader/yaml/parser/ChoiceTest.groovy   |   0
 .../k/loader/yaml/parser/ClaimCheckTest.groovy     |   0
 .../k/loader/yaml/parser/ConvertBodyTest.groovy    |   0
 .../camel/k/loader/yaml/parser/DelayTest.groovy    |   0
 .../k/loader/yaml/parser/DynamicRouterTest.groovy  |   0
 .../camel/k/loader/yaml/parser/EnrichTest.groovy   |   0
 .../camel/k/loader/yaml/parser/FilterTest.groovy   |   0
 .../camel/k/loader/yaml/parser/FromTest.groovy     |   0
 .../camel/k/loader/yaml/parser/LogTest.groovy      |   0
 .../camel/k/loader/yaml/parser/LoopTest.groovy     |   0
 .../camel/k/loader/yaml/parser/MarshalTest.groovy  |   0
 .../k/loader/yaml/parser/MulticastTest.groovy      |   0
 .../camel/k/loader/yaml/parser/PipelineTest.groovy |   2 +-
 .../k/loader/yaml/parser/PollEnrichTest.groovy     |   0
 .../camel/k/loader/yaml/parser/ProcessTest.groovy  |   0
 .../k/loader/yaml/parser/RecipientListTest.groovy  |   0
 .../k/loader/yaml/parser/RemoveHeaderTest.groovy   |   0
 .../k/loader/yaml/parser/RemoveHeadersTest.groovy  |   0
 .../loader/yaml/parser/RemovePropertiesTest.groovy |   0
 .../k/loader/yaml/parser/RemovePropertyTest.groovy |   0
 .../k/loader/yaml/parser/ResequenceTest.groovy     |   0
 .../camel/k/loader/yaml/parser/RestTest.groovy     |   0
 .../k/loader/yaml/parser/RoutingSlipTest.groovy    |   0
 .../camel/k/loader/yaml/parser/SampleTest.groovy   |   0
 .../camel/k/loader/yaml/parser/SetBodyTest.groovy  |   0
 .../k/loader/yaml/parser/SetHeaderTest.groovy      |   0
 .../k/loader/yaml/parser/SetPropertyTest.groovy    |   0
 .../camel/k/loader/yaml/parser/SortTest.groovy     |   0
 .../camel/k/loader/yaml/parser/SplitTest.groovy    |   0
 .../camel/k/loader/yaml/parser/ThreadsTest.groovy  |   0
 .../camel/k/loader/yaml/parser/ThrottleTest.groovy |   0
 .../k/loader/yaml/parser/ToDynamicTest.groovy      |   4 +-
 .../camel/k/loader/yaml/parser/ToTest.groovy       |   0
 .../k/loader/yaml/parser/UnmarshalTest.groovy      |   0
 .../camel/k/loader/yaml/parser/ValidateTest.groovy |   0
 .../camel/k/loader/yaml/parser/WireTapTest.groovy  |   0
 .../src/test/resources/log4j2-test.xml             |   0
 .../resources/routes/RoutesTest_aggregator.yaml    |   0
 .../test/resources/routes/RoutesTest_filter.yaml   |   0
 .../test/resources/routes/RoutesTest_split.yaml    |   0
 camel-k-loader-yaml/pom.xml                        | 208 +--------------------
 .../yaml/support/ProcessorDefinitionMixIn.java     |  43 -----
 .../quarkus/deployment/DeploymentProcessor.java    |  51 ++++-
 camel-k-runtime-bom/pom.xml                        |  10 +
 pom.xml                                            |   5 +
 tooling/camel-k-annotations/pom.xml                |   8 +
 ...YAMLStepParser.java => YAMLNodeDefinition.java} |   8 +-
 .../camel/k/annotation/yaml/YAMLStepParser.java    |   2 +-
 .../maven/GenerateYamlLoaderSupportClasses.java    | 127 +++++++++++++
 ....java => GenerateYamlParserSupportClasses.java} | 139 +-------------
 .../camel/k/tooling/maven/GenerateYamlSupport.java | 138 ++++++++++++++
 .../processors/GenerateYamlSupportClassesTest.java |   9 +-
 108 files changed, 499 insertions(+), 690 deletions(-)

diff --git a/camel-k-loader-yaml/pom.xml b/camel-k-loader-yaml/camel-k-loader-yaml-common/pom.xml
similarity index 65%
copy from camel-k-loader-yaml/pom.xml
copy to camel-k-loader-yaml/camel-k-loader-yaml-common/pom.xml
index 9a6016d..24ecb66 100644
--- a/camel-k-loader-yaml/pom.xml
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/pom.xml
@@ -20,12 +20,12 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.camel.k</groupId>
-        <artifactId>camel-k-runtime-parent</artifactId>
+        <artifactId>camel-k-loader-yaml-parent</artifactId>
         <version>1.0.8-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>camel-k-loader-yaml</artifactId>
+    <artifactId>camel-k-loader-yaml-common</artifactId>
 
     <dependencies>
 
@@ -65,89 +65,6 @@
             <artifactId>camel-k-annotations</artifactId>
             <optional>true</optional>
         </dependency>
-
-        <!-- ****************************** -->
-        <!--                                -->
-        <!-- TESTS                          -->
-        <!--                                -->
-        <!-- ****************************** -->
-
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-mock</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-direct</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-log</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-bean</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.codehaus.groovy</groupId>
-            <artifactId>groovy-test</artifactId>
-            <version>${groovy.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.spockframework</groupId>
-            <artifactId>spock-core</artifactId>
-            <version>${spock.version}</version>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.codehaus.groovy</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>junit</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>org.junit.vintage</groupId>
-            <artifactId>junit-vintage-engine</artifactId>
-            <version>${junit.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.assertj</groupId>
-            <artifactId>assertj-core</artifactId>
-            <version>${assertj.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-core</artifactId>
-            <version>${log4j2.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-slf4j-impl</artifactId>
-            <version>${log4j2.version}</version>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 
     <build>
@@ -178,7 +95,7 @@
                     <execution>
                         <phase>generate-sources</phase>
                         <goals>
-                            <goal>generate-yaml-support-classes</goal>
+                            <goal>generate-yaml-parser-support-classes</goal>
                         </goals>
                     </execution>
                 </executions>
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/model/Node.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/model/Node.java
similarity index 100%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/model/Node.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/model/Node.java
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/model/Step.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/model/Step.java
similarity index 97%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/model/Step.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/model/Step.java
index 7298fad..1d1ac16 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/model/Step.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/model/Step.java
@@ -59,8 +59,4 @@ public final class Step {
             return new Step(stepId, stepData);
         }
     }
-
-    // marker interface
-    public interface Definition {
-    }
 }
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/AggregateStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/AggregateStepParser.java
similarity index 90%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/AggregateStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/AggregateStepParser.java
index 52b192b..4feff93 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/AggregateStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/AggregateStepParser.java
@@ -18,27 +18,23 @@ package org.apache.camel.k.loader.yaml.parser;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import org.apache.camel.Expression;
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.AggregateDefinition;
 import org.apache.camel.model.ExpressionSubElementDefinition;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.language.ExpressionDefinition;
 import org.apache.camel.reifier.AggregateReifier;
-import org.apache.camel.reifier.ProcessorReifier;
 
 @YAMLStepParser("aggregate")
 public class AggregateStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, AggregateReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         return context.node(Definition.class);
     }
 
-    public static final class Definition extends AggregateDefinition implements HasExpression, Step.Definition {
+    @YAMLNodeDefinition(reifiers = AggregateReifier.class)
+    public static final class Definition extends AggregateDefinition implements HasExpression {
         @JsonIgnore
         public void setExpression(Expression expression) {
             super.setExpression(expression);
@@ -49,6 +45,7 @@ public class AggregateStepParser implements ProcessorStepParser {
         }
     }
 
+    @YAMLNodeDefinition
     public static final class CorrelationExpression extends ExpressionSubElementDefinition implements HasExpression {
         @Override
         public void setExpression(ExpressionDefinition expressionDefinition) {
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/BeanStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/BeanStepParser.java
similarity index 100%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/BeanStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/BeanStepParser.java
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ChoiceStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ChoiceStepParser.java
similarity index 95%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ChoiceStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ChoiceStepParser.java
index e77355c..44f4665 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ChoiceStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ChoiceStepParser.java
@@ -18,6 +18,7 @@ package org.apache.camel.k.loader.yaml.parser;
 
 import java.util.List;
 
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
 import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ChoiceDefinition;
@@ -57,7 +58,8 @@ public class ChoiceStepParser implements ProcessorStepParser {
         return choice;
     }
 
-    public static final class Definition implements Step.Definition {
+    @YAMLNodeDefinition
+    public static final class Definition {
         public List<When> when;
         public Otherwise otherwise;
 
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ClaimCheckStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ClaimCheckStepParser.java
similarity index 100%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ClaimCheckStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ClaimCheckStepParser.java
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ConvertBodyStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ConvertBodyStepParser.java
similarity index 100%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ConvertBodyStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ConvertBodyStepParser.java
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/DelayStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/DelayStepParser.java
similarity index 91%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/DelayStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/DelayStepParser.java
index f76519d..6d34875 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/DelayStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/DelayStepParser.java
@@ -16,8 +16,8 @@
  */
 package org.apache.camel.k.loader.yaml.parser;
 
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.DelayDefinition;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.reifier.DelayReifier;
@@ -34,7 +34,8 @@ public class DelayStepParser implements ProcessorStepParser {
         return context.node(Definition.class);
     }
 
-    public static final class Definition extends DelayDefinition implements HasExpression, Step.Definition {
+    @YAMLNodeDefinition(reifiers = DelayReifier.class)
+    public static final class Definition extends DelayDefinition implements HasExpression {
     }
 }
 
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/DynamicRouterStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/DynamicRouterStepParser.java
similarity index 84%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/DynamicRouterStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/DynamicRouterStepParser.java
index 89c1063..2ddc5ae 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/DynamicRouterStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/DynamicRouterStepParser.java
@@ -16,25 +16,21 @@
  */
 package org.apache.camel.k.loader.yaml.parser;
 
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.DynamicRouterDefinition;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.reifier.DynamicRouterReifier;
-import org.apache.camel.reifier.ProcessorReifier;
 
 @YAMLStepParser("dynamic-router")
 public class DynamicRouterStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, DynamicRouterReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         return context.node(Definition.class);
     }
 
-    public static final class Definition extends DynamicRouterDefinition implements HasExpression, Step.Definition {
+    @YAMLNodeDefinition(reifiers = DynamicRouterReifier.class)
+    public static final class Definition extends DynamicRouterDefinition implements HasExpression {
     }
 }
 
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/EnrichStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/EnrichStepParser.java
similarity index 88%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/EnrichStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/EnrichStepParser.java
index 6108a8c..ff06a9d 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/EnrichStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/EnrichStepParser.java
@@ -18,25 +18,21 @@ package org.apache.camel.k.loader.yaml.parser;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import org.apache.camel.Expression;
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.EnrichDefinition;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.reifier.EnrichReifier;
-import org.apache.camel.reifier.ProcessorReifier;
 
 @YAMLStepParser("enrich")
 public class EnrichStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, EnrichReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         return context.node(Definition.class);
     }
 
-    public static final class Definition extends EnrichDefinition implements HasExpression, Step.Definition {
+    @YAMLNodeDefinition(reifiers = EnrichReifier.class)
+    public static final class Definition extends EnrichDefinition implements HasExpression {
         @JsonIgnore
         public void setExpression(Expression expression) {
             super.setExpression(expression);
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/FilterStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/FilterStepParser.java
similarity index 89%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/FilterStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/FilterStepParser.java
index 8a1ae2a..650e526 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/FilterStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/FilterStepParser.java
@@ -18,19 +18,15 @@ package org.apache.camel.k.loader.yaml.parser;
 
 import java.util.List;
 
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
 import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.FilterDefinition;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.reifier.FilterReifier;
-import org.apache.camel.reifier.ProcessorReifier;
 
 @YAMLStepParser("filter")
 public class FilterStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, FilterReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         Definition definition = context.node(Definition.class);
@@ -42,7 +38,8 @@ public class FilterStepParser implements ProcessorStepParser {
         );
     }
 
-    public static final class Definition extends FilterDefinition implements HasExpression, Step.Definition {
+    @YAMLNodeDefinition(reifiers = FilterReifier.class)
+    public static final class Definition extends FilterDefinition implements HasExpression {
         public List<Step> steps;
     }
 }
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/FromStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/FromStepParser.java
similarity index 94%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/FromStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/FromStepParser.java
index 7d99e75..7607f2b 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/FromStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/FromStepParser.java
@@ -22,6 +22,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
 import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
@@ -46,7 +47,8 @@ public class FromStepParser implements StartStepParser {
         );
     }
 
-    public static final class FromStepDefinition implements Step.Definition {
+    @YAMLNodeDefinition
+    public static final class FromStepDefinition {
         public String uri;
         public Map<String, Object> parameters;
         public List<Step> steps;
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/LogStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/LogStepParser.java
similarity index 100%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/LogStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/LogStepParser.java
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/LoopStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/LoopStepParser.java
similarity index 89%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/LoopStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/LoopStepParser.java
index 9735404..e05af6f 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/LoopStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/LoopStepParser.java
@@ -18,19 +18,15 @@ package org.apache.camel.k.loader.yaml.parser;
 
 import java.util.List;
 
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
 import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.LoopDefinition;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.reifier.LoopReifier;
-import org.apache.camel.reifier.ProcessorReifier;
 
 @YAMLStepParser("loop")
 public class LoopStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, LoopReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         Definition definition = context.node(Definition.class);
@@ -42,7 +38,8 @@ public class LoopStepParser implements ProcessorStepParser {
         );
     }
 
-    public static final class Definition extends LoopDefinition implements HasExpression, Step.Definition {
+    @YAMLNodeDefinition(reifiers = LoopReifier.class)
+    public static final class Definition extends LoopDefinition implements HasExpression {
         public List<Step> steps;
     }
 }
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/MarshalStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/MarshalStepParser.java
similarity index 84%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/MarshalStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/MarshalStepParser.java
index c63b58b..d39f3a2 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/MarshalStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/MarshalStepParser.java
@@ -16,25 +16,21 @@
  */
 package org.apache.camel.k.loader.yaml.parser;
 
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.MarshalDefinition;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.reifier.MarshalReifier;
-import org.apache.camel.reifier.ProcessorReifier;
 
 @YAMLStepParser("marshal")
 public class MarshalStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, MarshalReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         return context.node(Definition.class);
     }
 
-    public static final class Definition extends MarshalDefinition implements HasDataFormat, Step.Definition {
+    @YAMLNodeDefinition(reifiers = MarshalReifier.class)
+    public static final class Definition extends MarshalDefinition implements HasDataFormat {
     }
 }
 
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/MulticastStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/MulticastStepParser.java
similarity index 89%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/MulticastStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/MulticastStepParser.java
index edc43f2..98a7ffd 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/MulticastStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/MulticastStepParser.java
@@ -18,19 +18,15 @@ package org.apache.camel.k.loader.yaml.parser;
 
 import java.util.List;
 
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
 import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.MulticastDefinition;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.reifier.MulticastReifier;
-import org.apache.camel.reifier.ProcessorReifier;
 
 @YAMLStepParser("multicast")
 public class MulticastStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, MulticastReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         Definition definition = context.node(Definition.class);
@@ -42,7 +38,8 @@ public class MulticastStepParser implements ProcessorStepParser {
         );
     }
 
-    public static final class Definition extends MulticastDefinition implements Step.Definition {
+    @YAMLNodeDefinition(reifiers = MulticastReifier.class)
+    public static final class Definition extends MulticastDefinition {
         public List<Step> steps;
     }
 }
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/PipelineStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/PipelineStepParser.java
similarity index 92%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/PipelineStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/PipelineStepParser.java
index edbca96..1b1393a 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/PipelineStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/PipelineStepParser.java
@@ -18,6 +18,7 @@ package org.apache.camel.k.loader.yaml.parser;
 
 import java.util.List;
 
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
 import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.PipelineDefinition;
@@ -39,7 +40,8 @@ public class PipelineStepParser implements ProcessorStepParser {
         );
     }
 
-    public static final class Definition implements Step.Definition {
+    @YAMLNodeDefinition
+    public static final class Definition {
         public List<Step> steps;
     }
 }
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/PollEnrichStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/PollEnrichStepParser.java
similarity index 87%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/PollEnrichStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/PollEnrichStepParser.java
index 4f24db3..88e0ec7 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/PollEnrichStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/PollEnrichStepParser.java
@@ -18,25 +18,21 @@ package org.apache.camel.k.loader.yaml.parser;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import org.apache.camel.Expression;
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.PollEnrichDefinition;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.reifier.PollEnrichReifier;
-import org.apache.camel.reifier.ProcessorReifier;
 
 @YAMLStepParser("poll-enrich")
 public class PollEnrichStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, PollEnrichReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         return context.node(Definition.class);
     }
 
-    public static final class Definition extends PollEnrichDefinition implements HasExpression, Step.Definition {
+    @YAMLNodeDefinition(reifiers = PollEnrichReifier.class)
+    public static final class Definition extends PollEnrichDefinition implements HasExpression {
         @JsonIgnore
         public void setExpression(Expression expression) {
             super.setExpression(expression);
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ProcessStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ProcessStepParser.java
similarity index 100%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ProcessStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ProcessStepParser.java
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ProcessorStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ProcessorStepParser.java
similarity index 100%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ProcessorStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ProcessorStepParser.java
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RecipientListStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RecipientListStepParser.java
similarity index 84%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RecipientListStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RecipientListStepParser.java
index 10eeebe..f0fbccf 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RecipientListStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RecipientListStepParser.java
@@ -16,25 +16,21 @@
  */
 package org.apache.camel.k.loader.yaml.parser;
 
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.RecipientListDefinition;
-import org.apache.camel.reifier.ProcessorReifier;
 import org.apache.camel.reifier.RecipientListReifier;
 
 @YAMLStepParser("recipient-list")
 public class RecipientListStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, RecipientListReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         return context.node(Definition.class);
     }
 
-    public static final class Definition extends RecipientListDefinition implements HasExpression, Step.Definition {
+    @YAMLNodeDefinition(reifiers = RecipientListReifier.class)
+    public static final class Definition extends RecipientListDefinition implements HasExpression {
     }
 }
 
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RemoveHeaderStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RemoveHeaderStepParser.java
similarity index 87%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RemoveHeaderStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RemoveHeaderStepParser.java
index 242f68f..86f07f9 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RemoveHeaderStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RemoveHeaderStepParser.java
@@ -17,25 +17,21 @@
 package org.apache.camel.k.loader.yaml.parser;
 
 import com.fasterxml.jackson.annotation.JsonAlias;
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.RemoveHeaderDefinition;
-import org.apache.camel.reifier.ProcessorReifier;
 import org.apache.camel.reifier.RemoveHeaderReifier;
 
 @YAMLStepParser("remove-header")
 public class RemoveHeaderStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, RemoveHeaderReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         return context.node(Definition.class);
     }
 
-    public static final class Definition extends RemoveHeaderDefinition implements Step.Definition {
+    @YAMLNodeDefinition(reifiers = RemoveHeaderReifier.class)
+    public static final class Definition extends RemoveHeaderDefinition {
         @JsonAlias("name")
         public void setHeaderName(String headerName) {
             super.setHeaderName(headerName);
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RemoveHeadersStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RemoveHeadersStepParser.java
similarity index 100%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RemoveHeadersStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RemoveHeadersStepParser.java
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RemovePropertiesStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RemovePropertiesStepParser.java
similarity index 100%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RemovePropertiesStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RemovePropertiesStepParser.java
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RemovePropertyStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RemovePropertyStepParser.java
similarity index 87%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RemovePropertyStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RemovePropertyStepParser.java
index 27dfcd0..947f36f 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RemovePropertyStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RemovePropertyStepParser.java
@@ -17,25 +17,21 @@
 package org.apache.camel.k.loader.yaml.parser;
 
 import com.fasterxml.jackson.annotation.JsonAlias;
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.RemovePropertyDefinition;
-import org.apache.camel.reifier.ProcessorReifier;
 import org.apache.camel.reifier.RemovePropertyReifier;
 
 @YAMLStepParser("remove-property")
 public class RemovePropertyStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, RemovePropertyReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         return context.node(Definition.class);
     }
 
-    public static final class Definition extends RemovePropertyDefinition implements Step.Definition {
+    @YAMLNodeDefinition(reifiers = RemovePropertyReifier.class)
+    public static final class Definition extends RemovePropertyDefinition {
         @JsonAlias("name")
         public void setPropertyName(String headerName) {
             super.setPropertyName(headerName);
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ResequenceStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ResequenceStepParser.java
similarity index 92%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ResequenceStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ResequenceStepParser.java
index 400fffe..de1cce1 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ResequenceStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ResequenceStepParser.java
@@ -21,21 +21,17 @@ import java.util.List;
 import com.fasterxml.jackson.annotation.JsonAlias;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import org.apache.camel.Expression;
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
 import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.ResequenceDefinition;
 import org.apache.camel.model.config.BatchResequencerConfig;
 import org.apache.camel.model.config.StreamResequencerConfig;
-import org.apache.camel.reifier.ProcessorReifier;
 import org.apache.camel.reifier.ResequenceReifier;
 
 @YAMLStepParser("resequence")
 public class ResequenceStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, ResequenceReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         Definition definition = context.node(Definition.class);
@@ -47,7 +43,8 @@ public class ResequenceStepParser implements ProcessorStepParser {
         );
     }
 
-    public static final class Definition extends ResequenceDefinition implements HasExpression, Step.Definition {
+    @YAMLNodeDefinition(reifiers = ResequenceReifier.class)
+    public static final class Definition extends ResequenceDefinition implements HasExpression {
         public List<Step> steps;
 
         @JsonIgnore
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RestStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RestStepParser.java
similarity index 96%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RestStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RestStepParser.java
index 1730d9f..978cfed 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RestStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RestStepParser.java
@@ -21,6 +21,7 @@ import java.util.List;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonSetter;
 import com.fasterxml.jackson.annotation.Nulls;
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
 import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
@@ -57,7 +58,8 @@ public class RestStepParser implements StartStepParser {
         );
     }
 
-    public static final class Definition implements Step.Definition {
+    @YAMLNodeDefinition
+    public static final class Definition {
         @JsonProperty
         public String id;
 
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RouteStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RouteStepParser.java
similarity index 95%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RouteStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RouteStepParser.java
index ff363d2..3b8dfaf 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RouteStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RouteStepParser.java
@@ -21,10 +21,9 @@ import java.util.Optional;
 import com.fasterxml.jackson.annotation.JsonAnySetter;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.databind.JsonNode;
-
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
 import org.apache.camel.k.loader.yaml.model.Node;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.RouteDefinition;
 
@@ -51,7 +50,8 @@ public class RouteStepParser implements StartStepParser {
         return root;
     }
 
-    public static final class Definition implements Step.Definition {
+    @YAMLNodeDefinition
+    public static final class Definition {
         private String id;
         private String group;
         private Node root;
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RoutingSlipStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RoutingSlipStepParser.java
similarity index 85%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RoutingSlipStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RoutingSlipStepParser.java
index 83522b4..4e43cb1 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/RoutingSlipStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/RoutingSlipStepParser.java
@@ -17,25 +17,21 @@
 package org.apache.camel.k.loader.yaml.parser;
 
 import org.apache.camel.Expression;
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.RoutingSlipDefinition;
-import org.apache.camel.reifier.ProcessorReifier;
 import org.apache.camel.reifier.RoutingSlipReifier;
 
 @YAMLStepParser("routing-slip")
 public class RoutingSlipStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, RoutingSlipReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         return context.node(Definition.class);
     }
 
-    public static final class Definition extends RoutingSlipDefinition implements HasExpression, Step.Definition {
+    @YAMLNodeDefinition(reifiers = RoutingSlipReifier.class)
+    public static final class Definition extends RoutingSlipDefinition implements HasExpression {
         public Definition() {
             super((Expression) null, RoutingSlipDefinition.DEFAULT_DELIMITER);
         }
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/SampleStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SampleStepParser.java
similarity index 89%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/SampleStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SampleStepParser.java
index a65c355..6cba016 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/SampleStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SampleStepParser.java
@@ -18,19 +18,15 @@ package org.apache.camel.k.loader.yaml.parser;
 
 import java.util.List;
 
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
 import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.SamplingDefinition;
-import org.apache.camel.reifier.ProcessorReifier;
 import org.apache.camel.reifier.SamplingReifier;
 
 @YAMLStepParser("sample")
 public class SampleStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, SamplingReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         Definition definition = context.node(Definition.class);
@@ -42,7 +38,8 @@ public class SampleStepParser implements ProcessorStepParser {
         );
     }
 
-    public static final class Definition extends SamplingDefinition implements Step.Definition {
+    @YAMLNodeDefinition(reifiers = SamplingReifier.class)
+    public static final class Definition extends SamplingDefinition {
         public List<Step> steps;
     }
 }
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/SetBodyStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SetBodyStepParser.java
similarity index 84%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/SetBodyStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SetBodyStepParser.java
index fb34b25..a879b9f 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/SetBodyStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SetBodyStepParser.java
@@ -16,25 +16,21 @@
  */
 package org.apache.camel.k.loader.yaml.parser;
 
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.SetBodyDefinition;
-import org.apache.camel.reifier.ProcessorReifier;
 import org.apache.camel.reifier.SetBodyReifier;
 
 @YAMLStepParser("set-body")
 public class SetBodyStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, SetBodyReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         return context.node(Definition.class);
     }
 
-    public static final class Definition extends SetBodyDefinition implements HasExpression, Step.Definition {
+    @YAMLNodeDefinition(reifiers = SetBodyReifier.class)
+    public static final class Definition extends SetBodyDefinition implements HasExpression {
     }
 }
 
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/SetHeaderStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SetHeaderStepParser.java
similarity index 84%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/SetHeaderStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SetHeaderStepParser.java
index 6e505d8..4d3987e 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/SetHeaderStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SetHeaderStepParser.java
@@ -16,25 +16,21 @@
  */
 package org.apache.camel.k.loader.yaml.parser;
 
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.SetHeaderDefinition;
-import org.apache.camel.reifier.ProcessorReifier;
 import org.apache.camel.reifier.SetHeaderReifier;
 
 @YAMLStepParser("set-header")
 public class SetHeaderStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, SetHeaderReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         return context.node(Definition.class);
     }
 
-    public static final class Definition extends SetHeaderDefinition implements HasExpression, Step.Definition {
+    @YAMLNodeDefinition(reifiers = SetHeaderReifier.class)
+    public static final class Definition extends SetHeaderDefinition implements HasExpression {
     }
 }
 
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/SetPropertyStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SetPropertyStepParser.java
similarity index 84%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/SetPropertyStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SetPropertyStepParser.java
index 6d1d580..d55445b 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/SetPropertyStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SetPropertyStepParser.java
@@ -16,25 +16,21 @@
  */
 package org.apache.camel.k.loader.yaml.parser;
 
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.SetPropertyDefinition;
-import org.apache.camel.reifier.ProcessorReifier;
 import org.apache.camel.reifier.SetPropertyReifier;
 
 @YAMLStepParser("set-property")
 public class SetPropertyStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, SetPropertyReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         return context.node(Definition.class);
     }
 
-    public static final class Definition extends SetPropertyDefinition implements HasExpression, Step.Definition {
+    @YAMLNodeDefinition(reifiers = SetPropertyReifier.class)
+    public static final class Definition extends SetPropertyDefinition implements HasExpression {
     }
 }
 
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/SortStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SortStepParser.java
similarity index 84%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/SortStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SortStepParser.java
index 449b275..be6fe23 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/SortStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SortStepParser.java
@@ -16,25 +16,21 @@
  */
 package org.apache.camel.k.loader.yaml.parser;
 
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.SortDefinition;
-import org.apache.camel.reifier.ProcessorReifier;
 import org.apache.camel.reifier.SortReifier;
 
 @YAMLStepParser("sort")
 public class SortStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, SortReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         return context.node(Definition.class);
     }
 
-    public static final class Definition extends SortDefinition implements HasExpression, Step.Definition {
+    @YAMLNodeDefinition(reifiers = SortReifier.class)
+    public static final class Definition extends SortDefinition implements HasExpression {
     }
 }
 
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/SplitStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SplitStepParser.java
similarity index 89%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/SplitStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SplitStepParser.java
index b39a524..e641ad9 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/SplitStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/SplitStepParser.java
@@ -18,19 +18,15 @@ package org.apache.camel.k.loader.yaml.parser;
 
 import java.util.List;
 
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
 import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.SplitDefinition;
-import org.apache.camel.reifier.ProcessorReifier;
 import org.apache.camel.reifier.SplitReifier;
 
 @YAMLStepParser("split")
 public class SplitStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, SplitReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         Definition definition = context.node(Definition.class);
@@ -41,7 +37,8 @@ public class SplitStepParser implements ProcessorStepParser {
             definition.steps);
     }
 
-    public static final class Definition extends SplitDefinition implements HasExpression, Step.Definition {
+    @YAMLNodeDefinition(reifiers = SplitReifier.class)
+    public static final class Definition extends SplitDefinition implements HasExpression {
         public List<Step> steps;
     }
 }
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/StartStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/StartStepParser.java
similarity index 100%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/StartStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/StartStepParser.java
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/StepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/StepParser.java
similarity index 100%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/StepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/StepParser.java
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/StepParserException.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/StepParserException.java
similarity index 100%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/StepParserException.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/StepParserException.java
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/StepParserSupport.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/StepParserSupport.java
similarity index 100%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/StepParserSupport.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/StepParserSupport.java
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/StopStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/StopStepParser.java
similarity index 100%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/StopStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/StopStepParser.java
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ThreadsStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ThreadsStepParser.java
similarity index 100%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ThreadsStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ThreadsStepParser.java
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ThrottleStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ThrottleStepParser.java
similarity index 84%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ThrottleStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ThrottleStepParser.java
index a5ef353..b2ee2ac 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ThrottleStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ThrottleStepParser.java
@@ -16,25 +16,21 @@
  */
 package org.apache.camel.k.loader.yaml.parser;
 
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.ThrottleDefinition;
-import org.apache.camel.reifier.ProcessorReifier;
 import org.apache.camel.reifier.ThrottleReifier;
 
 @YAMLStepParser("throttle")
 public class ThrottleStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, ThrottleReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         return context.node(Definition.class);
     }
 
-    public static final class Definition extends ThrottleDefinition implements HasExpression, Step.Definition {
+    @YAMLNodeDefinition(reifiers = ThrottleReifier.class)
+    public static final class Definition extends ThrottleDefinition implements HasExpression {
     }
 }
 
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ToDynamicStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ToDynamicStepParser.java
similarity index 86%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ToDynamicStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ToDynamicStepParser.java
index 465bbe3..21ab519 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ToDynamicStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ToDynamicStepParser.java
@@ -21,26 +21,24 @@ import java.net.URISyntaxException;
 import java.util.Map;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.ToDynamicDefinition;
-import org.apache.camel.reifier.ProcessorReifier;
-import org.apache.camel.reifier.ToDynamicReifier;
 import org.apache.camel.util.URISupport;
 
 @YAMLStepParser("tod")
 public class ToDynamicStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, ToDynamicReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
-        return context.node(Definition.class);
+        final Definition definition = context.node(Definition.class);
+        final ToDynamicDefinition answer = new ToDynamicDefinition(definition.getEndpointUri());
+
+        return answer;
     }
 
-    public static final class Definition extends ToDynamicDefinition implements Step.Definition {
+    @YAMLNodeDefinition
+    public static final class Definition extends ToDynamicDefinition {
         public Map<String, Object> parameters;
 
         public Definition() {
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ToStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ToStepParser.java
similarity index 93%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ToStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ToStepParser.java
index 4125bf2..ad2d4bf 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ToStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ToStepParser.java
@@ -21,8 +21,8 @@ import java.net.URISyntaxException;
 import java.util.Map;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.ToDefinition;
 import org.apache.camel.util.URISupport;
@@ -37,7 +37,8 @@ public class ToStepParser implements ProcessorStepParser {
         return answer;
     }
 
-    public static final class Definition extends ToDefinition implements Step.Definition {
+    @YAMLNodeDefinition
+    public static final class Definition extends ToDefinition {
         public Map<String, Object> parameters;
 
         public Definition() {
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/TransformStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/TransformStepParser.java
similarity index 84%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/TransformStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/TransformStepParser.java
index aad73da..c09c99c 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/TransformStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/TransformStepParser.java
@@ -16,25 +16,21 @@
  */
 package org.apache.camel.k.loader.yaml.parser;
 
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.TransformDefinition;
-import org.apache.camel.reifier.ProcessorReifier;
 import org.apache.camel.reifier.TransformReifier;
 
 @YAMLStepParser("transform")
 public class TransformStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, TransformReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         return context.node(Definition.class);
     }
 
-    public static final class Definition extends TransformDefinition implements HasExpression, Step.Definition {
+    @YAMLNodeDefinition(reifiers = TransformReifier.class)
+    public static final class Definition extends TransformDefinition implements HasExpression {
     }
 }
 
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/UnmarshalStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/UnmarshalStepParser.java
similarity index 84%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/UnmarshalStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/UnmarshalStepParser.java
index 8ce06f9..d4b0e90 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/UnmarshalStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/UnmarshalStepParser.java
@@ -16,25 +16,21 @@
  */
 package org.apache.camel.k.loader.yaml.parser;
 
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.UnmarshalDefinition;
-import org.apache.camel.reifier.ProcessorReifier;
 import org.apache.camel.reifier.UnmarshalReifier;
 
 @YAMLStepParser("unmarshal")
 public class UnmarshalStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, UnmarshalReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         return context.node(Definition.class);
     }
 
-    public static final class Definition extends UnmarshalDefinition implements HasDataFormat, Step.Definition {
+    @YAMLNodeDefinition(reifiers = UnmarshalReifier.class)
+    public static final class Definition extends UnmarshalDefinition implements HasDataFormat {
     }
 }
 
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ValidateStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ValidateStepParser.java
similarity index 84%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ValidateStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ValidateStepParser.java
index a6e325c..ca0740a 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/ValidateStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/ValidateStepParser.java
@@ -16,25 +16,21 @@
  */
 package org.apache.camel.k.loader.yaml.parser;
 
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.ValidateDefinition;
-import org.apache.camel.reifier.ProcessorReifier;
 import org.apache.camel.reifier.ValidateReifier;
 
 @YAMLStepParser("validate")
 public class ValidateStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, ValidateReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         return context.node(Definition.class);
     }
 
-    public static final class Definition extends ValidateDefinition implements HasExpression, Step.Definition {
+    @YAMLNodeDefinition(reifiers = ValidateReifier.class)
+    public static final class Definition extends ValidateDefinition implements HasExpression {
     }
 }
 
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/WireTapStepParser.java b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/WireTapStepParser.java
similarity index 93%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/WireTapStepParser.java
rename to camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/WireTapStepParser.java
index b9aa194..a47fcac 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/parser/WireTapStepParser.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml-common/src/main/java/org/apache/camel/k/loader/yaml/parser/WireTapStepParser.java
@@ -22,25 +22,20 @@ import java.util.List;
 import java.util.Map;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
+import org.apache.camel.k.annotation.yaml.YAMLNodeDefinition;
 import org.apache.camel.k.annotation.yaml.YAMLStepParser;
-import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.model.ExpressionSubElementDefinition;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.SetHeaderDefinition;
 import org.apache.camel.model.ToDynamicDefinition;
 import org.apache.camel.model.WireTapDefinition;
 import org.apache.camel.model.language.ExpressionDefinition;
-import org.apache.camel.reifier.ProcessorReifier;
 import org.apache.camel.reifier.WireTapReifier;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.URISupport;
 
 @YAMLStepParser("wiretap")
 public class WireTapStepParser implements ProcessorStepParser {
-    static {
-        ProcessorReifier.registerReifier(Definition.class, WireTapReifier::new);
-    }
-
     @Override
     public ProcessorDefinition<?> toProcessor(Context context) {
         Definition definition = context.node(Definition.class);
@@ -65,7 +60,8 @@ public class WireTapStepParser implements ProcessorStepParser {
         return answer;
     }
 
-    public static final class Definition extends ToDynamicDefinition implements Step.Definition {
+    @YAMLNodeDefinition(reifiers = WireTapReifier.class)
+    public static final class Definition extends ToDynamicDefinition {
         public String processorRef;
         public String executorServiceRef;
         public String onPrepareRef;
@@ -90,6 +86,7 @@ public class WireTapStepParser implements ProcessorStepParser {
         }
     }
 
+    @YAMLNodeDefinition
     public static final class NewExchangeDefinition extends ExpressionSubElementDefinition implements HasExpression {
         public List<HeaderDefinition> headers;
 
@@ -104,7 +101,8 @@ public class WireTapStepParser implements ProcessorStepParser {
         }
     }
 
-    public static final class HeaderDefinition extends SetHeaderDefinition implements HasExpression, Step.Definition {
+    @YAMLNodeDefinition
+    public static final class HeaderDefinition extends SetHeaderDefinition implements HasExpression {
     }
 }
 
diff --git a/camel-k-loader-yaml/pom.xml b/camel-k-loader-yaml/camel-k-loader-yaml/pom.xml
similarity index 95%
copy from camel-k-loader-yaml/pom.xml
copy to camel-k-loader-yaml/camel-k-loader-yaml/pom.xml
index 9a6016d..b87b43d 100644
--- a/camel-k-loader-yaml/pom.xml
+++ b/camel-k-loader-yaml/camel-k-loader-yaml/pom.xml
@@ -20,7 +20,7 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.camel.k</groupId>
-        <artifactId>camel-k-runtime-parent</artifactId>
+        <artifactId>camel-k-loader-yaml-parent</artifactId>
         <version>1.0.8-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
@@ -39,6 +39,10 @@
             <groupId>org.apache.camel.k</groupId>
             <artifactId>camel-k-runtime-core</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel.k</groupId>
+            <artifactId>camel-k-loader-yaml-common</artifactId>
+        </dependency>
 
         <dependency>
             <groupId>org.apache.camel</groupId>
@@ -178,7 +182,7 @@
                     <execution>
                         <phase>generate-sources</phase>
                         <goals>
-                            <goal>generate-yaml-support-classes</goal>
+                            <goal>generate-yaml-loader-support-classes</goal>
                         </goals>
                     </execution>
                 </executions>
@@ -189,11 +193,6 @@
                         <version>${javapoet.version}</version>
                     </dependency>
                     <dependency>
-                        <groupId>org.apache.camel</groupId>
-                        <artifactId>camel-core-engine</artifactId>
-                        <version>${camel.version}</version>
-                    </dependency>
-                    <dependency>
                         <groupId>org.apache.commons</groupId>
                         <artifactId>commons-text</artifactId>
                         <version>${commons-text.version}</version>
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/YamlSourceLoader.java b/camel-k-loader-yaml/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/YamlSourceLoader.java
similarity index 83%
rename from camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/YamlSourceLoader.java
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/YamlSourceLoader.java
index 5b15828..c186c44 100644
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/YamlSourceLoader.java
+++ b/camel-k-loader-yaml/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/YamlSourceLoader.java
@@ -20,7 +20,10 @@ import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.function.Function;
+import java.util.function.Supplier;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.MapperFeature;
@@ -30,6 +33,7 @@ import com.fasterxml.jackson.databind.SerializationFeature;
 import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
 import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator;
 import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.k.Runtime;
 import org.apache.camel.k.Source;
@@ -38,7 +42,9 @@ import org.apache.camel.k.annotation.Loader;
 import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.k.loader.yaml.parser.StartStepParser;
 import org.apache.camel.k.loader.yaml.parser.StepParser;
-import org.apache.camel.k.loader.yaml.support.ProcessorDefinitionMixIn;
+import org.apache.camel.model.Block;
+import org.apache.camel.model.OptionalIdentifiedDefinition;
+import org.apache.camel.model.OtherAttributesAware;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.model.RoutesDefinition;
@@ -48,6 +54,10 @@ import org.apache.camel.model.rest.RestsDefinition;
 
 @Loader("yaml")
 public class YamlSourceLoader implements SourceLoader {
+    static {
+        YamlReifiers.registerReifiers();
+    }
+
     private final ObjectMapper mapper;
 
     public YamlSourceLoader() {
@@ -128,4 +138,20 @@ public class YamlSourceLoader implements SourceLoader {
             }
         };
     }
+
+    /**
+     * ProcessorDefinition declares multiple methods for setBody and Jackson get confused
+     * about what method to use so to hide such fields from the deserialization process
+     * without having to change the original class, a MixIn is required.
+     */
+    public abstract static class ProcessorDefinitionMixIn<Type extends ProcessorDefinition<Type>>
+        extends OptionalIdentifiedDefinition<Type>
+        implements Block, OtherAttributesAware {
+
+        @JsonIgnore
+        public abstract <Result> Type setBody(Supplier<Result> supplier);
+
+        @JsonIgnore
+        public abstract <Result> Type setBody(Function<Exchange, Result> function);
+    }
 }
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/DefinitionsTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/DefinitionsTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/DefinitionsTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/DefinitionsTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/RoutesTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/RoutesTest.groovy
similarity index 83%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/RoutesTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/RoutesTest.groovy
index 23fd49b..db020e4 100644
--- a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/RoutesTest.groovy
+++ b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/RoutesTest.groovy
@@ -26,15 +26,15 @@ class RoutesTest extends TestSupport {
         setup:
             def context = startContext()
 
-            mockEndpoint(context,'mock:split') {
+            org.apache.camel.k.loader.yaml.TestSupport.mockEndpoint(context,'mock:split') {
                 expectedMessageCount = 3
                 expectedBodiesReceived 'a', 'b', 'c'
             }
-            mockEndpoint(context,'mock:route') {
+            org.apache.camel.k.loader.yaml.TestSupport.mockEndpoint(context,'mock:route') {
                 expectedMessageCount = 1
                 expectedBodiesReceived 'a,b,c'
             }
-            mockEndpoint(context,'mock:flow') {
+            org.apache.camel.k.loader.yaml.TestSupport.mockEndpoint(context,'mock:flow') {
                 expectedMessageCount = 3
                 expectedBodiesReceived 'a', 'b', 'c'
             }
@@ -53,15 +53,15 @@ class RoutesTest extends TestSupport {
         setup:
             def context = startContext()
 
-            mockEndpoint(context, 'mock:route') {
+            org.apache.camel.k.loader.yaml.TestSupport.mockEndpoint(context, 'mock:route') {
                 expectedMessageCount 2
                 expectedBodiesReceived 'a', 'b'
             }
-            mockEndpoint(context, 'mock:filter') {
+            org.apache.camel.k.loader.yaml.TestSupport.mockEndpoint(context, 'mock:filter') {
                 expectedMessageCount 1
                 expectedBodiesReceived 'a'
             }
-            mockEndpoint(context,'mock:flow') {
+            org.apache.camel.k.loader.yaml.TestSupport.mockEndpoint(context,'mock:flow') {
                 expectedMessageCount 1
                 expectedBodiesReceived 'a'
             }
@@ -84,7 +84,7 @@ class RoutesTest extends TestSupport {
                 'aggregatorStrategy': new UseLatestAggregationStrategy()
             ])
 
-            mockEndpoint(context, 'mock:route') {
+            org.apache.camel.k.loader.yaml.TestSupport.mockEndpoint(context, 'mock:route') {
                 expectedMessageCount 2
                 expectedBodiesReceived '2', '4'
             }
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/TestSupport.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/TestSupport.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/TestSupport.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/TestSupport.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/AggregateTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/AggregateTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/AggregateTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/AggregateTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/BeanTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/BeanTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/BeanTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/BeanTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ChoiceTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ChoiceTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ChoiceTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ChoiceTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ClaimCheckTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ClaimCheckTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ClaimCheckTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ClaimCheckTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ConvertBodyTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ConvertBodyTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ConvertBodyTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ConvertBodyTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/DelayTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/DelayTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/DelayTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/DelayTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/DynamicRouterTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/DynamicRouterTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/DynamicRouterTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/DynamicRouterTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/EnrichTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/EnrichTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/EnrichTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/EnrichTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/FilterTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/FilterTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/FilterTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/FilterTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/FromTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/FromTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/FromTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/FromTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/LogTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/LogTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/LogTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/LogTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/LoopTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/LoopTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/LoopTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/LoopTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/MarshalTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/MarshalTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/MarshalTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/MarshalTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/MulticastTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/MulticastTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/MulticastTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/MulticastTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/PipelineTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/PipelineTest.groovy
similarity index 95%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/PipelineTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/PipelineTest.groovy
index 973a05f..89955c6 100644
--- a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/PipelineTest.groovy
+++ b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/PipelineTest.groovy
@@ -39,7 +39,7 @@ class PipelineTest extends TestSupport {
 
     def "should fail without steps"() {
         given:
-            def stepContext = stepContext(MAPPER.createObjectNode());
+            def stepContext = stepContext(TestSupport.MAPPER.createObjectNode());
         when:
             new PipelineStepParser().toProcessor(stepContext)
         then:
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/PollEnrichTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/PollEnrichTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/PollEnrichTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/PollEnrichTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ProcessTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ProcessTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ProcessTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ProcessTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RecipientListTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RecipientListTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RecipientListTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RecipientListTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemoveHeaderTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemoveHeaderTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemoveHeaderTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemoveHeaderTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemoveHeadersTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemoveHeadersTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemoveHeadersTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemoveHeadersTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemovePropertiesTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemovePropertiesTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemovePropertiesTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemovePropertiesTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemovePropertyTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemovePropertyTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemovePropertyTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RemovePropertyTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ResequenceTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ResequenceTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ResequenceTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ResequenceTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RestTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RestTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RestTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RestTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RoutingSlipTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RoutingSlipTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RoutingSlipTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/RoutingSlipTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SampleTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SampleTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SampleTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SampleTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SetBodyTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SetBodyTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SetBodyTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SetBodyTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SetHeaderTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SetHeaderTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SetHeaderTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SetHeaderTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SetPropertyTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SetPropertyTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SetPropertyTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SetPropertyTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SortTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SortTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SortTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SortTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SplitTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SplitTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SplitTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/SplitTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ThreadsTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ThreadsTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ThreadsTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ThreadsTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ThrottleTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ThrottleTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ThrottleTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ThrottleTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ToDynamicTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ToDynamicTest.groovy
similarity index 90%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ToDynamicTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ToDynamicTest.groovy
index 040a0dd..c400f33 100644
--- a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ToDynamicTest.groovy
+++ b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ToDynamicTest.groovy
@@ -17,7 +17,6 @@
 package org.apache.camel.k.loader.yaml.parser
 
 import com.fasterxml.jackson.databind.node.TextNode
-import org.apache.camel.impl.DefaultCamelContext
 import org.apache.camel.k.loader.yaml.TestSupport
 import org.apache.camel.model.ToDynamicDefinition
 
@@ -39,8 +38,7 @@ class ToDynamicTest extends TestSupport {
     def "definition compact"() {
         given:
             def node = TextNode.valueOf('seda://test')
-            def camelContext = new DefaultCamelContext()
-            def stepContext = new StepParser.Context(camelContext, MAPPER, node)
+            def stepContext = stepContext(node)
         when:
             def processor = new ToDynamicStepParser().toProcessor(stepContext)
         then:
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ToTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ToTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ToTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ToTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/UnmarshalTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/UnmarshalTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/UnmarshalTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/UnmarshalTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ValidateTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ValidateTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ValidateTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/ValidateTest.groovy
diff --git a/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/WireTapTest.groovy b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/WireTapTest.groovy
similarity index 100%
rename from camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/WireTapTest.groovy
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/groovy/org/apache/camel/k/loader/yaml/parser/WireTapTest.groovy
diff --git a/camel-k-loader-yaml/src/test/resources/log4j2-test.xml b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/log4j2-test.xml
similarity index 100%
rename from camel-k-loader-yaml/src/test/resources/log4j2-test.xml
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/log4j2-test.xml
diff --git a/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_aggregator.yaml b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_aggregator.yaml
similarity index 100%
rename from camel-k-loader-yaml/src/test/resources/routes/RoutesTest_aggregator.yaml
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_aggregator.yaml
diff --git a/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_filter.yaml b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_filter.yaml
similarity index 100%
rename from camel-k-loader-yaml/src/test/resources/routes/RoutesTest_filter.yaml
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_filter.yaml
diff --git a/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_split.yaml b/camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_split.yaml
similarity index 100%
rename from camel-k-loader-yaml/src/test/resources/routes/RoutesTest_split.yaml
rename to camel-k-loader-yaml/camel-k-loader-yaml/src/test/resources/routes/RoutesTest_split.yaml
diff --git a/camel-k-loader-yaml/pom.xml b/camel-k-loader-yaml/pom.xml
index 9a6016d..9f41972 100644
--- a/camel-k-loader-yaml/pom.xml
+++ b/camel-k-loader-yaml/pom.xml
@@ -24,211 +24,15 @@
         <version>1.0.8-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
+    <packaging>pom</packaging>
 
-    <artifactId>camel-k-loader-yaml</artifactId>
+    <artifactId>camel-k-loader-yaml-parent</artifactId>
 
-    <dependencies>
+    <modules>
+        <module>camel-k-loader-yaml-common</module>
+        <module>camel-k-loader-yaml</module>
+    </modules>
 
-        <!-- ****************************** -->
-        <!--                                -->
-        <!-- RUNTIME                        -->
-        <!--                                -->
-        <!-- ****************************** -->
 
-        <dependency>
-            <groupId>org.apache.camel.k</groupId>
-            <artifactId>camel-k-runtime-core</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-core-engine</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-databind</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.dataformat</groupId>
-            <artifactId>jackson-dataformat-yaml</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.camel.k</groupId>
-            <artifactId>camel-k-apt</artifactId>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.k</groupId>
-            <artifactId>camel-k-annotations</artifactId>
-            <optional>true</optional>
-        </dependency>
-
-        <!-- ****************************** -->
-        <!--                                -->
-        <!-- TESTS                          -->
-        <!--                                -->
-        <!-- ****************************** -->
-
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-mock</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-direct</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-log</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-bean</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.codehaus.groovy</groupId>
-            <artifactId>groovy-test</artifactId>
-            <version>${groovy.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.spockframework</groupId>
-            <artifactId>spock-core</artifactId>
-            <version>${spock.version}</version>
-            <scope>test</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.codehaus.groovy</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>junit</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>org.junit.vintage</groupId>
-            <artifactId>junit-vintage-engine</artifactId>
-            <version>${junit.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.assertj</groupId>
-            <artifactId>assertj-core</artifactId>
-            <version>${assertj.version}</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-core</artifactId>
-            <version>${log4j2.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-slf4j-impl</artifactId>
-            <version>${log4j2.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <version>${build-helper-maven-plugin.version}</version>
-                <executions>
-                    <execution>
-                        <phase>generate-sources</phase>
-                        <goals>
-                            <goal>add-source</goal>
-                        </goals>
-                        <configuration>
-                            <sources>
-                                <source>${project.build.directory}/generated-sources/camel</source>
-                            </sources>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.camel.k</groupId>
-                <artifactId>camel-k-maven-plugin</artifactId>
-                <version>${project.version}</version>
-                <executions>
-                    <execution>
-                        <phase>generate-sources</phase>
-                        <goals>
-                            <goal>generate-yaml-support-classes</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <dependencies>
-                    <dependency>
-                        <groupId>com.squareup</groupId>
-                        <artifactId>javapoet</artifactId>
-                        <version>${javapoet.version}</version>
-                    </dependency>
-                    <dependency>
-                        <groupId>org.apache.camel</groupId>
-                        <artifactId>camel-core-engine</artifactId>
-                        <version>${camel.version}</version>
-                    </dependency>
-                    <dependency>
-                        <groupId>org.apache.commons</groupId>
-                        <artifactId>commons-text</artifactId>
-                        <version>${commons-text.version}</version>
-                    </dependency>
-                </dependencies>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.gmavenplus</groupId>
-                <artifactId>gmavenplus-plugin</artifactId>
-                <version>${gmavenplus-plugin.version}</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>addTestSources</goal>
-                            <goal>compileTests</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                    <invokeDynamic>true</invokeDynamic>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.jboss.jandex</groupId>
-                <artifactId>jandex-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>make-index</id>
-                        <goals>
-                            <goal>jandex</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
 
 </project>
diff --git a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/support/ProcessorDefinitionMixIn.java b/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/support/ProcessorDefinitionMixIn.java
deleted file mode 100644
index babefe9..0000000
--- a/camel-k-loader-yaml/src/main/java/org/apache/camel/k/loader/yaml/support/ProcessorDefinitionMixIn.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.k.loader.yaml.support;
-
-import java.util.function.Function;
-import java.util.function.Supplier;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import org.apache.camel.Exchange;
-import org.apache.camel.model.Block;
-import org.apache.camel.model.OptionalIdentifiedDefinition;
-import org.apache.camel.model.OtherAttributesAware;
-import org.apache.camel.model.ProcessorDefinition;
-
-/**
- * ProcessorDefinition declares multiple methods for setBody and Jackson get confused
- * about what method to use so to hide such fields from the deserialization process
- * without having to change the original class, a MixIn is required.
- */
-public abstract class ProcessorDefinitionMixIn<Type extends ProcessorDefinition<Type>>
-    extends OptionalIdentifiedDefinition<Type>
-    implements Block, OtherAttributesAware {
-
-    @JsonIgnore
-    public abstract <Result> Type setBody(Supplier<Result> supplier);
-
-    @JsonIgnore
-    public abstract <Result> Type setBody(Function<Exchange, Result> function);
-}
diff --git a/camel-k-quarkus/camel-k-quarkus-loader-yaml/deployment/src/main/java/org/apache/camel/k/loader/yaml/quarkus/deployment/DeploymentProcessor.java b/camel-k-quarkus/camel-k-quarkus-loader-yaml/deployment/src/main/java/org/apache/camel/k/loader/yaml/quarkus/deployment/DeploymentProcessor.java
index b81006a..1ac414a 100644
--- a/camel-k-quarkus/camel-k-quarkus-loader-yaml/deployment/src/main/java/org/apache/camel/k/loader/yaml/quarkus/deployment/DeploymentProcessor.java
+++ b/camel-k-quarkus/camel-k-quarkus-loader-yaml/deployment/src/main/java/org/apache/camel/k/loader/yaml/quarkus/deployment/DeploymentProcessor.java
@@ -16,23 +16,30 @@
  */
 package org.apache.camel.k.loader.yaml.quarkus.deployment;
 
+import java.util.stream.Collectors;
+
 import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import org.apache.camel.k.loader.yaml.YamlSourceLoader;
 import org.apache.camel.k.loader.yaml.model.Node;
 import org.apache.camel.k.loader.yaml.model.Step;
 import org.apache.camel.k.loader.yaml.parser.HasDataFormat;
 import org.apache.camel.k.loader.yaml.parser.HasExpression;
-import org.apache.camel.k.loader.yaml.support.ProcessorDefinitionMixIn;
 import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.language.ExpressionDefinition;
+import org.jboss.jandex.AnnotationInstance;
+import org.jboss.jandex.AnnotationTarget;
 import org.jboss.jandex.ClassInfo;
 import org.jboss.jandex.DotName;
 import org.jboss.jandex.IndexView;
 
 public class DeploymentProcessor {
+    public static final DotName YAML_STEP_PARSER_ANNOTATION = DotName.createSimple("org.apache.camel.k.annotation.yaml.YAMLStepParser");
+    public static final DotName YAML_STEP_DEFINITION_ANNOTATION = DotName.createSimple("org.apache.camel.k.annotation.yaml.YAMLNodeDefinition");
+
     @BuildStep
     void registerReflectiveClasses(
             BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
@@ -40,9 +47,13 @@ public class DeploymentProcessor {
 
         IndexView view = combinedIndexBuildItem.getIndex();
 
-        for (ClassInfo ci : getAllKnownImplementors(view, Step.Definition.class)) {
+        for (ClassInfo ci : getAnnotated(view, YAML_STEP_PARSER_ANNOTATION)) {
+            reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, ci.name().toString()));
+        }
+        for (ClassInfo ci : getAnnotated(view, YAML_STEP_DEFINITION_ANNOTATION)) {
             reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, ci.name().toString()));
         }
+
         for (ClassInfo ci : getAllKnownImplementors(view, Step.Deserializer.class)) {
             reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, ci.name().toString()));
         }
@@ -57,29 +68,51 @@ public class DeploymentProcessor {
         }
 
         reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, Step.Deserializer.class));
-        reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, Step.Definition.class));
         reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, HasExpression.class));
         reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, HasDataFormat.class));
         reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, Node.class));
-        reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, "javax.xml.namespace.QName"));
-        reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, ProcessorDefinitionMixIn.class));
+        reflectiveClass.produce(new ReflectiveClassBuildItem(true, true, YamlSourceLoader.ProcessorDefinitionMixIn.class));
 
 
     }
 
     private static Iterable<ClassInfo> getAllKnownImplementors(IndexView view, String name) {
-        return view.getAllKnownImplementors(DotName.createSimple(name));
+        return getAllKnownImplementors(view, DotName.createSimple(name));
     }
 
     private static Iterable<ClassInfo> getAllKnownImplementors(IndexView view, Class<?> type) {
-        return view.getAllKnownImplementors(DotName.createSimple(type.getName()));
+        return getAllKnownImplementors(view, DotName.createSimple(type.getName()));
+    }
+
+    private static Iterable<ClassInfo> getAllKnownImplementors(IndexView view, DotName type) {
+        return view.getAllKnownImplementors(type);
     }
 
     private static Iterable<ClassInfo> getAllKnownSubclasses(IndexView view, String name) {
-        return view.getAllKnownSubclasses(DotName.createSimple(name));
+        return getAllKnownSubclasses(view, DotName.createSimple(name));
     }
 
     private static Iterable<ClassInfo> getAllKnownSubclasses(IndexView view, Class<?> type) {
-        return view.getAllKnownSubclasses(DotName.createSimple(type.getName()));
+        return getAllKnownSubclasses(view, DotName.createSimple(type.getName()));
+    }
+
+    private static Iterable<ClassInfo> getAllKnownSubclasses(IndexView view, DotName type) {
+        return view.getAllKnownSubclasses(type);
+    }
+
+    private static Iterable<ClassInfo> getAnnotated(IndexView view, String name) {
+        return getAnnotated(view, DotName.createSimple(name));
+    }
+
+    private static Iterable<ClassInfo> getAnnotated(IndexView view, Class<?> type) {
+        return getAnnotated(view, DotName.createSimple(type.getName()));
+    }
+
+    private static Iterable<ClassInfo> getAnnotated(IndexView view, DotName type) {
+        return view.getAnnotations(type).stream()
+            .map(AnnotationInstance::target)
+            .filter(t -> t.kind() == AnnotationTarget.Kind.CLASS)
+            .map(AnnotationTarget::asClass)
+            .collect(Collectors.toList());
     }
 }
diff --git a/camel-k-runtime-bom/pom.xml b/camel-k-runtime-bom/pom.xml
index 9639d21..c81d539 100644
--- a/camel-k-runtime-bom/pom.xml
+++ b/camel-k-runtime-bom/pom.xml
@@ -171,6 +171,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.k</groupId>
+                <artifactId>camel-k-quarkus-loader-yaml-common</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.k</groupId>
                 <artifactId>camel-k-quarkus-loader-yaml-deployment</artifactId>
                 <version>${project.version}</version>
             </dependency>
@@ -239,6 +244,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.k</groupId>
+                <artifactId>camel-k-loader-yaml-common</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.k</groupId>
                 <artifactId>camel-k-loader-yaml</artifactId>
                 <version>${project.version}</version>
             </dependency>
diff --git a/pom.xml b/pom.xml
index f21c01c..5fcff7c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -416,6 +416,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel.k</groupId>
+                <artifactId>camel-k-loader-yaml-common</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.k</groupId>
                 <artifactId>camel-k-loader-js</artifactId>
                 <version>${project.version}</version>
             </dependency>
diff --git a/tooling/camel-k-annotations/pom.xml b/tooling/camel-k-annotations/pom.xml
index 330ec1e..1150759 100644
--- a/tooling/camel-k-annotations/pom.xml
+++ b/tooling/camel-k-annotations/pom.xml
@@ -27,4 +27,12 @@
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>camel-k-annotations</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-core-engine</artifactId>
+            <optional>true</optional>
+        </dependency>
+    </dependencies>
 </project>
diff --git a/tooling/camel-k-annotations/src/main/java/org/apache/camel/k/annotation/yaml/YAMLStepParser.java b/tooling/camel-k-annotations/src/main/java/org/apache/camel/k/annotation/yaml/YAMLNodeDefinition.java
similarity index 84%
copy from tooling/camel-k-annotations/src/main/java/org/apache/camel/k/annotation/yaml/YAMLStepParser.java
copy to tooling/camel-k-annotations/src/main/java/org/apache/camel/k/annotation/yaml/YAMLNodeDefinition.java
index d11af8a..40720f3 100644
--- a/tooling/camel-k-annotations/src/main/java/org/apache/camel/k/annotation/yaml/YAMLStepParser.java
+++ b/tooling/camel-k-annotations/src/main/java/org/apache/camel/k/annotation/yaml/YAMLNodeDefinition.java
@@ -21,8 +21,10 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
+import org.apache.camel.reifier.ProcessorReifier;
+
 @Target(ElementType.TYPE)
-@Retention(RetentionPolicy.SOURCE)
-public @interface YAMLStepParser {
-    String[] value();
+@Retention(RetentionPolicy.RUNTIME)
+public @interface YAMLNodeDefinition {
+    Class<? extends ProcessorReifier>[] reifiers() default {};
 }
diff --git a/tooling/camel-k-annotations/src/main/java/org/apache/camel/k/annotation/yaml/YAMLStepParser.java b/tooling/camel-k-annotations/src/main/java/org/apache/camel/k/annotation/yaml/YAMLStepParser.java
index d11af8a..f546632 100644
--- a/tooling/camel-k-annotations/src/main/java/org/apache/camel/k/annotation/yaml/YAMLStepParser.java
+++ b/tooling/camel-k-annotations/src/main/java/org/apache/camel/k/annotation/yaml/YAMLStepParser.java
@@ -22,7 +22,7 @@ import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
 @Target(ElementType.TYPE)
-@Retention(RetentionPolicy.SOURCE)
+@Retention(RetentionPolicy.RUNTIME)
 public @interface YAMLStepParser {
     String[] value();
 }
diff --git a/tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateYamlLoaderSupportClasses.java b/tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateYamlLoaderSupportClasses.java
new file mode 100644
index 0000000..bc13bf2
--- /dev/null
+++ b/tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateYamlLoaderSupportClasses.java
@@ -0,0 +1,127 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.k.tooling.maven;
+
+
+import java.io.IOException;
+import java.nio.file.Paths;
+import javax.lang.model.element.Modifier;
+
+import com.fasterxml.jackson.core.Version;
+import com.fasterxml.jackson.databind.Module;
+import com.squareup.javapoet.CodeBlock;
+import com.squareup.javapoet.JavaFile;
+import com.squareup.javapoet.MethodSpec;
+import com.squareup.javapoet.TypeSpec;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+import org.jboss.jandex.AnnotationInstance;
+import org.jboss.jandex.AnnotationValue;
+import org.jboss.jandex.ClassInfo;
+
+@Mojo(
+    name = "generate-yaml-loader-support-classes",
+    inheritByDefault = false,
+    defaultPhase = LifecyclePhase.GENERATE_SOURCES,
+    requiresDependencyResolution = ResolutionScope.COMPILE,
+    threadSafe = true,
+    requiresProject = false)
+public class GenerateYamlLoaderSupportClasses extends GenerateYamlSupport {
+    @Override
+    public void execute() throws MojoFailureException {
+        try {
+            JavaFile.builder("org.apache.camel.k.loader.yaml", generateJacksonModule())
+                .indent("    ")
+                .build()
+                .writeTo(Paths.get(output));
+            JavaFile.builder("org.apache.camel.k.loader.yaml", generateReifiers())
+                .indent("    ")
+                .build()
+                .writeTo(Paths.get(output));
+        } catch (IOException e) {
+            throw new MojoFailureException(e.getMessage());
+        }
+    }
+
+    public final TypeSpec generateJacksonModule() {
+        TypeSpec.Builder type = TypeSpec.classBuilder("YamlModule");
+        type.addModifiers(Modifier.PUBLIC, Modifier.FINAL);
+        type.superclass(Module.class);
+        type.addMethod(
+            MethodSpec.methodBuilder("getModuleName")
+                .addModifiers(Modifier.PUBLIC)
+                .addAnnotation(Override.class)
+                .returns(String.class)
+                .addCode(CodeBlock.builder().addStatement("return $S", "camel-yaml").build())
+                .build()
+        );
+        type.addMethod(
+            MethodSpec.methodBuilder("version")
+                .addModifiers(Modifier.PUBLIC)
+                .addAnnotation(Override.class)
+                .returns(Version.class)
+                .addCode(CodeBlock.builder().addStatement("return $L", "Version.unknownVersion()").build())
+                .build()
+        );
+
+        MethodSpec.Builder mb = MethodSpec.methodBuilder("setupModule")
+            .addModifiers(Modifier.PUBLIC)
+            .addParameter(Module.SetupContext.class, "context");
+
+        definitions(EXPRESSION_DEFINITION_CLASS).forEach(
+            (k, v) -> mb.addStatement("context.registerSubtypes(new com.fasterxml.jackson.databind.jsontype.NamedType($T.class, $S))", v, k)
+        );
+        definitions(DATAFORMAT_DEFINITION_CLASS).forEach(
+            (k, v) -> mb.addStatement("context.registerSubtypes(new com.fasterxml.jackson.databind.jsontype.NamedType($T.class, $S))", v, k)
+        );
+
+        type.addMethod(mb.build());
+
+        return type.build();
+    }
+
+    public final TypeSpec generateReifiers() {
+        TypeSpec.Builder type = TypeSpec.classBuilder("YamlReifiers");
+        type.addModifiers(Modifier.PUBLIC, Modifier.FINAL);
+
+        MethodSpec.Builder mb = MethodSpec.methodBuilder("registerReifiers")
+            .addModifiers(Modifier.PUBLIC)
+            .addModifiers(Modifier.STATIC);
+
+        annotated(YAML_STEP_DEFINITION_ANNOTATION).forEach(i -> {
+            final AnnotationInstance annotation = i.classAnnotation(YAML_STEP_DEFINITION_ANNOTATION);
+            final AnnotationValue reifiers = annotation.value("reifiers");
+
+            String name = i.toString();
+            if (i.nestingType() == ClassInfo.NestingType.INNER) {
+                name = i.enclosingClass().toString() + "." + i.simpleName();
+            }
+
+            if (reifiers != null) {
+                for (String reifier: reifiers.asStringArray()) {
+                    mb.addStatement("org.apache.camel.reifier.ProcessorReifier.registerReifier($L.class, $L::new);", name, reifier);
+                }
+            }
+        });
+
+        type.addMethod(mb.build());
+
+        return type.build();
+    }
+}
diff --git a/tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateYamlSupportClasses.java b/tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateYamlParserSupportClasses.java
similarity index 55%
rename from tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateYamlSupportClasses.java
rename to tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateYamlParserSupportClasses.java
index 2110644..d79c319 100644
--- a/tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateYamlSupportClasses.java
+++ b/tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateYamlParserSupportClasses.java
@@ -17,24 +17,12 @@
 package org.apache.camel.k.tooling.maven;
 
 
-import java.io.File;
 import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.net.URLClassLoader;
 import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
 import javax.lang.model.element.Modifier;
 
 import com.fasterxml.jackson.annotation.JsonAlias;
 import com.fasterxml.jackson.annotation.JsonTypeInfo;
-import com.fasterxml.jackson.core.Version;
-import com.fasterxml.jackson.databind.Module;
 import com.squareup.javapoet.AnnotationSpec;
 import com.squareup.javapoet.CodeBlock;
 import com.squareup.javapoet.JavaFile;
@@ -44,38 +32,18 @@ import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.model.language.ExpressionDefinition;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.text.WordUtils;
-import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
-import org.apache.maven.project.MavenProject;
-import org.jboss.jandex.AnnotationInstance;
-import org.jboss.jandex.AnnotationValue;
-import org.jboss.jandex.ClassInfo;
-import org.jboss.jandex.CompositeIndex;
-import org.jboss.jandex.DotName;
-import org.jboss.jandex.IndexReader;
-import org.jboss.jandex.IndexView;
 
 @Mojo(
-    name = "generate-yaml-support-classes",
+    name = "generate-yaml-parser-support-classes",
     inheritByDefault = false,
     defaultPhase = LifecyclePhase.GENERATE_SOURCES,
     requiresDependencyResolution = ResolutionScope.COMPILE,
-    threadSafe = true,
-    requiresProject = false)
-public class GenerateYamlSupportClasses extends AbstractMojo {
-    public static final DotName EXPRESSION_DEFINITION_CLASS = DotName.createSimple("org.apache.camel.model.language.ExpressionDefinition");
-    public static final DotName DATAFORMAT_DEFINITION_CLASS = DotName.createSimple("org.apache.camel.model.DataFormatDefinition");
-    public static final DotName XMLROOTELEMENT_ANNOTATION_CLASS = DotName.createSimple("javax.xml.bind.annotation.XmlRootElement");
-
-    @Parameter(readonly = true)
-    private MavenProject project;
-    @Parameter(defaultValue = "${project.build.directory}/generated-sources/camel")
-    private String output;
-
+    threadSafe = true)
+public class GenerateYamlParserSupportClasses extends GenerateYamlSupport {
     @Override
     public void execute() throws MojoFailureException {
         try {
@@ -87,10 +55,6 @@ public class GenerateYamlSupportClasses extends AbstractMojo {
                 .indent("    ")
                 .build()
                 .writeTo(Paths.get(output));
-            JavaFile.builder("org.apache.camel.k.loader.yaml", generateJacksonModule())
-                .indent("    ")
-                .build()
-                .writeTo(Paths.get(output));
         } catch (IOException e) {
             throw new MojoFailureException(e.getMessage());
         }
@@ -196,101 +160,4 @@ public class GenerateYamlSupportClasses extends AbstractMojo {
 
         return type.build();
     }
-
-    public final TypeSpec generateJacksonModule() {
-        TypeSpec.Builder type = TypeSpec.classBuilder("YamlModule");
-        type.addModifiers(Modifier.PUBLIC, Modifier.FINAL);
-        type.superclass(Module.class);
-        type.addMethod(
-            MethodSpec.methodBuilder("getModuleName")
-                .addModifiers(Modifier.PUBLIC)
-                .addAnnotation(Override.class)
-                .returns(String.class)
-                .addCode(CodeBlock.builder().addStatement("return $S", "camel-yaml").build())
-                .build()
-        );
-        type.addMethod(
-            MethodSpec.methodBuilder("version")
-                .addModifiers(Modifier.PUBLIC)
-                .addAnnotation(Override.class)
-                .returns(Version.class)
-                .addCode(CodeBlock.builder().addStatement("return $L", "Version.unknownVersion()").build())
-                .build()
-        );
-
-        MethodSpec.Builder mb = MethodSpec.methodBuilder("setupModule")
-            .addModifiers(Modifier.PUBLIC)
-            .addParameter(Module.SetupContext.class, "context");
-
-        definitions(EXPRESSION_DEFINITION_CLASS).forEach(
-            (k, v) -> mb.addStatement("context.registerSubtypes(new com.fasterxml.jackson.databind.jsontype.NamedType($T.class, $S))", v, k)
-        );
-        definitions(DATAFORMAT_DEFINITION_CLASS).forEach(
-            (k, v) -> mb.addStatement("context.registerSubtypes(new com.fasterxml.jackson.databind.jsontype.NamedType($T.class, $S))", v, k)
-        );
-
-        type.addMethod(mb.build());
-
-        return type.build();
-    }
-
-    private Map<String, Class<?>> definitions(DotName type) {
-        ClassLoader cl = getClassLoader();
-        Map<String, Class<?>> definitions = new HashMap<>();
-        IndexView view = getCompositeIndexer(cl);
-
-        for (ClassInfo ci: view.getAllKnownSubclasses(type)) {
-            AnnotationInstance instance = ci.classAnnotation(XMLROOTELEMENT_ANNOTATION_CLASS);
-            if (instance != null) {
-                AnnotationValue name = instance.value("name");
-                if (name != null) {
-                    try {
-                        definitions.put(name.asString(), cl.loadClass(ci.name().toString()));
-                    } catch (ClassNotFoundException e) {
-                        throw new RuntimeException(e);
-                    }
-                }
-            }
-        }
-
-        return Collections.unmodifiableMap(definitions);
-    }
-
-    private static IndexView getCompositeIndexer(ClassLoader classLoader) {
-        try {
-            Enumeration<URL> elements = classLoader.getResources("META-INF/jandex.idx");
-            List<IndexView> allIndex = new ArrayList<>();
-
-            for (Enumeration<URL> e = elements; e.hasMoreElements();) {
-                try (InputStream is = e.nextElement().openStream()) {
-                    allIndex.add(new IndexReader(is).read());
-                }
-            }
-
-            return CompositeIndex.create(allIndex);
-
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    private ClassLoader getClassLoader() {
-        if (project == null) {
-            return getClass().getClassLoader();
-        }
-
-        try {
-            List<String> elements = new ArrayList<>();
-            elements.addAll(project.getCompileClasspathElements());
-            elements.addAll(project.getRuntimeClasspathElements());
-
-            URL urls[] = new URL[elements.size()];
-            for (int i = 0; i < elements.size(); ++i) {
-                urls[i] = new File(elements.get(i)).toURI().toURL();
-            }
-            return new URLClassLoader(urls, this.getClass().getClassLoader());
-        } catch (Exception e) {
-            return this.getClass().getClassLoader();
-        }
-    }
 }
diff --git a/tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateYamlSupport.java b/tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateYamlSupport.java
new file mode 100644
index 0000000..055c4dd
--- /dev/null
+++ b/tooling/camel-k-maven-plugin/src/main/java/org/apache/camel/k/tooling/maven/GenerateYamlSupport.java
@@ -0,0 +1,138 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.k.tooling.maven;
+
+
+import java.io.File;
+import java.io.InputStream;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Stream;
+
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.project.MavenProject;
+import org.jboss.jandex.AnnotationInstance;
+import org.jboss.jandex.AnnotationTarget;
+import org.jboss.jandex.AnnotationValue;
+import org.jboss.jandex.ClassInfo;
+import org.jboss.jandex.CompositeIndex;
+import org.jboss.jandex.DotName;
+import org.jboss.jandex.IndexReader;
+import org.jboss.jandex.IndexView;
+
+public abstract class GenerateYamlSupport extends AbstractMojo {
+    public static final DotName EXPRESSION_DEFINITION_CLASS = DotName.createSimple("org.apache.camel.model.language.ExpressionDefinition");
+    public static final DotName DATAFORMAT_DEFINITION_CLASS = DotName.createSimple("org.apache.camel.model.DataFormatDefinition");
+    public static final DotName XMLROOTELEMENT_ANNOTATION_CLASS = DotName.createSimple("javax.xml.bind.annotation.XmlRootElement");
+    public static final DotName YAML_STEP_DEFINITION_CLASS = DotName.createSimple("org.apache.camel.k.loader.yaml.model.Step$Definition");
+    public static final DotName YAML_STEP_PARSER_ANNOTATION = DotName.createSimple("org.apache.camel.k.annotation.yaml.YAMLStepParser");
+    public static final DotName YAML_STEP_DEFINITION_ANNOTATION = DotName.createSimple("org.apache.camel.k.annotation.yaml.YAMLNodeDefinition");
+
+    @Parameter(defaultValue = "${project}", readonly = true, required = true)
+    protected MavenProject project;
+    @Parameter(defaultValue = "${project.build.directory}/generated-sources/camel")
+    protected String output;
+
+    protected Map<String, Class<?>> definitions(DotName type) {
+        ClassLoader cl = getClassLoader();
+        Map<String, Class<?>> definitions = new HashMap<>();
+        IndexView view = getCompositeIndexer(cl);
+
+        for (ClassInfo ci: view.getAllKnownSubclasses(type)) {
+            AnnotationInstance instance = ci.classAnnotation(XMLROOTELEMENT_ANNOTATION_CLASS);
+            if (instance != null) {
+                AnnotationValue name = instance.value("name");
+                if (name != null) {
+                    try {
+                        definitions.put(name.asString(), cl.loadClass(ci.name().toString()));
+                    } catch (ClassNotFoundException e) {
+                        throw new RuntimeException(e);
+                    }
+                }
+            }
+        }
+
+        return Collections.unmodifiableMap(definitions);
+    }
+
+    protected Stream<ClassInfo> implementors(DotName type) {
+        ClassLoader cl = getClassLoader();
+        IndexView view = getCompositeIndexer(cl);
+
+        return view.getAllKnownImplementors(type).stream();
+    }
+
+    protected Stream<ClassInfo> annotated(DotName type) {
+        ClassLoader cl = getClassLoader();
+        IndexView view = getCompositeIndexer(cl);
+
+
+        return view.getAnnotations(type).stream()
+            .map(AnnotationInstance::target)
+            .filter(t -> t.kind() == AnnotationTarget.Kind.CLASS)
+            .map(AnnotationTarget::asClass);
+    }
+
+    protected static IndexView getCompositeIndexer(ClassLoader classLoader) {
+        try {
+            Enumeration<URL> elements = classLoader.getResources("META-INF/jandex.idx");
+            List<IndexView> allIndex = new ArrayList<>();
+            Set<URL> locations = new HashSet<>();
+
+            for (Enumeration<URL> e = elements; e.hasMoreElements();) {
+                URL url = e.nextElement();
+                if (locations.add(url)) {
+                    try (InputStream is = url.openStream()) {
+                        allIndex.add(new IndexReader(is).read());
+                    }
+                }
+            }
+
+            return CompositeIndex.create(allIndex);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    protected ClassLoader getClassLoader() {
+        if (project == null) {
+            return getClass().getClassLoader();
+        }
+
+        try {
+            List<String> elements = new ArrayList<>();
+            elements.addAll(project.getCompileClasspathElements());
+
+            URL urls[] = new URL[elements.size()];
+            for (int i = 0; i < elements.size(); ++i) {
+                urls[i] = new File(elements.get(i)).toURI().toURL();
+            }
+            return new URLClassLoader(urls, this.getClass().getClassLoader());
+        } catch (Exception e) {
+            return this.getClass().getClassLoader();
+        }
+    }
+}
diff --git a/tooling/camel-k-maven-plugin/src/test/java/org/apache/camel/k/tooling/maven/processors/GenerateYamlSupportClassesTest.java b/tooling/camel-k-maven-plugin/src/test/java/org/apache/camel/k/tooling/maven/processors/GenerateYamlSupportClassesTest.java
index 27784f1..52bfb26 100644
--- a/tooling/camel-k-maven-plugin/src/test/java/org/apache/camel/k/tooling/maven/processors/GenerateYamlSupportClassesTest.java
+++ b/tooling/camel-k-maven-plugin/src/test/java/org/apache/camel/k/tooling/maven/processors/GenerateYamlSupportClassesTest.java
@@ -18,7 +18,8 @@ package org.apache.camel.k.tooling.maven.processors;
 
 import com.squareup.javapoet.JavaFile;
 import com.squareup.javapoet.TypeSpec;
-import org.apache.camel.k.tooling.maven.GenerateYamlSupportClasses;
+import org.apache.camel.k.tooling.maven.GenerateYamlLoaderSupportClasses;
+import org.apache.camel.k.tooling.maven.GenerateYamlParserSupportClasses;
 import org.junit.jupiter.api.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
@@ -26,7 +27,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 public class GenerateYamlSupportClassesTest {
     @Test
     public void testGenerateHasDataFormat() {
-        final TypeSpec spec = new GenerateYamlSupportClasses().generateHasDataFormat();
+        final TypeSpec spec = new GenerateYamlParserSupportClasses().generateHasDataFormat();
         final JavaFile file = JavaFile.builder("org.apache.camel.k.loader.yaml.parser", spec).build();
 
         assertThat(file.packageName).isEqualTo("org.apache.camel.k.loader.yaml.parser");
@@ -36,7 +37,7 @@ public class GenerateYamlSupportClassesTest {
 
     @Test
     public void testGenerateHasExpression() {
-        final TypeSpec spec = new GenerateYamlSupportClasses().generateHasExpression();
+        final TypeSpec spec = new GenerateYamlParserSupportClasses().generateHasExpression();
         final JavaFile file = JavaFile.builder("org.apache.camel.k.loader.yaml.parser", spec).build();
 
         assertThat(file.packageName).isEqualTo("org.apache.camel.k.loader.yaml.parser");
@@ -46,7 +47,7 @@ public class GenerateYamlSupportClassesTest {
 
     @Test
     public void testGenerateJacksonModule() {
-        final TypeSpec spec = new GenerateYamlSupportClasses().generateJacksonModule();
+        final TypeSpec spec = new GenerateYamlLoaderSupportClasses().generateJacksonModule();
         final JavaFile file = JavaFile.builder("org.apache.camel.k.loader.yaml", spec).build();
 
         assertThat(file.packageName).isEqualTo("org.apache.camel.k.loader.yaml");