On Mon, Mar 25, 2013 at 4:50 PM, Chris Wolf <cwolf.a...@gmail.com> wrote:
> Claus,
>
> Ok, that worked - thanks a lot.
>
> BTW, the unit test is for testing custom RoutePolicy.  The route in
> the test looks like:
>
> from("seda:foo").routeId("foo").noAutoStartup().routePolicy(policy)
>     .loop(10).copy().delay(1000)
>     .log("*** loop ${property.CamelLoopIndex}")
>     .to("mock:foo");
>
>
> The RoutePolicy suspends the route, then resume it after a period of
> time - it performs this suspend/resume
> cycle in a loop.  I notice that this route, using the loop() method
> only does the 10 iterations and does not
> start from the top again after being resumed, which I guess I should
> have expected.  Is there a way to restart
> the route from the top upon resuming?  Or do you recommend any other
> "busy work" kind of route to use
> for RoutePolicy testing?
>

The route only runs if there is messages available on the seda queue.
So send a message to the "seda:foo" queue to have it route that
message.


> Thanks,
>
>
> Chris
>
> On Sat, Mar 23, 2013 at 4:02 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:
>> Hi
>>
>> Just set the shutdown timeout to 1 milli second (or 1 sec) etc. And
>> just call stop on CamelContext.
>>
>> And if you extend the CamelTestSupport classes for your unit tests.
>> There may be a method you can override and return 1 to indiciate 1 sec
>> timeout.
>>
>>
>>
>> On Fri, Mar 22, 2013 at 5:23 PM, Chris Wolf <cwolf.a...@gmail.com> wrote:
>>> I am implementing some unit tests and if things go wrong I just want
>>> to shutdown ASAP without regard for inconsistent
>>> states, etc.  There's no easy hook in DefaultShutDownStrategy to do
>>> that because you need to know the route
>>> startup order, so I ended up with this convoluted code (that I kick
>>> off in a separate thread). It doesn't work, BTW.
>>>
>>>                     DefaultRouteStartupOrder rsuo = null;
>>>                     int startOrder = 0;
>>>                     List<RouteStartupOrder> suo = new
>>> ArrayList<RouteStartupOrder>();
>>>                     List<Route> routes = context.getRoutes();
>>>                     for (Route route : routes) {
>>>                         List<Service> services = route.getServices();
>>>                         for (Service service : services) {
>>>                             if (service instanceof RouteService) {
>>>                                 rsuo = new
>>> DefaultRouteStartupOrder(startOrder, route, (RouteService) service);
>>>                                 suo.add(rsuo);
>>>                             }
>>>                         }
>>>                         startOrder++;
>>>                     }
>>>                     ShutdownStrategy sds = context.getShutdownStrategy();
>>>                     sds.shutdownForced(context, suo);
>>>
>>> I know there must be an easier way, but I haven't found such.  Any ideas?
>>>
>>> Thanks,
>>>
>>> Chris
>>
>>
>>
>> --
>> Claus Ibsen
>> -----------------
>> Red Hat, Inc.
>> FuseSource is now part of Red Hat
>> Email: cib...@redhat.com
>> Web: http://fusesource.com
>> Twitter: davsclaus
>> Blog: http://davsclaus.com
>> Author of Camel in Action: http://www.manning.com/ibsen



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
FuseSource is now part of Red Hat
Email: cib...@redhat.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen

Reply via email to