You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2019/09/05 15:39:35 UTC

[camel-quarkus] branch master updated (e262062 -> cc78da4)

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

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


    from e262062  Merge pull request #177 from jamesnetherton/fix-templates
     new 6a4f0d5  Remove support for defer-init-phase, fixes #172
     new 30b97e3  Cleanup following #172, fixes #69
     new 00cd326  Make xml and jaxb disabled by default and opt-in when depending on camel
     new cc78da4  Upgrade Quarkus to 0.21.2

The 4 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:
 .../quarkus/core/deployment/BuildProcessor.java    |   4 +
 .../quarkus/core/deployment/XmlProcessor.java      |  48 -----
 .../camel/quarkus/core/runtime/CamelConfig.java    |  28 ---
 ..._org_apache_camel_reifier_ProcessorReifier.java |  34 ----
 ..._org_apache_camel_reifier_ValidateReifier.java} |  14 +-
 ...camel_reifier_dataformat_DataFormatReifier.java |  34 ----
 ...l_reifier_loadbalancer_LoadBalancerReifier.java |  34 ----
 ...mel_reifier_transformer_TransformerReifier.java |  34 ----
 ...e_camel_reifier_validator_ValidatorReifier.java |  34 ----
 .../core/runtime/support/FastCamelContext.java     |  26 ++-
 .../core/runtime/support/FastCamelRuntime.java     |  22 +--
 .../quarkus/core/runtime/support/FastModel.java    |   6 +
 .../camel/quarkus/core/runtime/support/Flags.java  |  47 -----
 .../camel/reifier/rest/RestBindingReifier.java     | 193 +++++++++++++++++++++
 .../validation/PredicateValidatingProcessor.java   |  81 +++++++++
 .../validation/PredicateValidationException.java   |  50 ++++++
 .../xml/deployment/ModelFactoryProcessor.java      |  22 +--
 .../component/xml/deployment/XmlProcessor.java     |  23 ++-
 extensions/xml-common/runtime/pom.xml              |   5 +
 .../component/xml/runtime/SupportRecorder.java}    |  14 +-
 ...el_quarkus_core_runtime_support_FastModel.java} |  27 ++-
 ...ache_camel_reifier_rest_RestBindingReifier.java |  68 ++++++++
 .../aws/src/main/resources/application.properties  |   4 -
 .../bean/src/main/resources/application.properties |   4 -
 .../src/main/resources/application.properties      |   4 -
 .../src/main/resources/application.properties      |   4 -
 .../test/src/main/resources/application.properties |   3 -
 .../jdbc/src/main/resources/application.properties |   2 -
 .../src/main/resources/application.properties      |   5 -
 .../src/main/resources/application.properties      |   4 -
 .../src/main/resources/application.properties      |   4 -
 .../src/main/resources/application.properties      |   4 -
 pom.xml                                            |   2 +-
 poms/bom/pom.xml                                   |   6 +
 34 files changed, 507 insertions(+), 387 deletions(-)
 delete mode 100644 extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/XmlProcessor.java
 delete mode 100644 extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_ProcessorReifier.java
 copy extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/{Target_org_apache_camel_util_HostUtils.java => Target_org_apache_camel_reifier_ValidateReifier.java} (70%)
 delete mode 100644 extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_dataformat_DataFormatReifier.java
 delete mode 100644 extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_loadbalancer_LoadBalancerReifier.java
 delete mode 100644 extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_transformer_TransformerReifier.java
 delete mode 100644 extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_validator_ValidatorReifier.java
 delete mode 100644 extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/Flags.java
 create mode 100644 extensions/core/runtime/src/main/java/org/apache/camel/reifier/rest/RestBindingReifier.java
 create mode 100644 extensions/core/runtime/src/main/java/org/apache/camel/support/processor/validation/PredicateValidatingProcessor.java
 create mode 100644 extensions/core/runtime/src/main/java/org/apache/camel/support/processor/validation/PredicateValidationException.java
 copy integration-tests/core/deployment/src/main/java/org/apache/camel/quarkus/core/support/deployment/SupportBuildStep.java => extensions/xml-common/deployment/src/main/java/org/apache/camel/quarkus/component/xml/deployment/ModelFactoryProcessor.java (69%)
 copy extensions/{microprofile-metrics/runtime/src/main/java/org/apache/camel/quarkus/component/microprofile/metrics/runtime/CamelMicroProfileMetricsRecorder.java => xml-common/runtime/src/main/java/org/apache/camel/quarkus/component/xml/runtime/SupportRecorder.java} (71%)
 copy extensions/{core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_util_HostUtils.java => xml-common/runtime/src/main/java/org/apache/camel/quarkus/component/xml/runtime/graal/Target_org_apache_camel_quarkus_core_runtime_support_FastModel.java} (52%)
 create mode 100644 extensions/xml-common/runtime/src/main/java/org/apache/camel/quarkus/component/xml/runtime/graal/Target_org_apache_camel_reifier_rest_RestBindingReifier.java


[camel-quarkus] 03/04: Make xml and jaxb disabled by default and opt-in when depending on camel

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

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

commit 00cd326bd076a68b2be64d4bee92d4bd87335850
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Thu Sep 5 17:27:11 2019 +0200

    Make xml and jaxb disabled by default and opt-in when depending on camel
---
 .../quarkus/core/deployment/BuildProcessor.java    |   4 +
 .../quarkus/core/deployment/XmlProcessor.java      |  48 -----
 .../camel/quarkus/core/runtime/CamelConfig.java    |  22 ---
 ..._org_apache_camel_reifier_ValidateReifier.java} |  29 ++--
 .../core/runtime/support/FastCamelContext.java     |  26 ++-
 .../core/runtime/support/FastCamelRuntime.java     |  12 --
 .../quarkus/core/runtime/support/FastModel.java    |   6 +
 .../camel/reifier/rest/RestBindingReifier.java     | 193 +++++++++++++++++++++
 .../validation/PredicateValidatingProcessor.java   |  81 +++++++++
 .../validation/PredicateValidationException.java   |  50 ++++++
 .../xml/deployment/ModelFactoryProcessor.java}     |  35 ++--
 .../component/xml/deployment/XmlProcessor.java     |  23 ++-
 extensions/xml-common/runtime/pom.xml              |   5 +
 .../component/xml/runtime/SupportRecorder.java}    |  27 +--
 ...mel_quarkus_core_runtime_support_FastModel.java |  45 +++++
 ...ache_camel_reifier_rest_RestBindingReifier.java |  68 ++++++++
 .../aws/src/main/resources/application.properties  |   2 -
 .../bean/src/main/resources/application.properties |   2 -
 .../src/main/resources/application.properties      |   2 -
 .../src/main/resources/application.properties      |   2 -
 .../test/src/main/resources/application.properties |   2 -
 .../jdbc/src/main/resources/application.properties |   2 -
 .../src/main/resources/application.properties      |   2 -
 .../src/main/resources/application.properties      |   2 -
 .../src/main/resources/application.properties      |   2 -
 .../src/main/resources/application.properties      |   2 -
 poms/bom/pom.xml                                   |   6 +
 27 files changed, 538 insertions(+), 162 deletions(-)

diff --git a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java
index b0c3bed..305cd66 100644
--- a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java
+++ b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/BuildProcessor.java
@@ -41,6 +41,10 @@ import io.quarkus.deployment.annotations.Record;
 import io.quarkus.deployment.builditem.ApplicationArchivesBuildItem;
 import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
 import io.quarkus.deployment.builditem.ShutdownContextBuildItem;
+import io.quarkus.deployment.builditem.substrate.ServiceProviderBuildItem;
+import io.quarkus.deployment.builditem.substrate.SubstrateSystemPropertyBuildItem;
+import io.quarkus.jaxb.deployment.JaxbEnabledBuildItem;
+import io.quarkus.jaxb.deployment.JaxbFileRootBuildItem;
 import io.quarkus.runtime.RuntimeValue;
 import org.apache.camel.RoutesBuilder;
 import org.apache.camel.builder.AdviceWithRouteBuilder;
diff --git a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/XmlProcessor.java b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/XmlProcessor.java
deleted file mode 100644
index df6dd15..0000000
--- a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/XmlProcessor.java
+++ /dev/null
@@ -1,48 +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.quarkus.core.deployment;
-
-import io.quarkus.deployment.annotations.BuildProducer;
-import io.quarkus.deployment.annotations.BuildStep;
-import io.quarkus.deployment.builditem.substrate.ReflectiveClassBuildItem;
-import io.quarkus.jaxb.deployment.JaxbEnabledBuildItem;
-import io.quarkus.jaxb.deployment.JaxbFileRootBuildItem;
-import org.apache.camel.quarkus.core.runtime.support.Flags;
-
-class XmlProcessor {
-    @BuildStep
-    JaxbFileRootBuildItem fileRoot() {
-        return new JaxbFileRootBuildItem(CamelSupport.CAMEL_ROOT_PACKAGE_DIRECTORY);
-    }
-
-    @BuildStep(onlyIfNot = Flags.JaxbDisabled.class)
-    JaxbEnabledBuildItem handleJaxbSupport() {
-        return new JaxbEnabledBuildItem();
-    }
-
-    @BuildStep(onlyIfNot = Flags.JaxbDisabled.class)
-    void registerReflectiveClasses(BuildProducer<ReflectiveClassBuildItem> reflectiveClass) {
-        reflectiveClass.produce(
-            new ReflectiveClassBuildItem(
-                false,
-                false,
-                "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl",
-                "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl",
-                "com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl")
-        );
-    }
-}
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/CamelConfig.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/CamelConfig.java
index a5bb9b4..3d4d65c 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/CamelConfig.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/CamelConfig.java
@@ -21,7 +21,6 @@ import java.util.List;
 import io.quarkus.runtime.annotations.ConfigItem;
 import io.quarkus.runtime.annotations.ConfigPhase;
 import io.quarkus.runtime.annotations.ConfigRoot;
-import org.apache.camel.quarkus.core.runtime.support.Flags;
 
 public class CamelConfig {
 
@@ -34,27 +33,6 @@ public class CamelConfig {
         @ConfigItem
         public List<String> routesUris;
 
-        /**
-         * Camel jaxb support is enabled by default, but in order to trim
-         * down the size of applications, it is possible to disable jaxb support
-         * at runtime. This is useful when routes at loaded at build time and
-         * thus the camel route model is not used at runtime anymore.
-         *
-         * @see Flags.JaxbDisabled
-         */
-        @ConfigItem(defaultValue = "false")
-        public boolean disableJaxb;
-
-        /**
-         * Disable XML support in various parts of Camel.
-         * Because xml parsing using xerces/xalan libraries can consume
-         * a lot of code space in the native binary (and a lot of cpu resources
-         * when building), this allows to disable both libraries.
-         *
-         * @see Flags.XmlDisabled
-         */
-        @ConfigItem(defaultValue = "false")
-        public boolean disableXml;
     }
 
     @ConfigRoot(name = "camel", phase = ConfigPhase.RUN_TIME)
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/Flags.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_ValidateReifier.java
similarity index 51%
copy from extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/Flags.java
copy to extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_ValidateReifier.java
index 69247e2..b52923b 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/Flags.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_ValidateReifier.java
@@ -14,28 +14,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.core.runtime.support;
+package org.apache.camel.quarkus.core.runtime.graal;
 
-import java.util.function.BooleanSupplier;
+import com.oracle.svm.core.annotate.Substitute;
+import com.oracle.svm.core.annotate.TargetClass;
+import org.apache.camel.spi.RouteContext;
+import org.apache.camel.support.processor.validation.PredicateValidatingProcessor;
 
-import org.eclipse.microprofile.config.ConfigProvider;
+@TargetClass(className = "org.apache.camel.reifier.ValidateReifier")
+final class Target_org_apache_camel_reifier_ValidateReifier {
 
-public final class Flags {
-    private Flags() {
-    }
-
-    public static final class JaxbDisabled implements BooleanSupplier {
-        @Override
-        public boolean getAsBoolean() {
-            return ConfigProvider.getConfig().getOptionalValue("quarkus.camel.disable-jaxb", Boolean.class).orElse(Boolean.FALSE);
-        }
-    }
-
-    public static final class XmlDisabled implements BooleanSupplier {
-        @Override
-        public boolean getAsBoolean() {
-            return ConfigProvider.getConfig().getOptionalValue("quarkus.camel.disable-xml", Boolean.class).orElse(Boolean.FALSE);
-        }
+    @Substitute
+    public PredicateValidatingProcessor createProcessor(RouteContext routeContext) throws Exception {
+        throw new UnsupportedOperationException();
     }
 
 }
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelContext.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelContext.java
index 8bc1476..6659792 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelContext.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelContext.java
@@ -19,8 +19,12 @@ package org.apache.camel.quarkus.core.runtime.support;
 import java.util.Collection;
 import java.util.Map;
 import java.util.Properties;
+import java.util.Set;
 import java.util.concurrent.ExecutorService;
 
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+
 import org.apache.camel.AsyncProcessor;
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
@@ -29,6 +33,7 @@ import org.apache.camel.Endpoint;
 import org.apache.camel.PollingConsumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
+import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.TypeConverter;
 import org.apache.camel.impl.DefaultExecutorServiceManager;
 import org.apache.camel.impl.DefaultModelJAXBContextFactory;
@@ -103,6 +108,7 @@ import org.apache.camel.spi.UnitOfWorkFactory;
 import org.apache.camel.spi.UuidGenerator;
 import org.apache.camel.spi.ValidatorRegistry;
 import org.apache.camel.support.PropertyBindingSupport;
+import org.graalvm.nativeimage.ImageInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -212,7 +218,25 @@ public class FastCamelContext extends AbstractCamelContext {
 
     @Override
     protected ModelJAXBContextFactory createModelJAXBContextFactory() {
-        return new DefaultModelJAXBContextFactory();
+        Set<ModelJAXBContextFactory> cfs = getRegistry().findByType(ModelJAXBContextFactory.class);
+        if (cfs.size() == 1) {
+            ModelJAXBContextFactory cf = cfs.iterator().next();
+            // The creation of the JAXB context is very time consuming, so always prepare it
+            // when running in native mode, but lazy create it in java mode so that we don't
+            // waste time if using java routes
+            if (ImageInfo.inImageBuildtimeCode()) {
+                try {
+                    cf.newJAXBContext();
+                } catch (JAXBException e) {
+                    throw RuntimeCamelException.wrapRuntimeCamelException(e);
+                }
+            }
+            return cf;
+        } else {
+            return () -> {
+                throw new UnsupportedOperationException();
+            };
+        }
     }
 
     @Override
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelRuntime.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelRuntime.java
index 0858de4..c5655b0 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelRuntime.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelRuntime.java
@@ -84,18 +84,6 @@ public class FastCamelRuntime implements CamelRuntime {
             context.getTypeConverterRegistry().setInjector(context.getInjector());
 
             fireEvent(InitializingEvent.class, new InitializingEvent());
-            if (buildTimeConfig.disableJaxb) {
-                context.adapt(ExtendedCamelContext.class).setModelJAXBContextFactory(() -> {
-                    throw new UnsupportedOperationException();
-                });
-            } else {
-                // The creation of the JAXB context is very time consuming, so always prepare it
-                // when running in native mode, but lazy create it in java mode so that we don't
-                // waste time if using java routes
-                if (ImageInfo.inImageBuildtimeCode()) {
-                    context.adapt(ExtendedCamelContext.class).getModelJAXBContextFactory().newJAXBContext();
-                }
-            }
 
             context.init();
 
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastModel.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastModel.java
index ae03794..1270c37 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastModel.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastModel.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.quarkus.core.runtime.support;
 
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -46,6 +47,11 @@ public class FastModel extends DefaultModel {
         super(camelContext);
     }
 
+    @Override
+    public void addRouteDefinitions(InputStream is) throws Exception {
+        throw new UnsupportedOperationException();
+    }
+
     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
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/reifier/rest/RestBindingReifier.java b/extensions/core/runtime/src/main/java/org/apache/camel/reifier/rest/RestBindingReifier.java
new file mode 100644
index 0000000..e88320e
--- /dev/null
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/reifier/rest/RestBindingReifier.java
@@ -0,0 +1,193 @@
+/*
+ * 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.reifier.rest;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.xml.bind.JAXBContext;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.ExtendedCamelContext;
+import org.apache.camel.model.rest.RestBindingDefinition;
+import org.apache.camel.processor.RestBindingAdvice;
+import org.apache.camel.spi.DataFormat;
+import org.apache.camel.spi.RestConfiguration;
+import org.apache.camel.spi.RouteContext;
+import org.apache.camel.support.PropertyBindingSupport;
+
+public class RestBindingReifier {
+
+    private final RestBindingDefinition definition;
+
+    public RestBindingReifier(RestBindingDefinition definition) {
+        this.definition = definition;
+    }
+
+    public RestBindingAdvice createRestBindingAdvice(RouteContext routeContext) throws Exception {
+
+        CamelContext context = routeContext.getCamelContext();
+        RestConfiguration config = context.getRestConfiguration(definition.getComponent(), true);
+
+        // these options can be overridden per rest verb
+        String mode = config.getBindingMode().name();
+        if (definition.getBindingMode() != null) {
+            mode = definition.getBindingMode().name();
+        }
+        boolean cors = config.isEnableCORS();
+        if (definition.getEnableCORS() != null) {
+            cors = definition.getEnableCORS();
+        }
+        boolean skip = config.isSkipBindingOnErrorCode();
+        if (definition.getSkipBindingOnErrorCode() != null) {
+            skip = definition.getSkipBindingOnErrorCode();
+        }
+        boolean validation = config.isClientRequestValidation();
+        if (definition.getClientRequestValidation() != null) {
+            validation = definition.getClientRequestValidation();
+        }
+
+        // cors headers
+        Map<String, String> corsHeaders = config.getCorsHeaders();
+
+        if (mode == null || "off".equals(mode)) {
+            // binding mode is off, so create a off mode binding processor
+            return new RestBindingAdvice(context, null, null, null, null, definition.getConsumes(), definition.getProduces(), mode, skip, validation, cors, corsHeaders,
+                                         definition.getDefaultValues(), definition.getRequiredBody() != null ? definition.getRequiredBody() : false,
+                                         definition.getRequiredQueryParameters(), definition.getRequiredHeaders());
+        }
+
+        // setup json data format
+        DataFormat json = null;
+        DataFormat outJson = null;
+        if (mode.contains("json") || "auto".equals(mode)) {
+            String name = config.getJsonDataFormat();
+            if (name != null) {
+                // must only be a name, not refer to an existing instance
+                Object instance = context.getRegistry().lookupByName(name);
+                if (instance != null) {
+                    throw new IllegalArgumentException("JsonDataFormat name: " + name + " must not be an existing bean instance from the registry");
+                }
+            } else {
+                name = "json-jackson";
+            }
+            // this will create a new instance as the name was not already
+            // pre-created
+            json = context.resolveDataFormat(name);
+            outJson = context.resolveDataFormat(name);
+
+            if (json != null) {
+                setupJson(context, config, definition.getType(), definition.getOutType(), json, outJson);
+            }
+        }
+
+        // setup xml data format
+        DataFormat jaxb = null;
+        DataFormat outJaxb = null;
+        if (mode.contains("xml") || "auto".equals(mode)) {
+            String name = config.getXmlDataFormat();
+            if (name != null) {
+                // must only be a name, not refer to an existing instance
+                Object instance = context.getRegistry().lookupByName(name);
+                if (instance != null) {
+                    throw new IllegalArgumentException("XmlDataFormat name: " + name + " must not be an existing bean instance from the registry");
+                }
+            } else {
+                name = "jaxb";
+            }
+            // this will create a new instance as the name was not already
+            // pre-created
+            jaxb = context.resolveDataFormat(name);
+            outJaxb = context.resolveDataFormat(name);
+
+            // is xml binding required?
+            if (mode.contains("xml") && jaxb == null) {
+                throw new IllegalArgumentException("XML DataFormat " + name + " not found.");
+            }
+
+            if (jaxb != null) {
+                setupJaxb(context, config, definition.getType(), definition.getOutType(), jaxb, outJaxb);
+            }
+        }
+
+        return new RestBindingAdvice(context, json, jaxb, outJson, outJaxb, definition.getConsumes(), definition.getProduces(), mode, skip, validation, cors, corsHeaders,
+                                     definition.getDefaultValues(), definition.getRequiredBody() != null ? definition.getRequiredBody() : false,
+                                     definition.getRequiredQueryParameters(), definition.getRequiredHeaders());
+    }
+
+    protected void setupJson(CamelContext context, RestConfiguration config, String type, String outType, DataFormat json, DataFormat outJson) throws Exception {
+        Class<?> clazz = null;
+        if (type != null) {
+            String typeName = type.endsWith("[]") ? type.substring(0, type.length() - 2) : type;
+            clazz = context.getClassResolver().resolveMandatoryClass(typeName);
+        }
+        if (clazz != null) {
+            context.adapt(ExtendedCamelContext.class).getBeanIntrospection().setProperty(context, json, "unmarshalType", clazz);
+            context.adapt(ExtendedCamelContext.class).getBeanIntrospection().setProperty(context, json, "useList", type.endsWith("[]"));
+        }
+        setAdditionalConfiguration(config, context, json, "json.in.");
+
+        Class<?> outClazz = null;
+        if (outType != null) {
+            String typeName = outType.endsWith("[]") ? outType.substring(0, outType.length() - 2) : outType;
+            outClazz = context.getClassResolver().resolveMandatoryClass(typeName);
+        }
+        if (outClazz != null) {
+            context.adapt(ExtendedCamelContext.class).getBeanIntrospection().setProperty(context, outJson, "unmarshalType", outClazz);
+            context.adapt(ExtendedCamelContext.class).getBeanIntrospection().setProperty(context, outJson, "useList", outType.endsWith("[]"));
+        }
+        setAdditionalConfiguration(config, context, outJson, "json.out.");
+    }
+
+    protected void setupJaxb(CamelContext context, RestConfiguration config, String type, String outType, DataFormat jaxb, DataFormat outJaxb) throws Exception {
+        throw new UnsupportedOperationException("Add a dependency to camel-quarkus-xml-common to add xml support");
+    }
+
+    private void setAdditionalConfiguration(RestConfiguration config, CamelContext context, DataFormat dataFormat, String prefix) throws Exception {
+        if (config.getDataFormatProperties() != null && !config.getDataFormatProperties().isEmpty()) {
+            // must use a copy as otherwise the options gets removed during
+            // introspection setProperties
+            Map<String, Object> copy = new HashMap<>();
+
+            // filter keys on prefix
+            // - either its a known prefix and must match the prefix parameter
+            // - or its a common configuration that we should always use
+            for (Map.Entry<String, Object> entry : config.getDataFormatProperties().entrySet()) {
+                String key = entry.getKey();
+                String copyKey;
+                boolean known = isKeyKnownPrefix(key);
+                if (known) {
+                    // remove the prefix from the key to use
+                    copyKey = key.substring(prefix.length());
+                } else {
+                    // use the key as is
+                    copyKey = key;
+                }
+                if (!known || key.startsWith(prefix)) {
+                    copy.put(copyKey, entry.getValue());
+                }
+            }
+
+            PropertyBindingSupport.build().bind(context, dataFormat, copy);
+        }
+    }
+
+    private boolean isKeyKnownPrefix(String key) {
+        return key.startsWith("json.in.") || key.startsWith("json.out.") || key.startsWith("xml.in.") || key.startsWith("xml.out.");
+    }
+
+}
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/support/processor/validation/PredicateValidatingProcessor.java b/extensions/core/runtime/src/main/java/org/apache/camel/support/processor/validation/PredicateValidatingProcessor.java
new file mode 100644
index 0000000..72870fb
--- /dev/null
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/support/processor/validation/PredicateValidatingProcessor.java
@@ -0,0 +1,81 @@
+/*
+ * 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.support.processor.validation;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Predicate;
+import org.apache.camel.Processor;
+import org.apache.camel.Traceable;
+import org.apache.camel.support.service.ServiceSupport;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A processor which validates the content of the inbound message body against a {@link Predicate}.
+ *
+ * TODO: QUARKUS: this class is a copy of the original camel one because it resides in camel-jaxp
+ *   but that should not be the case
+ */
+public class PredicateValidatingProcessor extends ServiceSupport implements Processor, Traceable {
+    
+    private static final Logger LOG = LoggerFactory.getLogger(org.apache.camel.support.processor.validation.PredicateValidatingProcessor.class);
+
+    private final Predicate predicate;
+    
+    public PredicateValidatingProcessor(Predicate predicate) {
+        ObjectHelper.notNull(predicate, "predicate", this);
+        this.predicate = predicate;
+    }
+
+    @Override
+    public void process(Exchange exchange) throws Exception {
+        boolean matches = predicate.matches(exchange);
+
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("Validation {} for {} with Predicate[{}]", matches ? "succeed" : "failed", exchange, predicate);
+        }
+
+        if (!matches) {
+            throw new PredicateValidationException(exchange, predicate);
+        }
+    }
+
+    public Predicate getPredicate() {
+        return predicate;
+    }
+
+    @Override
+    public String toString() {
+        return "validate(" + predicate + ")";
+    }
+
+    @Override
+    public String getTraceLabel() {
+        return "validate[" + predicate + "]";
+    }
+
+    @Override
+    protected void doStart() throws Exception {
+        // noop
+    }
+
+    @Override
+    protected void doStop() throws Exception {
+        // noop
+    }
+}
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/support/processor/validation/PredicateValidationException.java b/extensions/core/runtime/src/main/java/org/apache/camel/support/processor/validation/PredicateValidationException.java
new file mode 100644
index 0000000..327770d
--- /dev/null
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/support/processor/validation/PredicateValidationException.java
@@ -0,0 +1,50 @@
+/*
+ * 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.support.processor.validation;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Predicate;
+import org.apache.camel.ValidationException;
+
+/**
+ * A predicate validation exception occurred
+ *
+ * TODO: QUARKUS: this class is a copy of the original camel one because it resides in camel-jaxp
+ *   but that should not be the case
+ */
+public class PredicateValidationException extends ValidationException {
+
+    private static final long serialVersionUID = 5767438583860347105L;
+
+    private final Predicate predicate;
+
+    public PredicateValidationException(Exchange exchange, Predicate predicate) {
+        super(exchange, buildMessage(predicate, exchange));
+        this.predicate = predicate;
+    }
+
+    protected static String buildMessage(Predicate predicate, Exchange exchange) {
+        StringBuilder builder = new StringBuilder("Validation failed for Predicate[");
+        builder.append(predicate.toString());
+        builder.append("]");
+        return builder.toString();
+    }
+
+    public Predicate getPredicate() {
+        return predicate;
+    }
+}
\ No newline at end of file
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/Flags.java b/extensions/xml-common/deployment/src/main/java/org/apache/camel/quarkus/component/xml/deployment/ModelFactoryProcessor.java
similarity index 51%
copy from extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/Flags.java
copy to extensions/xml-common/deployment/src/main/java/org/apache/camel/quarkus/component/xml/deployment/ModelFactoryProcessor.java
index 69247e2..8153675 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/Flags.java
+++ b/extensions/xml-common/deployment/src/main/java/org/apache/camel/quarkus/component/xml/deployment/ModelFactoryProcessor.java
@@ -14,28 +14,25 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.core.runtime.support;
+package org.apache.camel.quarkus.component.xml.deployment;
 
-import java.util.function.BooleanSupplier;
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.annotations.ExecutionTime;
+import io.quarkus.deployment.annotations.Record;
+import org.apache.camel.quarkus.component.xml.runtime.SupportRecorder;
+import org.apache.camel.quarkus.core.deployment.CamelRegistryBuildItem;
+import org.apache.camel.spi.ModelJAXBContextFactory;
 
-import org.eclipse.microprofile.config.ConfigProvider;
+public class ModelFactoryProcessor {
 
-public final class Flags {
-    private Flags() {
-    }
-
-    public static final class JaxbDisabled implements BooleanSupplier {
-        @Override
-        public boolean getAsBoolean() {
-            return ConfigProvider.getConfig().getOptionalValue("quarkus.camel.disable-jaxb", Boolean.class).orElse(Boolean.FALSE);
-        }
-    }
-
-    public static final class XmlDisabled implements BooleanSupplier {
-        @Override
-        public boolean getAsBoolean() {
-            return ConfigProvider.getConfig().getOptionalValue("quarkus.camel.disable-xml", Boolean.class).orElse(Boolean.FALSE);
-        }
+    @Record(ExecutionTime.STATIC_INIT)
+    @BuildStep
+    CamelRegistryBuildItem jaxbContextFactory(SupportRecorder recorder) {
+            return new CamelRegistryBuildItem(
+                    "log",
+                    ModelJAXBContextFactory.class,
+                    recorder.jaxbContextFactory()
+            );
     }
 
 }
diff --git a/extensions/xml-common/deployment/src/main/java/org/apache/camel/quarkus/component/xml/deployment/XmlProcessor.java b/extensions/xml-common/deployment/src/main/java/org/apache/camel/quarkus/component/xml/deployment/XmlProcessor.java
index ffc44d2..d9490b5 100644
--- a/extensions/xml-common/deployment/src/main/java/org/apache/camel/quarkus/component/xml/deployment/XmlProcessor.java
+++ b/extensions/xml-common/deployment/src/main/java/org/apache/camel/quarkus/component/xml/deployment/XmlProcessor.java
@@ -16,11 +16,17 @@
  */
 package org.apache.camel.quarkus.component.xml.deployment;
 
+import javax.enterprise.inject.Produces;
+
 import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
 import io.quarkus.deployment.builditem.substrate.ReflectiveClassBuildItem;
+import io.quarkus.jaxb.deployment.JaxbEnabledBuildItem;
+import io.quarkus.jaxb.deployment.JaxbFileRootBuildItem;
 import org.apache.camel.converter.jaxp.XmlConverter;
+import org.apache.camel.quarkus.core.deployment.CamelSupport;
+import org.apache.camel.spi.ModelJAXBContextFactory;
 
 class XmlProcessor {
 
@@ -32,12 +38,25 @@ class XmlProcessor {
     }
 
     @BuildStep
+    JaxbFileRootBuildItem fileRoot() {
+        return new JaxbFileRootBuildItem(CamelSupport.CAMEL_ROOT_PACKAGE_DIRECTORY);
+    }
+
+    @BuildStep
+    JaxbEnabledBuildItem handleJaxbSupport() {
+        return new JaxbEnabledBuildItem();
+    }
+
+    @BuildStep
     void reflective(BuildProducer<ReflectiveClassBuildItem> reflectiveClass) {
         reflectiveClass.produce(new ReflectiveClassBuildItem(false, false,
             "com.sun.xml.internal.stream.XMLInputFactoryImpl",
             "com.sun.org.apache.xerces.internal.parsers.SAXParser",
-            XmlConverter.class.getCanonicalName()));
-
+            XmlConverter.class.getCanonicalName(),
+            "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl",
+            "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl",
+            "com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl")
+        );
         // javax.xml.namespace.QName is needed as it is used as part of the processor
         // definitions in the DSL and parsers like Jackson (used in camel-k YAML DSL)
         // fails if this class is cannot be instantiated reflectively.
diff --git a/extensions/xml-common/runtime/pom.xml b/extensions/xml-common/runtime/pom.xml
index d688b6d..2d7e2ea 100644
--- a/extensions/xml-common/runtime/pom.xml
+++ b/extensions/xml-common/runtime/pom.xml
@@ -56,6 +56,11 @@
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-jaxp</artifactId>
         </dependency>
+
+        <dependency>
+            <groupId>com.oracle.substratevm</groupId>
+            <artifactId>svm</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/Flags.java b/extensions/xml-common/runtime/src/main/java/org/apache/camel/quarkus/component/xml/runtime/SupportRecorder.java
similarity index 51%
rename from extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/Flags.java
rename to extensions/xml-common/runtime/src/main/java/org/apache/camel/quarkus/component/xml/runtime/SupportRecorder.java
index 69247e2..9c14a6f 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/Flags.java
+++ b/extensions/xml-common/runtime/src/main/java/org/apache/camel/quarkus/component/xml/runtime/SupportRecorder.java
@@ -14,28 +14,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.core.runtime.support;
+package org.apache.camel.quarkus.component.xml.runtime;
 
-import java.util.function.BooleanSupplier;
+import io.quarkus.runtime.annotations.Recorder;
+import org.apache.camel.impl.DefaultModelJAXBContextFactory;
+import org.apache.camel.spi.ModelJAXBContextFactory;
 
-import org.eclipse.microprofile.config.ConfigProvider;
+@Recorder
+public class SupportRecorder {
 
-public final class Flags {
-    private Flags() {
-    }
-
-    public static final class JaxbDisabled implements BooleanSupplier {
-        @Override
-        public boolean getAsBoolean() {
-            return ConfigProvider.getConfig().getOptionalValue("quarkus.camel.disable-jaxb", Boolean.class).orElse(Boolean.FALSE);
-        }
-    }
-
-    public static final class XmlDisabled implements BooleanSupplier {
-        @Override
-        public boolean getAsBoolean() {
-            return ConfigProvider.getConfig().getOptionalValue("quarkus.camel.disable-xml", Boolean.class).orElse(Boolean.FALSE);
-        }
+    public ModelJAXBContextFactory jaxbContextFactory() {
+        return new DefaultModelJAXBContextFactory();
     }
 
 }
diff --git a/extensions/xml-common/runtime/src/main/java/org/apache/camel/quarkus/component/xml/runtime/graal/Target_org_apache_camel_quarkus_core_runtime_support_FastModel.java b/extensions/xml-common/runtime/src/main/java/org/apache/camel/quarkus/component/xml/runtime/graal/Target_org_apache_camel_quarkus_core_runtime_support_FastModel.java
new file mode 100644
index 0000000..4322970
--- /dev/null
+++ b/extensions/xml-common/runtime/src/main/java/org/apache/camel/quarkus/component/xml/runtime/graal/Target_org_apache_camel_quarkus_core_runtime_support_FastModel.java
@@ -0,0 +1,45 @@
+/*
+ * 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.quarkus.component.xml.runtime.graal;
+
+import java.io.InputStream;
+
+import com.oracle.svm.core.annotate.Substitute;
+import com.oracle.svm.core.annotate.TargetClass;
+import org.apache.camel.CamelContext;
+import org.apache.camel.impl.DefaultModel;
+import org.apache.camel.model.ModelHelper;
+import org.apache.camel.model.RoutesDefinition;
+
+@TargetClass(className = "org.apache.camel.quarkus.core.runtime.support.FastModel")
+@Substitute
+public class Target_org_apache_camel_quarkus_core_runtime_support_FastModel extends DefaultModel {
+
+    public Target_org_apache_camel_quarkus_core_runtime_support_FastModel(CamelContext camelContext) {
+        super(camelContext);
+    }
+
+    @Substitute
+    public void addRouteDefinitions(InputStream is) throws Exception {
+        RoutesDefinition def = ModelHelper.loadRoutesDefinition(getCamelContext(), is);
+        if (def != null) {
+            this.addRouteDefinitions(def.getRoutes());
+        }
+
+    }
+
+}
diff --git a/extensions/xml-common/runtime/src/main/java/org/apache/camel/quarkus/component/xml/runtime/graal/Target_org_apache_camel_reifier_rest_RestBindingReifier.java b/extensions/xml-common/runtime/src/main/java/org/apache/camel/quarkus/component/xml/runtime/graal/Target_org_apache_camel_reifier_rest_RestBindingReifier.java
new file mode 100644
index 0000000..a649623
--- /dev/null
+++ b/extensions/xml-common/runtime/src/main/java/org/apache/camel/quarkus/component/xml/runtime/graal/Target_org_apache_camel_reifier_rest_RestBindingReifier.java
@@ -0,0 +1,68 @@
+/*
+ * 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.quarkus.component.xml.runtime.graal;
+
+import javax.xml.bind.JAXBContext;
+
+import com.oracle.svm.core.annotate.KeepOriginal;
+import com.oracle.svm.core.annotate.Substitute;
+import com.oracle.svm.core.annotate.TargetClass;
+import org.apache.camel.CamelContext;
+import org.apache.camel.ExtendedCamelContext;
+import org.apache.camel.model.rest.RestBindingDefinition;
+import org.apache.camel.spi.DataFormat;
+import org.apache.camel.spi.RestConfiguration;
+import org.apache.camel.spi.RouteContext;
+import org.apache.camel.support.processor.validation.PredicateValidatingProcessor;
+
+@TargetClass(className = "org.apache.camel.reifier.rest.RestBindingReifier")
+final class Target_org_apache_camel_reifier_rest_RestBindingReifier {
+
+    @Substitute
+    protected void setupJaxb(CamelContext context, RestConfiguration config, String type, String outType, DataFormat jaxb, DataFormat outJaxb) throws Exception {
+        Class<?> clazz = null;
+        if (type != null) {
+            String typeName = type.endsWith("[]") ? type.substring(0, type.length() - 2) : type;
+            clazz = context.getClassResolver().resolveMandatoryClass(typeName);
+        }
+        if (clazz != null) {
+            JAXBContext jc = JAXBContext.newInstance(clazz);
+            context.adapt(ExtendedCamelContext.class).getBeanIntrospection().setProperty(context, jaxb, "context", jc);
+        }
+        setAdditionalConfiguration(config, context, jaxb, "xml.in.");
+
+        Class<?> outClazz = null;
+        if (outType != null) {
+            String typeName = outType.endsWith("[]") ? outType.substring(0, outType.length() - 2) : outType;
+            outClazz = context.getClassResolver().resolveMandatoryClass(typeName);
+        }
+        if (outClazz != null) {
+            JAXBContext jc = JAXBContext.newInstance(outClazz);
+            context.adapt(ExtendedCamelContext.class).getBeanIntrospection().setProperty(context, outJaxb, "context", jc);
+        } else if (clazz != null) {
+            // fallback and use the context from the input
+            JAXBContext jc = JAXBContext.newInstance(clazz);
+            context.adapt(ExtendedCamelContext.class).getBeanIntrospection().setProperty(context, outJaxb, "context", jc);
+        }
+        setAdditionalConfiguration(config, context, outJaxb, "xml.out.");
+    }
+
+    @KeepOriginal
+    private void setAdditionalConfiguration(RestConfiguration config, CamelContext context, DataFormat dataFormat, String prefix) throws Exception {
+    }
+
+}
diff --git a/integration-tests/aws/src/main/resources/application.properties b/integration-tests/aws/src/main/resources/application.properties
index 936ed0f..3ca2a3a 100644
--- a/integration-tests/aws/src/main/resources/application.properties
+++ b/integration-tests/aws/src/main/resources/application.properties
@@ -23,8 +23,6 @@ quarkus.log.file.enable = false
 #
 # Quarkus :: Camel
 #
-quarkus.camel.disable-xml=true
-quarkus.camel.disable-jaxb=true
 quarkus.camel.dump-routes=true
 #
 # Camel
diff --git a/integration-tests/bean/src/main/resources/application.properties b/integration-tests/bean/src/main/resources/application.properties
index fe14ab2..dba6223 100644
--- a/integration-tests/bean/src/main/resources/application.properties
+++ b/integration-tests/bean/src/main/resources/application.properties
@@ -23,8 +23,6 @@ quarkus.log.file.enable = false
 #
 # Quarkus :: Camel
 #
-quarkus.camel.disable-xml=true
-quarkus.camel.disable-jaxb=true
 quarkus.camel.dump-routes=true
 #
 # Camel
diff --git a/integration-tests/core-cdi/src/main/resources/application.properties b/integration-tests/core-cdi/src/main/resources/application.properties
index f258d12..eb108f4 100644
--- a/integration-tests/core-cdi/src/main/resources/application.properties
+++ b/integration-tests/core-cdi/src/main/resources/application.properties
@@ -22,8 +22,6 @@ quarkus.log.file.enable = false
 #
 # Quarkus :: Camel
 #
-quarkus.camel.disable-xml=false
-quarkus.camel.disable-jaxb=false
 quarkus.camel.dump-routes=true
 #
 # Camel
diff --git a/integration-tests/core-impl/src/main/resources/application.properties b/integration-tests/core-impl/src/main/resources/application.properties
index 775072e..4f9279c 100644
--- a/integration-tests/core-impl/src/main/resources/application.properties
+++ b/integration-tests/core-impl/src/main/resources/application.properties
@@ -22,8 +22,6 @@ quarkus.log.file.enable = false
 #
 # Quarkus :: Camel
 #
-quarkus.camel.disable-xml=true
-quarkus.camel.disable-jaxb=true
 quarkus.camel.dump-routes=true
 #
 # Camel
diff --git a/integration-tests/core/test/src/main/resources/application.properties b/integration-tests/core/test/src/main/resources/application.properties
index b441636..3e6e7bb 100644
--- a/integration-tests/core/test/src/main/resources/application.properties
+++ b/integration-tests/core/test/src/main/resources/application.properties
@@ -22,8 +22,6 @@ quarkus.log.file.enable = false
 #
 # Quarkus :: Camel
 #
-quarkus.camel.disable-xml=true
-quarkus.camel.disable-jaxb=true
 quarkus.camel.dump-routes=true
 
 #
diff --git a/integration-tests/jdbc/src/main/resources/application.properties b/integration-tests/jdbc/src/main/resources/application.properties
index f1e4300..f4fa33e 100644
--- a/integration-tests/jdbc/src/main/resources/application.properties
+++ b/integration-tests/jdbc/src/main/resources/application.properties
@@ -22,8 +22,6 @@ quarkus.log.file.enable = false
 #
 # Quarkus :: Camel
 #
-quarkus.camel.disable-xml=true
-quarkus.camel.disable-jaxb=true        
 quarkus.camel.dump-routes=true
 
 #
diff --git a/integration-tests/netty-http/src/main/resources/application.properties b/integration-tests/netty-http/src/main/resources/application.properties
index 603d5f3..708319c 100644
--- a/integration-tests/netty-http/src/main/resources/application.properties
+++ b/integration-tests/netty-http/src/main/resources/application.properties
@@ -22,8 +22,6 @@ quarkus.log.file.enable = false
 #
 # Quarkus :: Camel
 #
-quarkus.camel.disable-xml=true
-quarkus.camel.disable-jaxb=true        
 quarkus.camel.dump-routes=true
 #
 # Camel
diff --git a/integration-tests/salesforce/src/main/resources/application.properties b/integration-tests/salesforce/src/main/resources/application.properties
index 1b8f25e..66fbe0a 100644
--- a/integration-tests/salesforce/src/main/resources/application.properties
+++ b/integration-tests/salesforce/src/main/resources/application.properties
@@ -19,8 +19,6 @@
 # Quarkus
 #
 quarkus.ssl.native=true
-quarkus.camel.disable-xml=true
-quarkus.camel.disable-jaxb=true        
 quarkus.camel.dump-routes=true
 #
 # Camel
diff --git a/integration-tests/servlet/src/main/resources/application.properties b/integration-tests/servlet/src/main/resources/application.properties
index 387415e..fe4921f 100644
--- a/integration-tests/servlet/src/main/resources/application.properties
+++ b/integration-tests/servlet/src/main/resources/application.properties
@@ -23,8 +23,6 @@ quarkus.ssl.native=true
 #
 # Quarkus :: Camel
 #
-quarkus.camel.disable-xml=true
-quarkus.camel.disable-jaxb=true        
 quarkus.camel.dump-routes=true
 #
 # Quarkus :: Camel :: Servlet
diff --git a/integration-tests/twitter/src/main/resources/application.properties b/integration-tests/twitter/src/main/resources/application.properties
index c0f95bf..06bb262 100644
--- a/integration-tests/twitter/src/main/resources/application.properties
+++ b/integration-tests/twitter/src/main/resources/application.properties
@@ -23,8 +23,6 @@ quarkus.log.file.enable = false
 #
 # Quarkus :: Camel
 #
-quarkus.camel.disable-xml=true
-quarkus.camel.disable-jaxb=true
 quarkus.camel.dump-routes=true
 #
 # Camel
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 2594b8a..62a6225 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -93,6 +93,12 @@
                 <groupId>org.apache.camel</groupId>
                 <artifactId>camel-core</artifactId>
                 <version>${camel.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.apache.camel</groupId>
+                        <artifactId>camel-jaxp</artifactId>
+                    </exclusion>
+                </exclusions>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>


[camel-quarkus] 04/04: Upgrade Quarkus to 0.21.2

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

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

commit cc78da40c9121bbaa1baf4c7aac294f5464d9105
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Thu Sep 5 17:39:02 2019 +0200

    Upgrade Quarkus to 0.21.2
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 7d7ab48..ce024fb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,7 +41,7 @@
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 
         <camel.version>3.0.0-RC1</camel.version>
-        <quarkus.version>0.21.1</quarkus.version>
+        <quarkus.version>0.21.2</quarkus.version>
         <jetty.version>9.4.18.v20190429</jetty.version>
         <xstream.version>1.4.11</xstream.version>
 


[camel-quarkus] 02/04: Cleanup following #172, fixes #69

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

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

commit 30b97e3a80fca647cc7d413322c2a0192aa9d768
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Tue Sep 3 16:43:35 2019 +0200

    Cleanup following #172, fixes #69
---
 .../org/apache/camel/quarkus/core/runtime/support/FastCamelRuntime.java | 2 --
 1 file changed, 2 deletions(-)

diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelRuntime.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelRuntime.java
index efc4a05..0858de4 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelRuntime.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelRuntime.java
@@ -155,8 +155,6 @@ public class FastCamelRuntime implements CamelRuntime {
         }
 
         model.startRouteDefinitions();
-        // context.adapt(FastCamelContext.class).clearModel(); Disabled, see https://github.com/apache/camel-quarkus/issues/69
-        // builders.clear();
     }
 
     @SuppressWarnings("unchecked")


[camel-quarkus] 01/04: Remove support for defer-init-phase, fixes #172

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

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

commit 6a4f0d5e921818c6e955dac747d78194cf0db9fc
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Tue Sep 3 15:27:59 2019 +0200

    Remove support for defer-init-phase, fixes #172
---
 .../camel/quarkus/core/runtime/CamelConfig.java    |  6 ----
 ..._org_apache_camel_reifier_ProcessorReifier.java | 34 ----------------------
 ...camel_reifier_dataformat_DataFormatReifier.java | 34 ----------------------
 ...l_reifier_loadbalancer_LoadBalancerReifier.java | 34 ----------------------
 ...mel_reifier_transformer_TransformerReifier.java | 34 ----------------------
 ...e_camel_reifier_validator_ValidatorReifier.java | 34 ----------------------
 .../core/runtime/support/FastCamelRuntime.java     |  8 +----
 .../camel/quarkus/core/runtime/support/Flags.java  |  6 ----
 .../aws/src/main/resources/application.properties  |  2 --
 .../bean/src/main/resources/application.properties |  2 --
 .../src/main/resources/application.properties      |  2 --
 .../src/main/resources/application.properties      |  2 --
 .../test/src/main/resources/application.properties |  1 -
 .../src/main/resources/application.properties      |  3 --
 .../src/main/resources/application.properties      |  2 --
 .../src/main/resources/application.properties      |  2 --
 .../src/main/resources/application.properties      |  2 --
 17 files changed, 1 insertion(+), 207 deletions(-)

diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/CamelConfig.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/CamelConfig.java
index a358925..a5bb9b4 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/CamelConfig.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/CamelConfig.java
@@ -35,12 +35,6 @@ public class CamelConfig {
         public List<String> routesUris;
 
         /**
-         * Defer Camel context initialization phase until runtime.
-         */
-        @ConfigItem(defaultValue = "false")
-        public boolean deferInitPhase;
-
-        /**
          * Camel jaxb support is enabled by default, but in order to trim
          * down the size of applications, it is possible to disable jaxb support
          * at runtime. This is useful when routes at loaded at build time and
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_ProcessorReifier.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_ProcessorReifier.java
deleted file mode 100644
index 0135441..0000000
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_ProcessorReifier.java
+++ /dev/null
@@ -1,34 +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.quarkus.core.runtime.graal;
-
-import java.util.Map;
-import java.util.function.Function;
-
-import com.oracle.svm.core.annotate.Alias;
-import com.oracle.svm.core.annotate.RecomputeFieldValue;
-import com.oracle.svm.core.annotate.TargetClass;
-import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.quarkus.core.runtime.support.Flags;
-import org.apache.camel.reifier.ProcessorReifier;
-
-@TargetClass(className = "org.apache.camel.reifier.ProcessorReifier", onlyWith = Flags.InitAtBuildTime.class)
-final class Target_org_apache_camel_reifier_ProcessorReifier {
-    @Alias
-    @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.FromAlias)
-    private static Map<Class<?>, Function<ProcessorDefinition<?>, ProcessorReifier<? extends ProcessorDefinition<?>>>> PROCESSORS = null;
-}
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_dataformat_DataFormatReifier.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_dataformat_DataFormatReifier.java
deleted file mode 100644
index 33a9b12..0000000
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_dataformat_DataFormatReifier.java
+++ /dev/null
@@ -1,34 +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.quarkus.core.runtime.graal;
-
-import java.util.Map;
-import java.util.function.Function;
-
-import com.oracle.svm.core.annotate.Alias;
-import com.oracle.svm.core.annotate.RecomputeFieldValue;
-import com.oracle.svm.core.annotate.TargetClass;
-import org.apache.camel.model.DataFormatDefinition;
-import org.apache.camel.quarkus.core.runtime.support.Flags;
-import org.apache.camel.reifier.dataformat.DataFormatReifier;
-
-@TargetClass(className = "org.apache.camel.reifier.dataformat.DataFormatReifier", onlyWith = Flags.InitAtBuildTime.class)
-final class Target_org_apache_camel_reifier_dataformat_DataFormatReifier {
-    @Alias
-    @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.FromAlias)
-    private static Map<Class<?>, Function<DataFormatDefinition, DataFormatReifier<? extends DataFormatDefinition>>> DATAFORMATS = null;
-}
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_loadbalancer_LoadBalancerReifier.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_loadbalancer_LoadBalancerReifier.java
deleted file mode 100644
index b67872a..0000000
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_loadbalancer_LoadBalancerReifier.java
+++ /dev/null
@@ -1,34 +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.quarkus.core.runtime.graal;
-
-import java.util.Map;
-import java.util.function.Function;
-
-import com.oracle.svm.core.annotate.Alias;
-import com.oracle.svm.core.annotate.RecomputeFieldValue;
-import com.oracle.svm.core.annotate.TargetClass;
-import org.apache.camel.model.LoadBalancerDefinition;
-import org.apache.camel.quarkus.core.runtime.support.Flags;
-import org.apache.camel.reifier.loadbalancer.LoadBalancerReifier;
-
-@TargetClass(className = "org.apache.camel.reifier.loadbalancer.LoadBalancerReifier", onlyWith = Flags.InitAtBuildTime.class)
-final class Target_org_apache_camel_reifier_loadbalancer_LoadBalancerReifier {
-    @Alias
-    @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.FromAlias)
-    private static Map<Class<?>, Function<LoadBalancerDefinition, LoadBalancerReifier<? extends LoadBalancerDefinition>>> LOAD_BALANCERS = null;
-}
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_transformer_TransformerReifier.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_transformer_TransformerReifier.java
deleted file mode 100644
index 8eb6ce7..0000000
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_transformer_TransformerReifier.java
+++ /dev/null
@@ -1,34 +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.quarkus.core.runtime.graal;
-
-import java.util.Map;
-import java.util.function.Function;
-
-import com.oracle.svm.core.annotate.Alias;
-import com.oracle.svm.core.annotate.RecomputeFieldValue;
-import com.oracle.svm.core.annotate.TargetClass;
-import org.apache.camel.model.transformer.TransformerDefinition;
-import org.apache.camel.quarkus.core.runtime.support.Flags;
-import org.apache.camel.reifier.transformer.TransformerReifier;
-
-@TargetClass(className = "org.apache.camel.reifier.transformer.TransformerReifier", onlyWith = Flags.InitAtBuildTime.class)
-final class Target_org_apache_camel_reifier_transformer_TransformerReifier {
-    @Alias
-    @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.FromAlias)
-    private static Map<Class<?>, Function<TransformerDefinition, TransformerReifier<? extends TransformerDefinition>>> TRANSFORMERS = null;
-}
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_validator_ValidatorReifier.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_validator_ValidatorReifier.java
deleted file mode 100644
index a5249ca..0000000
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/graal/Target_org_apache_camel_reifier_validator_ValidatorReifier.java
+++ /dev/null
@@ -1,34 +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.quarkus.core.runtime.graal;
-
-import java.util.Map;
-import java.util.function.Function;
-
-import com.oracle.svm.core.annotate.Alias;
-import com.oracle.svm.core.annotate.RecomputeFieldValue;
-import com.oracle.svm.core.annotate.TargetClass;
-import org.apache.camel.model.validator.ValidatorDefinition;
-import org.apache.camel.quarkus.core.runtime.support.Flags;
-import org.apache.camel.reifier.validator.ValidatorReifier;
-
-@TargetClass(className = "org.apache.camel.reifier.validator.ValidatorReifier", onlyWith = Flags.InitAtBuildTime.class)
-final class Target_org_apache_camel_reifier_validator_ValidatorReifier {
-    @Alias
-    @RecomputeFieldValue(kind = RecomputeFieldValue.Kind.FromAlias)
-    private static Map<Class<?>, Function<ValidatorDefinition, ValidatorReifier<? extends ValidatorDefinition>>> VALIDATORS = null;
-}
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelRuntime.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelRuntime.java
index 232c428..efc4a05 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelRuntime.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/FastCamelRuntime.java
@@ -104,10 +104,6 @@ public class FastCamelRuntime implements CamelRuntime {
             context.adapt(FastCamelContext.class).setModel(model);
 
             fireEvent(InitializedEvent.class, new InitializedEvent());
-
-            if (!buildTimeConfig.deferInitPhase) {
-                loadRoutes(context);
-            }
         } catch (Exception e) {
             throw RuntimeCamelException.wrapRuntimeCamelException(e);
         }
@@ -116,9 +112,7 @@ public class FastCamelRuntime implements CamelRuntime {
     public void doStart() throws Exception {
         fireEvent(StartingEvent.class, new StartingEvent());
 
-        if (buildTimeConfig.deferInitPhase) {
-            loadRoutes(context);
-        }
+        loadRoutes(context);
 
         context.start();
         fireEvent(StartedEvent.class, new StartedEvent());
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/Flags.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/Flags.java
index 8b34611..69247e2 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/Flags.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/runtime/support/Flags.java
@@ -38,10 +38,4 @@ public final class Flags {
         }
     }
 
-    public static final class InitAtBuildTime implements BooleanSupplier {
-        @Override
-        public boolean getAsBoolean() {
-            return !ConfigProvider.getConfig().getOptionalValue("quarkus.camel.defer-init-phase", Boolean.class).orElse(Boolean.TRUE);
-        }
-    }
 }
diff --git a/integration-tests/aws/src/main/resources/application.properties b/integration-tests/aws/src/main/resources/application.properties
index b40bf30..936ed0f 100644
--- a/integration-tests/aws/src/main/resources/application.properties
+++ b/integration-tests/aws/src/main/resources/application.properties
@@ -26,8 +26,6 @@ quarkus.log.file.enable = false
 quarkus.camel.disable-xml=true
 quarkus.camel.disable-jaxb=true
 quarkus.camel.dump-routes=true
-quarkus.camel.defer-init-phase=true
-
 #
 # Camel
 #
diff --git a/integration-tests/bean/src/main/resources/application.properties b/integration-tests/bean/src/main/resources/application.properties
index b87f452..fe14ab2 100644
--- a/integration-tests/bean/src/main/resources/application.properties
+++ b/integration-tests/bean/src/main/resources/application.properties
@@ -26,8 +26,6 @@ quarkus.log.file.enable = false
 quarkus.camel.disable-xml=true
 quarkus.camel.disable-jaxb=true
 quarkus.camel.dump-routes=true
-quarkus.camel.defer-init-phase=true
-
 #
 # Camel
 #
diff --git a/integration-tests/core-cdi/src/main/resources/application.properties b/integration-tests/core-cdi/src/main/resources/application.properties
index 925ec45..f258d12 100644
--- a/integration-tests/core-cdi/src/main/resources/application.properties
+++ b/integration-tests/core-cdi/src/main/resources/application.properties
@@ -25,8 +25,6 @@ quarkus.log.file.enable = false
 quarkus.camel.disable-xml=false
 quarkus.camel.disable-jaxb=false
 quarkus.camel.dump-routes=true
-quarkus.camel.defer-init-phase=true
-
 #
 # Camel
 #
diff --git a/integration-tests/core-impl/src/main/resources/application.properties b/integration-tests/core-impl/src/main/resources/application.properties
index 8f520a6..775072e 100644
--- a/integration-tests/core-impl/src/main/resources/application.properties
+++ b/integration-tests/core-impl/src/main/resources/application.properties
@@ -25,8 +25,6 @@ quarkus.log.file.enable = false
 quarkus.camel.disable-xml=true
 quarkus.camel.disable-jaxb=true
 quarkus.camel.dump-routes=true
-quarkus.camel.defer-init-phase=true
-
 #
 # Camel
 #
diff --git a/integration-tests/core/test/src/main/resources/application.properties b/integration-tests/core/test/src/main/resources/application.properties
index 83b6cc3..b441636 100644
--- a/integration-tests/core/test/src/main/resources/application.properties
+++ b/integration-tests/core/test/src/main/resources/application.properties
@@ -25,7 +25,6 @@ quarkus.log.file.enable = false
 quarkus.camel.disable-xml=true
 quarkus.camel.disable-jaxb=true
 quarkus.camel.dump-routes=true
-quarkus.camel.defer-init-phase=true
 
 #
 # Camel
diff --git a/integration-tests/netty-http/src/main/resources/application.properties b/integration-tests/netty-http/src/main/resources/application.properties
index 623b297..603d5f3 100644
--- a/integration-tests/netty-http/src/main/resources/application.properties
+++ b/integration-tests/netty-http/src/main/resources/application.properties
@@ -25,9 +25,6 @@ quarkus.log.file.enable = false
 quarkus.camel.disable-xml=true
 quarkus.camel.disable-jaxb=true        
 quarkus.camel.dump-routes=true
-quarkus.camel.defer-init-phase=false
-
-
 #
 # Camel
 #
diff --git a/integration-tests/salesforce/src/main/resources/application.properties b/integration-tests/salesforce/src/main/resources/application.properties
index 675d16e..1b8f25e 100644
--- a/integration-tests/salesforce/src/main/resources/application.properties
+++ b/integration-tests/salesforce/src/main/resources/application.properties
@@ -22,8 +22,6 @@ quarkus.ssl.native=true
 quarkus.camel.disable-xml=true
 quarkus.camel.disable-jaxb=true        
 quarkus.camel.dump-routes=true
-quarkus.camel.defer-init-phase=true
-
 #
 # Camel
 #
diff --git a/integration-tests/servlet/src/main/resources/application.properties b/integration-tests/servlet/src/main/resources/application.properties
index 01b95d1..387415e 100644
--- a/integration-tests/servlet/src/main/resources/application.properties
+++ b/integration-tests/servlet/src/main/resources/application.properties
@@ -26,8 +26,6 @@ quarkus.ssl.native=true
 quarkus.camel.disable-xml=true
 quarkus.camel.disable-jaxb=true        
 quarkus.camel.dump-routes=true
-quarkus.camel.defer-init-phase=false
-
 #
 # Quarkus :: Camel :: Servlet
 #
diff --git a/integration-tests/twitter/src/main/resources/application.properties b/integration-tests/twitter/src/main/resources/application.properties
index ca98170..c0f95bf 100644
--- a/integration-tests/twitter/src/main/resources/application.properties
+++ b/integration-tests/twitter/src/main/resources/application.properties
@@ -26,8 +26,6 @@ quarkus.log.file.enable = false
 quarkus.camel.disable-xml=true
 quarkus.camel.disable-jaxb=true
 quarkus.camel.dump-routes=true
-quarkus.camel.defer-init-phase=true
-
 #
 # Camel
 #