Package org.xmlBlaster.util

Examples of org.xmlBlaster.util.XmlBuffer


   public static String createStatusDump(org.xmlBlaster.engine.ServerScope g,
         String summary, String description,
         String eventType, String errorCode) {
      // Change to be configurable with ${amdincommands} replacements
      RequestBroker r = g.getRequestBroker();
      XmlBuffer buf = new XmlBuffer(10000);
      //buf.append("\n").append("<xmlBlaster>"); // Root tag not added, so we easily can collect different nodes to a big xml dump
      buf.append("\n ").append("<node id='").appendEscaped(g.getId()).append("'>");
      if (summary != null)
      buf.append("\n  ").append("<_summary>").appendEscaped(summary).append("</_summary>");
      if (description != null)
      buf.append("\n  ").append("<_description>").appendEscaped(description).append("</_description>");
      if (eventType != null)
      buf.append("\n  ").append("<_eventType>").append(eventType).append("</_eventType>");
      if (errorCode != null)
         buf.append("\n  ").append("<_errorCode>").append(errorCode).append("</_errorCode>");
      buf.append("\n  ").append("<uptime>").append(r.getUptime()).append("</uptime>");
      buf.append("\n  ").append("<runlevel>").append(g.getRunlevelManager().getCurrentRunlevel()).append("</runlevel>");
      buf.append("\n  ").append("<instanceId>").appendEscaped(g.getInstanceId()).append("</instanceId>");
      buf.append("\n  ").append("<version>").append(g.getVersion()).append("</version>");
      buf.append("\n  ").append("<revisionNumber>").append(g.getRevisionNumber()).append("</revisionNumber>");
      buf.append("\n  ").append("<freeMem>").append(r.getFreeMem()).append("</freeMem>");
      buf.append("\n  ").append("<maxFreeMem>").append(r.getMaxFreeMem()).append("</maxFreeMem>");
      buf.append("\n  ").append("<maxMem>").append(r.getMaxMem()).append("</maxMem>");
      buf.append("\n  ").append("<usedMem>").append(r.getUsedMem()).append("</usedMem>");
      buf.append("\n  ").append("<serverTimestamp>").append(new java.sql.Timestamp(new java.util.Date().getTime()).toString()).append("</serverTimestamp>");
      buf.append("\n  ").append("<numClients>").append(r.getNumClients()).append("</numClients>");
      buf.append("\n  ").append("<clientList>").appendEscaped(r.getClientList()).append("</clientList>");
      SubjectInfo[] clients = r.getAuthenticate().getSubjectInfoArr();
      for (int c=0; c<clients.length; c++) {
         SubjectInfo subjectInfo = clients[c];
         if (subjectInfo.getLoginName().startsWith("__")) continue;// Ignore internal sessions
         buf.append("\n  ").append("<client id='").appendEscaped(subjectInfo.getLoginName()).append("'>");
         SessionInfo[] sessions = subjectInfo.getSessions();
         for (int s=0; s<sessions.length; s++) {
            SessionInfo sessionInfo = sessions[s];
            buf.append("\n   ").append("<session id='").append(sessionInfo.getPublicSessionId()).append("'>");
            buf.append("\n    ").append("<state>").append(sessionInfo.getConnectionState()).append("</state>");
            ClientProperty[] props = sessionInfo.getRemotePropertyArr();
            for (int p=0; p<props.length; p++)
               buf.append(props[p].toXml("   ", "remoteProperty", true));
            I_Queue sessionQueue = sessionInfo.getSessionQueue();
            if (sessionQueue != null) {
               buf.append("\n    <queue relating='callback'");
               buf.append(" numOfEntries='").append(sessionQueue.getNumOfEntries()).append("'");
               buf.append(" numOfBytes='").append(sessionQueue.getNumOfBytes()).append("'");
               buf.append("/>");
               //buf.append(sessionQueue.toXml("\n    "));
            }
            buf.append(sessionInfo.getDispatchStatistic().toXml("   "));
            buf.append("\n   ").append("</session>");
         }
         buf.append("\n  ").append("</client>");
      }

      ClusterManager clusterManager = g.getClusterManagerNoEx();
      if (clusterManager != null && clusterManager.isReady()) {
         ClusterNode[] nodes = clusterManager.getClusterNodes();
         for (int ic = 0; ic < nodes.length; ic++) {
            ClusterNode node = nodes[ic];
            SessionName destination = node.getRemoteSessionName();
            if (destination == null)
               continue;
            buf.append("\n  ").append("<connection clusterId='").appendEscaped(destination.getNodeIdStr()).append(
                  "' id='").appendEscaped(destination.getLoginName()).append("'>");
            buf.append("\n   ").append("<session id='").append(destination.getPublicSessionId()).append("'>");
            buf.append("\n    ").append("<state>").append(node.getConnectionStateStr()).append("</state>");
            I_Queue clientQueue = node.getConnectionQueue();
            if (clientQueue != null) {
               buf.append("\n    <queue relating='" + Constants.RELATING_CLIENT + "'"); // "connection"
               buf.append(" numOfEntries='").append(clientQueue.getNumOfEntries()).append("'");
               buf.append(" maxNumOfEntries='").append(clientQueue.getMaxNumOfEntries()).append("'");
               buf.append(" numOfBytes='").append(clientQueue.getNumOfBytes()).append("'");
               buf.append(" maxNumOfBytes='").append(clientQueue.getMaxNumOfBytes()).append("'");
               buf.append("/>");
            }
            // buf.append(clientQueue.getDispatchStatistic().toXml("   "));
            buf.append("\n   ").append("</session>");
            buf.append("\n  ").append("</connection>");
         }
      }
     
      buf.append("\n  ").append("<numTopics>").append(r.getNumTopics()).append("</numTopics>");
      buf.append("\n  ").append("<topicList>").appendEscaped(r.getTopicList()).append("</topicList>");
      buf.append("\n  ").append("<numGet>").append(r.getNumGet()).append("</numGet>");
      buf.append("\n  ").append("<numPublish>").append(r.getNumPublish()).append("</numPublish>");
      buf.append("\n  ").append("<numUpdate>").append(r.getNumUpdate()).append("</numUpdate>");
      // " encoding='base64'" if string contains CDATA?
      String warning = ReplaceVariable.replaceAll(r.getLastWarning(), "<![CDATA[", "&lt;![CDATA[");
      warning = ReplaceVariable.replaceAll(warning, "]]>", "]]&gt;");
      String error = ReplaceVariable.replaceAll(r.getLastError(), "<![CDATA[", "&lt;![CDATA[");
      error = ReplaceVariable.replaceAll(error, "]]>", "]]&gt;");
      buf.append("\n  ").append("<lastWarning><![CDATA[").append(warning).append("]]></lastWarning>");
      buf.append("\n  ").append("<lastError><![CDATA[").append(error).append("]]></lastError>");
      XmlBlasterException e = new XmlBlasterException(g,
            ErrorCode.COMMUNICATION_NOCONNECTION, ME, "");
      buf.append("\n  ").append("<versionInfo><![CDATA[").appendEscaped(e.getVersionInfo()).append("]]></versionInfo>");
      buf.append("\n  ").append("<see>").append("http://www.xmlBlaster.org/xmlBlaster/doc/requirements/admin.events.html").append("</see>");
      buf.append("\n ").append("</node>");
      //buf.append("\n").append("</xmlBlaster>");
      return buf.toString();
   }
View Full Code Here


    * @param extraOffset indenting of tags for nice output
    * @return The xml representation
    */
   public final String toXml(String extraOffset)
   {
      XmlBuffer sb = new XmlBuffer(300);
      String offset = "\n ";
      if (extraOffset == null) extraOffset = "";
      offset += extraOffset;

      sb.append(offset).append("<").append(this.tagName).append(" type='").appendAttributeEscaped(getType()).append("'");
      if (!DEFAULT_version.equals(getVersion()))
          sb.append(" version='").appendAttributeEscaped(getVersion()).append("'");
      sb.append(">");
      if (getQuery().toString().indexOf("<![CDATA[") >= 0)
         sb.append(offset).append(" ").append(getQuery().toString());
      else
         sb.append(offset).append(" <![CDATA[").append(getQuery().toString()).append("]]>");
      sb.append(offset).append("</").append(this.tagName).append(">");

      return sb.toString();
   }
View Full Code Here

   public final String writeObject(QueryQosData queryQosData, String extraOffset, Properties props) {
      return writeObject_(queryQosData, extraOffset, props);
   }

   public static final String writeObject_(QueryQosData queryQosData, String extraOffset, Properties props) {
      XmlBuffer sb = new XmlBuffer(1024);
      if (extraOffset == null) extraOffset = "";
      String offset = Constants.OFFSET + extraOffset;

      sb.append(offset).append("<qos>"); // <!-- SubscribeQos, UnSubscribeQos, EraseQos, GetQos -->");
      if (queryQosData.getSubscriptionId() != null)
         sb.append(offset).append(" <").append(MethodName.SUBSCRIBE.getMethodName()).append(" id='").appendAttributeEscaped(queryQosData.getSubscriptionId()).append("'/>");

      if (queryQosData.getForceDestroyProp().isModified()) {
         sb.append(offset).append(" <").append(MethodName.ERASE.getMethodName()).append(" forceDestroy='").append(queryQosData.getForceDestroy()).append("'/>");
      }

      if (queryQosData.getMetaProp().isModified()) {
         if (queryQosData.getWantMeta())
            sb.append(offset).append(" <meta/>");
         else
            sb.append(offset).append(" <meta>false</meta>");
      }

      if (queryQosData.getContentProp().isModified()) {
         if (queryQosData.getWantContent())
            sb.append(offset).append(" <content/>");
         else
            sb.append(offset).append(" <content>false</content>");
      }

      if (queryQosData.getMultiSubscribeProp().isModified()) {
         if (queryQosData.getMultiSubscribe())
            sb.append(offset).append(" <multiSubscribe/>");
         else
            sb.append(offset).append(" <multiSubscribe>false</multiSubscribe>");
      }

      if (queryQosData.getLocalProp().isModified()) {
         if (queryQosData.getWantLocal())
            sb.append(offset).append(" <local/>");
         else
            sb.append(offset).append(" <local>false</local>");
      }

      if (queryQosData.getInitialUpdateProp().isModified()) {
         if (queryQosData.getWantInitialUpdate())
            sb.append(offset).append(" <initialUpdate/>");
         else
            sb.append(offset).append(" <initialUpdate>false</initialUpdate>");
      }

      if (queryQosData.getUpdateOnewayProp().isModified()) {
         if (queryQosData.getWantUpdateOneway())
            sb.append(offset).append(" <updateOneway/>");
         else
            sb.append(offset).append(" <updateOneway>false</updateOneway>");
      }

      if (queryQosData.getNotifyProp().isModified()) {
         if (queryQosData.getWantNotify())
            sb.append(offset).append(" <notify/>");
         else
            sb.append(offset).append(" <notify>false</notify>");
      }

      if (queryQosData.getPersistentProp().isModified()) {
         if (queryQosData.isPersistent())
            sb.append(offset).append(" <persistent/>");
         else
            sb.append(offset).append(" <persistent>false</persistent>");
      }


      AccessFilterQos[] list = queryQosData.getAccessFilterArr();
      for (int ii=0; list != null && ii<list.length; ii++) {
         sb.append(list[ii].toXml(extraOffset+Constants.INDENT));
      }

      QuerySpecQos[] querySpeclist = queryQosData.getQuerySpecArr();
      for (int ii=0; querySpeclist != null && ii< querySpeclist.length; ii++) {
         sb.append(querySpeclist[ii].toXml(extraOffset+Constants.INDENT));
      }

      HistoryQos historyQos = queryQosData.getHistoryQos();
      if (historyQos != null) {
         sb.append(historyQos.toXml(extraOffset+Constants.INDENT));
      }

      if (queryQosData.getMethod() == MethodName.ERASE) {
         sb.append(offset).append(" <isErase/>");
      }
      else if (queryQosData.getMethod() == MethodName.GET) {
         sb.append(offset).append(" <isGet/>");
      }
      else if (queryQosData.getMethod() == MethodName.SUBSCRIBE) {
         sb.append(offset).append(" <isSubscribe/>");
      }
      else if (queryQosData.getMethod() == MethodName.UNSUBSCRIBE) {
         sb.append(offset).append(" <isUnSubscribe/>");
      }

      sb.append(queryQosData.writePropertiesXml(extraOffset+Constants.INDENT));
      sb.append(offset).append("</qos>");

      if (sb.length() < 16)
         return "<qos/>"// minimal footprint

      return sb.toString();
   }
View Full Code Here

    */
   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"

      XmlBuffer sb = new XmlBuffer(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='").appendEscaped(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>").getRawBuffer().append(msgQosData.getPriority()).append("</priority>");
      }

      if (msgQosData.getSubscriptionId() != null) {
         sb.append(offset).append(" <").append(MethodName.SUBSCRIBE.getMethodName()).append(" id='");
         sb.appendAttributeEscaped(msgQosData.getSubscriptionId()).append("'/>"); // Can contain XPath with ' or "
      }

      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();
   }
View Full Code Here

    * <br>
    * @param extraOffset indenting of tags for nice output
    * @return internal state of the RequestBroker as a XML ASCII string
    */
   public final String writeObject(MsgKeyData msgKeyData, String extraOffset) {
      XmlBuffer sb = new XmlBuffer(256);
      if (extraOffset == null) extraOffset = "";
      String offset = Constants.OFFSET + extraOffset;

      sb.append(offset).append("<key oid='").appendAttributeEscaped(msgKeyData.getOid()).append("'");
      if (msgKeyData.getContentMime() != null && !msgKeyData.getContentMime().equals(KeyData.CONTENTMIME_DEFAULT))
         sb.append(" contentMime='").appendAttributeEscaped(msgKeyData.getContentMime()).append("'");
      if (msgKeyData.getContentMimeExtended() != null && !msgKeyData.getContentMimeExtended().equals(KeyData.CONTENTMIMEEXTENDED_DEFAULT))
         sb.append(" contentMimeExtended='").appendAttributeEscaped(msgKeyData.getContentMimeExtended()).append("'");
      if (msgKeyData.getDomain() != null && msgKeyData.getDomain().length() > 0)
         sb.append(" domain='").appendAttributeEscaped(msgKeyData.getDomain()).append("'");
      if (msgKeyData.getClientTags() != null) {
         sb.append(">");
         sb.append(offset).append(extraOffset).append(Constants.INDENT).append(msgKeyData.getClientTags());
         sb.append(offset).append("</key>");
      }
      else
         sb.append("/>");
     return sb.toString();
   }
View Full Code Here

    * <br>
    * @param extraOffset indenting of tags for nice output
    * @return internal state of the RequestBroker as a XML ASCII string
    */
   public static final String toXml(DisconnectQosData data, String extraOffset, Properties props) {
      XmlBuffer sb = new XmlBuffer(512);
      String offset = "\n   ";
      if (extraOffset == null) extraOffset = "";
      offset += extraOffset;

      sb.append(offset).append("<qos>");
      if (data.deleteSubjectQueueProp().isModified()) {
         if (data.deleteSubjectQueue())
            sb.append(offset).append(" <deleteSubjectQueue/>");
         else
            sb.append(offset).append(" <deleteSubjectQueue>").append(data.deleteSubjectQueue()).append("</deleteSubjectQueue>");
      }
      if (data.clearSessionsProp().isModified()) {
         if (data.clearSessions())
            sb.append(offset).append(" <clearSessions/>");
         else
            sb.append(offset).append(" <clearSessions>").append(data.clearSessions()).append("</clearSessions>");
      }

      sb.append(data.writePropertiesXml(extraOffset+Constants.INDENT));
      sb.append(offset).append("</qos>");

      return sb.toString();
   }
View Full Code Here

TOP

Related Classes of org.xmlBlaster.util.XmlBuffer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.