proyal 2002/07/16 10:54:13 Modified: src/java/org/apache/avalon/phoenix/components/configuration/validator JarvConfigurationValidator.java Log: Added config option to specify a path to serialize configurations out to for debugging. Revision Changes Path 1.3 +37 -0 jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/configuration/validator/JarvConfigurationValidator.java Index: JarvConfigurationValidator.java =================================================================== RCS file: /home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/configuration/validator/JarvConfigurationValidator.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- JarvConfigurationValidator.java 15 Jul 2002 16:17:46 -0000 1.2 +++ JarvConfigurationValidator.java 16 Jul 2002 17:54:13 -0000 1.3 @@ -7,6 +7,7 @@ */ package org.apache.avalon.phoenix.components.configuration.validator; +import java.io.File; import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -17,6 +18,7 @@ import org.apache.avalon.excalibur.i18n.ResourceManager; import org.apache.avalon.excalibur.i18n.Resources; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.avalon.framework.activity.Initializable; import org.apache.avalon.framework.configuration.Configurable; import org.apache.avalon.framework.configuration.Configuration; @@ -47,6 +49,7 @@ private String m_schemaType; private String m_schemaLanguage; private String m_verifierFactoryClass; + private String m_debugPath; private final DefaultConfigurationSerializer m_serializer = new DefaultConfigurationSerializer(); @@ -68,6 +71,7 @@ public void configure( Configuration configuration ) throws ConfigurationException { + this.m_debugPath = configuration.getChild( "debug-output-path" ).getValue( null ); this.m_schemaType = configuration.getAttribute( "schema-type" ); this.m_schemaLanguage = configuration.getChild( "schema-language" ).getValue( null ); this.m_verifierFactoryClass = @@ -92,6 +96,13 @@ this.m_verifierFactory = ( VerifierFactory ) Class.forName( this.m_verifierFactoryClass ).newInstance(); } + + if( null != this.m_debugPath ) + { + FileUtil.forceMkdir( new File( m_debugPath ) ); + } + + this.m_serializer.setIndent( true ); } private String createKey( String application, String block ) @@ -163,6 +174,11 @@ throw new ConfigurationException( msg ); } + if( null != this.m_debugPath ) + { + writeDebugConfiguration( application, block, configuration ); + } + try { final Verifier verifier = schema.newVerifier(); @@ -221,6 +237,27 @@ final String msg = REZ.getString( "jarv.valid.badparse", application, block ); throw new ConfigurationException( msg, e ); + } + } + + private void writeDebugConfiguration( final String application, + final String block, + final Configuration configuration ) + { + try + { + final File temp = File.createTempFile( application + "-" + block + "-", + ".xml", + new File( this.m_debugPath ) ); + + this.m_serializer.serializeToFile( temp, configuration ); + + if( getLogger().isDebugEnabled() ) + getLogger().debug( "Configuration written at: " + temp ); + } + catch( Exception e ) + { + getLogger().error( "Unable to write debug output", e ); } }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>