⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbwriterplugin.java

📁 java开源的企业总线.xmlBlaster
💻 JAVA
字号:
/*------------------------------------------------------------------------------Name:      DbWriterPlugin.javaProject:   xmlBlaster.orgCopyright: xmlBlaster.org, see xmlBlaster-LICENSE file------------------------------------------------------------------------------*/package org.xmlBlaster.contrib.dbwriter;import org.xmlBlaster.contrib.GlobalInfo;import org.xmlBlaster.util.Global;import org.xmlBlaster.util.def.ErrorCode;import org.xmlBlaster.util.XmlBlasterException;import org.xmlBlaster.util.plugin.PluginInfo;import java.util.List;import java.util.logging.Logger;/** * DbWriterPlugin is a plugin wrapper if you want to run DbWriter inside xmlBlaster.  * <p> * This plugin uses <tt>java.util.logging</tt> and redirects the logging to xmlBlasters default * logging framework. You can switch this off by setting the attribute <tt>xmlBlaster/jdk14loggingCapture</tt> to false. * </p> *  * @author <a href="mailto:xmlblast@marcelruff.info">Marcel Ruff</a> */public class DbWriterPlugin extends GlobalInfo implements DbWriterPluginMBean {   private static Logger log = Logger.getLogger(DbWriterPlugin.class.getName());   // private DbWriter dbWriter;   private List dbWriterList;   /**    * Default constructor, you need to call {@link #doInit(Global, PluginInfo)} thereafter.    */   public DbWriterPlugin() {      super(new String[] {"dbPool.class", "mom.class", "parser.class", "dbWriter.writer.class"});   }      /**    * @see org.xmlBlaster.util.plugin.I_Plugin#init(org.xmlBlaster.util.Global, org.xmlBlaster.util.plugin.PluginInfo)    */   protected void doInit(Global global_, PluginInfo pluginInfo) throws XmlBlasterException {      try {         this.dbWriterList = DbWriter.createDbWriters(this);         this.putObject(JMX_PREFIX + "DbWriterPlugin", this);      }      catch (Throwable e) {         throw new XmlBlasterException(this.global, ErrorCode.RESOURCE_CONFIGURATION, "DbWriterPlugin", "init failed", e);       }      log.info("Loaded DbWatcher plugin '" + getType() + "'");   }      public String addDbWriter(String loginName, String password) {      if (loginName == null || loginName.trim().length() < 1) {         String txt = "The login name is null or empty, will not add anything";         log.warning(txt);         return txt;      }      if (password == null || password.length() < 1) { // do not trim the password here         log.warning("The password was null, will use an empty password for user '" + loginName + "'");         password = "";      }      synchronized(this.dbWriterList) {         try {            this.dbWriterList.add(DbWriter.createSingleDbWriter(this, loginName, password));            return "successfully added a new DbWriter for '" + loginName + "' and password='" + password + "'";         }         catch (Exception ex) {            String txt = "failed to add DbWriter for user '" + loginName + "' and password + '" + password + "' reason:" + ex.getMessage() + "'";            log.severe(txt);            return txt;         }      }   }   public String getClients() {      DbWriter[] dbWriters = (DbWriter[])this.dbWriterList.toArray(new DbWriter[this.dbWriterList.size()]);      StringBuffer buf = new StringBuffer(1024);      for (int i=0; i < dbWriters.length; i++) {         if (i > 0)            buf.append(",");         buf.append(dbWriters[i].getInfo().get("mom.loginName", "???"));      }      return buf.toString();   }      public String removeDbWriter(String loginName) {      DbWriter[] dbWriters = (DbWriter[])this.dbWriterList.toArray(new DbWriter[this.dbWriterList.size()]);      for (int i=0; i < dbWriters.length; i++) {         String name = dbWriters[i].getInfo().get("mom.loginName", "???");         if (loginName.equals(name)) {            if (dbWriters.length > 1 && dbWriters[i].getPoolOwner()) {               dbWriters[i].setPoolOwner(false);               if (i == 0)                  dbWriters[1].setPoolOwner(true);               else                  dbWriters[0].setPoolOwner(true);            }            this.dbWriterList.remove(i);            dbWriters[i].shutdown();            return "successfully shut down DbWriter for user '" + loginName + "'";         }      }      return "could not shut down DbWriter for user '" + loginName + "' since not found in the list";   }      /**    * @see org.xmlBlaster.util.plugin.I_Plugin#shutdown()    */   public void shutdown() throws XmlBlasterException {      super.shutdown();      synchronized (this.dbWriterList) {         for (int i=this.dbWriterList.size()-1; i >=0; i--) {            try {               DbWriter dbWriter = (DbWriter)this.dbWriterList.get(i);               dbWriter.shutdown();            }            catch (Throwable e) {               log.warning("Ignoring shutdown problem: " + e.toString());            }         }      }      log.info("Stopped DbWatcher plugin '" + getType() + "'");   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -