package org.distributeme.core;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* A shutdown hook that un-registers a service upon jvm exit.
*
* @author another
* @version $Id: $Id
*/
public class ServerShutdownHook extends Thread{
/**
* Log.
*/
private static Logger log = LoggerFactory.getLogger(ServerShutdownHook.class);
/**
* Associated descriptor.
*/
private ServiceDescriptor targetDescriptor;
/**
* <p>Constructor for ServerShutdownHook.</p>
*
* @param aDescriptor a {@link org.distributeme.core.ServiceDescriptor} object.
*/
public ServerShutdownHook(ServiceDescriptor aDescriptor){
targetDescriptor = aDescriptor;
}
/** {@inheritDoc} */
@Override public void run(){
log.info("Unregister "+targetDescriptor);
try{
boolean result = RegistryUtil.unbind(targetDescriptor);
log.info(result? "\tsuccess" : "\terror");
}catch(Exception e){
log.error("run()", e);
}
}
}