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 <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 | 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>