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 2021/04/08 21:40:23 UTC
[camel] 03/04: dsl: adapt to latest RouteBuilder support
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 <lb...@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);
- }
}
}