camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "sebastien.petrucci" <>
Subject Re: How to extend the Spring DSL ?
Date Thu, 10 Feb 2011 13:08:50 GMT

 Thanks for your comments James.
I will definitly looks closer at BAM and see what I can learn from it.

My focus is currently on the XML DSL. I already made some components and I
agree that this is a usable and flexible solution, at least for "simple"
actions (validation, enrichement, ...). Although it is still just a vague
intuition, I have the feel that it would also be valuable to my users to
package more complex patterns (kind of templates). My customers often do
very similar things (like read a file with a common format, split it,
validate, transform, agreggate).
It is easy to provide sample routes for that. Going the extra mile could be
to extend the DSL to introduce a special verb.
Custom nouns and verbs would have the advantage to benefit from the IDE
completion thanks to the XSD support.

Now, would the extra work brings enough savings on readibility and support
... I don't know :-) Especially that we are extremly interested in the GUI
DSL ...


> Note that there's nothing to stop you having custom DSLs outside of
> Camel's core. Making an extensible Java + XML + Scala DSL is gonna be
> hard (e.g. XSD pain) and quickly loses the value proposition of the
> DSL since for tooling a DSL must be static; but its easy right now to
> extend those (making new XSDs importing Camel's XSD, or deriving from
> the Java builders etc). This is how we do Camel BAM today...
> Though its worth questioning, do you really want new verbs or nouns?
> Often folks want to drop in their own components into Camel; wrap up
> some service or functionality as a black box then route into it or
> from it with standard Camel; for this the Camel Component / Endpoint
> abstraction seems a perfect fit.
> Its very trivial to make something which acts as a regular Camel
> Component; you've then logical names or 'verbs' for the individual
> endpoints/ports/features the component supports. You can then use
> regular Camel DSL to send events/messages into or out of any part of
> the component; so you can easily extend vanilla Camel to add any kind
> of service or feature; so long as you can represent it as a bean or
> endpoint.
> e.g. in your example you could do...
> <route>
>   <from uri="..." />
>   <to uri="mycompany:semantic-validation/somePackage"/>
>   <to uri="...">
> </route>
> --
> James
> -------
> FuseSource
> Email: [hidden email]<http://user/SendEmail.jtp?type=node&node=3379186&i=1>
> Web:
> Twitter: jstrachan
> Blog:
> Open Source Integration
> ------------------------------
>  If you reply to this email, your message will be added to the discussion
> below:
>   To unsubscribe from How to extend the Spring DSL ?, click here<>.

View this message in context:
Sent from the Camel - Users mailing list archive at

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message