Hi,
I'm currently working on a poc for a customer.
As part of their core business they offer a platform which mediates between
trading partners.
What is special about their use case is the fact that they want the actual
routes between
partners to be defined by employees with limited technical knowledge
(solution consultants).
I know there is the xml dsl and the upcoming camel rider which lowers the
threshold for non developers.
But even when using these features, the route configuration would be way too
fine grained for them and
they would still require too much knowledge on the details of the technical
components.
Last week I was at the FUSE community day in Paris and spoke to James
Strachan on the customer
need to abstract some parts of the routes. He mentioned the idea of using a
component as a kind
of proxy for a route.
I believe this is a real nice solution to the problem.
A complex route were a pdf is generated from an xml using xslt and fop and
the result is signed using a
third party service exposed over http could be reduced to the following.
<route>
<from uri="{{data.in}}"/>
<to
uri="route:generateAndSignPdf?signatureReason=JustForFun&signatureVisible=true&xslUri=com/xti/poc/camel/route/sample1/krusty.xsl"/>
<to uri="{{data.out}}"/>
</route>
The route component concept abstracts the route low level technical details
and makes reuse easy.
The solution consultant only needs to define the route:generateAndSignPdf
with the correct parameters.
As this construct would provide great value to the customer I went ahead and
implemented this idea as part of the poc. Attached to this post is my
codebase with a unit test executing the scenario mentioned above.
I would really appreciate some feedback from the community on the code I
wrote.
I tried fitting this in with the component lifecycle the best I could but
still have some doubts on whether it's done correct.
Getting an expert opinion on this would be a big help.
Best regards,
Kristof
http://camel.465427.n5.nabble.com/file/n3234703/camel-route.zip
camel-route.zip
--
View this message in context:
http://camel.465427.n5.nabble.com/Abstracting-Routes-using-Components-tp3234703p3234703.html
Sent from the Camel - Users mailing list archive at Nabble.com.