You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Luca Burgazzoli (Jira)" <ji...@apache.org> on 2021/02/01 16:26:00 UTC

[jira] [Commented] (CAMEL-15560) generic route loader

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

Luca Burgazzoli commented on CAMEL-15560:
-----------------------------------------

As today the mechanic to load routes from external definitions is a little bit convoluted, here an extract from a test:

{code:java}
InputStream is = getClass().getResourceAsStream("barRoute.xml");
ExtendedCamelContext ecc = context.adapt(ExtendedCamelContext.class);
RoutesDefinition routes = (RoutesDefinition) ecc.getXMLRoutesDefinitionLoader().loadRoutesDefinition(ecc, is);
context.addRouteDefinitions(routes.getRoutes());
{code}

This can be simplified to something like:

{code:java}
context.adapt(ExtendedCamelContext.class).getRoutesDefinitionLoader().load(...);
{code}

As alternative we can use the extension mechanism:

{code:java}
context.getExtension(RoutesDefinitionLoader.class).load(...);
{code}




> generic route loader
> --------------------
>
>                 Key: CAMEL-15560
>                 URL: https://issues.apache.org/jira/browse/CAMEL-15560
>             Project: Camel
>          Issue Type: New Feature
>          Components: camel-core-api, camel-core-engine
>            Reporter: Luca Burgazzoli
>            Assignee: Luca Burgazzoli
>            Priority: Major
>             Fix For: 3.9.0
>
>
> In camel-k we have a mechanism to load routes written in different languages, in camel instead we only support XML. 
> We should move the generic loader to Camel from Camel K and leave the implementations where they fit better. 
> I'm proposing to remove the following methods from the ExtendedCamelContext and replace them with a generic discovery mechanism similar to the one used for components & co to find the appropriate loader based on the file extension.
> {code:java}
>     /**
>      * Sets a custom {@link XMLRoutesDefinitionLoader} to be used.
>      */
>     void setXMLRoutesDefinitionLoader(XMLRoutesDefinitionLoader xmlRoutesDefinitionLoader);
>     /**
>      * Gets the {@link XMLRoutesDefinitionLoader} to be used.
>      */
>     XMLRoutesDefinitionLoader getXMLRoutesDefinitionLoader();
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)