package jeffaschenk.commons.frameworks.cnxidx.admin; import jeffaschenk.commons.frameworks.cnxidx.utility.idxLogger; import java.util.*; /** * Service Shutdown Thread for the IRRChangeLogRestoreService Facility. * * @author jeff.schenk * @version 3.0 $Revision * Developed 2003 */ public class IRRChangeLogRestoreServiceShutdownThread extends Thread { public static final String VERSION = "FRAMEWORK, Incorporated Version: 3.1 2003-09-12"; // ******************************* // Common Logging Facility. public static final String CLASSNAME = IRRChangeLogRestoreServiceShutdownThread.class.getName(); public static idxLogger IDXLOG = new idxLogger(); // ******************************* // Work Thread to attach to. private Thread workerThread; /** * IRRChangeLogRestoreServiceShutdownThread Contructor class driven from * Main or other Class Caller. */ public IRRChangeLogRestoreServiceShutdownThread(Thread workerThread) { this.workerThread = workerThread; } // End of Constructor for IRRChangeLogRestoreServiceShutdownThread. /** * Shutdown Thread. */ public void run() { String METHODNAME = "run"; IDXLOG.info(CLASSNAME, METHODNAME, "Shutdown requested at " + new Date()); // ********************************** // Request worker thread to finish workerThread.interrupt(); // ************************************ // Wait for the worker thread to finish try { synchronized (workerThread) { workerThread.wait(); } // End of Synchronized Code Area. } catch (InterruptedException e) { } // End of Exception. IDXLOG.info(CLASSNAME, METHODNAME, "Shutdown completed at " + new Date()); } // End of run Thread. } // End of Class IRRChangeLogRestoreServiceShutdownThread