camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: How can I perform immediate shutdown of a context and all it's routes and services, etc.?
Date Sat, 23 Mar 2013 08:02:52 GMT
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.algo@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: cibsen@redhat.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen

Mime
View raw message