edu.isi.pegasus.planner.catalog.site.impl
Class XML

java.lang.Object
  extended by org.xml.sax.helpers.DefaultHandler
      extended by edu.isi.pegasus.planner.parser.Parser
          extended by edu.isi.pegasus.planner.catalog.site.impl.XML
All Implemented Interfaces:
Catalog, SiteCatalog, ContentHandler, DTDHandler, EntityResolver, ErrorHandler

public class XML
extends Parser
implements SiteCatalog

A back port to old site catalog schema for the current Site Catalog API This class parses XML documents that conform to site catalog schema version 2.

  http://pegasus.isi.edu/schema/sc-2.0.xsd
 

Version:
$Revision: 4559 $
Author:
Karan Vahi

Field Summary
private  GridFTPServer gftp
           
private  String m_key
           
private  String m_namespace
           
 PoolConfig m_pconfig
           
private  SiteInfo m_pool_info
           
private  String mFilename
          The Site Catalog file to be parser.
private  LogManager mLogger
          The Logging instance.
private  SiteStore mSiteStore
          Stores sites in memory
static String SCHEMA_LOCATION
          The "not-so-official" location URL of the VDLx schema definition.
static String SCHEMA_NAMESPACE
          uri namespace
 
Fields inherited from class edu.isi.pegasus.planner.parser.Parser
DEFAULT_PARSER_NAME, mAdjFName, mLocator, mLogMsg, mParser, mProps, mTextContent, mTextString
 
Fields inherited from interface edu.isi.pegasus.planner.catalog.SiteCatalog
c_prefix, VERSION
 
Fields inherited from interface edu.isi.pegasus.planner.catalog.Catalog
DB_ALL_PREFIX
 
Constructor Summary
XML()
          The default constructor.
 
Method Summary
 void close()
          Close the connection to backend file.
 boolean connect(Properties props)
          Establishes a connection to the file from the properties.
 boolean connect(String filename)
          Initializes the Site Catalog Parser instance for the file.
 void endDocument()
          This is called automatically when the end of the XML file is reached.
 void endElement(String uri, String localName, String qName)
          An empty implementation is provided by DefaultHandler class.
 PoolConfig getPoolConfig()
          This class returns the reference to the PooConfig object containing information about all the pools.
 String getSchemaLocation()
          Helps the load database to locate the XML schema, if available.
 String getSchemaNamespace()
          Returns the XML schema namespace that a document being parsed conforms to.
private  void handleConfigTagEnd()
          Handles the end of the Xml files.
private  PoolConfig handleConfigTagStart()
           
private static void handleGridFtpBandwidthTagEnd()
           
private  void handleGridFtpBandwidthTagStart(SiteInfo pinfo, Attributes attrs)
          sk added function to handle gridftpbandwidth tag
private  void handleGridFtpTagEnd()
          sk made changes to the following function to set GRIDFTPServer instead of setting it in fn handleGridFtpTagStart()
private  void handleGridFtpTagStart(SiteInfo pinfo, Attributes attrs)
           
private static void handleJobManagerTagEnd()
          Handles the end of the JobManager Tag
private  void handleJobManagerTagStart(SiteInfo pinfo, Attributes attrs)
          This method handles the start of a jobmanager tag.
private static void handleLRCTagEnd()
          Handles the end of the LRC Tag
private  void handleLRCTagStart(SiteInfo pinfo, Attributes attrs)
           
private  void handlePoolTagEnd()
          Handles the end of the pool tag.
private  SiteInfo handlePoolTagStart(PoolConfig pcfg, Attributes attrs)
           
private  void handleProfileTagEnd(SiteInfo pinfo)
          Handles the end of the Profile tag.
private  void handleProfileTagStart(SiteInfo pinfo, Attributes attrs)
           
private  void handleWorkDirectoryTagEnd(SiteInfo pinfo)
          This method handles the Workdirectory tg end.
private  void handleWorkDirectoryTagStart(SiteInfo pinfo, Attributes attrs)
          Handles the WorkDirectory Tag Start.
 int insert(SiteCatalogEntry entry)
          Not implemented as yet.
 boolean isClosed()
          Returns if the connection is closed or not.
 Set<String> list()
          Lists the site handles for all the sites in the Site Catalog.
 int load(List<String> sites)
          Loads up the Site Catalog implementation with the sites whose site handles are specified.
 SiteCatalogEntry lookup(String handle)
          Retrieves the SiteCatalogEntry for a site.
 int remove(String handle)
          Not yet implemented as yet.
 void startElement(String uri, String localName, String qName, Attributes attrs)
          An empty implementation is provided by DefaultHandler of ContentHandler.
 void startParser(String configxml)
          Start the parser.
 
Methods inherited from class edu.isi.pegasus.planner.parser.Parser
characters, ignoreWhitespace, ignoreWhitespace, setDocumentLocator, setParserFeature, setSchemaLocations, testForFile
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SCHEMA_LOCATION

public static final String SCHEMA_LOCATION
The "not-so-official" location URL of the VDLx schema definition.

See Also:
Constant Field Values

SCHEMA_NAMESPACE

public static final String SCHEMA_NAMESPACE
uri namespace

See Also:
Constant Field Values

m_pconfig

public PoolConfig m_pconfig

m_pool_info

private SiteInfo m_pool_info

m_namespace

private String m_namespace

m_key

private String m_key

gftp

private GridFTPServer gftp

mLogger

private LogManager mLogger
The Logging instance.


mSiteStore

private SiteStore mSiteStore
Stores sites in memory


mFilename

private String mFilename
The Site Catalog file to be parser.

Constructor Detail

XML

public XML()
The default constructor.

Method Detail

connect

public boolean connect(Properties props)
                throws SiteCatalogException
Establishes a connection to the file from the properties. You will need to specify a "file" property to point to the location of the on-disk instance.

Specified by:
connect in interface Catalog
Parameters:
props - is the property table with sufficient settings to to connect to the implementation.
Returns:
true if connected, false if failed to connect.
Throws:
SiteCatalogException

connect

public boolean connect(String filename)
Initializes the Site Catalog Parser instance for the file.

Parameters:
filename - is the name of the file to read.
Returns:
true,

close

public void close()
Close the connection to backend file.

Specified by:
close in interface Catalog

isClosed

public boolean isClosed()
Returns if the connection is closed or not.

Specified by:
isClosed in interface Catalog
Returns:
boolean
See Also:
Catalog.close()

load

public int load(List<String> sites)
         throws SiteCatalogException
Loads up the Site Catalog implementation with the sites whose site handles are specified. This is a convenience method, that can allow the backend implementations to maintain soft state if required. If the implementation chooses not to implement this, just do an empty implementation. The site handle * is a special handle designating all sites are to be loaded.

Specified by:
load in interface SiteCatalog
Parameters:
sites - the list of sites to be loaded.
Returns:
the number of sites loaded.
Throws:
SiteCatalogException - in case of error.

insert

public int insert(SiteCatalogEntry entry)
           throws SiteCatalogException
Not implemented as yet.

Specified by:
insert in interface SiteCatalog
Parameters:
entry - the entry
Returns:
number of entries inserted
Throws:
SiteCatalogException

list

public Set<String> list()
                 throws SiteCatalogException
Lists the site handles for all the sites in the Site Catalog.

Specified by:
list in interface SiteCatalog
Returns:
A set of site handles.
Throws:
SiteCatalogException - in case of error.

lookup

public SiteCatalogEntry lookup(String handle)
                        throws SiteCatalogException
Retrieves the SiteCatalogEntry for a site.

Specified by:
lookup in interface SiteCatalog
Parameters:
handle - the site handle / identifier.
Returns:
SiteCatalogEntry in case an entry is found , or null if no match is found.
Throws:
SiteCatalogException - in case of error.

remove

public int remove(String handle)
           throws SiteCatalogException
Not yet implemented as yet.

Specified by:
remove in interface SiteCatalog
Parameters:
handle - the site to be removed
Returns:
number of entries removed.
Throws:
SiteCatalogException

startParser

public void startParser(String configxml)
Description copied from class: Parser
Start the parser. This starts the parsing of the file by the parser.

Specified by:
startParser in class Parser
Parameters:
configxml - the path to the XML file you want to parse.

endDocument

public void endDocument()
Description copied from class: Parser
This is called automatically when the end of the XML file is reached.

Specified by:
endDocument in interface ContentHandler
Specified by:
endDocument in class Parser

endElement

public void endElement(String uri,
                       String localName,
                       String qName)
Description copied from class: Parser
An empty implementation is provided by DefaultHandler class. This method is called automatically by the Sax parser when the end tag of an element comes in the xml file. Any parser class should implement this method

Specified by:
endElement in interface ContentHandler
Specified by:
endElement in class Parser

startElement

public void startElement(String uri,
                         String localName,
                         String qName,
                         Attributes attrs)
Description copied from class: Parser
An empty implementation is provided by DefaultHandler of ContentHandler. This method receives the notification from the sacks parser when start tag of an element comes. Any parser class must implement this method.

Specified by:
startElement in interface ContentHandler
Specified by:
startElement in class Parser

getSchemaNamespace

public String getSchemaNamespace()
Returns the XML schema namespace that a document being parsed conforms to.

Specified by:
getSchemaNamespace in class Parser
Returns:
the schema namespace

getSchemaLocation

public String getSchemaLocation()
Description copied from class: Parser
Helps the load database to locate the XML schema, if available. Please note that the schema location URL in the instance document is only a hint, and may be overriden by the findings of this method.

Specified by:
getSchemaLocation in class Parser
Returns:
a location pointing to a definition document of the XML schema that can read VDLx. Result may be null, if such a document is unknown or unspecified.

handleConfigTagStart

private PoolConfig handleConfigTagStart()
Returns:
PoolConfig Returns a new PoolConfig object when it encounters start of XML.
See Also:
org.griphyn.cPlanner.classes.PoolConfig

handlePoolTagStart

private SiteInfo handlePoolTagStart(PoolConfig pcfg,
                                    Attributes attrs)
                             throws Exception
Parameters:
pcfg - Takes the PoolConfig class.
attrs - Takes the atrributes returned in XML.
Returns:
SiteInfo returns the reference to the PooInfo ojject
Throws:
Exception
See Also:
org.griphyn.cPlanner.classes.SiteInfo, org.griphyn.cPlanner.classes.PoolConfig

handleProfileTagStart

private void handleProfileTagStart(SiteInfo pinfo,
                                   Attributes attrs)
                            throws Exception
Parameters:
pinfo - Poolinfo object that is to be populated
attrs - Attributes for the element
Throws:
Exception

handleLRCTagStart

private void handleLRCTagStart(SiteInfo pinfo,
                               Attributes attrs)
                        throws Exception
Parameters:
pinfo - Poolinfo object that is to be populated
attrs - Attributes for the element
Throws:
Exception

handleGridFtpTagStart

private void handleGridFtpTagStart(SiteInfo pinfo,
                                   Attributes attrs)
                            throws Exception
Parameters:
pinfo - Poolinfo object that is to be populated
attrs - Attributes for the element
Throws:
Exception

handleGridFtpBandwidthTagStart

private void handleGridFtpBandwidthTagStart(SiteInfo pinfo,
                                            Attributes attrs)
                                     throws Exception
sk added function to handle gridftpbandwidth tag

Parameters:
pinfo - Poolinfo object that is to be populated
attrs - Attributes for the element
Throws:
Exception

handleJobManagerTagStart

private void handleJobManagerTagStart(SiteInfo pinfo,
                                      Attributes attrs)
                               throws Exception
This method handles the start of a jobmanager tag.

Parameters:
pinfo - The PoolInfo object which will hold the jobmanager information
attrs - The attributes about the jobmanager tag returned from the XML.
Throws:
Exception
See Also:
org.griphyn.cPlanner.classes.SiteInfo

handleWorkDirectoryTagStart

private void handleWorkDirectoryTagStart(SiteInfo pinfo,
                                         Attributes attrs)
                                  throws Exception
Handles the WorkDirectory Tag Start.

Parameters:
pinfo - Takes a SiteInfo object for which the work directory is.
attrs - Takes the attributes returned from the XML by the parser.
Throws:
Exception
See Also:
org.griphyn.cPlanner.classes.SiteInfo

handleConfigTagEnd

private void handleConfigTagEnd()
Handles the end of the Xml files.


handlePoolTagEnd

private void handlePoolTagEnd()
Handles the end of the pool tag.


handleProfileTagEnd

private void handleProfileTagEnd(SiteInfo pinfo)
                          throws RuntimeException
Handles the end of the Profile tag.

Parameters:
pinfo - PoolInfo object for which the profiles are collected.
Throws:
Exception
RuntimeException
See Also:
org.griphyn.cPlanner.classes.SiteInfo

handleLRCTagEnd

private static void handleLRCTagEnd()
Handles the end of the LRC Tag


handleGridFtpTagEnd

private void handleGridFtpTagEnd()
                          throws RuntimeException
sk made changes to the following function to set GRIDFTPServer instead of setting it in fn handleGridFtpTagStart()

Throws:
RuntimeException

handleGridFtpBandwidthTagEnd

private static void handleGridFtpBandwidthTagEnd()

handleJobManagerTagEnd

private static void handleJobManagerTagEnd()
Handles the end of the JobManager Tag


handleWorkDirectoryTagEnd

private void handleWorkDirectoryTagEnd(SiteInfo pinfo)
                                throws RuntimeException
This method handles the Workdirectory tg end.

Parameters:
pinfo - Takes the PoolInfo object.
Throws:
Exception
RuntimeException
See Also:
org.griphyn.cPlanner.classes.SiteInfo

getPoolConfig

public PoolConfig getPoolConfig()
This class returns the reference to the PooConfig object containing information about all the pools.

Returns:
returns a reference to the PoolConfig object which contains all the pools.
See Also:
org.griphyn.cPlanner.classes.PoolConfig


Copyright © 2011 The University of Southern California. All Rights Reserved.