This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch CAMEL-16757 in repository https://gitbox.apache.org/repos/asf/camel.git
commit 3dd87c2b698ec3e318e55206c7fc706ab3eeb618 Author: Claus Ibsen <[email protected]> AuthorDate: Thu Jul 8 11:45:19 2021 +0200 CAMEL-16757: camel-core - Global error handling, interceptor in all DSL --- .../org/apache/camel/impl/engine/AbstractCamelContext.java | 7 ++++++- .../org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java | 3 ++- .../org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java | 11 ++++------- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java index 0a73ae4..2fc843b 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java @@ -1144,7 +1144,12 @@ public abstract class AbstractCamelContext extends BaseService } @Override - public void addRoutes(final RoutesBuilder builder) throws Exception { + public void addRoutes(RoutesBuilder builder) throws Exception { + // in case the builder is also a route configuration builder + // then we need to add the configuration first + if (builder instanceof RouteConfigurationsBuilder) { + addRoutesConfigurations((RouteConfigurationsBuilder) builder); + } try (LifecycleHelper helper = new LifecycleHelper()) { build(); LOG.debug("Adding routes from builder: {}", builder); 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 87d7813..27cab1d 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 @@ -21,6 +21,7 @@ import java.io.InputStream; import org.apache.camel.CamelContextAware; import org.apache.camel.api.management.ManagedResource; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.builder.RouteConfigurationBuilder; import org.apache.camel.dsl.support.RouteBuilderLoaderSupport; import org.apache.camel.model.ModelCamelContext; import org.apache.camel.model.RouteConfigurationDefinition; @@ -43,7 +44,7 @@ public class XmlRoutesBuilderLoader extends RouteBuilderLoaderSupport { @Override public RouteBuilder doLoadRouteBuilder(Resource resource) throws Exception { - return new RouteBuilder() { + return new RouteConfigurationBuilder() { @Override public void configure() throws Exception { // we use configure to load the routes (with namespace and without namespace) 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 d4df516..50348b5 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 @@ -20,8 +20,8 @@ import org.apache.camel.CamelContextAware; import org.apache.camel.api.management.ManagedResource; import org.apache.camel.builder.ErrorHandlerBuilder; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.builder.RouteConfigurationBuilder; import org.apache.camel.dsl.yaml.deserializers.OutputAwareFromDefinition; -import org.apache.camel.model.ModelCamelContext; import org.apache.camel.model.OnExceptionDefinition; import org.apache.camel.model.RouteConfigurationDefinition; import org.apache.camel.model.RouteDefinition; @@ -45,7 +45,7 @@ public class YamlRoutesBuilderLoader extends YamlRoutesBuilderLoaderSupport { } protected RouteBuilder builder(Node root) { - return new RouteBuilder() { + return new RouteConfigurationBuilder() { @Override public void configure() throws Exception { for (Node node : asSequenceNode(root).getValue()) { @@ -61,9 +61,6 @@ public class YamlRoutesBuilderLoader extends YamlRoutesBuilderLoaderSupport { } else if (item instanceof RouteDefinition) { CamelContextAware.trySetCamelContext(getRouteCollection(), getCamelContext()); getRouteCollection().route((RouteDefinition) item); - } else if (item instanceof RouteConfigurationDefinition) { - CamelContextAware.trySetCamelContext(getRouteConfigurationCollection(), getCamelContext()); - getRouteConfigurationCollection().routeConfiguration((RouteConfigurationDefinition) item); } else if (item instanceof CamelContextCustomizer) { ((CamelContextCustomizer) item).configure(getCamelContext()); } else if (item instanceof OnExceptionDefinition) { @@ -102,8 +99,8 @@ public class YamlRoutesBuilderLoader extends YamlRoutesBuilderLoaderSupport { for (Node node : asSequenceNode(root).getValue()) { Object item = getDeserializationContext().mandatoryResolve(node).construct(node); if (item instanceof RouteConfigurationDefinition) { - getContext().adapt(ModelCamelContext.class) - .addRouteConfiguration((RouteConfigurationDefinition) item); + CamelContextAware.trySetCamelContext(getRouteConfigurationCollection(), getCamelContext()); + getRouteConfigurationCollection().routeConfiguration((RouteConfigurationDefinition) item); } } }
