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

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

commit 6dac73aef63a103aad2816f9b5844845d8bbd8d7
Author: lburgazzoli <lburgazz...@gmail.com>
AuthorDate: Tue Feb 4 17:57:53 2020 +0100

    Upgarde to Camel 3.1.0 - WIP (xml loader/dumper)
---
 .../component/xml/deployment/XmlProcessor.java     |  9 +++++-
 extensions/core-xml/runtime/pom.xml                |  4 +++
 .../camel/quarkus/component/xml/XmlRecorder.java   | 27 ++++++++++++++--
 .../quarkus/core/deployment/BuildProcessor.java    | 13 ++++++--
 .../CamelModelToXMLDumperBuildItem.java}           | 22 +++++++------
 .../deployment/CamelRoutesLoaderBuildItems.java    | 10 +++---
 .../camel/quarkus/core/CamelMainRecorder.java      |  3 +-
 .../apache/camel/quarkus/core/CamelRecorder.java   | 23 +++++++++-----
 .../camel/quarkus/core/CamelRoutesCollector.java   | 17 +++++++---
 .../quarkus/core/DisabledModelToXMLDumper.java}    | 23 ++++++--------
 ...java => DisabledXMLRoutesDefinitionLoader.java} | 11 +++----
 .../camel/quarkus/core/FastCamelContext.java       | 36 ++++++++++++----------
 .../org/apache/camel/quarkus/core/FastModel.java   |  6 +---
 .../apache/camel/quarkus/core/CamelServlet.java    |  5 +++
 .../org/apache/camel/quarkus/core/CamelTest.java   |  5 +++
 .../apache/camel/quarkus/core/CamelServlet.java    |  2 ++
 .../org/apache/camel/quarkus/core/CamelTest.java   |  5 ++-
 poms/bom/pom.xml                                   | 11 +++++++
 tooling/package-maven-plugin/pom.xml               | 10 ++++++
 19 files changed, 165 insertions(+), 77 deletions(-)

diff --git 
a/extensions/core-xml/deployment/src/main/java/org/apache/camel/quarkus/component/xml/deployment/XmlProcessor.java
 
b/extensions/core-xml/deployment/src/main/java/org/apache/camel/quarkus/component/xml/deployment/XmlProcessor.java
index 07329c8..19b096b 100644
--- 
a/extensions/core-xml/deployment/src/main/java/org/apache/camel/quarkus/component/xml/deployment/XmlProcessor.java
+++ 
b/extensions/core-xml/deployment/src/main/java/org/apache/camel/quarkus/component/xml/deployment/XmlProcessor.java
@@ -24,6 +24,7 @@ import io.quarkus.deployment.builditem.FeatureBuildItem;
 import io.quarkus.jaxb.deployment.JaxbFileRootBuildItem;
 import org.apache.camel.quarkus.component.xml.XmlRecorder;
 import 
org.apache.camel.quarkus.core.deployment.CamelModelJAXBContextFactoryBuildItem;
+import org.apache.camel.quarkus.core.deployment.CamelModelToXMLDumperBuildItem;
 import org.apache.camel.quarkus.core.deployment.CamelRoutesLoaderBuildItems;
 import org.apache.camel.quarkus.core.deployment.CamelSupport;
 import org.apache.camel.quarkus.support.common.CamelCapabilities;
@@ -56,7 +57,13 @@ class XmlProcessor {
     @BuildStep
     @Record(value = ExecutionTime.STATIC_INIT, optional = true)
     CamelRoutesLoaderBuildItems.Xml xmlLoader(XmlRecorder recorder) {
-        return new 
CamelRoutesLoaderBuildItems.Xml(recorder.newDefaultXmlLoader());
+        return new 
CamelRoutesLoaderBuildItems.Xml(recorder.newJaxbXMLRoutesDefinitionLoader());
+    }
+
+    @BuildStep
+    @Record(value = ExecutionTime.STATIC_INIT, optional = true)
+    CamelModelToXMLDumperBuildItem xmlModelDumper(XmlRecorder recorder) {
+        return new 
CamelModelToXMLDumperBuildItem(recorder.newJaxbModelToXMLDumper());
     }
 
     @BuildStep
diff --git a/extensions/core-xml/runtime/pom.xml 
b/extensions/core-xml/runtime/pom.xml
index aac5cda..f61467d 100644
--- a/extensions/core-xml/runtime/pom.xml
+++ b/extensions/core-xml/runtime/pom.xml
@@ -48,6 +48,10 @@
 
     <dependencies>
         <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-xml-jaxb</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-core</artifactId>
         </dependency>
diff --git 
a/extensions/core-xml/runtime/src/main/java/org/apache/camel/quarkus/component/xml/XmlRecorder.java
 
b/extensions/core-xml/runtime/src/main/java/org/apache/camel/quarkus/component/xml/XmlRecorder.java
index 0170587..1469086 100644
--- 
a/extensions/core-xml/runtime/src/main/java/org/apache/camel/quarkus/component/xml/XmlRecorder.java
+++ 
b/extensions/core-xml/runtime/src/main/java/org/apache/camel/quarkus/component/xml/XmlRecorder.java
@@ -24,12 +24,15 @@ import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.impl.DefaultModelJAXBContextFactory;
 import org.apache.camel.model.ValidateDefinition;
 import org.apache.camel.model.validator.PredicateValidatorDefinition;
-import org.apache.camel.quarkus.core.XmlRoutesLoader;
 import org.apache.camel.reifier.ProcessorReifier;
 import org.apache.camel.reifier.ValidateReifier;
 import org.apache.camel.reifier.validator.PredicateValidatorReifier;
 import org.apache.camel.reifier.validator.ValidatorReifier;
 import org.apache.camel.spi.ModelJAXBContextFactory;
+import org.apache.camel.spi.ModelToXMLDumper;
+import org.apache.camel.spi.XMLRoutesDefinitionLoader;
+import org.apache.camel.xml.jaxb.JaxbModelToXMLDumper;
+import org.apache.camel.xml.jaxb.JaxbXMLRoutesDefinitionLoader;
 import org.graalvm.nativeimage.ImageInfo;
 
 @Recorder
@@ -47,12 +50,30 @@ public class XmlRecorder {
         return new RuntimeValue<>(factory);
     }
 
-    public RuntimeValue<XmlRoutesLoader> newDefaultXmlLoader() {
-        return new RuntimeValue<>(new DefaultXmlRoutesLoader());
+    public RuntimeValue<XMLRoutesDefinitionLoader> 
newJaxbXMLRoutesDefinitionLoader() {
+        return new RuntimeValue<>(new JaxbXMLRoutesDefinitionLoader());
+    }
+
+    public RuntimeValue<ModelToXMLDumper> newJaxbModelToXMLDumper() {
+        return new RuntimeValue<>(new JaxbModelToXMLDumper());
     }
 
     public void initXmlReifiers() {
         ProcessorReifier.registerReifier(ValidateDefinition.class, 
ValidateReifier::new);
         ValidatorReifier.registerReifier(PredicateValidatorDefinition.class, 
PredicateValidatorReifier::new);
     }
+
+    /*
+    
+    
+    @Override
+    protected XMLRoutesDefinitionLoader createXMLRoutesDefinitionLoader() {
+        return xmlLoader;
+    }
+    
+    @Override
+    protected ModelToXMLDumper createModelToXMLDumper() {
+        return modelDumper;
+    }
+     */
 }
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 2672806..1783ab3 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
@@ -334,8 +334,15 @@ class BuildProcessor {
         @Overridable
         @BuildStep
         @Record(value = ExecutionTime.STATIC_INIT, optional = true)
-        public CamelRoutesLoaderBuildItems.Xml createXmlLoader(CamelRecorder 
recorder) {
-            return new 
CamelRoutesLoaderBuildItems.Xml(recorder.newDisabledXmlRoutesLoader());
+        public CamelRoutesLoaderBuildItems.Xml 
createXMLRoutesLoader(CamelRecorder recorder) {
+            return new 
CamelRoutesLoaderBuildItems.Xml(recorder.newDisabledXMLRoutesDefinitionLoader());
+        }
+
+        @Overridable
+        @BuildStep
+        @Record(value = ExecutionTime.STATIC_INIT, optional = true)
+        public CamelModelToXMLDumperBuildItem 
createModelToXMLDumper(CamelRecorder recorder) {
+            return new 
CamelModelToXMLDumperBuildItem(recorder.newDisabledModelToXMLDumper());
         }
 
         @BuildStep
@@ -355,6 +362,7 @@ class BuildProcessor {
                 CamelTypeConverterRegistryBuildItem typeConverterRegistry,
                 CamelModelJAXBContextFactoryBuildItem contextFactory,
                 CamelRoutesLoaderBuildItems.Xml xmlLoader,
+                CamelModelToXMLDumperBuildItem modelDumper,
                 CamelFactoryFinderResolverBuildItem 
factoryFinderResolverBuildItem,
                 BeanContainerBuildItem beanContainer,
                 CamelConfig config) {
@@ -364,6 +372,7 @@ class BuildProcessor {
                     typeConverterRegistry.getRegistry(),
                     contextFactory.getContextFactory(),
                     xmlLoader.getLoader(),
+                    modelDumper.getValue(),
                     factoryFinderResolverBuildItem.getFactoryFinderResolver(),
                     beanContainer.getValue(),
                     CamelSupport.getCamelVersion(),
diff --git 
a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/XmlRoutesLoader.java
 
b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelModelToXMLDumperBuildItem.java
similarity index 61%
rename from 
extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/XmlRoutesLoader.java
rename to 
extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelModelToXMLDumperBuildItem.java
index 36a2c1d..0bab4db 100644
--- 
a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/XmlRoutesLoader.java
+++ 
b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelModelToXMLDumperBuildItem.java
@@ -14,18 +14,20 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.core;
+package org.apache.camel.quarkus.core.deployment;
 
-import java.io.InputStream;
+import io.quarkus.builder.item.SimpleBuildItem;
+import io.quarkus.runtime.RuntimeValue;
+import org.apache.camel.spi.ModelToXMLDumper;
 
-import org.apache.camel.CamelContext;
-import org.apache.camel.model.RoutesDefinition;
-import org.apache.camel.model.rest.RestsDefinition;
+public final class CamelModelToXMLDumperBuildItem extends SimpleBuildItem {
+    private final RuntimeValue<ModelToXMLDumper> value;
 
-public interface XmlRoutesLoader {
-
-    RoutesDefinition loadRoutesDefinition(CamelContext context, InputStream 
inputStream) throws Exception;
-
-    RestsDefinition loadRestsDefinition(CamelContext context, InputStream is) 
throws Exception;
+    public CamelModelToXMLDumperBuildItem(RuntimeValue<ModelToXMLDumper> 
value) {
+        this.value = value;
+    }
 
+    public RuntimeValue<ModelToXMLDumper> getValue() {
+        return value;
+    }
 }
diff --git 
a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelRoutesLoaderBuildItems.java
 
b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelRoutesLoaderBuildItems.java
index 815cff7..5638bbc 100644
--- 
a/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelRoutesLoaderBuildItems.java
+++ 
b/extensions/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelRoutesLoaderBuildItems.java
@@ -19,7 +19,7 @@ package org.apache.camel.quarkus.core.deployment;
 import io.quarkus.builder.item.SimpleBuildItem;
 import io.quarkus.runtime.RuntimeValue;
 import org.apache.camel.quarkus.core.RegistryRoutesLoader;
-import org.apache.camel.quarkus.core.XmlRoutesLoader;
+import org.apache.camel.spi.XMLRoutesDefinitionLoader;
 
 public final class CamelRoutesLoaderBuildItems {
     private CamelRoutesLoaderBuildItems() {
@@ -41,16 +41,16 @@ public final class CamelRoutesLoaderBuildItems {
     }
 
     /**
-     * Holds the {@link XmlRoutesLoader} instance.
+     * Holds the {@link XMLRoutesDefinitionLoader} instance.
      */
     public static final class Xml extends SimpleBuildItem {
-        private final RuntimeValue<XmlRoutesLoader> value;
+        private final RuntimeValue<XMLRoutesDefinitionLoader> value;
 
-        public Xml(RuntimeValue<XmlRoutesLoader> value) {
+        public Xml(RuntimeValue<XMLRoutesDefinitionLoader> value) {
             this.value = value;
         }
 
-        public RuntimeValue<XmlRoutesLoader> getLoader() {
+        public RuntimeValue<XMLRoutesDefinitionLoader> getLoader() {
             return value;
         }
     }
diff --git 
a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java
 
b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java
index 68de3ea..ec0d238 100644
--- 
a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java
+++ 
b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelMainRecorder.java
@@ -27,6 +27,7 @@ import org.apache.camel.impl.engine.DefaultReactiveExecutor;
 import org.apache.camel.main.MainListener;
 import org.apache.camel.main.RoutesCollector;
 import org.apache.camel.spi.ReactiveExecutor;
+import org.apache.camel.spi.XMLRoutesDefinitionLoader;
 
 @Recorder
 public class CamelMainRecorder {
@@ -101,7 +102,7 @@ public class CamelMainRecorder {
 
     public RuntimeValue<RoutesCollector> newRoutesCollector(
             RuntimeValue<RegistryRoutesLoader> registryRoutesLoader,
-            RuntimeValue<XmlRoutesLoader> xmlRoutesLoader) {
+            RuntimeValue<XMLRoutesDefinitionLoader> xmlRoutesLoader) {
 
         return new RuntimeValue<>(new 
CamelRoutesCollector(registryRoutesLoader.getValue(), 
xmlRoutesLoader.getValue()));
     }
diff --git 
a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java
 
b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java
index db05027..e37ca47 100644
--- 
a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java
+++ 
b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRecorder.java
@@ -28,9 +28,11 @@ import org.apache.camel.reifier.validator.ValidatorReifier;
 import org.apache.camel.runtimecatalog.RuntimeCamelCatalog;
 import org.apache.camel.spi.FactoryFinderResolver;
 import org.apache.camel.spi.ModelJAXBContextFactory;
+import org.apache.camel.spi.ModelToXMLDumper;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.spi.TypeConverterLoader;
 import org.apache.camel.spi.TypeConverterRegistry;
+import org.apache.camel.spi.XMLRoutesDefinitionLoader;
 
 @Recorder
 public class CamelRecorder {
@@ -60,21 +62,24 @@ public class CamelRecorder {
             RuntimeValue<Registry> registry,
             RuntimeValue<TypeConverterRegistry> typeConverterRegistry,
             RuntimeValue<ModelJAXBContextFactory> contextFactory,
-            RuntimeValue<XmlRoutesLoader> xmlLoader,
+            RuntimeValue<XMLRoutesDefinitionLoader> xmlLoader,
+            RuntimeValue<ModelToXMLDumper> xmlModelDumper,
             RuntimeValue<FactoryFinderResolver> factoryFinderResolver,
             BeanContainer beanContainer,
             String version,
             CamelConfig config) {
 
-        FastCamelContext context = new 
FastCamelContext(factoryFinderResolver.getValue(), version);
+        FastCamelContext context = new FastCamelContext(
+                factoryFinderResolver.getValue(),
+                version,
+                xmlLoader.getValue(),
+                xmlModelDumper.getValue());
+
         context.setDefaultExtension(RuntimeCamelCatalog.class, () -> new 
CamelRuntimeCatalog(context, config.runtimeCatalog));
         context.setRegistry(registry.getValue());
         context.setTypeConverterRegistry(typeConverterRegistry.getValue());
         context.setLoadTypeConverters(false);
         context.setModelJAXBContextFactory(contextFactory.getValue());
-
-        FastModel model = new FastModel(context, xmlLoader.getValue());
-        context.setModel(model);
         context.init();
 
         // register to the container
@@ -122,8 +127,12 @@ public class CamelRecorder {
         return new RuntimeValue<>(new DisabledModelJAXBContextFactory());
     }
 
-    public RuntimeValue<XmlRoutesLoader> newDisabledXmlRoutesLoader() {
-        return new RuntimeValue<>(new DisabledXmlRoutesLoader());
+    public RuntimeValue<XMLRoutesDefinitionLoader> 
newDisabledXMLRoutesDefinitionLoader() {
+        return new RuntimeValue<>(new DisabledXMLRoutesDefinitionLoader());
+    }
+
+    public RuntimeValue<ModelToXMLDumper> newDisabledModelToXMLDumper() {
+        return new RuntimeValue<>(new DisabledModelToXMLDumper());
     }
 
     public RuntimeValue<RegistryRoutesLoader> newDefaultRegistryRoutesLoader() 
{
diff --git 
a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRoutesCollector.java
 
b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRoutesCollector.java
index 8f63cea..0c63b2a 100644
--- 
a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRoutesCollector.java
+++ 
b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelRoutesCollector.java
@@ -29,6 +29,7 @@ import org.apache.camel.main.RoutesCollector;
 import org.apache.camel.model.RoutesDefinition;
 import org.apache.camel.model.rest.RestsDefinition;
 import org.apache.camel.spi.PackageScanResourceResolver;
+import org.apache.camel.spi.XMLRoutesDefinitionLoader;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -36,9 +37,9 @@ public class CamelRoutesCollector implements RoutesCollector {
     private static final Logger LOGGER = 
LoggerFactory.getLogger(CamelRoutesCollector.class);
 
     private final RegistryRoutesLoader registryRoutesLoader;
-    private final XmlRoutesLoader xmlRoutesLoader;
+    private final XMLRoutesDefinitionLoader xmlRoutesLoader;
 
-    public CamelRoutesCollector(RegistryRoutesLoader registryRoutesLoader, 
XmlRoutesLoader xmlRoutesLoader) {
+    public CamelRoutesCollector(RegistryRoutesLoader registryRoutesLoader, 
XMLRoutesDefinitionLoader xmlRoutesLoader) {
         this.registryRoutesLoader = registryRoutesLoader;
         this.xmlRoutesLoader = xmlRoutesLoader;
     }
@@ -47,7 +48,7 @@ public class CamelRoutesCollector implements RoutesCollector {
         return registryRoutesLoader;
     }
 
-    public XmlRoutesLoader getXmlRoutesLoader() {
+    public XMLRoutesDefinitionLoader getXmlRoutesLoader() {
         return xmlRoutesLoader;
     }
 
@@ -69,7 +70,10 @@ public class CamelRoutesCollector implements RoutesCollector 
{
             LOGGER.info("Loading additional Camel XML routes from: {}", part);
             try {
                 for (InputStream is : resolver.findResources(part)) {
-                    
answer.add(xmlRoutesLoader.loadRoutesDefinition(camelContext, is));
+                    Object definition = 
xmlRoutesLoader.loadRoutesDefinition(camelContext, is);
+                    if (definition instanceof RoutesDefinition) {
+                        answer.add((RoutesDefinition) definition);
+                    }
                 }
             } catch (FileNotFoundException e) {
                 LOGGER.debug("No XML routes found in {}. Skipping XML routes 
detection.", part);
@@ -90,7 +94,10 @@ public class CamelRoutesCollector implements RoutesCollector 
{
             LOGGER.info("Loading additional Camel XML rests from: {}", part);
             try {
                 for (InputStream is : resolver.findResources(part)) {
-                    
answer.add(xmlRoutesLoader.loadRestsDefinition(camelContext, is));
+                    Object definition = 
xmlRoutesLoader.loadRestsDefinition(camelContext, is);
+                    if (definition instanceof RestsDefinition) {
+                        answer.add((RestsDefinition) definition);
+                    }
                 }
             } catch (FileNotFoundException e) {
                 LOGGER.debug("No XML rests found in {}. Skipping XML rests 
detection.", part);
diff --git 
a/extensions/core-xml/runtime/src/main/java/org/apache/camel/quarkus/component/xml/DefaultXmlRoutesLoader.java
 
b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledModelToXMLDumper.java
similarity index 56%
rename from 
extensions/core-xml/runtime/src/main/java/org/apache/camel/quarkus/component/xml/DefaultXmlRoutesLoader.java
rename to 
extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledModelToXMLDumper.java
index c9e1455..94f2f03 100644
--- 
a/extensions/core-xml/runtime/src/main/java/org/apache/camel/quarkus/component/xml/DefaultXmlRoutesLoader.java
+++ 
b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledModelToXMLDumper.java
@@ -14,26 +14,21 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.component.xml;
-
-import java.io.InputStream;
+package org.apache.camel.quarkus.core;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.model.ModelHelper;
-import org.apache.camel.model.RoutesDefinition;
-import org.apache.camel.model.rest.RestsDefinition;
-import org.apache.camel.quarkus.core.XmlRoutesLoader;
-
-public class DefaultXmlRoutesLoader implements XmlRoutesLoader {
+import org.apache.camel.NamedNode;
+import org.apache.camel.spi.ModelToXMLDumper;
 
+public class DisabledModelToXMLDumper implements ModelToXMLDumper {
     @Override
-    public RoutesDefinition loadRoutesDefinition(CamelContext context, 
InputStream is) throws Exception {
-        return ModelHelper.loadRoutesDefinition(context, is);
+    public String dumpModelAsXml(CamelContext context, NamedNode definition) 
throws Exception {
+        throw new UnsupportedOperationException("Please add a dependency to 
camel-quarkus-core-xml");
     }
 
     @Override
-    public RestsDefinition loadRestsDefinition(CamelContext context, 
InputStream is) throws Exception {
-        return ModelHelper.loadRestsDefinition(context, is);
+    public String dumpModelAsXml(CamelContext context, NamedNode definition, 
boolean resolvePlaceholders,
+            boolean resolveDelegateEndpoints) throws Exception {
+        throw new UnsupportedOperationException("Please add a dependency to 
camel-quarkus-core-xml");
     }
-
 }
diff --git 
a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledXmlRoutesLoader.java
 
b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledXMLRoutesDefinitionLoader.java
similarity index 74%
rename from 
extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledXmlRoutesLoader.java
rename to 
extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledXMLRoutesDefinitionLoader.java
index b470294..1fba95f 100644
--- 
a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledXmlRoutesLoader.java
+++ 
b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/DisabledXMLRoutesDefinitionLoader.java
@@ -19,19 +19,16 @@ package org.apache.camel.quarkus.core;
 import java.io.InputStream;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.model.RoutesDefinition;
-import org.apache.camel.model.rest.RestsDefinition;
-
-public class DisabledXmlRoutesLoader implements XmlRoutesLoader {
+import org.apache.camel.spi.XMLRoutesDefinitionLoader;
 
+public class DisabledXMLRoutesDefinitionLoader implements 
XMLRoutesDefinitionLoader {
     @Override
-    public RoutesDefinition loadRoutesDefinition(CamelContext context, 
InputStream inputStream) throws Exception {
+    public Object loadRoutesDefinition(CamelContext context, InputStream 
inputStream) throws Exception {
         throw new UnsupportedOperationException("Please add a dependency to 
camel-quarkus-core-xml");
     }
 
     @Override
-    public RestsDefinition loadRestsDefinition(CamelContext context, 
InputStream is) throws Exception {
+    public Object loadRestsDefinition(CamelContext context, InputStream 
inputStream) throws Exception {
         throw new UnsupportedOperationException("Please add a dependency to 
camel-quarkus-core-xml");
     }
-
 }
diff --git 
a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
 
b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
index 225d760..f0233b6 100644
--- 
a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
+++ 
b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
@@ -32,7 +32,6 @@ import 
org.apache.camel.component.microprofile.config.CamelMicroProfilePropertie
 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.BaseRouteService;
 import org.apache.camel.impl.engine.BeanProcessorFactoryResolver;
 import org.apache.camel.impl.engine.BeanProxyFactoryResolver;
 import org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager;
@@ -66,7 +65,6 @@ import org.apache.camel.impl.transformer.TransformerKey;
 import org.apache.camel.impl.validator.ValidatorKey;
 import org.apache.camel.model.Model;
 import org.apache.camel.processor.MulticastProcessor;
-import org.apache.camel.quarkus.core.FastModel.FastRouteContext;
 import org.apache.camel.spi.AsyncProcessorAwaitManager;
 import org.apache.camel.spi.BeanIntrospection;
 import org.apache.camel.spi.BeanProcessorFactory;
@@ -88,6 +86,7 @@ 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;
@@ -105,35 +104,31 @@ 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.support.CamelContextHelper;
 import org.apache.camel.util.IOHelper;
 
 public class FastCamelContext extends AbstractCamelContext implements 
CatalogCamelContext {
-    private Model model;
+    private final Model model;
     private final String version;
+    private final XMLRoutesDefinitionLoader xmlLoader;
+    private final ModelToXMLDumper modelDumper;
 
-    public FastCamelContext(FactoryFinderResolver factoryFinderResolver, 
String version) {
+    public FastCamelContext(FactoryFinderResolver factoryFinderResolver, 
String version, XMLRoutesDefinitionLoader xmlLoader,
+            ModelToXMLDumper modelDumper) {
         super(false);
 
         this.version = version;
+        this.xmlLoader = xmlLoader;
+        this.modelDumper = modelDumper;
+        this.model = new FastModel(this);
 
         setFactoryFinderResolver(factoryFinderResolver);
         setTracing(Boolean.FALSE);
         setDebugging(Boolean.FALSE);
         setMessageHistory(Boolean.FALSE);
-
         setDefaultExtension(HealthCheckRegistry.class, 
DefaultHealthCheckRegistry::new);
-    }
-
-    public void setModel(Model model) {
-        this.model = model;
-    }
 
-    public void clearModel() {
-        this.model = null;
-        for (BaseRouteService rs : getRouteServices().values()) {
-            ((FastRouteContext) rs.getRouteContext()).clearModel();
-        }
     }
 
     @Override
@@ -315,6 +310,16 @@ public class FastCamelContext extends AbstractCamelContext 
implements CatalogCam
     }
 
     @Override
+    protected XMLRoutesDefinitionLoader createXMLRoutesDefinitionLoader() {
+        return xmlLoader;
+    }
+
+    @Override
+    protected ModelToXMLDumper createModelToXMLDumper() {
+        return modelDumper;
+    }
+
+    @Override
     protected Tracer createTracer() {
         Tracer tracer = null;
         if (getRegistry() != null) {
@@ -473,7 +478,6 @@ public class FastCamelContext extends AbstractCamelContext 
implements CatalogCam
 
         if (inputStream != null) {
             try {
-                log.debug("loading scheme {} ", path);
                 return IOHelper.loadText(inputStream);
             } finally {
                 IOHelper.close(inputStream);
diff --git 
a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastModel.java
 
b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastModel.java
index 182f252..c619f11 100644
--- 
a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastModel.java
+++ 
b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastModel.java
@@ -40,12 +40,8 @@ import org.apache.camel.reifier.RouteReifier;
 import org.apache.camel.support.CamelContextHelper;
 
 public class FastModel extends BaseModel {
-
-    private final XmlRoutesLoader xmlLoader;
-
-    public FastModel(CamelContext camelContext, XmlRoutesLoader xmlLoader) {
+    public FastModel(CamelContext camelContext) {
         super(camelContext);
-        this.xmlLoader = xmlLoader;
     }
 
     @Override
diff --git 
a/integration-tests/core-main-xml/src/main/java/org/apache/camel/quarkus/core/CamelServlet.java
 
b/integration-tests/core-main-xml/src/main/java/org/apache/camel/quarkus/core/CamelServlet.java
index bab7f56..d7052bb 100644
--- 
a/integration-tests/core-main-xml/src/main/java/org/apache/camel/quarkus/core/CamelServlet.java
+++ 
b/integration-tests/core-main-xml/src/main/java/org/apache/camel/quarkus/core/CamelServlet.java
@@ -28,6 +28,7 @@ import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.spi.Registry;
 
 @Path("/test")
@@ -44,6 +45,8 @@ public class CamelServlet {
     @GET
     @Produces(MediaType.APPLICATION_JSON)
     public JsonObject describeMain() {
+        final ExtendedCamelContext camelContext = 
main.getCamelContext().adapt(ExtendedCamelContext.class);
+
         JsonArrayBuilder listeners = Json.createArrayBuilder();
         main.getMainListeners().forEach(listener -> 
listeners.add(listener.getClass().getName()));
 
@@ -62,6 +65,8 @@ public class CamelServlet {
         }
 
         return Json.createObjectBuilder()
+                .add("xml-loader", 
camelContext.getXMLRoutesDefinitionLoader().getClass().getName())
+                .add("xml-model-dumper", 
camelContext.getModelToXMLDumper().getClass().getName())
                 .add("routes-collector", collector)
                 .add("listeners", listeners)
                 .add("routeBuilders", routeBuilders)
diff --git 
a/integration-tests/core-main-xml/src/test/java/org/apache/camel/quarkus/core/CamelTest.java
 
b/integration-tests/core-main-xml/src/test/java/org/apache/camel/quarkus/core/CamelTest.java
index b6bc1eb..d3fd12d 100644
--- 
a/integration-tests/core-main-xml/src/test/java/org/apache/camel/quarkus/core/CamelTest.java
+++ 
b/integration-tests/core-main-xml/src/test/java/org/apache/camel/quarkus/core/CamelTest.java
@@ -21,6 +21,8 @@ import javax.ws.rs.core.MediaType;
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import io.restassured.path.json.JsonPath;
+import org.apache.camel.xml.jaxb.JaxbModelToXMLDumper;
+import org.apache.camel.xml.jaxb.JaxbXMLRoutesDefinitionLoader;
 import org.junit.jupiter.api.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
@@ -38,6 +40,9 @@ public class CamelTest {
                 .body()
                 .jsonPath();
 
+        
assertThat(p.getString("xml-loader")).isEqualTo(JaxbXMLRoutesDefinitionLoader.class.getName());
+        
assertThat(p.getString("xml-model-dumper")).isEqualTo(JaxbModelToXMLDumper.class.getName());
+
         assertThat(p.getList("routeBuilders", String.class))
                 .isEmpty();
         assertThat(p.getList("routes", String.class))
diff --git 
a/integration-tests/core-main/src/main/java/org/apache/camel/quarkus/core/CamelServlet.java
 
b/integration-tests/core-main/src/main/java/org/apache/camel/quarkus/core/CamelServlet.java
index b243845..de0c8ca 100644
--- 
a/integration-tests/core-main/src/main/java/org/apache/camel/quarkus/core/CamelServlet.java
+++ 
b/integration-tests/core-main/src/main/java/org/apache/camel/quarkus/core/CamelServlet.java
@@ -147,6 +147,8 @@ public class CamelServlet {
         }
 
         return Json.createObjectBuilder()
+                .add("xml-loader", 
camelContext.getXMLRoutesDefinitionLoader().getClass().getName())
+                .add("xml-model-dumper", 
camelContext.getModelToXMLDumper().getClass().getName())
                 .add("routes-collector", collector)
                 .add("listeners", listeners)
                 .add("routeBuilders", routeBuilders)
diff --git 
a/integration-tests/core-main/src/test/java/org/apache/camel/quarkus/core/CamelTest.java
 
b/integration-tests/core-main/src/test/java/org/apache/camel/quarkus/core/CamelTest.java
index a9c5892..ab7e3d4 100644
--- 
a/integration-tests/core-main/src/test/java/org/apache/camel/quarkus/core/CamelTest.java
+++ 
b/integration-tests/core-main/src/test/java/org/apache/camel/quarkus/core/CamelTest.java
@@ -77,9 +77,12 @@ public class CamelTest {
                 .body()
                 .jsonPath();
 
+        
assertThat(p.getString("xml-loader")).isEqualTo(DisabledXMLRoutesDefinitionLoader.class.getName());
+        
assertThat(p.getString("xml-model-dumper")).isEqualTo(DisabledModelToXMLDumper.class.getName());
+
         
assertThat(p.getString("routes-collector.type")).isEqualTo(CamelRoutesCollector.class.getName());
         
assertThat(p.getString("routes-collector.type-registry")).isEqualTo(RegistryRoutesLoaders.Default.class.getName());
-        
assertThat(p.getString("routes-collector.type-xml")).isEqualTo(DisabledXmlRoutesLoader.class.getName());
+        
assertThat(p.getString("routes-collector.type-xml")).isEqualTo(DisabledXMLRoutesDefinitionLoader.class.getName());
 
         assertThat(p.getList("listeners", String.class))
                 .containsOnly(CamelMainEventDispatcher.class.getName(), 
SupportListener.class.getName());
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index f849a11..b699120 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -332,6 +332,12 @@
                 <groupId>org.apache.camel</groupId>
                 <artifactId>camel-main</artifactId>
                 <version>${camel.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.apache.camel</groupId>
+                        <artifactId>camel-headersmap</artifactId>
+                    </exclusion>
+                </exclusions>
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
@@ -520,6 +526,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-xml-jaxb</artifactId>
+                <version>${camel.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-xslt</artifactId>
                 <version>${camel.version}</version>
             </dependency>
diff --git a/tooling/package-maven-plugin/pom.xml 
b/tooling/package-maven-plugin/pom.xml
index fc0eb30..d8d07f2 100644
--- a/tooling/package-maven-plugin/pom.xml
+++ b/tooling/package-maven-plugin/pom.xml
@@ -91,6 +91,10 @@
                     <artifactId>commons-io</artifactId>
                 </exclusion>
                 <exclusion>
+                    <groupId>org.apache.commons</groupId>
+                    <artifactId>commons-lang3</artifactId>
+                </exclusion>
+                <exclusion>
                     <groupId>com.google.guava</groupId>
                     <artifactId>guava</artifactId>
                 </exclusion>
@@ -99,6 +103,12 @@
         <dependency>
             <groupId>org.apache.maven</groupId>
             <artifactId>maven-artifact</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.apache.commons</groupId>
+                    <artifactId>commons-lang3</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.apache.maven</groupId>

Reply via email to