[jbosscache-commits] JBoss Cache SVN: r6218 - in core/trunk/src: test/java/org/jboss/cache/config/parsing and 1 other directory.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Tue Jul 8 13:04:47 EDT 2008


Author: mircea.markus
Date: 2008-07-08 13:04:46 -0400 (Tue, 08 Jul 2008)
New Revision: 6218

Added:
   core/trunk/src/test/java/org/jboss/cache/config/parsing/XmlConfigurationSchemaTest.java
Removed:
   core/trunk/src/test/java/org/jboss/cache/config/parsing/XmlSchemaTest.java
Modified:
   core/trunk/src/main/java/org/jboss/cache/config/parsing/XmlConfigurationParser.java
Log:
parser validation might be disabled through a system property

Modified: core/trunk/src/main/java/org/jboss/cache/config/parsing/XmlConfigurationParser.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/config/parsing/XmlConfigurationParser.java	2008-07-08 16:49:09 UTC (rev 6217)
+++ core/trunk/src/main/java/org/jboss/cache/config/parsing/XmlConfigurationParser.java	2008-07-08 17:04:46 UTC (rev 6218)
@@ -46,8 +46,10 @@
  * Reads in XMLconfiguration files and spits out a {@link org.jboss.cache.config.Configuration} object.
  * By default this class uses a validating parser (configurable).
  * <p/>
+ * In order to make the parser non-validating by default, the follwing system property is expected:
+ * <b>-Djbc.config.validation=false</b>
+ * <p/>
  * Implementation note: this class is stateful and one instance should be used for parsing a single configuration file.
- * todo mmarkus - allow disabling parser validation through -Djbc.config.validation=false
  *
  * @author Mircea.Markus at jboss.com
  * @since 3.0
@@ -56,14 +58,25 @@
 {
    private static final Log log = LogFactory.getLog(XmlConfigurationParser.class);
 
+   public static final String VALIDATING_SYSTEM_PROPERTY = "jbc.config.validation";
+
    /**
     * the resulting configuration.
     */
    private Configuration config = new Configuration();
    private Element root;
    private ErrorHandler errorHandler;
-   private boolean isValidating = true;
+   private boolean isValidating;
 
+   {
+      isValidating = true;
+      String validatingStr = System.getProperty(VALIDATING_SYSTEM_PROPERTY);
+      if ("false".equalsIgnoreCase(validatingStr))
+      {
+         isValidating = false;
+      }
+   }
+
    /**
     * If validation is on (default) one can specify an error handler for handling validation errors.
     * The default error handler just logs parsing errors received.
@@ -95,6 +108,7 @@
    /**
     * Parses an XML file and returns a new configuration.
     * For looking up the file, {@link org.jboss.cache.config.parsing.FileLookup} is used.
+    *
     * @see org.jboss.cache.config.parsing.FileLookup
     */
    public Configuration parseFile(String filename)
@@ -126,6 +140,11 @@
       return processElements();
    }
 
+   public boolean isValidating()
+   {
+      return isValidating;
+   }
+
    private Configuration processElements()
    {
       configureLocking(getSingleElement("locking"));

Copied: core/trunk/src/test/java/org/jboss/cache/config/parsing/XmlConfigurationSchemaTest.java (from rev 6217, core/trunk/src/test/java/org/jboss/cache/config/parsing/XmlSchemaTest.java)
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/config/parsing/XmlConfigurationSchemaTest.java	                        (rev 0)
+++ core/trunk/src/test/java/org/jboss/cache/config/parsing/XmlConfigurationSchemaTest.java	2008-07-08 17:04:46 UTC (rev 6218)
@@ -0,0 +1,100 @@
+package org.jboss.cache.config.parsing;
+
+import org.testng.annotations.Test;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Tests that all the xml file used within tests are correct with respect to the schema definition. 
+ *                                                          
+ * @author Mircea.Markus at jboss.com
+ * @since 3.0
+ */
+ at Test (groups = "functional")
+public class XmlConfigurationSchemaTest
+{
+   public static final String BASE_DIR_FOR_CONFIG = "./configs";
+
+   private String[] testFiles =
+         {
+               "buddy-replication-cache.xml",
+               "clonable-config.xml",
+               "local-lru-eviction.xml",
+               "local-passivation.xml",
+               "local-tx.xml",
+               "mixedPolicy-eviction.xml",
+               "mux.xml",
+               "parser-test.xml",
+               "policyPerRegion-eviction.xml",
+               "replSync.xml",
+               "string-property-replaced.xml"
+         };  
+
+   /**
+    * Simple test to prove that validation works.
+    */
+   public void testSimpleFile()
+   {
+      EceptionCountingErrorHanlder handler = new EceptionCountingErrorHanlder();
+      XmlConfigurationParser parser = new XmlConfigurationParser(handler);
+      for (String file : testFiles)
+      {
+         System.out.println("file = " + file);
+         parser.parseFile(BASE_DIR_FOR_CONFIG + File.separator + file);
+         assert handler.noErrors() : "error during parsing";
+      }
+   }
+
+   /**
+    * Test that when the jbc.config.validation is set to true the parser is not validating by default.
+    */
+   public void testValidationDisbaledOnSystemProperty()
+   {
+      XmlConfigurationParser parser = new XmlConfigurationParser();
+      assert parser.isValidating() : "by default we have a validating parser";
+
+      System.setProperty(XmlConfigurationParser.VALIDATING_SYSTEM_PROPERTY, "false");
+      parser = new XmlConfigurationParser();
+      assert !parser.isValidating();
+
+      System.setProperty(XmlConfigurationParser.VALIDATING_SYSTEM_PROPERTY, "true");
+      parser = new XmlConfigurationParser();
+      assert parser.isValidating();
+   }
+
+   private static class EceptionCountingErrorHanlder implements ErrorHandler
+   {
+      List<SAXParseException> exceptionList = new ArrayList<SAXParseException>();
+
+      public void warning(SAXParseException exception) throws SAXException
+      {
+         handleDefault(exception);
+      }
+
+      public void error(SAXParseException exception) throws SAXException
+      {
+         handleDefault(exception);
+      }
+
+      public void fatalError(SAXParseException exception) throws SAXException
+      {
+         handleDefault(exception);
+      }
+
+      private void handleDefault(SAXParseException exception)
+      {
+         System.out.println("Error :"  + exception.getMessage());
+         exceptionList.add(exception);
+      }
+
+      boolean noErrors()
+      {
+         return exceptionList.isEmpty();
+      }
+   }
+}

Deleted: core/trunk/src/test/java/org/jboss/cache/config/parsing/XmlSchemaTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/config/parsing/XmlSchemaTest.java	2008-07-08 16:49:09 UTC (rev 6217)
+++ core/trunk/src/test/java/org/jboss/cache/config/parsing/XmlSchemaTest.java	2008-07-08 17:04:46 UTC (rev 6218)
@@ -1,91 +0,0 @@
-package org.jboss.cache.config.parsing;
-
-import org.testng.annotations.Test;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Tests that all the xml file used within tests are correct with respect to the schema definition. 
- *                                                          
- * @author Mircea.Markus at jboss.com
- * @since 3.0
- */
- at Test (groups = "functional")
-public class XmlSchemaTest
-{
-   public static final String BASE_DIR_FOR_CONFIG = "./configs";
-
-   private String[] testFiles =
-         {
-               "buddy-replication-cache.xml",
-               "clonable-config.xml",
-               "local-lru-eviction.xml",
-               "local-passivation.xml",
-               "local-tx.xml",
-               "mixedPolicy-eviction.xml",
-               "mux.xml",
-               "parser-test.xml",
-               "policyPerRegion-eviction.xml",
-               "replSync.xml",
-               "string-property-replaced.xml"
-         };  
-
-   /**
-    * Simple test to prove that validation works.
-    */
-   public void testSimpleFile()
-   {
-      EceptionCountingErrorHanlder handler = new EceptionCountingErrorHanlder();
-      XmlConfigurationParser parser = new XmlConfigurationParser(handler);
-      for (String file : testFiles)
-      {
-         System.out.println("file = " + file);
-         parser.parseFile(BASE_DIR_FOR_CONFIG + File.separator + file);
-         assert handler.noErrors() : "error during parsing";
-      }
-   }
-
-   /**
-    *
-    */
-   public void testValidationDisbaledOnSystemProperty()
-   {
-      
-   }
-
-   private static class EceptionCountingErrorHanlder implements ErrorHandler
-   {
-      List<SAXParseException> exceptionList = new ArrayList<SAXParseException>();
-
-      public void warning(SAXParseException exception) throws SAXException
-      {
-         handleDefault(exception);
-      }
-
-      public void error(SAXParseException exception) throws SAXException
-      {
-         handleDefault(exception);
-      }
-
-      public void fatalError(SAXParseException exception) throws SAXException
-      {
-         handleDefault(exception);
-      }
-
-      private void handleDefault(SAXParseException exception)
-      {
-         System.out.println("Error :"  + exception.getMessage());
-         exceptionList.add(exception);
-      }
-
-      boolean noErrors()
-      {
-         return exceptionList.isEmpty();
-      }
-   }
-}




More information about the jbosscache-commits mailing list