You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Christophe Pache <ch...@crossing-tech.com> on 2014/05/23 12:59:23 UTC
error clauses and reste of the route in scala
Hello everyone,
I'm currently working on error clauses and I got some strange behaviour
with camel in Scala. I would really enjoy having some feedback on what
I've tried to do because I haven't found any help on that. I saw Java
example that seamed to work and it's really currious for me.
My Problem is to separate the exception handling route from the main
route. I know this is not realistic use. I would like to have a main
route such as : from(direct).process.to(mock) while allowing the
IllegalArgumentException to continue the main flow. The following code
doesn't compile with error "value to is not a member of ?0". When I try
to separate the route into separated parts, the type gets to Any instead
of ProcessorDefinition of Any which I thing could be the error. I don't
get this compilation error if I remove the processor from the route.
class MyRoute extends RouteBuilder {
def configure() {
val exceptionProcessor = new Processor {
def process(ex: Exchange) {
throw ex.getIn.getBody(classOf[Exception])
}
}
from("direct:input").onException(classOf[IllegalArgumentException])
.continued(true).end().process(exceptionProcessor).to("mock:toto")
}
}
Even harder to understand, the following is working well:
def configure() {
val exceptionProcessor = new Processor {
def process(ex: Exchange) {
throw ex.getIn.getBody(classOf[Exception])
}
}
onException(classOf[IllegalArgumentException]).continued(new
Predicate {
override def matches(exchange: Exchange): Boolean = {
exchange.getIn().getBody(classOf[Exception]).getMessage.contains("toto")
}
})
from("direct:input").process(exceptionProcessor).to("mock:output")
}
}
Thanks a lot for any comment/help.
Christophe
Re: error clauses and reste of the route in scala
Posted by Claus Ibsen <cl...@gmail.com>.
Hi
The Camel scala DSL could use some love from some Scala fans. So any
contributions and improvements is welcome.
On Fri, May 23, 2014 at 12:59 PM, Christophe Pache
<ch...@crossing-tech.com> wrote:
> Hello everyone,
>
> I'm currently working on error clauses and I got some strange behaviour with
> camel in Scala. I would really enjoy having some feedback on what I've tried
> to do because I haven't found any help on that. I saw Java example that
> seamed to work and it's really currious for me.
>
>
> My Problem is to separate the exception handling route from the main route.
> I know this is not realistic use. I would like to have a main route such as
> : from(direct).process.to(mock) while allowing the IllegalArgumentException
> to continue the main flow. The following code doesn't compile with error
> "value to is not a member of ?0". When I try to separate the route into
> separated parts, the type gets to Any instead of ProcessorDefinition of Any
> which I thing could be the error. I don't get this compilation error if I
> remove the processor from the route.
>
> class MyRoute extends RouteBuilder {
>
> def configure() {
>
> val exceptionProcessor = new Processor {
> def process(ex: Exchange) {
> throw ex.getIn.getBody(classOf[Exception])
> }
> }
>
> from("direct:input").onException(classOf[IllegalArgumentException])
> .continued(true).end().process(exceptionProcessor).to("mock:toto")
>
> }
> }
>
> Even harder to understand, the following is working well:
>
> def configure() {
>
> val exceptionProcessor = new Processor {
> def process(ex: Exchange) {
> throw ex.getIn.getBody(classOf[Exception])
> }
> }
>
> onException(classOf[IllegalArgumentException]).continued(new
> Predicate {
> override def matches(exchange: Exchange): Boolean = {
> exchange.getIn().getBody(classOf[Exception]).getMessage.contains("toto")
> }
> })
>
> from("direct:input").process(exceptionProcessor).to("mock:output")
> }
> }
>
> Thanks a lot for any comment/help.
>
> Christophe
--
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
hawtio: http://hawt.io/
fabric8: http://fabric8.io/