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

📄 clientqueueproperty.java

📁 java开源的企业总线.xmlBlaster
💻 JAVA
字号:
/*------------------------------------------------------------------------------Name:      ClientQueueProperty.javaProject:   xmlBlaster.orgCopyright: xmlBlaster.org, see xmlBlaster-LICENSE fileComment:   Holding callback queue properties------------------------------------------------------------------------------*/package org.xmlBlaster.util.qos.storage;import org.xmlBlaster.util.Global;import org.xmlBlaster.util.def.Constants;import org.xmlBlaster.util.qos.address.Address;import org.xmlBlaster.util.qos.address.AddressBase;/** * Helper class holding the client side queue properties. * <p /> * See ConnectQos for XML sysntax. * @see org.xmlBlaster.client.qos.ConnectQos */public class ClientQueueProperty extends QueuePropertyBase{   private static final String ME = "ClientQueueProperty";   private String defaultType;   /**    * @param nodeId    If not null, the command line properties will look for prop[nodeId] as well,    * e.g. -queue/maxEntries and -queue/connection/maxEntries[heron] will be searched    */   public ClientQueueProperty(Global glob, String nodeId) {      super(glob, nodeId);      setRelating(Constants.RELATING_CLIENT);      super.initialize(Constants.RELATING_CLIENT);      // On client side we store the complete messages in the queue, therefor increase max settings here:      //super.maxEntriesCache.setDefaultValue(2000);      super.maxEntries.setDefaultValue(Integer.MAX_VALUE);      //super.maxBytesCache.setDefaultValue(Integer.MAX_VALUE);      super.maxBytes.setDefaultValue(Integer.MAX_VALUE);   }   /**    * Show some important settings for logging    */   public final String getSettings() {      StringBuffer buf = new StringBuffer(256);      buf.append("type=").append(getType()).append(" onOverflow=").append(getOnOverflow()).append(" onFailure=").append(getOnFailure()).append(" maxEntries=").append(getMaxEntries());      if (getCurrentAddress() != null)         buf.append(" ").append(getCurrentAddress().getSettings());      return buf.toString();   }   /**    * Currently only one address is allowed, failover addresses will be implemented in a future version    */   public synchronized void setAddress(Address address) {      if (address == null) return;      this.addressArr = new Address[1];      this.addressArr[0] = address;   }   public synchronized void addAddress(Address address) {      AddressBase[] arr = this.addressArr;      this.addressArr = new AddressBase[arr.length+1];      for (int i=0; i<arr.length; i++) {         this.addressArr[i] = arr[i];      }      this.addressArr[arr.length] = address;   }   /**    */   public synchronized void setAddresses(Address[] addresses) {      if (addresses == null) {         this.addressArr = EMPTY_ADDRESS_ARR;      }      else {         this.addressArr = addresses;      }   }   /**    * @return Never null but the length may be 0    */   public AddressBase[] getAddresses() {      return this.addressArr;   }   /**    * @return null if none available    */   public synchronized Address getCurrentAddress() {      if (this.addressArr.length == 0) {         return null;      }      else if (this.addressArr.length == 1) {         return (Address)this.addressArr[0];      }      else {         for (int i=0; i<this.addressArr.length; i++) {            if (getDefaultType().equals(this.addressArr[i].getType())) {               return (Address)this.addressArr[i];            }         }         return (Address)this.addressArr[0];      }   }   /**    * Try to find the default protocol address as configured for clients    * @return Never null    */   private String getDefaultType() {      if (this.defaultType == null) {         synchronized (this) {            if (this.defaultType == null) {               Address def = new Address(glob);               this.defaultType = def.getType();               if (this.defaultType == null) {                  this.defaultType = "SOCKET";               }            }         }      }      return this.defaultType;   }   /**    * Does the given address belong to this setup?    */   public synchronized boolean contains(Address other) {      if (other == null) return false;      for (int i=0; i<this.addressArr.length; i++) {         if (this.addressArr[i].isSameAddress(other))            return true;      }      return false;   }   /** For testing: java org.xmlBlaster.util.qos.storage.ClientQueueProperty */   public static void main(String[] args) {      ClientQueueProperty prop = new ClientQueueProperty(new Global(args), null);      System.out.println(prop.toXml());      Address adr = new Address(new Global(args), "EMAIL");      adr.setRawAddress("et@mars.sun");      prop.setAddress(adr);      System.out.println(prop.toXml());   }}

⌨️ 快捷键说明

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