xmlBlaster 2.2.0 API

org.xmlBlaster.engine.cluster
Class NodeParser

java.lang.Object
  extended by org.xmlBlaster.util.SaxHandlerBase
      extended by org.xmlBlaster.engine.cluster.NodeParser
All Implemented Interfaces:
org.xml.sax.ContentHandler, org.xml.sax.ErrorHandler, org.xml.sax.ext.LexicalHandler

public class NodeParser
extends SaxHandlerBase

XML parsing cluster node specific messages.

Example:

<clusternode id='heron' maxConnections='800'> <!-- NodeParser -->

  <!-- Messages of type "__sys__cluster.node:heron": -->
  <!-- Parsed by NodeInfo.java -->

  <connect>
    <qos> <--! a ConnectQos markup -->
       <address type='IOR'>IOR:09456087000</address>
       <address type='XMLRPC'>http://www.mars.universe:8080/RPC2</address>
       <callback type='XMLRPC'>http://www.mars.universe:8080/RPC2</callback>
       <backupnode>
          <clusternode id='avalon'/>
          <clusternode id='golan'/>
       </backupnode>
       <nameservice>true</nameservice>
    </qos>
  </connect>


  <!-- Messages of type "__sys__cluster.node.domainmapping:heron": -->
  <!-- Parsed by NodeMasterInfo.java -->

  <master stratum='0' type='DomainToMaster'> 
     <key queryType='DOMAIN' domain='RUGBY'/>
  </master>


  <!-- Messages of type "__sys__cluster.node.state:heron": -->
  <!-- Parsed by NodeStateInfo.java -->

  <state>
     <cpu id='0' idle='40'/>
     <ram free='12000'/>
  </state>

</clusternode>
 
Note that maxConnections is specific to message types "__sys__cluster.node:heron"

The parsed data is directly written into the ClusterManager attributes

TODO: Support full XmlScript syntax by using our xmlScript parser


Field Summary
private  ClusterManager clusterManager
           
private  ServerScope glob
           
private  java.lang.String id
          The unique node id
private  int inClusternode
           
private  boolean inConnect
           
private  boolean inDisconnect
           
private  boolean inMaster
           
private  boolean inState
           
private static java.util.logging.Logger log
           
private  java.lang.String ME
           
private  SessionInfo sessionInfo
           
private  ClusterNode tmpClusterNode
           
private  NodeMasterInfo tmpMaster
           
private  NodeConnectQos tmpNodeInfo
           
private  NodeStateInfo tmpState
           
 
Fields inherited from class org.xmlBlaster.util.SaxHandlerBase
character, locator, xmlLiteral, xmlSource
 
Constructor Summary
NodeParser(ServerScope glob, ClusterManager clusterManager, java.lang.String xml, SessionInfo sessionInfo)
          Parses the XML markup of exactly one cluster node configuration.
NodeParser(ServerScope glob, ClusterNode clusterNode, java.lang.String xml)
          Constructor variant to only parse the <master> part of the XML.
 
Method Summary
 void characters(char[] ch, int start, int length)
          Characters.
 void endElement(java.lang.String uri, java.lang.String localName, java.lang.String name)
          End element, event from SAX parser.
 ClusterNode getClusterNode()
          Access the parsed ClusterNode object
static void main(java.lang.String[] args)
          For testing with JUnit: java org.xmlBlaster.test.cluster.NodeParserTest
 void startElement(java.lang.String uri, java.lang.String localName, java.lang.String name, org.xml.sax.Attributes attrs)
          Start element, event from SAX parser.
 
Methods inherited from class org.xmlBlaster.util.SaxHandlerBase
comment, endCDATA, endDocument, endDTD, endEntity, endPrefixMapping, error, fatalError, getUseLexicalHandler, ignorableWhitespace, init, init, init, notationDecl, processingInstruction, setDocumentLocator, setUseLexicalHandler, skippedEntity, startCDATA, startDocument, startDTD, startEntity, startPrefixMapping, toString, toXml, unparsedEntityDecl, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

log

private static java.util.logging.Logger log

ME

private java.lang.String ME

glob

private final ServerScope glob

clusterManager

private final ClusterManager clusterManager

id

private java.lang.String id
The unique node id


inClusternode

private int inClusternode

tmpClusterNode

private ClusterNode tmpClusterNode

inConnect

private boolean inConnect

tmpNodeInfo

private NodeConnectQos tmpNodeInfo

inMaster

private boolean inMaster

tmpMaster

private NodeMasterInfo tmpMaster

inState

private boolean inState

tmpState

private NodeStateInfo tmpState

inDisconnect

private boolean inDisconnect

sessionInfo

private final SessionInfo sessionInfo
Constructor Detail

NodeParser

public NodeParser(ServerScope glob,
                  ClusterManager clusterManager,
                  java.lang.String xml,
                  SessionInfo sessionInfo)
           throws XmlBlasterException
Parses the XML markup of exactly one cluster node configuration.

Parameters:
xml - The XML based ASCII string
sessionInfo - The sessionInfo needs to be passed through to ClusterNode
Throws:
XmlBlasterException

NodeParser

public NodeParser(ServerScope glob,
                  ClusterNode clusterNode,
                  java.lang.String xml)
           throws XmlBlasterException
Constructor variant to only parse the <master> part of the XML.
  <clusternode id='heron.mycomp.com'>" +
   <master type='DomainToMaster' version='1.0'>\n" +
    <key queryType='DOMAIN' domain='RUGBY'/>\n" +
   </master>\n" +
  </clusternode>\n";
 

Parameters:
glob -
clusterNode -
xml -
Throws:
XmlBlasterException
Method Detail

getClusterNode

public ClusterNode getClusterNode()
Access the parsed ClusterNode object


characters

public void characters(char[] ch,
                       int start,
                       int length)
Characters. The text between two tags, in the following example 'Hello': Hello

Specified by:
characters in interface org.xml.sax.ContentHandler
Overrides:
characters in class SaxHandlerBase

startElement

public final void startElement(java.lang.String uri,
                               java.lang.String localName,
                               java.lang.String name,
                               org.xml.sax.Attributes attrs)
                        throws org.xml.sax.SAXException
Start element, event from SAX parser.

Specified by:
startElement in interface org.xml.sax.ContentHandler
Overrides:
startElement in class SaxHandlerBase
Parameters:
name - Tag name
attrs - the attributes of the tag
Throws:
org.xml.sax.SAXException

endElement

public void endElement(java.lang.String uri,
                       java.lang.String localName,
                       java.lang.String name)
                throws org.xml.sax.SAXException
End element, event from SAX parser.

Specified by:
endElement in interface org.xml.sax.ContentHandler
Overrides:
endElement in class SaxHandlerBase
Parameters:
name - Tag name
Throws:
org.xml.sax.SAXException

main

public static void main(java.lang.String[] args)
For testing with JUnit: java org.xmlBlaster.test.cluster.NodeParserTest


xmlBlaster 2.2.0 API

Copyright © 1999-2014 The xmlBlaster.org contributers.