You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Nicolas Filotto (Jira)" <ji...@apache.org> on 2023/01/13 13:37:00 UTC

[jira] [Commented] (CAMEL-18914) camel-core - TemplatedRoute fails to load with XML RouteLoader

    [ https://issues.apache.org/jira/browse/CAMEL-18914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17676623#comment-17676623 ] 

Nicolas Filotto commented on CAMEL-18914:
-----------------------------------------

As it seems to be a parsing issue, I've just tried to add the following test to [XmlRoutesBuilderLoaderTest|https://github.com/apache/camel/blob/camel-3.x/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoaderTest.java]

{code:java}
    @Test
    public void canLoadTemplatedRoutes() throws Exception {
        String content = ""
                         + "<templatedRoutes xmlns=\"http://camel.apache.org/schema/spring\">\n"
                         + "  <templatedRoute routeId=\"xmltojson_test1-1\" routeTemplateRef=\"https-source\">\n"
                         + "    <parameter name=\"uri\" value=\"https://0.0.0.0:9001/1/XmlToJson\"/>\n"
                         + "  </templatedRoute>\n"
                         + "</templatedRoutes>";

        Resource resource = ResourceHelper.fromString("in-memory.xml", content);
        RouteBuilder builder = (RouteBuilder) new XmlRoutesBuilderLoader().loadRoutesBuilder(resource);
        builder.setCamelContext(new DefaultCamelContext());
        builder.configure();

        assertFalse(builder.getTemplatedRouteCollection().getTemplatedRoutes().isEmpty());
    }
{code}

And it worked as expected, so I'm wondering if there is an integration issue on your side like a mix of different versions of Camel in your classpath or something like that?


> camel-core - TemplatedRoute fails to load with XML RouteLoader
> --------------------------------------------------------------
>
>                 Key: CAMEL-18914
>                 URL: https://issues.apache.org/jira/browse/CAMEL-18914
>             Project: Camel
>          Issue Type: Bug
>          Components: came-core
>    Affects Versions: 3.20.1
>            Reporter: Raymond
>            Priority: Major
>             Fix For: 3.20.2, 3.21.0, 4.0
>
>
> I have a templatedRoute like this:
>  
> {code:java}
> <?xml version="1.0" encoding="UTF-8"?><templatedRoutes xmlns="http://camel.apache.org/schema/spring">
> <templatedRoute routeId="xmltojson_test1-1" routeTemplateRef="https-source">
> <parameter name="uri" value="https://0.0.0.0:9001/1/XmlToJson"/>
> </templatedRoute>
> </templatedRoutes>
>  
> {code}
> With the RoutesLoader I load the route:
>  
> {code:java}
> context = getContext();  
> ExtendedCamelContext extendedCamelContext = context.adapt(ExtendedCamelContext.class);
> RoutesLoader loader = extendedCamelContext.getRoutesLoader();
> loader.loadRoutes(resource); 
> {code}
> Until 3.19.0 this worked, but in 3.20.1 I get an error:
> {code:java}
> org.apache.camel.xml.io.XmlPullParserException: Unexpected element '{}templatedRoute'
>         at org.apache.camel.xml.in.BaseParser.handleUnexpectedElement(BaseParser.java:254)
>         at org.apache.camel.xml.in.BaseParser.doParse(BaseParser.java:130)
>         at org.apache.camel.xml.in.ModelParser.doParseTemplatedRoutesDefinition(ModelParser.java:1416)
>         at org.apache.camel.xml.in.ModelParser.parseTemplatedRoutesDefinition(ModelParser.java:1397)
>         at org.apache.camel.dsl.xml.io.XmlRoutesBuilderLoader$1.configure(XmlRoutesBuilderLoader.java:53)
>         at org.apache.camel.builder.RouteBuilder.checkInitialized(RouteBuilder.java:726)
>         at org.apache.camel.builder.RouteBuilder.configureRoutes(RouteBuilder.java:668)
>         at org.apache.camel.builder.RouteBuilder.addRoutesToCamelContext(RouteBuilder.java:600)
>         at org.apache.camel.impl.engine.AbstractCamelContext.addRoutes(AbstractCamelContext.java:1201)
>         at org.apache.camel.spi.RoutesLoader.loadRoutes(RoutesLoader.java:83)
>         at org.assimbly.dil.loader.FlowLoader.loadStep(FlowLoader.java:218){code}
> This happens to all routetemplates I load.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)