He would need to use a Predicate for CBR.  Either way, it'd be easy to
do, as you pointed out, since it's just a library. :)

Or, if the destination can be "calculated" based on something in your
JSON (using an expression), you could do something like this:

from(...).deserialize(...).recipientList(simple("some simple expression");

On Mon, Dec 9, 2013 at 7:43 PM, Christian Posta
<christian.po...@gmail.com> wrote:
> If you're set on JsonPath, you can do so in a POJO or processor as
> it's just a library:
>
> http://code.google.com/p/json-path/
>
> On Mon, Dec 9, 2013 at 1:57 PM, Henryk Konsek <hekon...@gmail.com> wrote:
>> Hi guys,
>>
>>> Perhaps you can deserialize the object(s) first before doing CBR
>>> (using a simple expression)?
>>
>> This is very good suggestion, James. To make it a little more concrete:
>>
>> from(...).
>>   unmarshal().json(JsonLibrary.Gson, Map.class).
>>     choice().
>>       when().simple("${body[invoices][latest][netValue] > 1000}").to(...).
>>       otherwise().to(...).
>>    endChoice();
>>
>> You can use JSON data format [1] (I use Google GSON in the example) to
>> deserialize incoming message. In the example below I deserialize it to
>> Map, because I don't know the type of the message (to make things
>> little more tricky). And yeah, GSON handles nested Maps pretty well.
>> To analyse content of the nested maps structure you might use Simple
>> [2] expression (as James suggested) because it supports nested map
>> keys notation (as in the example). And nested maps keys is something
>> similar to JsonPath you wanted to have :) .
>>
>> Cheers.
>>
>> [1] http://camel.apache.org/json
>> [2] http://camel.apache.org/simple
>>
>> --
>> Henryk Konsek
>> http://henryk-konsek.blogspot.com
>
>
>
> --
> Christian Posta
> http://www.christianposta.com/blog
> twitter: @christianposta

Reply via email to