package org.mobicents.tools.sip.balancer; import org.apache.log4j.Logger; import org.mobicents.tools.http.balancer.HttpChannelAssociations; public class GracefulShutdown extends Thread { private static Logger logger = Logger.getLogger(GracefulShutdown.class .getCanonicalName()); BalancerRunner balancerRunner; public GracefulShutdown(BalancerRunner balancerRunner) { this.balancerRunner = balancerRunner; } @Override public void run() { logger.warn("GracefulShutdown was called, stopping the Load Balancer into " + balancerRunner.balancerContext.shutdownTimeout + " ms."); HttpChannelAssociations.serverApiChannel.unbind(); HttpChannelAssociations.serverApiChannel.close(); HttpChannelAssociations.serverApiChannel.getCloseFuture().awaitUninterruptibly(); HttpChannelAssociations.serverApiBootstrap.shutdown(); try { sleep(balancerRunner.balancerContext.shutdownTimeout); } catch (InterruptedException e) { e.printStackTrace(); } balancerRunner.stop(); System.exit(0); } }