package org.jboss.as.server.suspend;
/**
* A server activity that may have to finish before the server can shut down gracefully.
*
*
* @author Stuart Douglas
*/
public interface ServerActivity {
/**
* Invoked before the server is paused. This is the place where pause notifications should
* be sent to external systems such as load balancers to tell them this node is about to go away.
*
* @param listener The listener to invoker when the pre-pause phase is done
*/
void preSuspend(ServerActivityCallback listener);
/**
* Invoked once the suspend process has started. One this has been invoked
* no new requests should be allowed to proceeed
* @param listener The listener to invoke when suspend is done.
*/
void suspended(ServerActivityCallback listener);
/**
* Invoked if the suspend or pre-suspened is cancelled
*/
void resume();
}