camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Walzer, Thomas" <>
Subject AW: [DISCUSS] - Thoughts on Apache Camel 2.18 and towards 3.0
Date Fri, 25 Mar 2016 14:23:57 GMT
Regarding Raul´s ideas: Change often frightens people and changing the engine of a work horse
(err, I mean work camel) surely frightens me. Maybe I am a worrisome person.
I really like to be able to at least look at the moving parts. If you move to Rx/Go/Scala/whatever
(right now) you have surely lost me. That will change in the future.
Maybe waiting for the new (ok, maybe not so new) ideas to trickle (a bit more) into the mainstream
would be a good idea.
The project is called Apache Camel not Apache Fighterjet for a reason :-)

If this is kind of a wish list and to add a bit of a user´s perspective: I have to deal with
obscure data formats on a daily basis. Sometimes they are parseable with Beanio and the like
but oftentimes they are not. Yes, one could roll his own, but I would really prefer not to.

I would really love to have a universal parser (like the one that was included with Seebeyond/sun/oracle
JCAPS/egate). I understand that smooks was there to solve this but to me it looks dead. But
the discussion of this aspect should go to the users-list. I will start a separate thread

Cheers, Thomas.

PS: Ok, the reason for the name may have more to do with a certain habit of a certain guy.

-----Ursprüngliche Nachricht-----
Von: Raul Kripalani [] 
Gesendet: Donnerstag, 24. März 2016 22:40
Betreff: Re: [DISCUSS] - Thoughts on Apache Camel 2.18 and towards 3.0

Hey Guru,

Nice ideas! Some thoughts inline.


On Thu, Mar 24, 2016 at 12:12 PM, Gnanaguru S <> wrote:

> Guys,
> These are some of the feature, I wish to see in upcoming camel 
> versions. It would be useful to have.
> 1. Timeout option in a internal synchronous endpoint - we very much 
> use camel for orchestration layer. In a use case where many downstream 
> routes/endpoints are called synchronously, I would like to have a direct:
> endpoint which has a timeout. So that I can timeout a call to some 
> particular downstream route, handle the exception and proceed to the 
> next step. In fact this option is already there with seda: endpoint, 
> but I wont prefer to use seda: for synchronous flow. Also I can use 
> internal JMS endpoints between routes to achieve this, but sometimes 
> using JMS for internal transaction is heavy.

Yep. JMS can be a little heavy, but I tend to go in that direction for internal orchestration
because it supports the async routing engine. For us, it is very important to not block the
system while we're waiting for backend systems to respond. I think that camel-seda and camel-disruptor
need to support the async routing engine. I might work on this in the next weeks. You can
use camel-seda with waitForTaskToComplete=Always, or it'll work OOTB if your exchange is InOut
(default value of the option is 'IfReplyExpected').

2. Improved/Sophisticated xmljson component.

We depend on a 3rd party library for this. Do you know if there's a better 3rd party library
for this?

> 3. Improved/even Simpler exception handling.

Could you detail this point? I think we need to simplify the documentation for error handling.
In most cases I've seen, 100% of the users requirements is satisfied by onException.
A suggestion from my part is to find a way to use onExceptions defined at the context level
without copying them to each single route (wasteful, imagine if you're using a recipientList
with its corresponding producer cache, etc.).

> 4. Native Camel transformation component, I am bit obsessed with XSLT. So I
> was thinking, why dont camel   incorporate something like xslt: internally.
> like Camel transformer component ? Something better than XSLT 
> component, something very camelish. ;)

So am I ;-) If you come from a comercial ESB background, you're likely to find lots of potential
in externally declared transformations vs. code transformations.
What would be cool is to be able to inject, delete, modify XML nodes and attributes directly
from a route, without dealing with XML APIs, with specific DSL particles.
What exactly were you thinking of?

> 5. Better CXF configurations, for example configuring timeout for a 
> cxf consumer and producer endpoint is not that straight forward like 
> jetty /
> http(4) components.
> 6. Better/Improved unit testing, Camel test support is great, like 
> AdviceWith & Mock endpoints. But some of their methods have issues, I 
> am seeing latest camel versions have lot of fixes, but I think some 
> more features can be introduced. For example, if I want send a sample 
> XML as a request, I dont want to use a IOUtil or a File reader to load 
> the file and then to a string and then pass it to a producer template, 
> instead it will be easier if there is a something called as 
> mockRequest. May be there are better options already, please ignore my 
> ignorance here ;)
> 7.  JSON validator. XML XSD validation is nice and straight forward, 
> but it will be great if we have something similar for JSON as well. 
> like to:json-validator:classpath/response.json

Yep, we should create a component for JSON Schema validations.

> 8. Ability to load a route context directly to a unit test case
> These are some aspects I could think of at the moment, I will try to 
> add more. But please ignore if some of these ideas sounds silly ;)
> Happy long weekend !
> Cheers
> Guru
> --
> View this message in context:
> 8-and-towards-3-0-tp5779549p5779641.html
> Sent from the Camel Development mailing list archive at
View raw message