Sounds like a type match issue. Maybe try with
.when(body(String.class).isEqualTo("0")).log("@@@ IT IS 0")
Or the method may be named bodyAs (I can't remember)
On Fri, Jan 24, 2014 at 6:40 PM, mister blinky <[email protected]> wrote:
> Hi I'm new to Camel. I'm using the SSH component to invoke a shell script on
> a remote machine. The returned value is 0 for success and 1 for failure. I
> want to branch conditionally in my route depending on which i get, but,
> using isEqualTo, in, and startsWith, etc. isn't working.
>
> I'm sure it's something basic, so my first question is: what is the
> canonical way to do this?
>
> Here's how i'm doing it and testing it. Very simple route
>
> from("ssh://user:pwd@host?pollCommand=" + command)
> .log("$$$$$$ ${body}")
> .choice()
> .when(body().isEqualTo("0")).log("@@@ IT IS 0")
> .otherwise().log("@@@ NOT 0")
> .end();
>
> No matter what i do, the "otherwise" gets invoked. The logged body shows
> that the contents are "0". I have tried of other approaches with no luck. I
> understand that the message body is an Object, so maybe i need to cast it to
> a String? If so, how to do that. I tried wrapping it in string() but that's
> not legal.
>
> For testing, I replaced my when with
>
> .when(constant("0").isEqualTo("0")).log("@@@ IT IS 0")
>
> and of course that worked.
>
> Suggestions appreciated.....
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/SSH-return-not-working-with-isEqualTo-tp5746455.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
--
Claus Ibsen
-----------------
Red Hat, Inc.
Email: [email protected]
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
Make your Camel applications look hawt, try: http://hawt.io