src/org/objectweb/cjdbc/controller/core/shutdown/ShutdownThread.java

説明を見る。
00001 00025 package org.objectweb.cjdbc.controller.core.shutdown; 00026 00027 import java.util.Date; 00028 00029 import org.objectweb.cjdbc.common.exceptions.ShutdownException; 00030 import org.objectweb.cjdbc.common.i18n.Translate; 00031 import org.objectweb.cjdbc.common.log.Trace; 00032 import org.objectweb.cjdbc.common.util.Constants; 00033 00041 public abstract class ShutdownThread implements Runnable 00042 { 00044 public static final String CONTROLLER = "controller"; 00046 public static final String DATABASE = "database"; 00048 public static final String BACKEND = "backend"; 00049 00051 public ThreadGroup shutdownGroup = new ThreadGroup("shutdown"+new Date()); 00052 00053 00054 protected int shutdownLevel; 00055 00057 Trace logger = Trace 00058 .getLogger("org.objectweb.cjdbc.controller.shutdown"); 00059 00060 protected String type; 00061 protected String name; 00062 00070 public ShutdownThread(int level, String type, String name) 00071 { 00072 this.shutdownLevel = level; 00073 this.type = type; 00074 this.name = name; 00075 logger = Trace.getLogger("org.objectweb.cjdbc.controller.shutdown." + type); 00076 switch (level) 00077 { 00078 case Constants.CONTROLLER_SHUTDOWN_SMART : 00079 logger.warn(Translate.get("controller.shutdown.type.smart", 00080 new String[]{name, type})); 00081 break; 00082 case Constants.CONTROLLER_SHUTDOWN_FAST : 00083 logger.warn(Translate.get("controller.shutdown.type.fast", 00084 new String[]{name, type})); 00085 break; 00086 case Constants.CONTROLLER_SHUTDOWN_IMMEDIATE : 00087 logger.warn(Translate.get("controller.shutdown.type.immediate", 00088 new String[]{name, type})); 00089 break; 00090 default : 00091 logger.error(Translate.get("controller.shutdown.unknown.level",level)); 00092 } 00093 } 00094 00100 public void run() 00101 { 00102 logger.info("Running shutdown type:"+type); 00103 try 00104 { 00105 beforeShutdown(); 00106 switch (shutdownLevel) 00107 { 00108 case Constants.CONTROLLER_SHUTDOWN_SMART : 00109 shutdownSmart(); 00110 break; 00111 case Constants.CONTROLLER_SHUTDOWN_FAST : 00112 shutdownFast(); 00113 break; 00114 case Constants.CONTROLLER_SHUTDOWN_IMMEDIATE : 00115 shutdownImmediate(); 00116 break; 00117 default : 00118 break; 00119 } 00120 postShutdown(); 00121 } 00122 catch (ShutdownException se) 00123 { 00124 se.printStackTrace(); 00125 abortShutdown(se); 00126 } 00127 } 00128 00129 protected void beforeShutdown() 00130 { 00131 00132 } 00133 00134 protected void postShutdown() 00135 { 00136 00137 } 00138 00144 public String getShutdownType() 00145 { 00146 return this.type; 00147 } 00148 00154 public int getShutdownLevel() 00155 { 00156 return this.shutdownLevel; 00157 } 00158 00164 public void abortShutdown(Exception cause) 00165 { 00166 logger.info(Translate.get("controller.shutdown.aborted", cause)); 00167 } 00168 00175 public abstract void shutdownSmart() throws ShutdownException; 00176 00184 public abstract void shutdownFast() throws ShutdownException; 00185 00191 public abstract void shutdownImmediate() throws ShutdownException; 00192 00198 public ThreadGroup getShutdownGroup() 00199 { 00200 return shutdownGroup; 00201 } 00202 00203 }

CJDBCversion1.0.4に対してTue Oct 12 15:16:01 2004に生成されました。 doxygen 1.3.8