You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by si...@apache.org on 2011/11/01 16:05:21 UTC
svn commit: r1196036 -
/cocoon/cocoon3/trunk/cocoon-cli/src/main/java/org/apache/cocoon/cli/PipelineDescriptorParser.java
Author: simonetripodi
Date: Tue Nov 1 15:05:21 2011
New Revision: 1196036
URL: http://svn.apache.org/viewvc?rev=1196036&view=rev
Log:
plugged the custom error handler that throws exceptions when the input XML is not valid
Modified:
cocoon/cocoon3/trunk/cocoon-cli/src/main/java/org/apache/cocoon/cli/PipelineDescriptorParser.java
Modified: cocoon/cocoon3/trunk/cocoon-cli/src/main/java/org/apache/cocoon/cli/PipelineDescriptorParser.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-cli/src/main/java/org/apache/cocoon/cli/PipelineDescriptorParser.java?rev=1196036&r1=1196035&r2=1196036&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-cli/src/main/java/org/apache/cocoon/cli/PipelineDescriptorParser.java (original)
+++ cocoon/cocoon3/trunk/cocoon-cli/src/main/java/org/apache/cocoon/cli/PipelineDescriptorParser.java Tue Nov 1 15:05:21 2011
@@ -30,14 +30,21 @@ import java.util.Map.Entry;
import javax.xml.validation.Schema;
+import org.apache.commons.digester3.Digester;
import org.apache.commons.digester3.binder.DigesterLoader;
import org.apache.commons.digester3.substitution.MultiVariableExpander;
import org.apache.commons.digester3.substitution.VariableSubstitutor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
final class PipelineDescriptorParser
{
+ private final Logger logger = LoggerFactory.getLogger( getClass() );
+
private final DigesterLoader digesterLoader;
public PipelineDescriptorParser( boolean printHelp )
@@ -81,8 +88,31 @@ final class PipelineDescriptorParser
public PipelinesRegistry parse( File pipelineDescriptorFile )
throws IOException, SAXException
{
- PipelinesRegistry registry = digesterLoader.newDigester().parse( pipelineDescriptorFile );
- return registry;
+ Digester digester = digesterLoader.newDigester();
+ digester.setErrorHandler( new ErrorHandler()
+ {
+
+ public void warning( SAXParseException exception )
+ throws SAXException
+ {
+ logger.warn( "Pipeline XML descriptor not correct", exception );
+ }
+
+ public void fatalError( SAXParseException exception )
+ throws SAXException
+ {
+ throw exception;
+ }
+
+ public void error( SAXParseException exception )
+ throws SAXException
+ {
+ throw exception;
+ }
+
+ } );
+
+ return digester.parse( pipelineDescriptorFile );
}
}