1 10 package org.mmbase.module; 11 12 import java.util.Hashtable ; 13 import org.mmbase.util.xml.ModuleReader; 14 import org.mmbase.util.logging.*; 15 16 24 public abstract class ReloadableModule extends Module { 25 26 private static final Logger log = Logging.getLoggerInstance(ReloadableModule.class); 27 28 38 39 protected boolean reloadConfiguration(String moduleName) { 40 ModuleReader parser = getModuleReader(moduleName); 41 if (parser == null) { 42 log.error("Configuration missing for: " + moduleName + " Canceling reload"); 43 return false; 44 } else { 45 return reloadConfiguration(parser); 46 } 47 } 48 49 protected boolean reloadConfiguration(ModuleReader parser) { 50 if (parser.getStatus().equals("inactive")) { 51 log.error("Cannot set module to inactive. " + parser.getSystemId() + " Canceling reload"); 52 return false; 53 } 54 String className = parser.getClassName(); 55 if (! className.equals(getClass().getName())) { 56 log.error("Cannot change the class of a module. " + className + " != " + getClass().getName() + " " + parser.getSystemId() + ". Canceling reload."); 57 return false; 58 } 59 60 properties = new Hashtable (parser.getProperties()); 61 setMaintainer(parser.getMaintainer()); 62 setVersion(parser.getVersion()); 63 return true; 64 } 65 66 67 70 71 public abstract void reload(); 72 73 74 } 75 | Popular Tags |