camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Justin Rosenberg (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CAMEL-5858) Camel Context Inheritance
Date Mon, 15 Dec 2014 20:33:13 GMT

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

Justin Rosenberg commented on CAMEL-5858:
-----------------------------------------

Shouldn't the component be "camel-spring"?

> Camel Context Inheritance
> -------------------------
>
>                 Key: CAMEL-5858
>                 URL: https://issues.apache.org/jira/browse/CAMEL-5858
>             Project: Camel
>          Issue Type: New Feature
>          Components: camel-core
>            Reporter: Raúl Kripalani
>            Assignee: Raúl Kripalani
>             Fix For: Future
>
>
> Camel is a great foundation for building SOA-based integration platforms. 
> To improve governance and code manageability, one tends to define a number of common
policies/items to apply across all routes in the system, e.g. exception handlers, data format
configurations, property placeholder configurations, component configurations, etc.
> If you use Spring, defining common component configs is possible by placing them in a
separate Spring App Context file and using Spring's <import /> directive, since components
are just standard beans.
> However, for Camel-specific elements, there's no good solution, so you end up repeating
yourself a lot... Consider this for a DRY solution:
> {code}
> <camelContext id="parent.config" abstract="true">
>   <onException>
>     <exception>java.lang.Exception</exception>
>     ... do something here...
>   </onException>
>   <dataFormats>
>     <json ... />
>     <jaxb ... />
>   </dataFormats>
>   <propertyPlaceholder id="properties" location="ref:myProperties"/>
> </camelContext>
> {code}
> A new Camel Context could "absorb" the config above like this:
> {code}
> <camelContext parentId="parent.config">
>   ... specific configuration ...
>   ... routes ...
> </camelContext>
> {code}
> This works nicely with OSGi because Camel Contexts are enlisted in the Service Registry,
so they can access and introspect each other. For other environments, we'll have to design
something else.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message