You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "james strachan (JIRA)" <ji...@apache.org> on 2012/09/05 20:20:07 UTC

[jira] [Commented] (CAMEL-5554) allow XML DSL to work in CDI

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

james strachan commented on CAMEL-5554:
---------------------------------------

Added an initial implementation - e.g. see this test case
http://svn.apache.org/viewvc/camel/trunk/components/camel-cdi/src/test/java/org/apache/camel/cdi/XmlRoutesFromClassPathTest.java?revision=HEAD&view=markup

by using RoutesXml.loadRoutesFrom... (File / XML / ClassPath / URL) we can easily load a RoutesDefinition which via @Produces and @ContextName can be easily injected as routes into a CamelContext (with an optional contextName)
                
> allow XML DSL to work in CDI
> ----------------------------
>
>                 Key: CAMEL-5554
>                 URL: https://issues.apache.org/jira/browse/CAMEL-5554
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-cdi
>            Reporter: james strachan
>            Assignee: james strachan
>             Fix For: 2.11.0
>
>
> I can see folks wanting to also use CDI with the XML DSL for Camel route definitions (e.g. so they can use round tripping visual editors rather than using the Java DSL, but use CDI for all dependency injection to minimise XML use for configuration).
> Maybe we could have some simple way to import routes into a CDI @Produces method using some helper class; so the routes can then be injected via CDI into a CamelContext?
> {code}
> public class MyConfiguration {
>   // loads some routes for injection into the CamelContext
>   @Produces
>   List<RouteDefinitions>  loadRoutes() {
>      return XmlRouteLoader.loadFromClassPath("com/acme/something/blah.xml");
>   }
> }
> {code}
> or maybe we should allow routes to be injected so that they could be used to create a CamelContext...
> {code}
> public class MyConfiguration {
>   @Inject @RouteXml(classpath="com/acme/something/blah.xml")
>   List<RouteDefinitions> routes;
>   @Produces
>   CamelContext  createContext() {
>      return new CdiCamelContext(routes);
>   }
> }
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira