Sounds great to me -- much less scary than seeing a stacktrace when you
start your app. :)
Eddie O'Neil wrote:
>All--
>
> I've got one last change to make to the error reporting done when
>validating the NetUI config file. Today on Tomcat 5.0, Java 5
>validation doesn't work in the default Tomcat install. The result is
>a big, scary-looking stack trace dumped to the console.
>
> Often, this stack trace isn't fatal and just indicates a need to
>correclty enable Java 5 XSD validation; a NetUI warning message is
>displayed for that.
>
> The change makes the stack trace a *debug* message and passes the
>resource paths for both the XML and XSD files. This improves the
>error reporting when validation is mis configured.
>
> It's a very low risk change; the diff is pasted below.
>
> I'll check this in tonight and then branch unless anyone has any concerns.
>
>Eddie
>
>
>
><snip>
>Index:
>src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultURLTemplatesFactory.java
>===================================================================
>---
>src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultURLTemplatesFactory.java
> (revision 2902
>99)
>+++
>src/pageflow/org/apache/beehive/netui/pageflow/internal/DefaultURLTemplatesFactory.java
> (working copy)
>
>@@ -142,7 +142,8 @@
> // Validate the XML against the schema
> xsdInputStream = SCHEMA_RESOLVER.getInputStream();
> SchemaValidator schemaValidator =
>SchemaValidatorFactory.getInstance();
>- schemaValidator.validate(xsdInputStream, xmlInputStream);
>+
>schemaValidator.validate(SCHEMA_RESOLVER.getResourcePath(),
>xsdInputStream,
>+ _configFilePath, xmlInputStream);
> try
> {
> if ( xmlInputStream != null )
>Index:
>src/util/org/apache/beehive/netui/util/xml/validation/SchemaValidator.java
>===================================================================
>--- src/util/org/apache/beehive/netui/util/xml/validation/SchemaValidator.java
> (revision 290299)
>+++ src/util/org/apache/beehive/netui/util/xml/validation/SchemaValidator.java
> (working copy)
>@@ -26,5 +26,6 @@
>
> /**
> */
>- public abstract void validate(InputStream xsdInputStream,
>InputStream xmlInputStrea);
>+ public abstract void validate(String xsdResourcePath, InputStream
>xsdInputStream,
>+ String xmlResourcePath, InputStream
>xmlInputStrea);
> }
>Index:
>src/util/org/apache/beehive/netui/util/xml/validation/internal/SchemaValidatorJava5.java
>===================================================================
>---
>src/util/org/apache/beehive/netui/util/xml/validation/internal/SchemaValidatorJava5.java
> (revision 2902
>99)
>+++
>src/util/org/apache/beehive/netui/util/xml/validation/internal/SchemaValidatorJava5.java
> (working copy)
>
>@@ -45,8 +45,8 @@
>
> private static final Logger LOGGER =
>Logger.getInstance(SchemaValidatorJava5.class);
>
>- public void validate(InputStream xsdInputStream, InputStream
>xmlInputStream) {
>-
>+ public void validate(String xsdResourcePath, InputStream xsdInputStream,
>+ String xmlResourcePath, InputStream xmlInputStream) {
> try {
> SchemaFactory factory =
>SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
> StreamSource xsdStreamSource = new StreamSource(xsdInputStream);
>@@ -68,9 +68,16 @@
> throw new SchemaValidationException("Exception occurred
>validating document. Cause: " + e, e);
> }
> catch(TransformerFactoryConfigurationError error) {
>+ String message =
>+ "Beehive NetUI disabled validation on the XML file
>\"" + xmlResourcePath + "\" because the XM
>L TransformFactory was " +
>+ "configured incorrectly. We suggest configuring the
>application runtime to enable Java 5 XML
> Schema validation as additional " +
>+ "application configuration errors may occur later. A
>stack trace is available in the NetUI d
>ebug log. Cause: " + error;
>+
> if(LOGGER.isWarnEnabled())
>- LOGGER.warn("Beehive NetUI disabled validation on the
>given file because the XML TransformFac
>tory was configured incorrectly. " +
>- "We suggest fixing this error as errors may occur
>as a result of having an invalid XML in
>stance document. Cause: " + error, error);
>+ LOGGER.warn(message);
>+
>+ if(LOGGER.isDebugEnabled())
>+ LOGGER.debug("XML TransformFactory stack trace:" , error);
> }
> }
> }
>Index:
>src/util/org/apache/beehive/netui/util/config/parser/NetUIConfigParser.java
>===================================================================
>--- src/util/org/apache/beehive/netui/util/config/parser/NetUIConfigParser.java
>(revision 290299)
>+++ src/util/org/apache/beehive/netui/util/config/parser/NetUIConfigParser.java
>(working copy)
>@@ -126,7 +126,8 @@
> xsdInputStream = SCHEMA_RESOLVER.getInputStream();
> try {
> SchemaValidator schemaValidator =
>SchemaValidatorFactory.getInstance();
>- schemaValidator.validate(xsdInputStream, xmlInputStream);
>+
>schemaValidator.validate(SCHEMA_RESOLVER.getResourcePath(),
>xsdInputStream,
>+ theXmlResolver.getResourcePath(), xmlInputStream);
> }
> catch(SchemaValidationException e) {
> throw new ConfigInitializationException("Validation
>errors occurred parsing the config file \
>"" +
></snip>
>
>
>