[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