This is an automated email from the ASF dual-hosted git repository. lburgazzoli pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit 4b9091eafe959f6bf5da6ad7679739440c8b2a39 Author: Luca Burgazzoli <lburgazz...@gmail.com> AuthorDate: Thu Apr 8 15:17:16 2021 +0200 dsl: adapt to latest RouteBuilder support --- dsl/camel-groovy-dsl/camel-groovy-dsl/pom.xml | 4 ++ .../dsl/groovy/GroovyRoutesBuilderLoader.java | 60 ++++++++++---------- .../dsl/groovy/GroovyRoutesBuilderSupport.java | 53 ------------------ dsl/camel-java-joor-dsl/pom.xml | 4 ++ .../dsl/java/joor/JavaRoutesBuilderLoader.java | 38 +++---------- dsl/camel-js-dsl/pom.xml | 2 +- .../dsl/js/JavaScriptRoutesBuilderLoader.java | 43 ++------------ dsl/camel-kotlin-dsl/pom.xml | 2 +- .../camel/dsl/kotlin/KotlinRoutesBuilderLoader.kt | 40 +------------ dsl/camel-xml-io-dsl/pom.xml | 4 ++ .../camel/dsl/xml/io/XmlRoutesBuilderLoader.java | 65 +++++++--------------- dsl/camel-xml-jaxb-dsl/pom.xml | 4 ++ .../dsl/xml/jaxb/JaxbXmlRoutesBuilderLoader.java | 65 +++++++--------------- dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml | 6 +- .../camel/dsl/yaml/YamlRoutesBuilderLoader.java | 30 ++-------- 15 files changed, 107 insertions(+), 313 deletions(-) diff --git a/dsl/camel-groovy-dsl/camel-groovy-dsl/pom.xml b/dsl/camel-groovy-dsl/camel-groovy-dsl/pom.xml index fba542c..a21a50e 100644 --- a/dsl/camel-groovy-dsl/camel-groovy-dsl/pom.xml +++ b/dsl/camel-groovy-dsl/camel-groovy-dsl/pom.xml @@ -54,6 +54,10 @@ </dependency> <dependency> <groupId>org.apache.camel</groupId> + <artifactId>camel-dsl-support</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> <artifactId>camel-groovy-dsl-common</artifactId> </dependency> </dependencies> diff --git a/dsl/camel-groovy-dsl/camel-groovy-dsl/src/main/java/org/apache/camel/dsl/groovy/GroovyRoutesBuilderLoader.java b/dsl/camel-groovy-dsl/camel-groovy-dsl/src/main/java/org/apache/camel/dsl/groovy/GroovyRoutesBuilderLoader.java index 470d928..ad98d84 100644 --- a/dsl/camel-groovy-dsl/camel-groovy-dsl/src/main/java/org/apache/camel/dsl/groovy/GroovyRoutesBuilderLoader.java +++ b/dsl/camel-groovy-dsl/camel-groovy-dsl/src/main/java/org/apache/camel/dsl/groovy/GroovyRoutesBuilderLoader.java @@ -16,53 +16,49 @@ */ package org.apache.camel.dsl.groovy; +import java.io.Reader; + +import groovy.lang.Binding; +import groovy.lang.GroovyShell; +import groovy.util.DelegatingScript; import org.apache.camel.Experimental; -import org.apache.camel.ExtendedCamelContext; -import org.apache.camel.RoutesBuilder; -import org.apache.camel.StartupStep; -import org.apache.camel.api.management.ManagedAttribute; import org.apache.camel.api.management.ManagedResource; import org.apache.camel.builder.endpoint.EndpointRouteBuilder; -import org.apache.camel.spi.Resource; -import org.apache.camel.spi.StartupStepRecorder; +import org.apache.camel.dsl.groovy.common.GroovyDSL; +import org.apache.camel.dsl.support.EndpointRouteBuilderLoaderSupport; import org.apache.camel.spi.annotations.RoutesLoader; -import org.apache.camel.support.RoutesBuilderLoaderSupport; +import org.codehaus.groovy.control.CompilerConfiguration; +import org.codehaus.groovy.control.customizers.ImportCustomizer; @Experimental @ManagedResource(description = "Managed GroovyRoutesBuilderLoader") @RoutesLoader(GroovyRoutesBuilderLoader.EXTENSION) -public class GroovyRoutesBuilderLoader extends RoutesBuilderLoaderSupport { +public class GroovyRoutesBuilderLoader extends EndpointRouteBuilderLoaderSupport { public static final String EXTENSION = "groovy"; - private StartupStepRecorder recorder; + public GroovyRoutesBuilderLoader() { + super(EXTENSION); + } @Override - protected void doBuild() throws Exception { - super.doBuild(); + protected void doLoadEndpointRouteBuilder(Reader reader, EndpointRouteBuilder builder) { + ImportCustomizer ic = new ImportCustomizer(); + ic.addStarImports("org.apache.camel"); + ic.addStarImports("org.apache.camel.spi"); - if (getCamelContext() != null) { - this.recorder = getCamelContext().adapt(ExtendedCamelContext.class).getStartupStepRecorder(); - } - } + CompilerConfiguration cc = new CompilerConfiguration(); + cc.addCompilationCustomizers(ic); + cc.setScriptBaseClass(DelegatingScript.class.getName()); - @ManagedAttribute(description = "Supported file extension") - @Override - public String getSupportedExtension() { - return EXTENSION; - } + ClassLoader cl = builder.getContext().getApplicationContextClassLoader() != null + ? builder.getContext().getApplicationContextClassLoader() + : Thread.currentThread().getContextClassLoader(); - @Override - public RoutesBuilder loadRoutesBuilder(Resource resource) throws Exception { - StartupStep step = recorder != null - ? recorder.beginStep(GroovyRoutesBuilderLoader.class, resource.getLocation(), "Compiling RouteBuilder") - : null; + GroovyShell sh = new GroovyShell(cl, new Binding(), cc); + DelegatingScript script = (DelegatingScript) sh.parse(reader); - try { - return EndpointRouteBuilder.loadEndpointRoutesBuilder(resource, GroovyRoutesBuilderSupport::load); - } finally { - if (recorder != null) { - recorder.endStep(step); - } - } + // set the delegate target + script.setDelegate(new GroovyDSL(builder)); + script.run(); } } diff --git a/dsl/camel-groovy-dsl/camel-groovy-dsl/src/main/java/org/apache/camel/dsl/groovy/GroovyRoutesBuilderSupport.java b/dsl/camel-groovy-dsl/camel-groovy-dsl/src/main/java/org/apache/camel/dsl/groovy/GroovyRoutesBuilderSupport.java deleted file mode 100644 index a28ed79..0000000 --- a/dsl/camel-groovy-dsl/camel-groovy-dsl/src/main/java/org/apache/camel/dsl/groovy/GroovyRoutesBuilderSupport.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.dsl.groovy; - -import java.io.Reader; - -import groovy.lang.Binding; -import groovy.lang.GroovyShell; -import groovy.util.DelegatingScript; -import org.apache.camel.builder.endpoint.EndpointRouteBuilder; -import org.apache.camel.dsl.groovy.common.GroovyDSL; -import org.codehaus.groovy.control.CompilerConfiguration; -import org.codehaus.groovy.control.customizers.ImportCustomizer; - -public final class GroovyRoutesBuilderSupport { - private GroovyRoutesBuilderSupport() { - } - - static void load(Reader reader, EndpointRouteBuilder builder) { - ImportCustomizer ic = new ImportCustomizer(); - ic.addStarImports("org.apache.camel"); - ic.addStarImports("org.apache.camel.spi"); - - CompilerConfiguration cc = new CompilerConfiguration(); - cc.addCompilationCustomizers(ic); - cc.setScriptBaseClass(DelegatingScript.class.getName()); - - ClassLoader cl = builder.getContext().getApplicationContextClassLoader() != null - ? builder.getContext().getApplicationContextClassLoader() - : Thread.currentThread().getContextClassLoader(); - - GroovyShell sh = new GroovyShell(cl, new Binding(), cc); - DelegatingScript script = (DelegatingScript) sh.parse(reader); - - // set the delegate target - script.setDelegate(new GroovyDSL(builder)); - script.run(); - } -} diff --git a/dsl/camel-java-joor-dsl/pom.xml b/dsl/camel-java-joor-dsl/pom.xml index 4167ff9..a5512e4 100644 --- a/dsl/camel-java-joor-dsl/pom.xml +++ b/dsl/camel-java-joor-dsl/pom.xml @@ -52,6 +52,10 @@ <groupId>org.apache.camel</groupId> <artifactId>camel-core-model</artifactId> </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-dsl-support</artifactId> + </dependency> <!-- requires Java 11 or 14 --> <dependency> diff --git a/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java b/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java index 949618b..f134840 100644 --- a/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java +++ b/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java @@ -20,58 +20,34 @@ import java.io.InputStream; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.camel.ExtendedCamelContext; -import org.apache.camel.RoutesBuilder; -import org.apache.camel.StartupStep; -import org.apache.camel.api.management.ManagedAttribute; import org.apache.camel.api.management.ManagedResource; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.dsl.support.RouteBuilderLoaderSupport; import org.apache.camel.spi.Resource; -import org.apache.camel.spi.StartupStepRecorder; import org.apache.camel.spi.annotations.RoutesLoader; import org.apache.camel.support.ResourceHelper; -import org.apache.camel.support.RoutesBuilderLoaderSupport; import org.apache.camel.util.FileUtil; import org.apache.camel.util.IOHelper; import org.joor.Reflect; @ManagedResource(description = "Managed JavaRoutesBuilderLoader") @RoutesLoader(JavaRoutesBuilderLoader.EXTENSION) -public class JavaRoutesBuilderLoader extends RoutesBuilderLoaderSupport { +public class JavaRoutesBuilderLoader extends RouteBuilderLoaderSupport { public static final String EXTENSION = "java"; public static final Pattern PACKAGE_PATTERN = Pattern.compile( "^\\s*package\\s+([a-zA-Z][\\.\\w]*)\\s*;.*$", Pattern.MULTILINE); - private StartupStepRecorder recorder; - - @Override - protected void doBuild() throws Exception { - super.doBuild(); - recorder = getCamelContext().adapt(ExtendedCamelContext.class).getStartupStepRecorder(); - } - - @ManagedAttribute(description = "Supported file extension") - @Override - public String getSupportedExtension() { - return EXTENSION; + public JavaRoutesBuilderLoader() { + super(EXTENSION); } @Override - public RoutesBuilder loadRoutesBuilder(Resource resource) throws Exception { + public RouteBuilder doLoadRouteBuilder(Resource resource) throws Exception { try (InputStream is = resource.getInputStream()) { final String content = IOHelper.loadText(is); final String name = determineName(resource, content); - StartupStep step = recorder != null - ? recorder.beginStep(JavaRoutesBuilderLoader.class, name, "Compiling RouteBuilder") - : null; - - try { - return Reflect.compile(name, content).create().get(); - } finally { - if (recorder != null) { - recorder.endStep(step); - } - } + return Reflect.compile(name, content).create().get(); } } diff --git a/dsl/camel-js-dsl/pom.xml b/dsl/camel-js-dsl/pom.xml index aace007..1e7c93f 100644 --- a/dsl/camel-js-dsl/pom.xml +++ b/dsl/camel-js-dsl/pom.xml @@ -54,7 +54,7 @@ </dependency> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-endpointdsl</artifactId> + <artifactId>camel-dsl-support</artifactId> </dependency> <!-- requires Java 11 or 14 --> diff --git a/dsl/camel-js-dsl/src/main/java/org/apache/camel/dsl/js/JavaScriptRoutesBuilderLoader.java b/dsl/camel-js-dsl/src/main/java/org/apache/camel/dsl/js/JavaScriptRoutesBuilderLoader.java index 6d9a052..b79c8ab 100644 --- a/dsl/camel-js-dsl/src/main/java/org/apache/camel/dsl/js/JavaScriptRoutesBuilderLoader.java +++ b/dsl/camel-js-dsl/src/main/java/org/apache/camel/dsl/js/JavaScriptRoutesBuilderLoader.java @@ -19,17 +19,11 @@ package org.apache.camel.dsl.js; import java.io.Reader; import org.apache.camel.CamelContext; -import org.apache.camel.ExtendedCamelContext; -import org.apache.camel.RoutesBuilder; -import org.apache.camel.StartupStep; -import org.apache.camel.api.management.ManagedAttribute; import org.apache.camel.api.management.ManagedResource; import org.apache.camel.builder.endpoint.EndpointRouteBuilder; -import org.apache.camel.spi.Resource; -import org.apache.camel.spi.StartupStepRecorder; +import org.apache.camel.dsl.support.EndpointRouteBuilderLoaderSupport; import org.apache.camel.spi.annotations.RoutesLoader; import org.apache.camel.support.LifecycleStrategySupport; -import org.apache.camel.support.RoutesBuilderLoaderSupport; import org.graalvm.polyglot.Context; import org.graalvm.polyglot.Value; @@ -37,43 +31,16 @@ import static org.graalvm.polyglot.Source.newBuilder; @ManagedResource(description = "Managed JavaScriptRoutesBuilderLoader") @RoutesLoader(JavaScriptRoutesBuilderLoader.EXTENSION) -public class JavaScriptRoutesBuilderLoader extends RoutesBuilderLoaderSupport { +public class JavaScriptRoutesBuilderLoader extends EndpointRouteBuilderLoaderSupport { public static final String EXTENSION = "js"; public static final String LANGUAGE_ID = "js"; - private StartupStepRecorder recorder; - - @Override - protected void doBuild() throws Exception { - super.doBuild(); - - if (getCamelContext() != null) { - this.recorder = getCamelContext().adapt(ExtendedCamelContext.class).getStartupStepRecorder(); - } - } - - @ManagedAttribute(description = "Supported file extension") - @Override - public String getSupportedExtension() { - return EXTENSION; + public JavaScriptRoutesBuilderLoader() { + super(EXTENSION); } @Override - public RoutesBuilder loadRoutesBuilder(Resource resource) throws Exception { - StartupStep step = recorder != null - ? recorder.beginStep(JavaScriptRoutesBuilderLoader.class, resource.getLocation(), "Compiling RouteBuilder") - : null; - - try { - return EndpointRouteBuilder.loadEndpointRoutesBuilder(resource, this::load); - } finally { - if (recorder != null) { - recorder.endStep(step); - } - } - } - - private void load(Reader reader, EndpointRouteBuilder builder) { + protected void doLoadEndpointRouteBuilder(Reader reader, EndpointRouteBuilder builder) { final Context context = Context.newBuilder(LANGUAGE_ID).allowAllAccess(true).build(); final Value bindings = context.getBindings(LANGUAGE_ID); diff --git a/dsl/camel-kotlin-dsl/pom.xml b/dsl/camel-kotlin-dsl/pom.xml index a876cb4..3e316ea 100644 --- a/dsl/camel-kotlin-dsl/pom.xml +++ b/dsl/camel-kotlin-dsl/pom.xml @@ -54,7 +54,7 @@ </dependency> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-endpointdsl</artifactId> + <artifactId>camel-dsl-support</artifactId> </dependency> <dependency> diff --git a/dsl/camel-kotlin-dsl/src/main/kotlin/org/apache/camel/dsl/kotlin/KotlinRoutesBuilderLoader.kt b/dsl/camel-kotlin-dsl/src/main/kotlin/org/apache/camel/dsl/kotlin/KotlinRoutesBuilderLoader.kt index e916b18..cb195ac 100644 --- a/dsl/camel-kotlin-dsl/src/main/kotlin/org/apache/camel/dsl/kotlin/KotlinRoutesBuilderLoader.kt +++ b/dsl/camel-kotlin-dsl/src/main/kotlin/org/apache/camel/dsl/kotlin/KotlinRoutesBuilderLoader.kt @@ -17,19 +17,13 @@ package org.apache.camel.dsl.kotlin import org.apache.camel.Experimental -import org.apache.camel.ExtendedCamelContext -import org.apache.camel.RoutesBuilder import org.apache.camel.RuntimeCamelException -import org.apache.camel.api.management.ManagedAttribute import org.apache.camel.api.management.ManagedResource import org.apache.camel.builder.endpoint.EndpointRouteBuilder -import org.apache.camel.spi.Resource -import org.apache.camel.spi.StartupStepRecorder +import org.apache.camel.dsl.support.EndpointRouteBuilderLoaderSupport import org.apache.camel.spi.annotations.RoutesLoader -import org.apache.camel.support.RoutesBuilderLoaderSupport import org.slf4j.LoggerFactory import java.io.Reader -import java.lang.Exception import kotlin.script.experimental.api.* import kotlin.script.experimental.host.toScriptSource import kotlin.script.experimental.jvmhost.BasicJvmScriptingHost @@ -38,37 +32,9 @@ import kotlin.script.experimental.jvmhost.createJvmCompilationConfigurationFromT @Experimental @ManagedResource(description = "Managed KotlinRoutesBuilderLoader") @RoutesLoader(EXTENSION) -class KotlinRoutesBuilderLoader : RoutesBuilderLoaderSupport() { - var recorder: StartupStepRecorder? = null - +class KotlinRoutesBuilderLoader : EndpointRouteBuilderLoaderSupport(EXTENSION) { @Throws(Exception::class) - override fun doBuild() { - super.doBuild() - - if (camelContext != null) { - this.recorder = camelContext.adapt(ExtendedCamelContext::class.java).startupStepRecorder - } - } - - @ManagedAttribute(description = "Supported file extension") - override fun getSupportedExtension(): String { - return EXTENSION - } - - @Throws(Exception::class) - override fun loadRoutesBuilder(resource: Resource): RoutesBuilder? { - val step = if (recorder != null) recorder!!.beginStep(KotlinRoutesBuilderLoader::class.java, resource.location, "Compiling RouteBuilder") else null - - try { - return EndpointRouteBuilder.loadEndpointRoutesBuilder(resource) { - reader, builder -> load(reader, builder) - } - } finally { - recorder?.endStep(step) - } - } - - private fun load(reader: Reader, builder: EndpointRouteBuilder) { + override fun doLoadEndpointRouteBuilder(reader: Reader, builder: EndpointRouteBuilder) { val host = BasicJvmScriptingHost() val config = createJvmCompilationConfigurationFromTemplate<KotlinDSL>() diff --git a/dsl/camel-xml-io-dsl/pom.xml b/dsl/camel-xml-io-dsl/pom.xml index 32f6eb9..5c2be48 100644 --- a/dsl/camel-xml-io-dsl/pom.xml +++ b/dsl/camel-xml-io-dsl/pom.xml @@ -50,6 +50,10 @@ <groupId>org.apache.camel</groupId> <artifactId>camel-xml-io</artifactId> </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-dsl-support</artifactId> + </dependency> <dependency> <groupId>org.apache.camel</groupId> diff --git a/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java b/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java index e8f2b4b..589f2d1 100644 --- a/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java +++ b/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java @@ -18,70 +18,43 @@ package org.apache.camel.dsl.xml.io; import java.io.InputStream; -import org.apache.camel.ExtendedCamelContext; -import org.apache.camel.RoutesBuilder; -import org.apache.camel.StartupStep; -import org.apache.camel.api.management.ManagedAttribute; import org.apache.camel.api.management.ManagedResource; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.dsl.support.RouteBuilderLoaderSupport; import org.apache.camel.spi.Resource; -import org.apache.camel.spi.StartupStepRecorder; import org.apache.camel.spi.annotations.RoutesLoader; -import org.apache.camel.support.RoutesBuilderLoaderSupport; import org.apache.camel.xml.in.ModelParser; @ManagedResource(description = "Managed XML RoutesBuilderLoader") @RoutesLoader(XmlRoutesBuilderLoader.EXTENSION) -public class XmlRoutesBuilderLoader extends RoutesBuilderLoaderSupport { - +public class XmlRoutesBuilderLoader extends RouteBuilderLoaderSupport { public static final String EXTENSION = "xml"; public static final String NAMESPACE = "http://camel.apache.org/schema/spring"; - private StartupStepRecorder recorder; - - @Override - protected void doBuild() throws Exception { - super.doBuild(); - recorder = getCamelContext().adapt(ExtendedCamelContext.class).getStartupStepRecorder(); + public XmlRoutesBuilderLoader() { + super(EXTENSION); } - @ManagedAttribute(description = "Supported file extension") @Override - public String getSupportedExtension() { - return EXTENSION; - } - - @Override - public RoutesBuilder loadRoutesBuilder(Resource resource) throws Exception { + public RouteBuilder doLoadRouteBuilder(Resource resource) throws Exception { return new RouteBuilder() { @Override public void configure() throws Exception { // we use configure to load the routes - - StartupStep step = recorder != null - ? recorder.beginStep(XmlRoutesBuilderLoader.class, resource.getLocation(), - "Loading and Parsing XML routes") - : null; - try { - try (InputStream is = resource.getInputStream()) { - new ModelParser(is, NAMESPACE) - .parseRouteTemplatesDefinition() - .ifPresent(this::setRouteTemplateCollection); - } - try (InputStream is = resource.getInputStream()) { - new ModelParser(is, NAMESPACE) - .parseRestsDefinition() - .ifPresent(this::setRestCollection); - } - try (InputStream is = resource.getInputStream()) { - new ModelParser(is, NAMESPACE) - .parseRoutesDefinition() - .ifPresent(this::setRouteCollection); - } - } finally { - if (recorder != null) { - recorder.endStep(step); - } + try (InputStream is = resource.getInputStream()) { + new ModelParser(is, NAMESPACE) + .parseRouteTemplatesDefinition() + .ifPresent(this::setRouteTemplateCollection); + } + try (InputStream is = resource.getInputStream()) { + new ModelParser(is, NAMESPACE) + .parseRestsDefinition() + .ifPresent(this::setRestCollection); + } + try (InputStream is = resource.getInputStream()) { + new ModelParser(is, NAMESPACE) + .parseRoutesDefinition() + .ifPresent(this::setRouteCollection); } } }; diff --git a/dsl/camel-xml-jaxb-dsl/pom.xml b/dsl/camel-xml-jaxb-dsl/pom.xml index 4587a76..d96cecb 100644 --- a/dsl/camel-xml-jaxb-dsl/pom.xml +++ b/dsl/camel-xml-jaxb-dsl/pom.xml @@ -50,6 +50,10 @@ <groupId>org.apache.camel</groupId> <artifactId>camel-xml-jaxb</artifactId> </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-dsl-support</artifactId> + </dependency> <dependency> <groupId>org.apache.camel</groupId> diff --git a/dsl/camel-xml-jaxb-dsl/src/main/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlRoutesBuilderLoader.java b/dsl/camel-xml-jaxb-dsl/src/main/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlRoutesBuilderLoader.java index 6413a23..906e4b0 100644 --- a/dsl/camel-xml-jaxb-dsl/src/main/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlRoutesBuilderLoader.java +++ b/dsl/camel-xml-jaxb-dsl/src/main/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlRoutesBuilderLoader.java @@ -18,19 +18,14 @@ package org.apache.camel.dsl.xml.jaxb; import java.io.InputStream; -import org.apache.camel.ExtendedCamelContext; -import org.apache.camel.RoutesBuilder; -import org.apache.camel.StartupStep; -import org.apache.camel.api.management.ManagedAttribute; import org.apache.camel.api.management.ManagedResource; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.dsl.support.RouteBuilderLoaderSupport; import org.apache.camel.model.RouteTemplatesDefinition; import org.apache.camel.model.RoutesDefinition; import org.apache.camel.model.rest.RestsDefinition; import org.apache.camel.spi.Resource; -import org.apache.camel.spi.StartupStepRecorder; import org.apache.camel.spi.annotations.RoutesLoader; -import org.apache.camel.support.RoutesBuilderLoaderSupport; import static org.apache.camel.xml.jaxb.JaxbHelper.loadRestsDefinition; import static org.apache.camel.xml.jaxb.JaxbHelper.loadRouteTemplatesDefinition; @@ -38,59 +33,37 @@ import static org.apache.camel.xml.jaxb.JaxbHelper.loadRoutesDefinition; @ManagedResource(description = "Managed JAXB XML RoutesBuilderLoader") @RoutesLoader(JaxbXmlRoutesBuilderLoader.EXTENSION) -public class JaxbXmlRoutesBuilderLoader extends RoutesBuilderLoaderSupport { - +public class JaxbXmlRoutesBuilderLoader extends RouteBuilderLoaderSupport { public static final String EXTENSION = "xml"; - private StartupStepRecorder recorder; - - @Override - protected void doBuild() throws Exception { - super.doBuild(); - recorder = getCamelContext().adapt(ExtendedCamelContext.class).getStartupStepRecorder(); - } - - @ManagedAttribute(description = "Supported file extension") - @Override - public String getSupportedExtension() { - return EXTENSION; + public JaxbXmlRoutesBuilderLoader() { + super(EXTENSION); } @Override - public RoutesBuilder loadRoutesBuilder(Resource resource) throws Exception { + public RouteBuilder doLoadRouteBuilder(Resource resource) throws Exception { return new RouteBuilder() { @Override public void configure() throws Exception { // we use configure to load the routes - - StartupStep step = recorder != null - ? recorder.beginStep(JaxbXmlRoutesBuilderLoader.class, resource.getLocation(), - "Loading and Parsing XML routes") - : null; - try { - try (InputStream is = resource.getInputStream()) { - RouteTemplatesDefinition templates = loadRouteTemplatesDefinition(getCamelContext(), is); - if (templates != null) { - setRouteTemplateCollection(templates); - } + try (InputStream is = resource.getInputStream()) { + RouteTemplatesDefinition templates = loadRouteTemplatesDefinition(getCamelContext(), is); + if (templates != null) { + setRouteTemplateCollection(templates); } + } - try (InputStream is = resource.getInputStream()) { - RestsDefinition rests = loadRestsDefinition(getCamelContext(), is); - if (rests != null) { - setRestCollection(rests); - } + try (InputStream is = resource.getInputStream()) { + RestsDefinition rests = loadRestsDefinition(getCamelContext(), is); + if (rests != null) { + setRestCollection(rests); } + } - try (InputStream is = resource.getInputStream()) { - RoutesDefinition routes = loadRoutesDefinition(getCamelContext(), is); - if (routes != null) { - setRouteCollection(routes); - } - } - } finally { - if (recorder != null) { - recorder.endStep(step); + try (InputStream is = resource.getInputStream()) { + RoutesDefinition routes = loadRoutesDefinition(getCamelContext(), is); + if (routes != null) { + setRouteCollection(routes); } } } diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml b/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml index 0ab5a61..54169ce 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml @@ -47,12 +47,14 @@ <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-yaml-dsl-common</artifactId> - <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-yaml-dsl-deserializers</artifactId> - <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-dsl-support</artifactId> </dependency> <dependency> diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java index e313569..73c1d8c 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java @@ -19,13 +19,10 @@ package org.apache.camel.dsl.yaml; import java.io.InputStream; import java.util.List; -import org.apache.camel.ExtendedCamelContext; -import org.apache.camel.RoutesBuilder; -import org.apache.camel.StartupStep; -import org.apache.camel.api.management.ManagedAttribute; import org.apache.camel.api.management.ManagedResource; import org.apache.camel.builder.ErrorHandlerBuilder; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.dsl.support.RouteBuilderLoaderSupport; import org.apache.camel.dsl.yaml.common.YamlDeserializationContext; import org.apache.camel.dsl.yaml.deserializers.CustomResolver; import org.apache.camel.dsl.yaml.deserializers.EndpointProducerDeserializersResolver; @@ -37,9 +34,7 @@ import org.apache.camel.model.rest.RestDefinition; import org.apache.camel.model.rest.VerbDefinition; import org.apache.camel.spi.CamelContextCustomizer; import org.apache.camel.spi.Resource; -import org.apache.camel.spi.StartupStepRecorder; import org.apache.camel.spi.annotations.RoutesLoader; -import org.apache.camel.support.RoutesBuilderLoaderSupport; import org.apache.camel.support.service.ServiceHelper; import org.apache.camel.util.ObjectHelper; import org.snakeyaml.engine.v2.api.Load; @@ -47,28 +42,20 @@ import org.snakeyaml.engine.v2.api.LoadSettings; @ManagedResource(description = "Managed YAML RoutesBuilderLoader") @RoutesLoader(YamlRoutesBuilderLoader.EXTENSION) -public class YamlRoutesBuilderLoader extends RoutesBuilderLoaderSupport { +public class YamlRoutesBuilderLoader extends RouteBuilderLoaderSupport { public static final String EXTENSION = "yaml"; private LoadSettings settings; private YamlDeserializationContext constructor; - private StartupStepRecorder recorder; public YamlRoutesBuilderLoader() { - } - - @ManagedAttribute(description = "Supported file extension") - @Override - public String getSupportedExtension() { - return EXTENSION; + super(EXTENSION); } @Override protected void doBuild() throws Exception { super.doBuild(); - this.recorder = getCamelContext().adapt(ExtendedCamelContext.class).getStartupStepRecorder(); - this.settings = LoadSettings.builder().build(); this.constructor = new YamlDeserializationContext(settings); this.constructor.setCamelContext(getCamelContext()); @@ -95,7 +82,7 @@ public class YamlRoutesBuilderLoader extends RoutesBuilderLoaderSupport { } @Override - public RoutesBuilder loadRoutesBuilder(Resource resource) throws Exception { + public RouteBuilder doLoadRouteBuilder(Resource resource) throws Exception { ObjectHelper.notNull(constructor, "constructor"); ObjectHelper.notNull(settings, "settings"); @@ -104,20 +91,11 @@ public class YamlRoutesBuilderLoader extends RoutesBuilderLoaderSupport { public void configure() throws Exception { final Load load = new Load(settings, constructor); - StartupStep step = recorder != null - ? recorder.beginStep(YamlRoutesBuilderLoader.class, resource.getLocation(), - "Loading and Parsing YAML routes") - : null; - try (InputStream is = resource.getInputStream()) { for (Object item : (List<?>) load.loadFromInputStream(is)) { configure(item); } - } finally { - if (recorder != null) { - recorder.endStep(step); - } } }