You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2020/02/04 16:58:51 UTC
[camel-quarkus] branch camel-master updated: Upgarde to Camel 3.1.0
- WIP (xml loader/dumper)
This is an automated email from the ASF dual-hosted git repository.
lburgazzoli pushed a commit to branch camel-master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/camel-master by this push:
new 49ba9b0 Upgarde to Camel 3.1.0 - WIP (xml loader/dumper)
49ba9b0 is described below
commit 49ba9b0ff5dc0d47e07e26bc53e3ed328caddaae
Author: lburgazzoli <lb...@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 | 24 ++++++++++----
.../camel/quarkus/core/CamelRoutesCollector.java | 17 +++++++---
.../quarkus/core/DisabledModelToXMLDumper.java} | 23 +++++--------
...java => DisabledXMLRoutesDefinitionLoader.java} | 11 +++----
.../camel/quarkus/core/FastCamelContext.java | 38 +++++++++++++---------
.../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, 168 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 1f27ff7..6e5d544 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) {
@@ -363,6 +371,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 87c7a99..f211f9c 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 {
@@ -102,7 +103,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 2dbf2ef..487c7f2 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
@@ -27,9 +27,11 @@ import org.apache.camel.reifier.ProcessorReifier;
import org.apache.camel.reifier.validator.ValidatorReifier;
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 {
@@ -59,18 +61,22 @@ 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) {
- FastCamelContext context = new FastCamelContext(factoryFinderResolver.getValue(), version);
+
+ FastCamelContext context = new FastCamelContext(
+ factoryFinderResolver.getValue(),
+ version,
+ xmlLoader.getValue(),
+ xmlModelDumper.getValue());
+
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
@@ -118,8 +124,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 0857b05..24507fe 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
@@ -29,7 +29,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;
@@ -62,7 +61,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;
@@ -82,6 +80,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;
@@ -99,31 +98,29 @@ 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;
public class FastCamelContext extends AbstractCamelContext {
- 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
@@ -296,7 +293,6 @@ public class FastCamelContext extends AbstractCamelContext {
pc.addPropertiesSource(new CamelMicroProfilePropertiesSource());
return pc;
-
}
@Override
@@ -305,6 +301,16 @@ public class FastCamelContext extends AbstractCamelContext {
}
@Override
+ protected XMLRoutesDefinitionLoader createXMLRoutesDefinitionLoader() {
+ return xmlLoader;
+ }
+
+ @Override
+ protected ModelToXMLDumper createModelToXMLDumper() {
+ return modelDumper;
+ }
+
+ @Override
protected Tracer createTracer() {
Tracer tracer = null;
if (getRegistry() != null) {
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 214c35f..a4e270b 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 d009459..7f1be6e 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -322,6 +322,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>
@@ -494,6 +500,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>