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