You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/04/15 13:21:51 UTC
[camel] branch master updated: CAMEL-16476: XML DSL route loader
should prepare route, like spring/blueprint xml dsl does.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new cb33ca2 CAMEL-16476: XML DSL route loader should prepare route, like spring/blueprint xml dsl does.
cb33ca2 is described below
commit cb33ca2d350b79e8290ffbbba645af49ad8be94a
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Apr 15 15:20:57 2021 +0200
CAMEL-16476: XML DSL route loader should prepare route, like spring/blueprint xml dsl does.
---
.../apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java | 15 ++++++++++++++-
.../camel/dsl/xml/jaxb/JaxbXmlRoutesBuilderLoader.java | 10 ++++++++++
2 files changed, 24 insertions(+), 1 deletion(-)
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 589f2d1..8eeeb6c 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,9 @@ import java.io.InputStream;
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.RouteDefinition;
+import org.apache.camel.model.RouteDefinitionHelper;
+import org.apache.camel.model.RoutesDefinition;
import org.apache.camel.spi.Resource;
import org.apache.camel.spi.annotations.RoutesLoader;
import org.apache.camel.xml.in.ModelParser;
@@ -54,9 +57,19 @@ public class XmlRoutesBuilderLoader extends RouteBuilderLoaderSupport {
try (InputStream is = resource.getInputStream()) {
new ModelParser(is, NAMESPACE)
.parseRoutesDefinition()
- .ifPresent(this::setRouteCollection);
+ .ifPresent(this::addRoutes);
}
}
+
+ private void addRoutes(RoutesDefinition routes) {
+ // xml routes must be marked as un-prepared as camel-core
+ // must do special handling for XML DSL
+ for (RouteDefinition route : routes.getRoutes()) {
+ RouteDefinitionHelper.prepareRoute(getCamelContext(), route);
+ route.markPrepared();
+ }
+ setRouteCollection(routes);
+ }
};
}
}
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 906e4b0..c07a26b 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
@@ -21,6 +21,8 @@ import java.io.InputStream;
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.RouteDefinition;
+import org.apache.camel.model.RouteDefinitionHelper;
import org.apache.camel.model.RouteTemplatesDefinition;
import org.apache.camel.model.RoutesDefinition;
import org.apache.camel.model.rest.RestsDefinition;
@@ -63,6 +65,14 @@ public class JaxbXmlRoutesBuilderLoader extends RouteBuilderLoaderSupport {
try (InputStream is = resource.getInputStream()) {
RoutesDefinition routes = loadRoutesDefinition(getCamelContext(), is);
if (routes != null) {
+ // xml routes must be marked as un-prepared as camel-core
+ // must do special handling for XML DSL
+ for (RouteDefinition route : routes.getRoutes()) {
+ RouteDefinitionHelper.prepareRoute(getCamelContext(), route);
+ route.markPrepared();
+ }
+
+ routes.getRoutes().forEach(RouteDefinition::markUnprepared);
setRouteCollection(routes);
}
}