Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

org.objectweb.cjdbc.controller.xml.DatabasesParser Class Reference

List of all members.

Public Member Functions

 DatabasesParser (Controller controller) throws SAXException
 DatabasesParser (Controller controller, String virtualName, int autoLoad, String checkPoint) throws SAXException
void readXML (String xml) throws IOException, SAXException
void readXML (String xml, boolean validateBeforeParsing) throws IOException, SAXException
void fatalError (SAXParseException e) throws SAXException
void error (SAXParseException e) throws SAXException
InputSource resolveEntity (String publicId, String systemId) throws SAXException
void prepareDB (String virtualName, int autoLoad, String checkPoint)
void startDocument () throws SAXException
void endDocument () throws SAXException
void startElement (String uri, String localName, String name, Attributes atts) throws SAXException
void endElement (String uri, String localName, String name) throws SAXException

Static Package Attributes

Trace logger

Detailed Description

Parses an XML content conforming to C-JDBC.dtd and configure the given C-JDBC Controller accordingly.

Author:
Emmanuel Cecchet

Mathieu Peltier

Nicolas Modrzyk

Version:
1.0

Definition at line 144 of file DatabasesParser.java.


Constructor & Destructor Documentation

org.objectweb.cjdbc.controller.xml.DatabasesParser.DatabasesParser Controller  controller  )  throws SAXException
 

Creates a new DatabasesParser instance. This method Instanciates also a new DatabasesParser.

Parameters:
controller Controller to load the Virtual Database into
Exceptions:
SAXException if an error occurs

Definition at line 215 of file DatabasesParser.java.

00216   {
00217     prepareHandler(controller);
00218   }

org.objectweb.cjdbc.controller.xml.DatabasesParser.DatabasesParser Controller  controller,
String  virtualName,
int  autoLoad,
String  checkPoint
throws SAXException
 

Creates a new DatabasesParser instance. This method Instanciates also a new DatabasesParser. This instance will look only for the specified database.

Parameters:
controller Controller to load the Virtual Database into
virtualName the specified VirtualDatabase to load.
autoLoad autoenable switch
checkPoint checkpoint information
Exceptions:
SAXException if an error occurs

Definition at line 232 of file DatabasesParser.java.

References org.objectweb.cjdbc.controller.xml.DatabasesParser.prepareDB().

00234   {
00235     prepareHandler(controller);
00236     // Test if a name has been specified. Otherwise skip.
00237     if (virtualName != null)
00238       prepareDB(virtualName, autoLoad, checkPoint);
00239   }


Member Function Documentation

void org.objectweb.cjdbc.controller.xml.DatabasesParser.endDocument  )  throws SAXException
 

Finalizes parsing of a document.

Exceptions:
SAXException unspecialized error

Definition at line 402 of file DatabasesParser.java.

00403   {
00404     logger.info(Translate.get("virtualdatabase.xml.done"));
00405   }

void org.objectweb.cjdbc.controller.xml.DatabasesParser.endElement String  uri,
String  localName,
String  name
throws SAXException
 

DatabasesParser for end of element.

Parameters:
uri name space URI
localName local name
name element raw name
Exceptions:
SAXException if an error occurs

Definition at line 637 of file DatabasesParser.java.

References org.objectweb.cjdbc.common.xml.XmlValidator.error(), org.objectweb.cjdbc.controller.requestmanager.RequestManager.setBackupManager(), org.objectweb.cjdbc.controller.requestmanager.RequestManager.setCaseSensitiveParsing(), org.objectweb.cjdbc.controller.requestmanager.RequestManager.setDatabaseSchema(), org.objectweb.cjdbc.controller.requestmanager.RequestManager.setMetadataCache(), and org.objectweb.cjdbc.controller.requestmanager.RequestManager.setParsingCache().

00639   {
00640     logger.debug(Translate.get("virtualdatabase.xml.parsing.end", name));
00641     // Test if skip is needed
00642     if (skipDatabase)
00643       return;
00644 
00645     // Virtual database
00646     if (name.equals(DatabasesXmlTags.ELT_VirtualDatabase))
00647     {
00648       if (logger.isDebugEnabled())
00649         logger.debug(Translate.get("virtualdatabase.xml.add.virtualdatabase"));
00650 
00651       if (currentVirtualDatabase != null)
00652       {
00653         try
00654         {
00655           if (currentVirtualDatabase instanceof DistributedVirtualDatabase)
00656             ((DistributedVirtualDatabase) currentVirtualDatabase).joinGroup();
00657           if (dbToPrepare == null)
00658           {
00659             controller.addVirtualDatabase(currentVirtualDatabase);
00660           }
00661           else
00662           {
00663             int autoLoad = Integer.parseInt((String) dbToPrepare
00664                 .get("autoEnable"));
00665             String checkPoint = (String) dbToPrepare.get("checkPoint");
00666             // checkPoint is store as "" in Hashtable
00667             // but methods to enable backend requires checkPoint to be null
00668             // if no recovery from checkpoint
00669             checkPoint = checkPoint.equalsIgnoreCase("") ? null : checkPoint;
00670             controller.addVirtualDatabase(currentVirtualDatabase, autoLoad,
00671                 checkPoint);
00672           }
00673         }
00674         catch (Exception e)
00675         {
00676           String msg = Translate
00677               .get("controller.add.virtualdatabase.failed", e);
00678           logger.error(msg, e);
00679         }
00680       }
00681       currentVirtualDatabase = null;
00682     }
00683 
00684     // Request manager
00685     else if (name.equals(DatabasesXmlTags.ELT_RequestManager))
00686     {
00687       if (logger.isDebugEnabled())
00688         logger.debug(Translate.get("virtualdatabase.xml.requestmanager.set"));
00689 
00690       if (currentVirtualDatabase != null)
00691       {
00692         RequestManager requestManager = null;
00693 
00694         // We consider that SingleDB and ParallelDB balancers don't need macros
00695         // handler
00696         if (currentLoadBalancer == null)
00697           throw new SAXException("virtualdatabase.xml.loadbalancer.not.set");
00698         if (!(currentLoadBalancer instanceof SingleDB || currentLoadBalancer instanceof ParallelDB))
00699         {
00700           // If no macros handling has been specified, create a default one
00701           // based one the dtd default values
00702           if (currentMacroHandler == null)
00703             currentMacroHandler = new MacrosHandler(MacrosHandler.RAND_FLOAT,
00704                 1000, MacrosHandler.DATE_TIMESTAMP, MacrosHandler.DATE_DATE,
00705                 MacrosHandler.DATE_TIME, MacrosHandler.DATE_TIMESTAMP,
00706                 MacrosHandler.DATE_TIMESTAMP);
00707           currentLoadBalancer.setMacroHandler(currentMacroHandler);
00708         }
00709 
00710         try
00711         {
00712           if (currentVirtualDatabase.isDistributed())
00713           {
00714             switch (currentLoadBalancer.getRAIDbLevel())
00715             {
00716               case RAIDbLevels.SingleDB :
00717                 String smsg = Translate.get(
00718                     "virtualdatabase.xml.no.single.distributed.requestmanager",
00719                     currentLoadBalancer.getRAIDbLevel());
00720                 logger.error(smsg);
00721                 throw new SAXException(smsg);
00722               case RAIDbLevels.RAIDb1 :
00723                 requestManager = new RAIDb1DistributedRequestManager(
00724                     (DistributedVirtualDatabase) currentVirtualDatabase,
00725                     currentRequestScheduler, currentResultCache,
00726                     currentLoadBalancer, currentRecoveryLog, beginTimeout,
00727                     commitTimeout, rollbackTimeout);
00728                 break;
00729               case RAIDbLevels.RAIDb2 :
00730                 requestManager = new RAIDb2DistributedRequestManager(
00731                     (DistributedVirtualDatabase) currentVirtualDatabase,
00732                     currentRequestScheduler, currentResultCache,
00733                     currentLoadBalancer, currentRecoveryLog, beginTimeout,
00734                     commitTimeout, rollbackTimeout);
00735                 break;
00736               default :
00737                 String msg = Translate.get(
00738                     "virtualdatabase.xml.no.distributed.requestmanager",
00739                     currentLoadBalancer.getRAIDbLevel());
00740                 logger.error(msg);
00741                 throw new SAXException(msg);
00742             }
00743           }
00744           else
00745             requestManager = new RequestManager(currentVirtualDatabase,
00746                 currentRequestScheduler, currentResultCache,
00747                 currentLoadBalancer, currentRecoveryLog, beginTimeout,
00748                 commitTimeout, rollbackTimeout);
00749 
00750           if (requestManager != null)
00751           {
00752             if (currentParsingCache != null)
00753               requestManager.setParsingCache(currentParsingCache);
00754             if (currentMetadataCache != null)
00755               requestManager.setMetadataCache(currentMetadataCache);
00756             requestManager.setCaseSensitiveParsing(caseSensitiveParsing);
00757           }
00758 
00759           currentVirtualDatabase.setRequestManager(requestManager);
00760           if (currentBackupManager == null)
00761             currentBackupManager = new BackupManager();
00762           requestManager.setBackupManager(currentBackupManager);
00763         }
00764         catch (Exception e)
00765         {
00766           String msg = Translate
00767               .get("virtualdatabase.xml.requestmanager.creation.failed");
00768           logger.error(msg, e);
00769           throw new SAXException(msg, e);
00770         }
00771       }
00772     }
00773 
00774     // Database backend
00775     else if (name.equals(DatabasesXmlTags.ELT_DatabaseBackend))
00776     {
00777       if (currentBackend != null)
00778       {
00779         try
00780         {
00781           currentVirtualDatabase.addBackend(currentBackend, false);
00782         }
00783         catch (Exception e)
00784         {
00785           String msg = Translate.get("virtualdatabase.xml.backend.add.failed");
00786           logger.error(msg, e);
00787           throw new SAXException(msg, e);
00788         }
00789       }
00790       currentBackend = null;
00791     }
00792 
00793     // Authentication manager
00794     else if (name.equals(DatabasesXmlTags.ELT_AuthenticationManager))
00795     {
00796       if (currentVirtualDatabase != null)
00797       {
00798         currentVirtualDatabase
00799             .setAuthenticationManager(currentAuthenticationManager);
00800       }
00801     }
00802 
00803     // Request cache
00804     else if (name.equals(DatabasesXmlTags.ELT_RequestCache))
00805     {
00806       if (currentResultCache != null)
00807       { // Set default result cache rule if missing
00808         if (currentResultCache.getDefaultRule() == null)
00809         {
00810           ResultCacheRule defaultRule = null;
00811           try
00812           {
00813             defaultRule = new ResultCacheRule("", false, false, 1000);
00814           }
00815           catch (RESyntaxException impossible)
00816           {
00817           }
00818           defaultRule.setCacheBehavior(new EagerCaching(0));
00819           currentResultCache.setDefaultRule(defaultRule);
00820         }
00821       }
00822     }
00823     else if (name.equals(DatabasesXmlTags.ELT_DefaultResultCacheRule))
00824     {
00825       currentResultCache.setDefaultRule(currentResultCacheRule);
00826     }
00827 
00828     // Database schema
00829     else if (name.equals(DatabasesXmlTags.ELT_DatabaseStaticSchema))
00830     {
00831       if (currentDatabaseSchema != null)
00832       {
00833         if (currentBackend != null)
00834         {
00835           try
00836           {
00837             currentBackend.setDatabaseSchema(currentDatabaseSchema, true);
00838           }
00839           catch (Exception e)
00840           {
00841             logger.error(Translate
00842                 .get("virtualdatabase.xml.backend.set.schema.failed"), e);
00843           }
00844         }
00845         else
00846         {
00847           try
00848           {
00849             currentVirtualDatabase.setDatabaseSchema(currentDatabaseSchema,
00850                 true);
00851           }
00852           catch (Exception e)
00853           {
00854             logger.error(Translate
00855                 .get("virtualdatabase.xml.virtualdatabase.set.schema.failed"),
00856                 e);
00857           }
00858         }
00859         currentDatabaseSchema = null;
00860       }
00861     }
00862 
00863     // Database table
00864     else if (name.equals(DatabasesXmlTags.ELT_DatabaseTable))
00865     {
00866       if (currentTable != null)
00867       {
00868         try
00869         {
00870           ArrayList cols = currentTable.getColumns();
00871           if (cols == null)
00872             logger.warn(Translate.get("virtualdatabase.xml.table.no.column",
00873                 currentTable.getName()));
00874           else if (cols.size() != numberOfColumns)
00875             logger.warn(Translate.get(
00876                 "virtualdatabase.xml.table.column.mismatch", new String[]{
00877                     String.valueOf(numberOfColumns), currentTable.getName(),
00878                     String.valueOf(cols.size())}));
00879 
00880           currentDatabaseSchema.addTable(currentTable);
00881           if (logger.isDebugEnabled())
00882             logger.debug(Translate.get("virtualdatabase.xml.table.add",
00883                 currentTable.getName()));
00884         }
00885         catch (Exception e)
00886         {
00887           logger
00888               .error(Translate.get("virtualdatabase.xml.table.add.failed"), e);
00889         }
00890         currentTable = null;
00891       }
00892     }
00893 
00894     else if (name.equals(DatabasesXmlTags.ELT_DatabaseProcedure))
00895     {
00896       if (currentProcedure != null)
00897       {
00898         try
00899         {
00900 
00901           currentDatabaseSchema.addProcedure(currentProcedure);
00902           if (logger.isDebugEnabled())
00903             logger.debug(Translate.get("virtualdatabase.xml.procedure.add",
00904                 currentProcedure.getName()));
00905         }
00906         catch (Exception e)
00907         {
00908           logger.error(Translate
00909               .get("virtualdatabase.xml.procedure.add.failed"), e);
00910         }
00911         currentProcedure = null;
00912       }
00913     }
00914 
00915     // CreateTable rule
00916     else if (name.equals(DatabasesXmlTags.ELT_CreateTable))
00917     {
00918       if (currentCreateTablePolicy != null)
00919       {
00920         if (logger.isDebugEnabled())
00921           logger.debug(Translate.get("virtualdatabase.xml.create.table.add",
00922               currentCreateTableRule.getInformation()));
00923         currentCreateTablePolicy.addRule(currentCreateTableRule);
00924       }
00925     }
00926 
00927     // RAIDb-0 load balancer
00928     else if (name.equals(DatabasesXmlTags.ELT_RAIDb_0))
00929     {
00930       if (logger.isDebugEnabled())
00931         logger.debug(Translate
00932             .get("virtualdatabase.xml.loadbalancer.raidb0.set"));
00933 
00934       if (currentCreateTablePolicy.getDefaultRule() == null)
00935       {
00936         if (logger.isDebugEnabled())
00937           logger.debug(Translate
00938               .get("virtualdatabase.xml.create.table.default"));
00939         CreateTableRule rule = new CreateTableRoundRobin();
00940         currentCreateTablePolicy.addRule(rule);
00941       }
00942       try
00943       {
00944         currentLoadBalancer = new RAIDb0(currentVirtualDatabase,
00945             currentCreateTablePolicy);
00946       }
00947       catch (Exception e)
00948       {
00949         String msg = Translate
00950             .get("virtualdatabase.xml.loadbalancer.raidb0.failed");
00951         logger.error(msg, e);
00952         throw new SAXException(msg, e);
00953       }
00954     }
00955 
00956     // JDBC Recovery Log
00957     else if (name.equals(DatabasesXmlTags.ELT_RecoveryLog))
00958     {
00959       if (logger.isDebugEnabled())
00960         logger.debug(Translate
00961             .get("virtualdatabase.xml.recoverylog.cheking.tables"));
00962       {
00963         try
00964         {
00965           currentRecoveryLog.checkRecoveryLogTables();
00966         }
00967         catch (Exception e)
00968         {
00969           String msg = Translate
00970               .get("virtualdatabase.xml.recoverylog.cheking.tables.failed");
00971           logger.error(msg, e);
00972           throw new SAXException(msg);
00973         }
00974         // Set the last transaction id of the scheduler from the recovery logs
00975         try
00976         {
00977           currentRequestScheduler.initializeTransactionId(currentRecoveryLog
00978               .getLastTransactionId() + 1);
00979         }
00980         catch (Exception e)
00981         {
00982           String msg = Translate
00983               .get("virtualdatabase.xml.scheduler.initialization.failed");
00984           logger.error(msg, e);
00985           throw new SAXException(msg);
00986         }
00987       }
00988     }
00989   }

void org.objectweb.cjdbc.controller.xml.DatabasesParser.error SAXParseException  e  )  throws SAXException
 

Handles notification of a recoverable parser error.

Parameters:
e the warning information encoded as an exception.
Exceptions:
SAXException any SAX exception, possibly wrapping another exception

Definition at line 343 of file DatabasesParser.java.

References org.objectweb.cjdbc.common.xml.XmlValidator.error().

Referenced by org.objectweb.cjdbc.controller.core.Controller.addVirtualDatabase().

00344   {
00345     logger.error(Translate.get("virtualdatabase.xml.parsing.error",
00346         new String[]{e.getPublicId(), String.valueOf(e.getLineNumber()),
00347             String.valueOf(e.getColumnNumber()), e.getMessage()}));
00348     throw e;
00349   }

void org.objectweb.cjdbc.controller.xml.DatabasesParser.fatalError SAXParseException  e  )  throws SAXException
 

Handles notification of a non-recoverable parser error.

Parameters:
e the warning information encoded as an exception.
Exceptions:
SAXException any SAX exception, possibly wrapping another exception.

Definition at line 328 of file DatabasesParser.java.

References org.objectweb.cjdbc.common.xml.XmlValidator.error(), and org.objectweb.cjdbc.controller.xml.DatabasesParser.logger.

00329   {
00330     logger.error(Translate.get("virtualdatabase.xml.parsing.fatal",
00331         new String[]{e.getPublicId(), String.valueOf(e.getLineNumber()),
00332             String.valueOf(e.getColumnNumber()), e.getMessage()}));
00333     throw e;
00334   }

void org.objectweb.cjdbc.controller.xml.DatabasesParser.prepareDB String  virtualName,
int  autoLoad,
String  checkPoint
 

If this method is called. Only the specified DB of the Xml file will be loaded.

Parameters:
virtualName VirtualDatabase name
autoLoad autoenable switch
checkPoint checkpoint for recovery

Definition at line 379 of file DatabasesParser.java.

Referenced by org.objectweb.cjdbc.controller.xml.DatabasesParser.DatabasesParser().

00380   {
00381     dbToPrepare = new Hashtable(3);
00382     dbToPrepare.put("virtualName", virtualName);
00383     dbToPrepare.put("autoEnable", String.valueOf(autoLoad));
00384     dbToPrepare.put("checkPoint", checkPoint);
00385   }

void org.objectweb.cjdbc.controller.xml.DatabasesParser.readXML String  xml,
boolean  validateBeforeParsing
throws IOException, SAXException
 

Validate an XML content according to C-JDBC DTD.

Parameters:
xml content
validateBeforeParsing if true validate the document before the parsing
Exceptions:
IOException if an error occurs
SAXException if an error occurs

Definition at line 283 of file DatabasesParser.java.

References org.objectweb.cjdbc.common.xml.XmlValidator.error(), org.objectweb.cjdbc.common.xml.XmlValidator.getExceptions(), org.objectweb.cjdbc.common.xml.XmlValidator.getWarnings(), org.objectweb.cjdbc.common.xml.XmlValidator.isDtdValid, org.objectweb.cjdbc.common.xml.XmlValidator.isValid(), org.objectweb.cjdbc.common.xml.XmlValidator.isXmlValid, and org.objectweb.cjdbc.controller.xml.DatabasesParser.logger.

00285   {
00286     if (validateBeforeParsing)
00287     {
00288       XmlValidator validator = new XmlValidator(Constants.C_JDBC_DTD_FILE, xml);
00289       if (logger.isDebugEnabled())
00290       {
00291         if (validator.isDtdValid())
00292           logger.debug(Translate.get("virtualdatabase.xml.dtd.validated"));
00293         if (validator.isXmlValid())
00294           logger.debug(Translate.get("virtualdatabase.xml.document.validated"));
00295       }
00296 
00297       if (validator.getWarnings().size() > 0)
00298       {
00299         ArrayList warnings = validator.getWarnings();
00300         for (int i = 0; i < warnings.size(); i++)
00301           logger.warn(Translate.get("virtualdatabase.xml.parsing.warning",
00302               warnings.get(i)));
00303       }
00304 
00305       if (!validator.isDtdValid())
00306         logger.error(Translate.get("virtualdatabase.xml.dtd.not.validated"));
00307       if (!validator.isXmlValid())
00308         logger.error(Translate
00309             .get("virtualdatabase.xml.document.not.validated"));
00310 
00311       ArrayList errors = validator.getExceptions();
00312       for (int i = 0; i < errors.size(); i++)
00313         logger.error(((Exception) errors.get(i)).getMessage());
00314 
00315       if (!validator.isValid())
00316         throw new SAXException(ExceptionTypes.XML_DOCUMENT_INVALID);
00317     }
00318     this.readXML(xml);
00319   }

void org.objectweb.cjdbc.controller.xml.DatabasesParser.readXML String  xml  )  throws IOException, SAXException
 

Parses an XML content according to C-JDBC DTD.

Parameters:
xml a String containing the XML content to parse
Exceptions:
SAXException if an error occurs
IOException if an error occurs

Definition at line 268 of file DatabasesParser.java.

Referenced by org.objectweb.cjdbc.controller.core.Controller.addVirtualDatabases().

00269   {
00270     InputSource input = new InputSource(new StringReader(xml));
00271     parser.parse(input);
00272   }

InputSource org.objectweb.cjdbc.controller.xml.DatabasesParser.resolveEntity String  publicId,
String  systemId
throws SAXException
 

Allows to parse the document with a local copy of the DTD whatever the original DOCTYPE found. Warning, this method is called only if the XML document contains a DOCTYPE.

See also:
org.xml.sax.EntityResolver#resolveEntity(java.lang.String, java.lang.String)

Definition at line 359 of file DatabasesParser.java.

00361   {
00362     InputStream stream = DatabasesXmlTags.class.getResourceAsStream("/"
00363         + Constants.C_JDBC_DTD_FILE);
00364     if (stream == null)
00365       throw new SAXException("Cannot find C-JDBC DTD file '"
00366           + Constants.C_JDBC_DTD_FILE + "' in classpath");
00367 
00368     return new InputSource(stream);
00369   }

void org.objectweb.cjdbc.controller.xml.DatabasesParser.startDocument  )  throws SAXException
 

Initializes parsing of a document.

Exceptions:
SAXException unspecialized error

Definition at line 392 of file DatabasesParser.java.

00393   {
00394     logger.info(Translate.get("virtualdatabase.xml.start"));
00395   }

void org.objectweb.cjdbc.controller.xml.DatabasesParser.startElement String  uri,
String  localName,
String  name,
Attributes  atts
throws SAXException
 

Analyzes an element first line.

Parameters:
uri name space URI
localName local name
name element raw name
atts element attributes
Exceptions:
SAXException if an error occurs

Definition at line 416 of file DatabasesParser.java.

References org.objectweb.cjdbc.common.xml.XmlValidator.error().

00418   {
00419     logger.debug(Translate.get("virtualdatabase.xml.parsing.start", name));
00420 
00421     // Virtual database
00422     if (name.equals(DatabasesXmlTags.ELT_VirtualDatabase))
00423     {
00424       if (dbToPrepare == null)
00425       {
00426         // Prepare all databases
00427         newVirtualDatabase(atts);
00428       }
00429       else
00430       {
00431         // Only prepare one database
00432         String virtualName = atts.getValue(DatabasesXmlTags.ATT_name);
00433         if (virtualName.equalsIgnoreCase((String) dbToPrepare
00434             .get("virtualName")))
00435         {
00436           // This is the database that we want to prepare
00437           skipDatabase = false;
00438           newVirtualDatabase(atts);
00439         }
00440         else
00441         {
00442           // Skip to next one
00443           skipDatabase = true;
00444         }
00445       }
00446     }
00447     // Skip to next definition of a virtualDatabase ?
00448     if (skipDatabase)
00449       return;
00450 
00451     // Distribution
00452     else if (name.equals(DatabasesXmlTags.ELT_Distribution))
00453       newDistribution(atts);
00454     else if (name.equals(DatabasesXmlTags.ELT_BackendRecoveryPolicy))
00455       newBackendRecoveryPolicy(atts);
00456     else if (name.equals(DatabasesXmlTags.ELT_ControllerName))
00457       newControllerName(atts);
00458 
00459     // Monitoring
00460     else if (name.equals(DatabasesXmlTags.ELT_SQLMonitoring))
00461       newSQLMonitoring(atts);
00462     else if (name.equals(DatabasesXmlTags.ELT_SQLMonitoringRule))
00463       newSQLMonitoringRule(atts);
00464 
00465     // Backup
00466     else if (name.equals(DatabasesXmlTags.ELT_Backup))
00467       newBackupManager(atts);
00468 
00469     // Database backend
00470     else if (name.equals(DatabasesXmlTags.ELT_DatabaseBackend))
00471       newDatabaseBackend(atts);
00472     else if (name.equals(DatabasesXmlTags.ELT_RewritingRule))
00473       newRewritingRule(atts);
00474 
00475     // Authentication manager
00476     else if (name.equals(DatabasesXmlTags.ELT_AuthenticationManager))
00477       newAuthenticationManager(atts);
00478     else if (name.equals(DatabasesXmlTags.ELT_Admin))
00479       parsingAdminUsers = true;
00480     else if (name.equals(DatabasesXmlTags.ELT_User) && parsingAdminUsers)
00481       newAdminUser(atts);
00482     else if (name.equals(DatabasesXmlTags.ELT_VirtualLogin))
00483       newVirtualLogin(atts);
00484 
00485     // Request manager
00486     else if (name.equals(DatabasesXmlTags.ELT_RequestManager))
00487       newRequestManager(atts);
00488 
00489     // Macro Handler
00490     else if (name.equals(DatabasesXmlTags.ELT_MacroHandling))
00491       newMacroHandler(atts);
00492 
00493     // Request schedulers
00494     else if (name.equals(DatabasesXmlTags.ELT_SingleDBScheduler))
00495       newSingleDBScheduler(atts);
00496     else if (name.equals(DatabasesXmlTags.ELT_RAIDb0Scheduler))
00497       newRAIDb0Scheduler(atts);
00498     else if (name.equals(DatabasesXmlTags.ELT_RAIDb1Scheduler))
00499       newRAIDb1Scheduler(atts);
00500     else if (name.equals(DatabasesXmlTags.ELT_RAIDb2Scheduler))
00501       newRAIDb2Scheduler(atts);
00502 
00503     // Request caches
00504     else if (name.equals(DatabasesXmlTags.ELT_MetadataCache))
00505       newMetadataCache(atts);
00506     else if (name.equals(DatabasesXmlTags.ELT_ParsingCache))
00507       newParsingCache(atts);
00508     else if (name.equals(DatabasesXmlTags.ELT_ResultCache))
00509       newResultCache(atts);
00510     else if (name.equals(DatabasesXmlTags.ELT_DefaultResultCacheRule))
00511       newDefaultResultCacheRule(atts);
00512     else if (name.equals(DatabasesXmlTags.ELT_ResultCacheRule))
00513       newResultCacheRule(atts);
00514     else if (name.equals(DatabasesXmlTags.ELT_NoCaching))
00515       currentResultCacheRule.setCacheBehavior(ResultCacheFactory
00516           .getCacheBehaviorInstance(DatabasesXmlTags.ELT_NoCaching, null));
00517     else if (name.equals(DatabasesXmlTags.ELT_EagerCaching))
00518       newEagerCaching(atts);
00519     else if (name.equals(DatabasesXmlTags.ELT_RelaxedCaching))
00520       newRelaxedCaching(atts);
00521 
00522     // Request load balancers
00523     else if (name.equals(DatabasesXmlTags.ELT_SingleDB))
00524       newSingleDBRequestLoadBalancer(atts);
00525     else if (name.equals(DatabasesXmlTags.ELT_ParallelDB_RoundRobin))
00526       newParallelDBRoundRobinLoadBalancer(atts);
00527     else if (name
00528         .equals(DatabasesXmlTags.ELT_ParallelDB_LeastPendingRequestsFirst))
00529       newParallelDBLeastPendingRequestsFirst(atts);
00530     else if (name.equals(DatabasesXmlTags.ELT_RAIDb_0))
00531       newRAIDb0LoadBalancer(atts);
00532     else if (name.equals(DatabasesXmlTags.ELT_RAIDb_1))
00533       newRAIDb1LoadBalancer(atts);
00534     else if (name.equals(DatabasesXmlTags.ELT_RAIDb_1_RoundRobin))
00535       newRAIDb1RoundRobinLoadBalancer(atts);
00536     else if (name.equals(DatabasesXmlTags.ELT_RAIDb_1_WeightedRoundRobin))
00537       newRAIDb1WeightedRoundRobinLoadBalancer(atts);
00538     else if (name
00539         .equals(DatabasesXmlTags.ELT_RAIDb_1_LeastPendingRequestsFirst))
00540       newRAIDb1LeastPendingRequestsFirst(atts);
00541     else if (name.equals(DatabasesXmlTags.ELT_RAIDb_1ec))
00542       newRAIDb1ecLoadBalancer(atts);
00543     else if (name.equals(DatabasesXmlTags.ELT_RAIDb_1ec_RoundRobin))
00544       newRAIDb1ecRoundRobinLoadBalancer(atts);
00545     else if (name.equals(DatabasesXmlTags.ELT_RAIDb_1ec_WeightedRoundRobin))
00546       newRAIDb1ecWeightedRoundRobinLoadBalancer(atts);
00547     else if (name.equals(DatabasesXmlTags.ELT_RAIDb_2))
00548       newRAIDb2LoadBalancer(atts);
00549     else if (name.equals(DatabasesXmlTags.ELT_RAIDb_2_RoundRobin))
00550       newRAIDb2RoundRobinLoadBalancer(atts);
00551     else if (name.equals(DatabasesXmlTags.ELT_RAIDb_2_WeightedRoundRobin))
00552       newRAIDb2WeightedRoundRobinLoadBalancer(atts);
00553     else if (name
00554         .equals(DatabasesXmlTags.ELT_RAIDb_2_LeastPendingRequestsFirst))
00555       newRAIDb2LeastPendingRequestsFirst(atts);
00556     else if (name.equals(DatabasesXmlTags.ELT_RAIDb_2ec))
00557       newRAIDb2ecLoadBalancer(atts);
00558     else if (name.equals(DatabasesXmlTags.ELT_RAIDb_2ec_RoundRobin))
00559       newRAIDb2ecRoundRobinLoadBalancer(atts);
00560     else if (name.equals(DatabasesXmlTags.ELT_RAIDb_2ec_WeightedRoundRobin))
00561       newRAIDb2ecWeightedRoundRobinLoadBalancer(atts);
00562 
00563     // Policies
00564     else if (name.equals(DatabasesXmlTags.ELT_WaitForCompletion))
00565       newWaitForCompletion(atts);
00566     else if (name.equals(DatabasesXmlTags.ELT_ErrorChecking))
00567       newErrorChecking(atts);
00568     else if (name.equals(DatabasesXmlTags.ELT_CreateTable))
00569       newCreateTable(atts);
00570     else if (name.equals(DatabasesXmlTags.ELT_BackendName))
00571       newBackendName(atts);
00572     else if (name.equals(DatabasesXmlTags.ELT_BackendWeight))
00573       newBackendWeight(atts);
00574 
00575     // Recovery log
00576     else if (name.equals(DatabasesXmlTags.ELT_FileRecoveryLog))
00577       newFileRecoveryLog(atts);
00578     else if (name.equals(DatabasesXmlTags.ELT_JDBCRecoveryLog))
00579       newJDBCRecoveryLog(atts);
00580     else if (name.equals(DatabasesXmlTags.ELT_RecoveryLogTable))
00581       newJDBCRecoveryLogTable(atts);
00582     else if (name.equals(DatabasesXmlTags.ELT_CheckpointTable))
00583       newJDBCRecoveryCheckpointTable(atts);
00584     else if (name.equals(DatabasesXmlTags.ELT_BackendTable))
00585       newJDBCRecoveryBackendTable(atts);
00586 
00587     // Connection managers
00588     else if (name.equals(DatabasesXmlTags.ELT_ConnectionManager))
00589       newConnectionManager(atts);
00590     else if (name.equals(DatabasesXmlTags.ELT_SimpleConnectionManager))
00591       newSimpleConnectionManager(atts);
00592     else if (name.equals(DatabasesXmlTags.ELT_FailFastPoolConnectionManager))
00593       newFailFastPoolConnectionManager(atts);
00594     else if (name.equals(DatabasesXmlTags.ELT_RandomWaitPoolConnectionManager))
00595       newRandomWaitPoolConnectionManager(atts);
00596     else if (name.equals(DatabasesXmlTags.ELT_VariablePoolConnectionManager))
00597       newVariablePoolConnectionManager(atts);
00598 
00599     // Database schema
00600     else if (name.equals(DatabasesXmlTags.ELT_DatabaseSchema))
00601       newDatabaseSchema(atts);
00602     else if (name.equals(DatabasesXmlTags.ELT_DatabaseStaticSchema))
00603     {
00604       if (currentBackend.getDynamicPrecision() != DatabaseBackendSchemaConstants.DynamicPrecisionStatic)
00605       {
00606         String msg = Translate.get(
00607             "virtualdatabase.xml.schema.static.incompatible.dynamic",
00608             currentBackend.getName());
00609         logger.error(msg);
00610         throw new SAXException(msg);
00611       }
00612       currentDatabaseSchema = new DatabaseSchema();
00613     }
00614 
00615     // Database table (inside a DatabaseSchema)
00616     else if (name.equals(DatabasesXmlTags.ELT_DatabaseTable))
00617       newDatabaseTable(atts);
00618 
00619     // Table column (inside a DatabaseSchema/DatabaseTable)
00620     else if (name.equals(DatabasesXmlTags.ELT_DatabaseColumn))
00621       newDatabaseColumn(atts);
00622 
00623     else if (name.equals(DatabasesXmlTags.ELT_DatabaseProcedure))
00624       newDatabaseProcedure(atts);
00625     else if (name.equals(DatabasesXmlTags.ELT_DatabaseProcedureColumn))
00626       newDatabaseProcedureColumn(atts);
00627   }


Member Data Documentation

Trace org.objectweb.cjdbc.controller.xml.DatabasesParser.logger [static, package]
 

Initial value:

 Trace
                                                             .getLogger(DatabasesParser.class
                                                                 .getName())
Logger instance.

Definition at line 151 of file DatabasesParser.java.

Referenced by org.objectweb.cjdbc.controller.xml.DatabasesParser.fatalError(), and org.objectweb.cjdbc.controller.xml.DatabasesParser.readXML().


The documentation for this class was generated from the following file:
Generated on Mon Apr 11 22:04:50 2005 for C-JDBC by  doxygen 1.3.9.1