1 18 package org.columba.core.scripting; 19 20 import java.util.HashMap ; 21 import java.util.Map ; 22 import java.util.Observable ; 23 import java.util.Observer ; 24 import java.util.logging.Logger ; 25 26 import org.columba.core.io.DiskIO; 27 import org.columba.core.scripting.config.BeanshellConfig; 28 import org.columba.core.scripting.service.api.IColumbaService; 29 30 48 public class BeanshellService 49 implements IColumbaService, 50 Observer 51 { 52 53 private static final Logger LOG = Logger.getLogger(BeanshellService.class.getName()); 54 55 private BeanshellConfig config = BeanshellConfig.getInstance(); 56 57 private Map beanshellScripts = new HashMap (); 58 private ScriptLogger logger = ScriptLogger.getInstance(); 59 60 public BeanshellService() 61 { 62 logger.addObserver(this); 63 } 64 65 68 public boolean initService() 69 { 70 71 72 if (!DiskIO.ensureDirectory(config.getPath())) return false; 73 74 78 FileObserverThread.getInstance().setScriptList(beanshellScripts); 79 80 LOG.info("BeanshellService initialized..."); 81 return true; 82 83 } 84 85 88 public void disposeService() 89 { 90 91 } 92 93 96 public void startService() 97 { 98 99 logger.append("Starting " + getClass().getName()); 100 logger.append("Starting FileObserverThread..."); 101 logger.addObserver(this); 102 FileObserverThread.getInstance().start(); 103 } 104 105 108 public void stopService() 109 { 110 111 logger.append("Stoping " + getClass().getName()); 112 logger.append("Stopping FileObserverThread..."); 113 114 logger.deleteObserver(this); 115 116 FileObserverThread.getInstance().finish(); 117 118 } 119 120 public Map getBeanshellScripts() 121 { 122 return beanshellScripts; 123 } 124 125 public ScriptLogger getLogger() 126 { 127 return logger; 128 } 129 130 public void update(Observable o, Object arg) 131 { 132 ScriptLogger.LogEntry log = (ScriptLogger.LogEntry) arg; 133 LOG.finest(log.getMessage()); 134 LOG.finest(log.getDetails()); 135 } 136 } 137 | Popular Tags |