Hi.

I am trying to use NotifyBuilder, but I just don't understand it. I have a 
simple example below that is failing (matches() times out). 

Can anyone tell me what I am doing wrong. It must be something simple. :)

import org.apache.camel.Exchange;
import org.apache.camel.builder.NotifyBuilder;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultExchange;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Test;

import java.util.concurrent.TimeUnit;

public class RouteNotDone extends CamelTestSupport {

    @Override
    protected RouteBuilder createRouteBuilder() throws Exception {
        return new RouteBuilder() {
            @Override
            public void configure() throws Exception {

                from("direct:a")
                        .routeId("a")
                        .log("Finished route a");
            }
        };
    }

    @Test
    public void testNotDone() {
        NotifyBuilder nb = new 
NotifyBuilder(context).fromRoute("a").whenDone(1).create();
        Exchange exchange = new DefaultExchange(context);
        exchange = template.send("direct:a", exchange);
        boolean done = nb.matches(10, TimeUnit.SECONDS);
        assertTrue("Not done in 10 seconds", done);
    }
}

Reply via email to