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

📄 msgqossaxfactory.java

📁 java开源的企业总线.xmlBlaster
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
         character.setLength(0);         return;      }      if(name.equalsIgnoreCase("expiration")) {//       this.inExpiration = false;         character.setLength(0);         return;      }      if(name.equalsIgnoreCase("topic")) {         inTopic = false;         character.setLength(0);         return;      }      if(name.equalsIgnoreCase("queue")) {//       this.inQueue = false;         character.setLength(0);         return;      }      if(name.equalsIgnoreCase("persistence")) {//       this.inPersistence = false;         character.setLength(0);         return;      }      if(name.equalsIgnoreCase("rcvTimestamp")) {//       this.inRcvTimestamp = false;         character.setLength(0);         return;      }      if (name.equalsIgnoreCase(MethodName.SUBSCRIBE.getMethodName())) { // "subscribe"//       this.inSubscribe = false;         character.setLength(0);         return;      }      if(name.equalsIgnoreCase("isVolatile")) { // deprecated//       this.inIsVolatile = false;         String tmp = character.toString().trim();         if (tmp.length() > 0) {            msgQosData.setVolatile(new Boolean(tmp).booleanValue());            if (msgQosData.isVolatile()) {               log.warning("Found 'isVolatile=" + msgQosData.isVolatile() + "' which is deprecated, use lifeTime==0&&forceDestroy==false instead");            }         }         character.setLength(0);         return;      }      if(name.equalsIgnoreCase("administrative")) {//       this.inAdministrative = false;         String tmp = character.toString().trim();         if (tmp.length() > 0)            msgQosData.setAdministrative(new Boolean(tmp).booleanValue());         // if (log.isLoggable(Level.FINE)) log.trace(ME, "Found administrative = " + msgQosData.isAdministrative());         character.setLength(0);         return;      }      if(name.equalsIgnoreCase("persistent")) {//       this.inIsPersistent = false;         String tmp = character.toString().trim();         if (tmp.length() > 0)            msgQosData.setPersistent(new Boolean(tmp).booleanValue());         // if (log.isLoggable(Level.FINE)) log.trace(ME, "Found persistent = " + msgQosData.isPersistent());         character.setLength(0);         return;      }      if(name.equalsIgnoreCase("forceUpdate")) {//       this.inForceUpdate = false;         String tmp = character.toString().trim();         if (tmp.length() > 0)            msgQosData.setForceUpdate(new Boolean(tmp).booleanValue());         // if (log.isLoggable(Level.FINE)) log.trace(ME, "Found forceUpdate = " + msgQosData.getForceUpdate());         character.setLength(0);         return;      }      if(name.equalsIgnoreCase("readonly")) {//       this.inReadonly = false;         String tmp = character.toString().trim();         if (tmp.length() > 0)            msgQosData.setReadonly(new Boolean(tmp).booleanValue());         // if (log.isLoggable(Level.FINE)) log.trace(ME, "Found readonly = " + msgQosData.readonly());         character.setLength(0);         return;      }      if(name.equalsIgnoreCase("redeliver")) {//       this.inRedeliver = false;         String tmp = character.toString().trim();         try { msgQosData.setRedeliver(Integer.parseInt(tmp)); } catch(NumberFormatException e) { log.severe("Invalid redeliver =" + tmp); };         character.setLength(0);         return;      }      if (name.equalsIgnoreCase("node")) {         msgQosData.addRouteInfo(routeInfo);         character.setLength(0);         return;      }      if (name.equalsIgnoreCase("route")) {         inRoute = false;         character.setLength(0);         return;      }      if (name.equalsIgnoreCase("isPublish")) {         this.character.setLength(0);         return;      }      if (name.equalsIgnoreCase("isUpdate")) {         this.character.setLength(0);         return;      }      if (name.equalsIgnoreCase("isGet")) {         this.character.setLength(0);         return;      }      character.setLength(0); // reset data from unknown tags   }   /**    * Dump state of this object into a XML ASCII string.    * <br>    * @param extraOffset indenting of tags for nice output    * @param forceReadable If true, any base64 is decoded to be more human readable and timestamps are human readable    * @return internal state of the RequestBroker as a XML ASCII string    */   public final String writeObject(MsgQosData msgQosData, String extraOffset, Properties props) {      final boolean forceReadable = (props!=null) && props.containsKey(Constants.TOXML_FORCEREADABLE) ?            (Boolean.valueOf(props.getProperty(Constants.TOXML_FORCEREADABLE)).booleanValue()) : false; // "forceReadable"      StringBuffer sb = new StringBuffer(1024);      if (extraOffset == null) extraOffset = "";      String offset = Constants.OFFSET + extraOffset;      // WARNING: This dump must be valid, as it is used by the      //          persistent store      sb.append(offset).append("<qos>");      if (!msgQosData.isOk() || msgQosData.getStateInfo() != null && msgQosData.getStateInfo().length() > 0) {         sb.append(offset).append(" <state id='").append(msgQosData.getState());         if (msgQosData.getStateInfo() != null)            sb.append("' info='").append(msgQosData.getStateInfo());         sb.append("'/>");      }      if (msgQosData.getSubscribableProp().isModified()) {         if (msgQosData.isSubscribable())            sb.append(offset).append(" <subscribable/>");         else            sb.append(offset).append(" <subscribable>false</subscribable>");      }      ArrayList list = msgQosData.getDestinations();      if (list == null) {         //sb.append(offset + " <Pub_Sub_style />");      }      else {         for (int ii=0; ii<list.size(); ii++) {            Destination destination = (Destination)list.get(ii);            sb.append(destination.toXml(extraOffset+Constants.INDENT));         }      }      if (msgQosData.getSender() != null) {         sb.append(offset).append(" <sender>").append(msgQosData.getSender().getAbsoluteName()).append("</sender>");      }      if (PriorityEnum.NORM_PRIORITY != msgQosData.getPriority()) {         if (PriorityEnum.NORM_PRIORITY.toString().equals(msgQosData.getPriority().toString())) {            int hash1 = PriorityEnum.NORM_PRIORITY.hashCode();            int hash2 = msgQosData.getPriority().hashCode();            log.severe("The strings should not equal: PriorityEnum.NORM_PRIORITY=" + PriorityEnum.NORM_PRIORITY + " hash1=" + hash1 +                          " msgQosData.getPriority()=" + msgQosData.getPriority() + " hash2=" + hash2);         }         sb.append(offset).append(" <priority>").append(msgQosData.getPriority()).append("</priority>");      }      if (msgQosData.getSubscriptionId() != null)         sb.append(offset).append(" <").append(MethodName.SUBSCRIBE.getMethodName()).append(" id='").append(msgQosData.getSubscriptionId()).append("'/>");      if (msgQosData.getLifeTimeProp().isModified() || msgQosData.getForceDestroyProp().isModified()) {         sb.append(offset).append(" <expiration");         if (msgQosData.getLifeTimeProp().isModified())            sb.append(" lifeTime='").append(msgQosData.getLifeTime()).append("'");         if (sendRemainingLife()) {            long remainCached = msgQosData.getRemainingLife();            if (remainCached > 0)               sb.append(" remainingLife='").append(remainCached).append("'");            else if (msgQosData.getRemainingLifeStatic() >= 0)               sb.append(" remainingLife='").append(msgQosData.getRemainingLifeStatic()).append("'");         }         if (msgQosData.getForceDestroyProp().isModified())            sb.append(" forceDestroy='").append(msgQosData.isForceDestroy()).append("'");         sb.append("/>");      }      if (msgQosData.getRcvTimestamp() != null)         sb.append(msgQosData.getRcvTimestamp().toXml(extraOffset+Constants.INDENT, forceReadable));      if(msgQosData.getQueueSize() > 0)         sb.append(offset).append(" <queue index='").append(msgQosData.getQueueIndex()).append("' size='").append(msgQosData.getQueueSize()).append("'/>");      //if (!msgQosData.isVolatileDefault())      //   sb.append(offset).append(" <isVolatile>").append(msgQosData.isVolatile()).append("</isVolatile>");      if (msgQosData.getAdministrativeProp().isModified()) {         if (msgQosData.isAdministrative())            sb.append(offset).append(" <administrative/>");         else            sb.append(offset).append(" <administrative>false</administrative>");      }      if (msgQosData.getPersistentProp().isModified()) {         if (msgQosData.isPersistent())            sb.append(offset).append(" <persistent/>");         else            sb.append(offset).append(" <persistent>false</persistent>");      }      if (msgQosData.getForceUpdateProp().isModified()) {         if (msgQosData.isForceUpdate())           sb.append(offset).append(" <forceUpdate/>");         else           sb.append(offset).append(" <forceUpdate>false</forceUpdate>");      }      //if (msgQosData.isReadonly()) -> see topic attribute      //   sb.append(offset).append(" <readonly/>");      if(msgQosData.getRedeliver() > 0) {         sb.append(offset).append(" <redeliver>").append(msgQosData.getRedeliver()).append("</redeliver>");      }      RouteInfo[] routeInfoArr = msgQosData.getRouteNodes();      if (routeInfoArr.length > 0) {         sb.append(offset).append(" <route>");         for (int ii=0; ii<routeInfoArr.length; ii++) {            sb.append(routeInfoArr[ii].toXml(extraOffset+Constants.INDENT));         }         sb.append(offset).append(" </route>");      }      if (msgQosData.getMethod() == MethodName.PUBLISH) {         sb.append(offset).append(" <isPublish/>");      }      else if (msgQosData.getMethod() == MethodName.UPDATE) {         sb.append(offset).append(" <isUpdate/>");      }      else if (msgQosData.getMethod() == MethodName.GET) {         sb.append(offset).append(" <isGet/>");      }      if (msgQosData.hasTopicProperty()) {         sb.append(msgQosData.getTopicProperty().toXml(extraOffset+Constants.INDENT));      }      sb.append(msgQosData.writePropertiesXml(extraOffset+Constants.INDENT, forceReadable));      sb.append(offset).append("</qos>");      if (sb.length() < 16)         return "<qos/>";  // minimal footprint      return sb.toString();   }   /**    * A human readable name of this factory    * @return "MsgQosSaxFactory"    */   public String getName() {      return "MsgQosSaxFactory";   }   /** Configure if remaingLife is sent in Qos (redesign approach to work with all QoS attributes */   public void sendRemainingLife(boolean sendRemainingLife) { this.sendRemainingLife = sendRemainingLife; }   public boolean sendRemainingLife() { return this.sendRemainingLife; }   // java org.xmlBlaster.util.qos.MsgQosSaxFactory xmlBlaster/testsuite/data/xml/Qos_UTF-8_With_CP1252.xml	public static void main(String[] args) {      String fn = args[0];      Global glob = Global.instance();      MsgQosSaxFactory f = new MsgQosSaxFactory(glob);      String xml;      try {         xml = FileLocator.readAsciiFile(fn);         //xml = new String(FileLocator.readFile(fn), "windows-1252");         MsgQosData data = f.readObject(xml);         String newXml = data.toXml("",null);         System.out.println("CP1252=" + data.getClientProperty("CP1252"));         System.out.println("CP1252-BASE64=" + data.getClientProperty("CP1252-BASE64"));         System.out.println(newXml);         FileOutputStream to = new FileOutputStream(fn+".xml", false);         String enc = "UTF-8"; //"UTF-16"; // "cp1252";         newXml = "<?xml version='1.0' encoding='"+enc+"' standalone='yes'?>"+newXml;         to.write(newXml.getBytes(enc));         to.close();      } catch (Exception e) {         e.printStackTrace();      }            try {         System.out.println("\nReading as bytes:");         byte[] bb = FileLocator.readFile(fn);         String str = new String(bb, "windows-1252"); // transforms nicely cp1252 charset to UTF-8!         //String str = new String(bb);         // Linux: file.encoding is UTF-8         System.out.println("windows-1252 file.encoding="+ System.getProperty("file.encoding") + " '" + str + "'");      } catch (Exception e) {         e.printStackTrace();      }	}}

⌨️ 快捷键说明

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