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

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

commit f548b81000ccbd2888c2dd1cdf47c9f96217fb3a
Author: Guillaume Nodet <[email protected]>
AuthorDate: Mon Mar 30 14:06:52 2020 +0200

    camel 3.2-snapshot
---
 docs/modules/ROOT/pages/cdi.adoc                   |   2 +-
 .../src/main/java/org/acme/timer/TimerRoute.java   |   2 +-
 .../src/main/java/org/acme/timer/TimerRoute.java   |   2 +-
 .../src/main/resources/routes/my-routes.xml        |   2 +-
 .../src/main/java/org/acme/timer/TimerRoute.java   |   2 +-
 .../core/deployment/NativeImageProcessor.java      |  34 +++-
 .../org/apache/camel/quarkus/core/BaseModel.java   |  59 +-----
 .../org/apache/camel/quarkus/core/CamelMain.java   |   8 +-
 .../camel/quarkus/core/CamelMainRecorder.java      |   1 -
 .../apache/camel/quarkus/core/CamelRecorder.java   |   2 +-
 .../quarkus/core/DisabledValidateReifier.java      |   6 +-
 .../camel/quarkus/core/FastCamelContext.java       | 225 ++++++++++++---------
 .../org/apache/camel/quarkus/core/FastModel.java   | 195 ------------------
 .../camel/quarkus/core/FastTypeConverter.java      |   5 +-
 .../component/xml/jaxb/XmlJaxbRecorder.java        |   2 +-
 .../component/qute/QuteComponentConfigurer.java    |  32 ++-
 .../component/qute/QuteEndpointConfigurer.java     |  36 +++-
 .../org/apache/camel/component/qute/qute.json      |   1 +
 18 files changed, 245 insertions(+), 371 deletions(-)

diff --git a/docs/modules/ROOT/pages/cdi.adoc b/docs/modules/ROOT/pages/cdi.adoc
index e9f1420..f858973 100644
--- a/docs/modules/ROOT/pages/cdi.adoc
+++ b/docs/modules/ROOT/pages/cdi.adoc
@@ -15,7 +15,7 @@ import org.eclipse.microprofile.config.inject.ConfigProperty;
 @ApplicationScoped <1>
 public class TimerRoute extends RouteBuilder {
 
-    @ConfigProperty(name = "timer.period", defaultValue = "1s") <2>
+    @ConfigProperty(name = "timer.period", defaultValue = "1000") <2>
     String period;
 
     @Inject
diff --git 
a/examples/timer-log-cdi/src/main/java/org/acme/timer/TimerRoute.java 
b/examples/timer-log-cdi/src/main/java/org/acme/timer/TimerRoute.java
index 8052005..0e0056f 100644
--- a/examples/timer-log-cdi/src/main/java/org/acme/timer/TimerRoute.java
+++ b/examples/timer-log-cdi/src/main/java/org/acme/timer/TimerRoute.java
@@ -32,7 +32,7 @@ import org.eclipse.microprofile.config.inject.ConfigProperty;
 public class TimerRoute extends RouteBuilder {
 
     /** {@code timer.period} is defined in {@code 
src/main/resources/application.properties} */
-    @ConfigProperty(name = "timer.period", defaultValue = "1s")
+    @ConfigProperty(name = "timer.period", defaultValue = "1000")
     String period;
 
     /** An injected bean */
diff --git 
a/examples/timer-log-spring/src/main/java/org/acme/timer/TimerRoute.java 
b/examples/timer-log-spring/src/main/java/org/acme/timer/TimerRoute.java
index 21c07bd..a7cdd61 100644
--- a/examples/timer-log-spring/src/main/java/org/acme/timer/TimerRoute.java
+++ b/examples/timer-log-spring/src/main/java/org/acme/timer/TimerRoute.java
@@ -31,7 +31,7 @@ public class TimerRoute extends RouteBuilder {
      * {@code timer.period} is defined in {@code 
src/main/resources/application.properties}
      */
     @Value("timer.period")
-    String period = "1s";
+    String period = "1000";
 
     /**
      * An injected bean
diff --git a/examples/timer-log-xml/src/main/resources/routes/my-routes.xml 
b/examples/timer-log-xml/src/main/resources/routes/my-routes.xml
index 42fd73f..ed63c39 100644
--- a/examples/timer-log-xml/src/main/resources/routes/my-routes.xml
+++ b/examples/timer-log-xml/src/main/resources/routes/my-routes.xml
@@ -24,7 +24,7 @@
             http://camel.apache.org/schema/spring/camel-spring.xsd";>
 
     <route id="xml-route">
-        <from uri="timer:from-xml?period=1s"/>
+        <from uri="timer:from-xml?period=1000"/>
         <log message="Hello XML!"/>
     </route>
 
diff --git a/examples/timer-log/src/main/java/org/acme/timer/TimerRoute.java 
b/examples/timer-log/src/main/java/org/acme/timer/TimerRoute.java
index 70b8bd7..0a3b0b9 100644
--- a/examples/timer-log/src/main/java/org/acme/timer/TimerRoute.java
+++ b/examples/timer-log/src/main/java/org/acme/timer/TimerRoute.java
@@ -22,7 +22,7 @@ public class TimerRoute extends RouteBuilder {
 
     @Override
     public void configure() throws Exception {
-        from("timer:foo?period=1s")
+        from("timer:foo?period=1000")
                 .log("Hello World");
     }
 }
diff --git 
a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/NativeImageProcessor.java
 
b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/NativeImageProcessor.java
index 0daef50..c055309 100644
--- 
a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/NativeImageProcessor.java
+++ 
b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/NativeImageProcessor.java
@@ -33,6 +33,7 @@ import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
 import 
io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveMethodBuildItem;
+import 
io.quarkus.deployment.builditem.nativeimage.RuntimeReinitializedClassBuildItem;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Component;
 import org.apache.camel.Consumer;
@@ -85,7 +86,7 @@ public class NativeImageProcessor {
                 PropertiesComponent.class,
                 DataFormat.class);
 
-        @BuildStep
+        //        @BuildStep
         void reflectiveItems(
                 CombinedIndexBuildItem combinedIndex,
                 BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
@@ -138,7 +139,7 @@ public class NativeImageProcessor {
 
         }
 
-        @BuildStep
+        //        @BuildStep
         void camelServices(
                 List<CamelServiceBuildItem> camelServices,
                 BuildProducer<ReflectiveClassBuildItem> reflectiveClass) {
@@ -292,16 +293,16 @@ public class NativeImageProcessor {
             //
             camelRoutesBuilders.forEach(camelRoutesBuilderClassBuildItem -> {
                 reflectiveClass.produce(
-                        new ReflectiveClassBuildItem(true, true, 
camelRoutesBuilderClassBuildItem.getDotName().toString()));
+                        new ReflectiveClassBuildItem(false, false, 
camelRoutesBuilderClassBuildItem.getDotName().toString()));
             });
 
-            reflectiveClass.produce(new ReflectiveClassBuildItem(
-                    true,
-                    false,
-                    org.apache.camel.main.DefaultConfigurationProperties.class,
-                    org.apache.camel.main.MainConfigurationProperties.class,
-                    org.apache.camel.main.HystrixConfigurationProperties.class,
-                    org.apache.camel.main.RestConfigurationProperties.class));
+            //            reflectiveClass.produce(new ReflectiveClassBuildItem(
+            //                    true,
+            //                    false,
+            //                    
org.apache.camel.main.DefaultConfigurationProperties.class,
+            //                    
org.apache.camel.main.MainConfigurationProperties.class,
+            //                    
org.apache.camel.main.HystrixConfigurationProperties.class,
+            //                    
org.apache.camel.main.RestConfigurationProperties.class));
 
             // TODO: The classes below are needed to fix 
https://github.com/apache/camel-quarkus/issues/1005
             //       but we need to investigate why it does not fail with Java 
1.8
@@ -314,4 +315,17 @@ public class NativeImageProcessor {
                     org.apache.camel.spi.RestConfiguration.class));
         }
     }
+
+    @BuildStep
+    void process(BuildProducer<RuntimeReinitializedClassBuildItem> 
reinitialized) {
+        for (String s : Arrays.asList(
+                "sun.security.jca.JCAUtil",
+                "sun.security.jca.JCAUtil$CachedSecureRandomHolder",
+                "sun.security.provider.SecureRandom$SeederHolder",
+                "sun.security.provider.SeedGenerator",
+                "java.security.SecureRandom",
+                "java.net.DefaultDatagramSocketImplFactory")) {
+            reinitialized.produce(new RuntimeReinitializedClassBuildItem(s));
+        }
+    }
 }
diff --git 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/BaseModel.java
 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/BaseModel.java
index 0a11942..2ccfc61 100644
--- 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/BaseModel.java
+++ 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/BaseModel.java
@@ -16,28 +16,13 @@
  */
 package org.apache.camel.quarkus.core;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.function.Function;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.ExtendedCamelContext;
-import org.apache.camel.FailedToStartRouteException;
-import org.apache.camel.model.DataFormatDefinition;
-import org.apache.camel.model.HystrixConfigurationDefinition;
-import org.apache.camel.model.Model;
-import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.model.ProcessorDefinitionHelper;
-import org.apache.camel.model.Resilience4jConfigurationDefinition;
-import org.apache.camel.model.RouteDefinition;
-import org.apache.camel.model.RouteDefinitionHelper;
-import org.apache.camel.model.RouteFilters;
+import org.apache.camel.model.*;
 import org.apache.camel.model.cloud.ServiceCallConfigurationDefinition;
 import org.apache.camel.model.rest.RestDefinition;
 import org.apache.camel.model.transformer.TransformerDefinition;
@@ -80,7 +65,7 @@ public abstract class BaseModel implements Model {
         removeRouteDefinitions(list);
         this.routeDefinitions.addAll(list);
         if (shouldStartRoutes()) {
-            startRouteDefinitions(list);
+            
getCamelContext().adapt(ModelCamelContext.class).startRouteDefinitions(list);
         }
     }
 
@@ -256,7 +241,7 @@ public abstract class BaseModel implements Model {
     }
 
     @Override
-    public <T extends ProcessorDefinition> T getProcessorDefinition(String id, 
Class<T> type) {
+    public <T extends ProcessorDefinition<T>> T getProcessorDefinition(String 
id, Class<T> type) {
         ProcessorDefinition answer = getProcessorDefinition(id);
         if (answer != null) {
             return type.cast(answer);
@@ -295,11 +280,6 @@ public abstract class BaseModel implements Model {
     }
 
     @Override
-    public void startRouteDefinitions() throws Exception {
-        startRouteDefinitions(routeDefinitions);
-    }
-
-    @Override
     public void setRouteFilterPattern(String include, String exclude) {
         setRouteFilter(RouteFilters.filterByPattern(include, exclude));
     }
@@ -314,37 +294,6 @@ public abstract class BaseModel implements Model {
         this.routeFilter = routeFilter;
     }
 
-    protected void startRouteDefinitions(Collection<RouteDefinition> list) 
throws Exception {
-        if (list != null) {
-            for (RouteDefinition route : list) {
-                startRoute(route);
-            }
-        }
-    }
-
-    public void startRoute(RouteDefinition routeDefinition) throws Exception {
-        prepare(routeDefinition);
-        start(routeDefinition);
-    }
-
-    protected void prepare(RouteDefinition routeDefinition) throws Exception {
-        // assign ids to the routes and validate that the id's is all unique
-        RouteDefinitionHelper.forceAssignIds(camelContext, routeDefinitions);
-        String duplicate = 
RouteDefinitionHelper.validateUniqueIds(routeDefinition, routeDefinitions);
-        if (duplicate != null) {
-            throw new FailedToStartRouteException(routeDefinition.getId(),
-                    "duplicate id detected: " + duplicate + ". Please correct 
ids to be unique among all your routes.");
-        }
-
-        // must ensure route is prepared, before we can start it
-        if (!routeDefinition.isPrepared()) {
-            RouteDefinitionHelper.prepareRoute(camelContext, routeDefinition);
-            routeDefinition.markPrepared();
-        }
-    }
-
-    protected abstract void start(RouteDefinition routeDefinition) throws 
Exception;
-
     /**
      * Should we start newly added routes?
      */
diff --git 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMain.java
 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMain.java
index a83862c..34cfa37 100644
--- 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMain.java
+++ 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMain.java
@@ -41,12 +41,18 @@ public class CamelMain extends BaseMainSupport implements 
CamelContextAware {
     }
 
     @Override
+    protected void doInit() throws Exception {
+        super.doInit();
+        postProcessCamelContext(getCamelContext());
+        getCamelContext().init();
+    }
+
+    @Override
     protected void doStart() throws Exception {
         for (MainListener listener : listeners) {
             listener.beforeStart(this);
         }
 
-        postProcessCamelContext(getCamelContext());
         getCamelContext().start();
 
         for (MainListener listener : listeners) {
diff --git 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java
 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java
index ec0d238..8542ee6 100644
--- 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java
+++ 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java
@@ -93,7 +93,6 @@ public class CamelMainRecorder {
         });
 
         try {
-            main.getValue().init();
             main.getValue().start();
         } catch (Exception e) {
             throw new RuntimeException(e);
diff --git 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java
 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java
index 56c37e5..95770b0 100644
--- 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java
+++ 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java
@@ -80,7 +80,7 @@ public class CamelRecorder {
         context.setTypeConverterRegistry(typeConverterRegistry.getValue());
         context.setLoadTypeConverters(false);
         context.setModelJAXBContextFactory(contextFactory.getValue());
-        context.init();
+        context.build();
 
         // register to the container
         beanContainer.instance(CamelProducers.class).setContext(context);
diff --git 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledValidateReifier.java
 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledValidateReifier.java
index 911bfe7..a9b8144 100644
--- 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledValidateReifier.java
+++ 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledValidateReifier.java
@@ -17,15 +17,15 @@
 package org.apache.camel.quarkus.core;
 
 import org.apache.camel.Processor;
+import org.apache.camel.Route;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.ValidateDefinition;
 import org.apache.camel.reifier.ProcessorReifier;
-import org.apache.camel.spi.RouteContext;
 
 public class DisabledValidateReifier extends 
ProcessorReifier<ValidateDefinition> {
 
-    public DisabledValidateReifier(RouteContext routeContext, 
ProcessorDefinition<?> definition) {
-        super(routeContext, (ValidateDefinition) definition);
+    public DisabledValidateReifier(Route route, ProcessorDefinition<?> 
definition) {
+        super(route, (ValidateDefinition) definition);
     }
 
     @Override
diff --git 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
index f0d0493..768a48f 100644
--- 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
+++ 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
@@ -24,105 +24,33 @@ import java.util.Map;
 import java.util.concurrent.ExecutorService;
 import java.util.function.Function;
 
-import org.apache.camel.AsyncProcessor;
-import org.apache.camel.CatalogCamelContext;
-import org.apache.camel.Component;
-import org.apache.camel.Endpoint;
-import org.apache.camel.Processor;
-import org.apache.camel.TypeConverter;
+import org.apache.camel.*;
+import org.apache.camel.builder.AdviceWithRouteBuilder;
 import org.apache.camel.catalog.RuntimeCamelCatalog;
 import org.apache.camel.catalog.impl.DefaultRuntimeCamelCatalog;
 import 
org.apache.camel.component.microprofile.config.CamelMicroProfilePropertiesSource;
 import org.apache.camel.health.HealthCheckRegistry;
 import org.apache.camel.impl.DefaultExecutorServiceManager;
-import org.apache.camel.impl.engine.AbstractCamelContext;
-import org.apache.camel.impl.engine.BeanProcessorFactoryResolver;
-import org.apache.camel.impl.engine.BeanProxyFactoryResolver;
-import org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager;
-import org.apache.camel.impl.engine.DefaultBeanIntrospection;
-import org.apache.camel.impl.engine.DefaultCamelBeanPostProcessor;
-import org.apache.camel.impl.engine.DefaultCamelContextNameStrategy;
-import org.apache.camel.impl.engine.DefaultClassResolver;
-import org.apache.camel.impl.engine.DefaultComponentResolver;
-import org.apache.camel.impl.engine.DefaultConfigurerResolver;
-import org.apache.camel.impl.engine.DefaultDataFormatResolver;
-import org.apache.camel.impl.engine.DefaultEndpointRegistry;
-import org.apache.camel.impl.engine.DefaultInflightRepository;
-import org.apache.camel.impl.engine.DefaultInjector;
-import org.apache.camel.impl.engine.DefaultLanguageResolver;
-import org.apache.camel.impl.engine.DefaultMessageHistoryFactory;
-import org.apache.camel.impl.engine.DefaultNodeIdFactory;
-import org.apache.camel.impl.engine.DefaultPackageScanClassResolver;
-import org.apache.camel.impl.engine.DefaultPackageScanResourceResolver;
-import org.apache.camel.impl.engine.DefaultProcessorFactory;
-import org.apache.camel.impl.engine.DefaultReactiveExecutor;
-import org.apache.camel.impl.engine.DefaultRouteController;
-import org.apache.camel.impl.engine.DefaultStreamCachingStrategy;
-import org.apache.camel.impl.engine.DefaultTracer;
-import org.apache.camel.impl.engine.DefaultTransformerRegistry;
-import org.apache.camel.impl.engine.DefaultUnitOfWorkFactory;
-import org.apache.camel.impl.engine.DefaultValidatorRegistry;
-import org.apache.camel.impl.engine.EndpointKey;
-import org.apache.camel.impl.engine.HeadersMapFactoryResolver;
-import org.apache.camel.impl.engine.RestRegistryFactoryResolver;
+import org.apache.camel.impl.engine.*;
 import org.apache.camel.impl.health.DefaultHealthCheckRegistry;
 import org.apache.camel.impl.transformer.TransformerKey;
 import org.apache.camel.impl.validator.ValidatorKey;
-import org.apache.camel.model.DataFormatDefinition;
-import org.apache.camel.model.HystrixConfigurationDefinition;
-import org.apache.camel.model.Model;
-import org.apache.camel.model.ModelCamelContext;
-import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.model.Resilience4jConfigurationDefinition;
-import org.apache.camel.model.RouteDefinition;
+import org.apache.camel.model.*;
 import org.apache.camel.model.cloud.ServiceCallConfigurationDefinition;
+import org.apache.camel.model.language.ExpressionDefinition;
 import org.apache.camel.model.rest.RestDefinition;
 import org.apache.camel.model.transformer.TransformerDefinition;
 import org.apache.camel.model.validator.ValidatorDefinition;
 import org.apache.camel.processor.MulticastProcessor;
-import org.apache.camel.spi.AsyncProcessorAwaitManager;
-import org.apache.camel.spi.BeanIntrospection;
-import org.apache.camel.spi.BeanProcessorFactory;
-import org.apache.camel.spi.BeanProxyFactory;
-import org.apache.camel.spi.CamelBeanPostProcessor;
-import org.apache.camel.spi.CamelContextNameStrategy;
-import org.apache.camel.spi.ClassResolver;
-import org.apache.camel.spi.ComponentResolver;
-import org.apache.camel.spi.ConfigurerResolver;
-import org.apache.camel.spi.DataFormat;
-import org.apache.camel.spi.DataFormatResolver;
-import org.apache.camel.spi.EndpointRegistry;
-import org.apache.camel.spi.ExecutorServiceManager;
-import org.apache.camel.spi.FactoryFinderResolver;
-import org.apache.camel.spi.HeadersMapFactory;
-import org.apache.camel.spi.InflightRepository;
-import org.apache.camel.spi.Injector;
-import org.apache.camel.spi.Language;
-import org.apache.camel.spi.LanguageResolver;
-import org.apache.camel.spi.ManagementNameStrategy;
-import org.apache.camel.spi.MessageHistoryFactory;
-import org.apache.camel.spi.ModelJAXBContextFactory;
-import org.apache.camel.spi.ModelToXMLDumper;
-import org.apache.camel.spi.NodeIdFactory;
-import org.apache.camel.spi.PackageScanClassResolver;
-import org.apache.camel.spi.PackageScanResourceResolver;
-import org.apache.camel.spi.ProcessorFactory;
-import org.apache.camel.spi.PropertiesComponent;
-import org.apache.camel.spi.ReactiveExecutor;
-import org.apache.camel.spi.Registry;
-import org.apache.camel.spi.RestRegistryFactory;
-import org.apache.camel.spi.RouteController;
-import org.apache.camel.spi.ShutdownStrategy;
-import org.apache.camel.spi.StreamCachingStrategy;
-import org.apache.camel.spi.Tracer;
-import org.apache.camel.spi.TransformerRegistry;
-import org.apache.camel.spi.TypeConverterRegistry;
-import org.apache.camel.spi.UnitOfWorkFactory;
-import org.apache.camel.spi.UuidGenerator;
-import org.apache.camel.spi.ValidatorRegistry;
-import org.apache.camel.spi.XMLRoutesDefinitionLoader;
+import org.apache.camel.reifier.RouteReifier;
+import org.apache.camel.reifier.errorhandler.ErrorHandlerReifier;
+import org.apache.camel.reifier.language.ExpressionReifier;
+import org.apache.camel.reifier.transformer.TransformerReifier;
+import org.apache.camel.reifier.validator.ValidatorReifier;
+import org.apache.camel.spi.*;
 import org.apache.camel.support.CamelContextHelper;
 import org.apache.camel.util.IOHelper;
+import org.apache.camel.util.ObjectHelper;
 
 public class FastCamelContext extends AbstractCamelContext implements 
CatalogCamelContext, ModelCamelContext {
     private final Model model;
@@ -285,17 +213,25 @@ public class FastCamelContext extends 
AbstractCamelContext implements CatalogCam
 
     @Override
     protected HeadersMapFactory createHeadersMapFactory() {
-        return new HeadersMapFactoryResolver().resolve(this);
+        return new BaseServiceResolver<>(HeadersMapFactory.FACTORY, 
HeadersMapFactory.class)
+                .resolve(getCamelContextReference())
+                .orElseGet(DefaultHeadersMapFactory::new);
     }
 
     @Override
     protected BeanProxyFactory createBeanProxyFactory() {
-        return new BeanProxyFactoryResolver().resolve(this);
+        return new BaseServiceResolver<>(BeanProxyFactory.FACTORY, 
BeanProxyFactory.class)
+                .resolve(getCamelContextReference())
+                .orElseThrow(() -> new IllegalArgumentException("Cannot find 
BeanProxyFactory on classpath. "
+                        + "Add camel-bean to classpath."));
     }
 
     @Override
     protected BeanProcessorFactory createBeanProcessorFactory() {
-        return new BeanProcessorFactoryResolver().resolve(this);
+        return new BaseServiceResolver<>(BeanProcessorFactory.FACTORY, 
BeanProcessorFactory.class)
+                .resolve(getCamelContextReference())
+                .orElseThrow(() -> new IllegalArgumentException("Cannot find 
BeanProcessorFactory on classpath. "
+                        + "Add camel-bean to classpath."));
     }
 
     @Override
@@ -357,7 +293,10 @@ public class FastCamelContext extends AbstractCamelContext 
implements CatalogCam
 
     @Override
     protected RestRegistryFactory createRestRegistryFactory() {
-        return new RestRegistryFactoryResolver().resolve(this);
+        return new BaseServiceResolver<>(RestRegistryFactory.FACTORY, 
RestRegistryFactory.class)
+                .resolve(getCamelContextReference())
+                .orElseThrow(() -> new IllegalArgumentException("Cannot find 
RestRegistryFactory on classpath. "
+                        + "Add camel-rest to classpath."));
     }
 
     @Override
@@ -388,8 +327,9 @@ public class FastCamelContext extends AbstractCamelContext 
implements CatalogCam
     @Override
     public AsyncProcessor createMulticast(Collection<Processor> processors, 
ExecutorService executor,
             boolean shutdownExecutorService) {
-        return new MulticastProcessor(this, processors, null, true, executor, 
shutdownExecutorService,
-                false, false, 0L, null, false, false);
+        return new MulticastProcessor(getCamelContextReference(), null, 
processors, null,
+                true, executor, shutdownExecutorService, false, false,
+                0, null, false, false);
     }
 
     @Override
@@ -398,6 +338,24 @@ public class FastCamelContext extends AbstractCamelContext 
implements CatalogCam
     }
 
     @Override
+    protected HealthCheckRegistry createHealthCheckRegistry() {
+        return new DefaultHealthCheckRegistry(this);
+    }
+
+    @Override
+    protected ComponentNameResolver createComponentNameResolver() {
+        return new DefaultComponentNameResolver();
+    }
+
+    @Override
+    protected RestBindingJaxbDataFormatFactory 
createRestBindingJaxbDataFormatFactory() {
+        return new 
BaseServiceResolver<>(RestBindingJaxbDataFormatFactory.FACTORY, 
RestBindingJaxbDataFormatFactory.class)
+                .resolve(getCamelContextReference())
+                .orElseThrow(() -> new IllegalArgumentException("Cannot find 
RestBindingJaxbDataFormatFactory on classpath. "
+                        + "Add camel-jaxb to classpath."));
+    }
+
+    @Override
     public void setTypeConverterRegistry(TypeConverterRegistry 
typeConverterRegistry) {
         super.setTypeConverterRegistry(typeConverterRegistry);
 
@@ -506,13 +464,22 @@ public class FastCamelContext extends 
AbstractCamelContext implements CatalogCam
         return null;
     }
 
+    @Override
+    public Processor createErrorHandler(Route route, Processor processor) 
throws Exception {
+        return ErrorHandlerReifier.reifier(route, 
route.getErrorHandlerFactory())
+                .createErrorHandler(processor);
+    }
+
     //
     // ModelCamelContext
     //
 
     @Override
     public void startRouteDefinitions() throws Exception {
-        model.startRouteDefinitions();
+        List<RouteDefinition> routeDefinitions = model.getRouteDefinitions();
+        if (routeDefinitions != null) {
+            startRouteDefinitions(routeDefinitions);
+        }
     }
 
     @Override
@@ -576,7 +543,7 @@ public class FastCamelContext extends AbstractCamelContext 
implements CatalogCam
     }
 
     @Override
-    public <T extends ProcessorDefinition> T getProcessorDefinition(String id, 
Class<T> type) {
+    public <T extends ProcessorDefinition<T>> T getProcessorDefinition(String 
id, Class<T> type) {
         return model.getProcessorDefinition(id, type);
     }
 
@@ -674,4 +641,78 @@ public class FastCamelContext extends AbstractCamelContext 
implements CatalogCam
     public Function<RouteDefinition, Boolean> getRouteFilter() {
         return model.getRouteFilter();
     }
+
+    @Override
+    public void startRouteDefinitions(List<RouteDefinition> routeDefinitions) 
throws Exception {
+        // indicate we are staring the route using this thread so
+        // we are able to query this if needed
+        boolean alreadyStartingRoutes = isStartingRoutes();
+        if (!alreadyStartingRoutes) {
+            setStartingRoutes(true);
+        }
+        try {
+            RouteDefinitionHelper.forceAssignIds(getCamelContextReference(), 
routeDefinitions);
+            for (RouteDefinition routeDefinition : routeDefinitions) {
+                // assign ids to the routes and validate that the id's is all 
unique
+                String duplicate = 
RouteDefinitionHelper.validateUniqueIds(routeDefinition, routeDefinitions);
+                if (duplicate != null) {
+                    throw new 
FailedToStartRouteException(routeDefinition.getId(),
+                            "duplicate id detected: " + duplicate + ". Please 
correct ids to be unique among all your routes.");
+                }
+
+                // must ensure route is prepared, before we can start it
+                if (!routeDefinition.isPrepared()) {
+                    
RouteDefinitionHelper.prepareRoute(getCamelContextReference(), routeDefinition);
+                    routeDefinition.markPrepared();
+                }
+
+                Route route = new RouteReifier(getCamelContextReference(), 
routeDefinition).createRoute();
+                RouteService routeService = new RouteService(route);
+                startRouteService(routeService, true);
+            }
+        } finally {
+            if (!alreadyStartingRoutes) {
+                setStartingRoutes(false);
+            }
+        }
+    }
+
+    @Override
+    public Expression createExpression(ExpressionDefinition definition) {
+        return ExpressionReifier.reifier(this, definition).createExpression();
+    }
+
+    @Override
+    public Predicate createPredicate(ExpressionDefinition definition) {
+        return ExpressionReifier.reifier(this, definition).createPredicate();
+    }
+
+    @Override
+    public RouteDefinition adviceWith(RouteDefinition definition, 
AdviceWithRouteBuilder builder) throws Exception {
+        return RouteReifier.adviceWith(definition, this, builder);
+    }
+
+    @Override
+    public void registerValidator(ValidatorDefinition def) {
+        model.getValidators().add(def);
+        Validator validator = ValidatorReifier.reifier(this, 
def).createValidator();
+        getValidatorRegistry().put(createValidatorKey(def), validator);
+    }
+
+    private static ValueHolder<String> createValidatorKey(ValidatorDefinition 
def) {
+        return new ValidatorKey(new DataType(def.getType()));
+    }
+
+    @Override
+    public void registerTransformer(TransformerDefinition def) {
+        model.getTransformers().add(def);
+        Transformer transformer = TransformerReifier.reifier(this, 
def).createTransformer();
+        getTransformerRegistry().put(createTransformerKey(def), transformer);
+    }
+
+    private static ValueHolder<String> 
createTransformerKey(TransformerDefinition def) {
+        return ObjectHelper.isNotEmpty(def.getScheme()) ? new 
TransformerKey(def.getScheme())
+                : new TransformerKey(new DataType(def.getFromType()), new 
DataType(def.getToType()));
+    }
+
 }
diff --git 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastModel.java
 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastModel.java
index 847cfcc..fd299a8 100644
--- 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastModel.java
+++ 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastModel.java
@@ -16,206 +16,11 @@
  */
 package org.apache.camel.quarkus.core;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.apache.camel.CamelContext;
-import org.apache.camel.ErrorHandlerFactory;
-import org.apache.camel.ExtendedCamelContext;
-import org.apache.camel.NamedNode;
-import org.apache.camel.Navigate;
-import org.apache.camel.Processor;
-import org.apache.camel.Route;
-import org.apache.camel.Service;
-import org.apache.camel.impl.engine.AbstractCamelContext;
-import org.apache.camel.impl.engine.BaseRouteService;
-import org.apache.camel.impl.engine.DefaultRouteContext;
-import org.apache.camel.model.OnCompletionDefinition;
-import org.apache.camel.model.OnExceptionDefinition;
-import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.model.RouteDefinition;
-import org.apache.camel.model.RouteDefinitionHelper;
-import org.apache.camel.processor.channel.DefaultChannel;
-import org.apache.camel.reifier.RouteReifier;
-import org.apache.camel.support.CamelContextHelper;
 
 public class FastModel extends BaseModel {
     public FastModel(CamelContext camelContext) {
         super(camelContext);
     }
 
-    @Override
-    protected void start(RouteDefinition routeDefinition) throws Exception {
-        // indicate we are staring the route using this thread so
-        // we are able to query this if needed
-        CamelContext camelContext = getCamelContext();
-        AbstractCamelContext mcc = 
camelContext.adapt(AbstractCamelContext.class);
-        mcc.setStartingRoutes(true);
-        try {
-            String id = 
routeDefinition.idOrCreate(camelContext.adapt(ExtendedCamelContext.class).getNodeIdFactory());
-            FastRouteContext routeContext = new FastRouteContext(camelContext, 
routeDefinition, id);
-            Route route = new RouteReifier(routeContext, 
routeDefinition).createRoute();
-            FastRouteService routeService = createRouteService(route);
-            mcc.startRouteService(routeService, true);
-        } finally {
-            // we are done staring routes
-            mcc.setStartingRoutes(false);
-        }
-    }
-
-    private FastRouteService createRouteService(Route route) {
-        Integer startupOrder;
-        String description;
-        boolean autoStartup;
-        boolean contextScopedErrorHandler;
-        List<Service> routeScopedServices;
-
-        RouteDefinition definition = (RouteDefinition) 
route.getRouteContext().getRoute();
-        startupOrder = definition.getStartupOrder();
-        description = 
RouteDefinitionHelper.getRouteMessage(definition.toString());
-
-        if (!route.getCamelContext().isAutoStartup()) {
-            autoStartup = false;
-        } else if (definition.getAutoStartup() == null) {
-            // should auto startup by default
-            autoStartup = true;
-        } else {
-            Boolean isAutoStartup = 
CamelContextHelper.parseBoolean(route.getCamelContext(), 
definition.getAutoStartup());
-            autoStartup = isAutoStartup != null && isAutoStartup;
-        }
-
-        if (!definition.isContextScopedErrorHandler()) {
-            contextScopedErrorHandler = false;
-        } else if (definition.getErrorHandlerRef() != null) {
-            // if error handler ref is configured it may refer to a context 
scoped, so we need to check this first
-            // the XML DSL will configure error handlers using refs, so we 
need this additional test
-            ErrorHandlerFactory routeScoped = 
route.getRouteContext().getErrorHandlerFactory();
-            ErrorHandlerFactory contextScoped = 
route.getCamelContext().adapt(ExtendedCamelContext.class)
-                    .getErrorHandlerFactory();
-            contextScopedErrorHandler = contextScoped != null && routeScoped 
== contextScoped;
-        } else {
-            contextScopedErrorHandler = true;
-        }
-
-        List<Service> services = new ArrayList<>();
-        for (ProcessorDefinition<?> output : definition.getOutputs()) {
-            if (output instanceof OnExceptionDefinition) {
-                OnExceptionDefinition onExceptionDefinition = 
(OnExceptionDefinition) output;
-                if (onExceptionDefinition.isRouteScoped()) {
-                    Processor errorHandler = 
route.getRouteContext().getOnException(onExceptionDefinition.getId());
-                    if (errorHandler instanceof Service) {
-                        services.add((Service) errorHandler);
-                    }
-                }
-            } else if (output instanceof OnCompletionDefinition) {
-                OnCompletionDefinition onCompletionDefinition = 
(OnCompletionDefinition) output;
-                if (onCompletionDefinition.isRouteScoped()) {
-                    Processor onCompletionProcessor = 
route.getRouteContext().getOnCompletion(onCompletionDefinition.getId());
-                    if (onCompletionProcessor instanceof Service) {
-                        services.add((Service) onCompletionProcessor);
-                    }
-                }
-            }
-        }
-        routeScopedServices = services;
-
-        FastRouteService routeService = new FastRouteService(route);
-        routeService.setStartupOrder(startupOrder);
-        routeService.setDescription(description);
-        routeService.setAutoStartup(autoStartup);
-        routeService.setContextScopedErrorHandler(contextScopedErrorHandler);
-        routeService.setRouteScopedServices(routeScopedServices);
-        return routeService;
-    }
-
-    static class FastRouteContext extends DefaultRouteContext {
-
-        private NamedNode route;
-
-        public FastRouteContext(CamelContext camelContext, NamedNode route, 
String routeId) {
-            super(camelContext, null, routeId);
-            this.route = route;
-        }
-
-        @Override
-        public NamedNode getRoute() {
-            return route;
-        }
-
-        @SuppressWarnings("unchecked")
-        private void clearModel(Processor nav) {
-            if (nav instanceof DefaultChannel) {
-                DefaultChannel channel = (DefaultChannel) nav;
-                channel.setDefinition(null);
-            }
-            if (nav instanceof Navigate) {
-                List<Processor> children = ((Navigate<Processor>) nav).next();
-                if (children != null) {
-                    for (Processor p : children) {
-                        clearModel(p);
-                    }
-                }
-            }
-        }
-
-    }
-
-    static class FastRouteService extends BaseRouteService {
-
-        private Integer startupOrder;
-        private String description;
-        private boolean autoStartup;
-        private boolean contextScopedErrorHandler;
-        private List<Service> routeScopedServices;
-
-        public FastRouteService(Route route) {
-            super(route);
-        }
-
-        public void setStartupOrder(Integer startupOrder) {
-            this.startupOrder = startupOrder;
-        }
-
-        public void setDescription(String description) {
-            this.description = description;
-        }
-
-        public void setAutoStartup(boolean autoStartup) {
-            this.autoStartup = autoStartup;
-        }
-
-        public void setContextScopedErrorHandler(boolean 
contextScopedErrorHandler) {
-            this.contextScopedErrorHandler = contextScopedErrorHandler;
-        }
-
-        public void setRouteScopedServices(List<Service> routeScopedServices) {
-            this.routeScopedServices = routeScopedServices;
-        }
-
-        @Override
-        public Integer getStartupOrder() {
-            return startupOrder;
-        }
-
-        @Override
-        protected String getRouteDescription() {
-            return description;
-        }
-
-        @Override
-        public boolean isAutoStartup() {
-            return autoStartup;
-        }
-
-        @Override
-        public boolean isContextScopedErrorHandler() {
-            return contextScopedErrorHandler;
-        }
-
-        @Override
-        protected void doGetRouteScopedServices(List<Service> services) {
-            services.addAll(routeScopedServices);
-        }
-    }
-
 }
diff --git 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastTypeConverter.java
 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastTypeConverter.java
index 178250f..83ec56e 100644
--- 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastTypeConverter.java
+++ 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastTypeConverter.java
@@ -29,7 +29,10 @@ public class FastTypeConverter extends DefaultTypeConverter {
     }
 
     @Override
-    protected void doStart() throws Exception {
+    protected void doInit() throws Exception {
+        if (this.injector == null && this.camelContext != null) {
+            this.injector = this.camelContext.getInjector();
+        }
         for (TypeConverterLoader loader : 
getCamelContext().getRegistry().findByType(TypeConverterLoader.class)) {
             LOG.debug("TypeConverterLoader: {} loading converters", loader);
             loader.load(this);
diff --git 
a/extensions-core/xml-jaxb/runtime/src/main/java/org/apache/camel/quarkus/component/xml/jaxb/XmlJaxbRecorder.java
 
b/extensions-core/xml-jaxb/runtime/src/main/java/org/apache/camel/quarkus/component/xml/jaxb/XmlJaxbRecorder.java
index 3cb9e69..260da00 100644
--- 
a/extensions-core/xml-jaxb/runtime/src/main/java/org/apache/camel/quarkus/component/xml/jaxb/XmlJaxbRecorder.java
+++ 
b/extensions-core/xml-jaxb/runtime/src/main/java/org/apache/camel/quarkus/component/xml/jaxb/XmlJaxbRecorder.java
@@ -21,10 +21,10 @@ import javax.xml.bind.JAXBException;
 import io.quarkus.runtime.RuntimeValue;
 import io.quarkus.runtime.annotations.Recorder;
 import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.impl.DefaultModelJAXBContextFactory;
 import org.apache.camel.spi.ModelJAXBContextFactory;
 import org.apache.camel.spi.ModelToXMLDumper;
 import org.apache.camel.spi.XMLRoutesDefinitionLoader;
+import org.apache.camel.xml.jaxb.DefaultModelJAXBContextFactory;
 import org.apache.camel.xml.jaxb.JaxbModelToXMLDumper;
 import org.apache.camel.xml.jaxb.JaxbXMLRoutesDefinitionLoader;
 import org.graalvm.nativeimage.ImageInfo;
diff --git 
a/extensions/qute/component/src/generated/java/org/apache/camel/component/qute/QuteComponentConfigurer.java
 
b/extensions/qute/component/src/generated/java/org/apache/camel/component/qute/QuteComponentConfigurer.java
index 37d5e07..0e903b1 100644
--- 
a/extensions/qute/component/src/generated/java/org/apache/camel/component/qute/QuteComponentConfigurer.java
+++ 
b/extensions/qute/component/src/generated/java/org/apache/camel/component/qute/QuteComponentConfigurer.java
@@ -1,29 +1,55 @@
 /* Generated by camel build tools - do NOT edit this file! */
 package org.apache.camel.component.qute;
 
+import java.util.Map;
+
 import org.apache.camel.CamelContext;
 import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.util.CaseInsensitiveMap;
 import org.apache.camel.support.component.PropertyConfigurerSupport;
 
 /**
  * Generated by camel build tools - do NOT edit this file!
  */
 @SuppressWarnings("unchecked")
-public class QuteComponentConfigurer extends PropertyConfigurerSupport 
implements GeneratedPropertyConfigurer {
+public class QuteComponentConfigurer extends PropertyConfigurerSupport 
implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
         QuteComponent target = (QuteComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
-        case "lazystartproducer":
-        case "lazyStartProducer": 
target.setLazyStartProducer(property(camelContext, boolean.class, value)); 
return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": 
target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); 
return true;
+        case "lazystartproducer":
+        case "lazyStartProducer": 
target.setLazyStartProducer(property(camelContext, boolean.class, value)); 
return true;
         case "quteengine":
         case "quteEngine": target.setQuteEngine(property(camelContext, 
io.quarkus.qute.Engine.class, value)); return true;
         default: return false;
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        Map<String, Object> answer = new CaseInsensitiveMap();
+        answer.put("basicPropertyBinding", boolean.class);
+        answer.put("lazyStartProducer", boolean.class);
+        answer.put("quteEngine", io.quarkus.qute.Engine.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        QuteComponent target = (QuteComponent) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "basicpropertybinding":
+        case "basicPropertyBinding": return target.isBasicPropertyBinding();
+        case "lazystartproducer":
+        case "lazyStartProducer": return target.isLazyStartProducer();
+        case "quteengine":
+        case "quteEngine": return target.getQuteEngine();
+        default: return null;
+        }
+    }
 }
 
diff --git 
a/extensions/qute/component/src/generated/java/org/apache/camel/component/qute/QuteEndpointConfigurer.java
 
b/extensions/qute/component/src/generated/java/org/apache/camel/component/qute/QuteEndpointConfigurer.java
index 86093a9..059e63e 100644
--- 
a/extensions/qute/component/src/generated/java/org/apache/camel/component/qute/QuteEndpointConfigurer.java
+++ 
b/extensions/qute/component/src/generated/java/org/apache/camel/component/qute/QuteEndpointConfigurer.java
@@ -1,31 +1,61 @@
 /* Generated by camel build tools - do NOT edit this file! */
 package org.apache.camel.component.qute;
 
+import java.util.Map;
+
 import org.apache.camel.CamelContext;
 import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.util.CaseInsensitiveMap;
 import org.apache.camel.support.component.PropertyConfigurerSupport;
 
 /**
  * Generated by camel build tools - do NOT edit this file!
  */
 @SuppressWarnings("unchecked")
-public class QuteEndpointConfigurer extends PropertyConfigurerSupport 
implements GeneratedPropertyConfigurer {
+public class QuteEndpointConfigurer extends PropertyConfigurerSupport 
implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String 
name, Object value, boolean ignoreCase) {
         QuteEndpoint target = (QuteEndpoint) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "basicpropertybinding":
+        case "basicPropertyBinding": 
target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); 
return true;
         case "contentcache":
         case "contentCache": target.setContentCache(property(camelContext, 
boolean.class, value)); return true;
         case "encoding": target.setEncoding(property(camelContext, 
java.lang.String.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": 
target.setLazyStartProducer(property(camelContext, boolean.class, value)); 
return true;
-        case "basicpropertybinding":
-        case "basicPropertyBinding": 
target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); 
return true;
         case "synchronous": target.setSynchronous(property(camelContext, 
boolean.class, value)); return true;
         default: return false;
         }
     }
 
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        Map<String, Object> answer = new CaseInsensitiveMap();
+        answer.put("basicPropertyBinding", boolean.class);
+        answer.put("contentCache", boolean.class);
+        answer.put("encoding", java.lang.String.class);
+        answer.put("lazyStartProducer", boolean.class);
+        answer.put("synchronous", boolean.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        QuteEndpoint target = (QuteEndpoint) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "basicpropertybinding":
+        case "basicPropertyBinding": return target.isBasicPropertyBinding();
+        case "contentcache":
+        case "contentCache": return target.isContentCache();
+        case "encoding": return target.getEncoding();
+        case "lazystartproducer":
+        case "lazyStartProducer": return target.isLazyStartProducer();
+        case "synchronous": return target.isSynchronous();
+        default: return null;
+        }
+    }
 }
 
diff --git 
a/extensions/qute/component/src/generated/resources/org/apache/camel/component/qute/qute.json
 
b/extensions/qute/component/src/generated/resources/org/apache/camel/component/qute/qute.json
index c50c6d4..486d247 100644
--- 
a/extensions/qute/component/src/generated/resources/org/apache/camel/component/qute/qute.json
+++ 
b/extensions/qute/component/src/generated/resources/org/apache/camel/component/qute/qute.json
@@ -1,6 +1,7 @@
 {
   "component": {
     "kind": "component",
+    "name": "qute",
     "scheme": "qute",
     "extendsScheme": "",
     "syntax": "qute:resourceUri",

Reply via email to