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

📄 dbinfo.java

📁 java开源的企业总线.xmlBlaster
💻 JAVA
字号:
/*------------------------------------------------------------------------------Name:      DbInfo.javaProject:   org.xmlBlasterProject:   xmlBlaster.orgCopyright: xmlBlaster.org, see xmlBlaster-LICENSE file------------------------------------------------------------------------------*/package org.xmlBlaster.contrib.db;import java.util.Map;import java.util.HashMap;import java.util.Set;import java.util.TreeSet;import java.util.logging.Logger;import org.xmlBlaster.contrib.I_Info;import org.xmlBlaster.contrib.InfoHelper;import org.xmlBlaster.util.qos.ClientProperty;/** * DbInfo This is the I_Info implementation making use of Properties. * Creates a simple implementation based on our ClientProperty maps. * This implementation uses the reference to the properties passed. If you want a snapshot of these properties, you  * need to take a clone and pass the clone to the constructor. * Therefore this class can be seen as a decorator to the map passed * into the constructor. If you change a value with this class it will * update the clientPropertyMap. If entries in the map are found which * are not of the type ClientProperty, they are ignored. *  * This class is thread safe. *  * @author <a href="mailto:michele@laghi.eu">Michele Laghi</a> */public class DbInfo implements I_Info, DbInfoMBean {   private static Logger log = Logger.getLogger(DbInfo.class.getName());   Map objects;   private InfoHelper helper;   private DbStorage storage;   /**    * @param clientPropertyMap Can be null    */   public DbInfo(I_DbPool pool, String id, I_Info info) throws Exception {      this.storage = new DbStorage(info, pool, id);      this.helper = new InfoHelper(this);      this.objects = new HashMap();      // performance impact. It should anyway be clean what is in the Db.      // this.helper.replaceAllEntries(this, null);      // to add this to JMX      if (pool instanceof DbPool) {         String jmxName = I_Info.JMX_PREFIX + "dbInfo";         info.putObject(jmxName, this);         log.info("Added object '" + jmxName + "' to I_Info to be added as an MBean");      }   }         /**    *     * @param txt    * @return    */   public String getRaw(String key) {      try {         ClientProperty prop = this.storage.getProperty(key);         if (prop == null)            return null;         return prop.getStringValue();      }      catch (Exception ex) {         log.warning("An exception occured when retrieving the entry '" + key + "': " + ex.getMessage());         return null;      }   }         /**    *     * @param txt    * @return    */   protected String getPropAsString(String key) {      try {         ClientProperty prop = this.storage.getProperty(key);         if (prop == null)            return null;         String ret = prop.getStringValue();         if (ret != null) {            return this.helper.replace(ret);         }         return null;      }      catch (Exception ex) {         log.warning("An exception occured when retrieving the entry '" + key + "': " + ex.getMessage());         return null;      }   }      /**    * @see org.xmlBlaster.contrib.I_Info#get(java.lang.String, java.lang.String)    */   public synchronized String get(String key, String def) {      if (def != null)         def = this.helper.replace(def);      if (key == null)         return def;      key = this.helper.replace(key);      String ret = getPropAsString(key);      if (ret != null) {         return this.helper.replace(ret);      }      return def;   }   /**    * @see org.xmlBlaster.contrib.I_Info#put(java.lang.String, java.lang.String)    */    public synchronized void put(String key, String value) {       if (key != null)          key = this.helper.replace(key);       if (value != null)          value = this.helper.replace(value);       try {          if (value == null)             this.storage.remove(key);           else {              ClientProperty prop = new ClientProperty(key, null, null, value);              this.storage.put(prop);           }       }       catch (Exception ex) {          log.warning("An exception occured when putting the entry '" + key + "': " + ex.getMessage());       }    }    /**     * @see org.xmlBlaster.contrib.I_Info#put(java.lang.String, java.lang.String)     */     public synchronized void putRaw(String key, String value) {        try {           if (value == null)              this.storage.remove(key);            else {               ClientProperty prop = new ClientProperty(key, null, null, value);               this.storage.put(prop);            }        }        catch (Exception ex) {           log.warning("An exception occured when putting the raw the entry '" + key + "': " + ex.getMessage());        }     }   /**   * @see org.xmlBlaster.contrib.I_Info#getLong(java.lang.String, long)   */   public synchronized long getLong(String key, long def) {      if (key == null)         return def;      String ret = getPropAsString(key);      if (ret != null) {         try {            return Long.parseLong(ret);         }         catch (NumberFormatException ex) {            ex.printStackTrace();            return def;         }      }      return def;   }   /**   * @see org.xmlBlaster.contrib.I_Info#getInt(java.lang.String, int)   */   public synchronized int getInt(String key, int def) {      if (key == null)         return def;      String ret = getPropAsString(key);      if (ret != null) {         try {            return Integer.parseInt(ret);         }         catch (NumberFormatException ex) {            ex.printStackTrace();            return def;         }      }      return def;   }   /**    * @see org.xmlBlaster.contrib.I_Info#getBoolean(java.lang.String, boolean)    */    public synchronized boolean getBoolean(String key, boolean def) {       if (key == null)          return def;       String ret = getPropAsString(key);       if (ret != null) {          try {             Boolean bool = new Boolean(ret);             return bool.booleanValue();          }          catch (NumberFormatException ex) {             ex.printStackTrace();             return def;          }       }       return def;    }   /**   * @see org.xmlBlaster.contrib.I_Info#getObject(java.lang.String)   */   public synchronized Object getObject(String key) {      return this.objects.get(key);   }   /**   * @see org.xmlBlaster.contrib.I_Info#putObject(java.lang.String, Object)   */   public synchronized Object putObject(String key, Object o) {      if (o == null)         return this.objects.remove(key);      return this.objects.put(key, o);   }   /**    * @see org.xmlBlaster.contrib.I_Info#getKeys()    */   public synchronized Set getKeys() {      try {         return this.storage.getKeys();      }      catch (Exception ex) {         log.warning("An exception occured when retreiving the keys: " + ex.getMessage());         return new TreeSet();      }   }   /**    * @see org.xmlBlaster.contrib.I_Info#getObjectKeys()    */   public synchronized Set getObjectKeys() {      return this.objects.keySet();   }   private static String getAsString(Set set) {      String[] ret = (String[])set.toArray(new String[set.size()]);      StringBuffer buf = new StringBuffer();      for (int i=0; i < ret.length; i++)         buf.append(ret[i]).append(" ");      return buf.toString();   }   public String getKeysAsString() {      return getAsString(getKeys());   }      public String getObjectKeysAsString() {      return getAsString(getObjectKeys());   }   }

⌨️ 快捷键说明

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