Author: cbrisson Date: Sun May 13 03:49:41 2007 New Revision: 537574 URL: http://svn.apache.org/viewvc?view=rev&rev=537574 Log: deprecate LogSystem usage and add LogChute support
Added: velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/AntLogChute.java Modified: velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/AntLogSystem.java velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/DVSL.java velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/DVSLTask.java Added: velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/AntLogChute.java URL: http://svn.apache.org/viewvc/velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/AntLogChute.java?view=auto&rev=537574 ============================================================================== --- velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/AntLogChute.java (added) +++ velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/AntLogChute.java Sun May 13 03:49:41 2007 @@ -0,0 +1,199 @@ +/* + * The Apache Software License, Version 1.1 + * + * Copyright (c) 2002 The Apache Software Foundation. All rights + * reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The end-user documentation included with the redistribution, if + * any, must include the following acknowlegement: + * "This product includes software developed by the + * Apache Software Foundation (http://www.apache.org/)." + * Alternately, this acknowlegement may appear in the software itself, + * if and wherever such third-party acknowlegements normally appear. + * + * 4. The names "The Jakarta Project", "Velocity","DVSL", and "Apache Software + * Foundation" must not be used to endorse or promote products derived + * from this software without prior written permission. For written + * permission, please contact [EMAIL PROTECTED] + * + * 5. Products derived from this software may not be called "Apache" + * nor may "Apache" appear in their names without prior written + * permission of the Apache Group. + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * <http://www.apache.org/>. + */ + +package org.apache.tools.dvsl; + +import org.apache.tools.ant.Project; +import org.apache.tools.ant.Task; + +import org.apache.velocity.runtime.RuntimeServices; + +import org.apache.velocity.runtime.log.LogChute; + +/** + * Implementation of a logger to output messages via an Ant Task's log + * method. Velocity log levels are mapped to corresponding log levels + * defined in Ant's logging API. The end result is messages will only + * be output if Ant log level is high enough. + * + * @author <a href="mailto:[EMAIL PROTECTED]">Bill Burton</a> + * @version $Id:$ + */ +public class AntLogChute implements LogChute +{ + + // Reference to the Ant Task object that initialized the Velocity Engine. + Task task; + + /** + * Initialize this logger with a reference to the calling Ant Task + * + * @param task Ant Task to use for logging. This must not be null. + */ + public AntLogChute(Task task) + { + this.task = task; + } + + /** + * Initialize the logger. + * + * @throws Exception if null was passed into the constructor + */ + public void init( RuntimeServices rs ) throws Exception + { + if ( task == null ) + { + throw new Exception( "PANIC: " + this.getClass().getName() + + " was instantiated with a null Ant Task reference"); + } + } + + /** + * <p> + * Log Velocity messages through the Ant Task log method. The mapping of logging + * levels from Velocity to Ant is as follows: + * </p> + * + * <blockquote><pre> + * Velocity Level --> Ant Level + * LogSystem.TRACE_ID --> Project.MSG_DEBUG + * LogSystem.DEBUG_ID --> Project.MSG_DEBUG + * LogSystem.INFO_ID --> Project.MSG_VERBOSE + * LogSystem.WARN_ID --> Project.MSG_WARN + * LogSystem.ERROR_ID --> Project.MSG_ERR + * </pre></blockquote> + * + * @param level severity level + * @param message complete error message + * @see org.apache.velocity.runtime.log.LogChute + * @see org.apache.tools.ant.Task#log(String, int) + */ + public void log(int level, String message) { + switch ( level ) + { + case LogChute.TRACE_ID: + task.log( LogChute.TRACE_PREFIX + message, Project.MSG_DEBUG); + break; + case LogChute.DEBUG_ID: + task.log( LogChute.DEBUG_PREFIX + message, Project.MSG_DEBUG ); + break; + case LogChute.INFO_ID: + task.log( LogChute.INFO_PREFIX + message, Project.MSG_VERBOSE ); + break; + case LogChute.WARN_ID: + task.log( LogChute.WARN_PREFIX + message, Project.MSG_WARN ); + break; + case LogChute.ERROR_ID: + task.log( LogChute.ERROR_PREFIX + message, Project.MSG_ERR ); + break; + default: + task.log( message ); + break; + } + } + + /** + * <p> + * Log throwables through the Ant Task log method. The mapping of logging + * levels from Velocity to Ant is as follows: + * </p> + * + * <blockquote><pre> + * Velocity Level --> Ant Level + * LogSystem.TRACE_ID --> Project.MSG_DEBUG + * LogSystem.DEBUG_ID --> Project.MSG_DEBUG + * LogSystem.INFO_ID --> Project.MSG_VERBOSE + * LogSystem.WARN_ID --> Project.MSG_WARN + * LogSystem.ERROR_ID --> Project.MSG_ERR + * </pre></blockquote> + * + * @param level severity level + * @param message complete error message + * @param throwable the throwable object to log + * @see org.apache.velocity.runtime.log.LogChute + * @see org.apache.tools.ant.Task#log(String, int) + */ + public void log(int level, String message, Throwable throwable) { + switch ( level ) + { + case LogChute.TRACE_ID: + task.log( LogChute.TRACE_PREFIX + message, throwable, Project.MSG_DEBUG); + break; + case LogChute.DEBUG_ID: + task.log( LogChute.DEBUG_PREFIX + message, throwable, Project.MSG_DEBUG ); + break; + case LogChute.INFO_ID: + task.log( LogChute.INFO_PREFIX + message, throwable, Project.MSG_VERBOSE ); + break; + case LogChute.WARN_ID: + task.log( LogChute.WARN_PREFIX + message, throwable, Project.MSG_WARN ); + break; + case LogChute.ERROR_ID: + task.log( LogChute.ERROR_PREFIX + message, throwable, Project.MSG_ERR ); + break; + default: + task.log( message ); + break; + } + } + + public boolean isLevelEnabled(int level) { + return true; + } + + public void logVelocityMessage( int level, String message ) + { + } +} Modified: velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/AntLogSystem.java URL: http://svn.apache.org/viewvc/velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/AntLogSystem.java?view=diff&rev=537574&r1=537573&r2=537574 ============================================================================== --- velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/AntLogSystem.java (original) +++ velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/AntLogSystem.java Sun May 13 03:49:41 2007 @@ -54,12 +54,8 @@ package org.apache.tools.dvsl; -import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; -import org.apache.velocity.runtime.RuntimeServices; -import org.apache.velocity.runtime.RuntimeConstants; - import org.apache.velocity.runtime.log.LogSystem; /** @@ -69,36 +65,13 @@ * be output if Ant log level is high enough. * * @author <a href="mailto:[EMAIL PROTECTED]">Bill Burton</a> - * @version $Id: AntLogSystem.java,v 1.1 2002/02/22 06:07:01 geirm Exp $ + * @version $Id$ + * @deprecated Use AntLogChute instead. */ -public class AntLogSystem implements LogSystem +public class AntLogSystem extends AntLogChute implements LogSystem { - - // Reference to the Ant Task object that initialized the Velocity Engine. - Task task; - - /** - * Initialize this logger with a reference to the calling Ant Task - * - * @param task Ant Task to use for logging. This must not be null. - */ - public AntLogSystem(Task task) - { - this.task = task; - } - - /** - * Initialize the logger. - * - * @throws Exception if null was passed into the constructor - */ - public void init( RuntimeServices rs ) throws Exception - { - if ( task == null ) - { - throw new Exception( "PANIC: " + this.getClass().getName() + - " was instantiated with a null Ant Task reference"); - } + public AntLogSystem(Task task) { + super(task); } /** @@ -119,26 +92,10 @@ * @param message complete error message * @see org.apache.velocity.runtime.log.LogSystem * @see org.apache.tools.ant.Task#log(String, int) + * @deprecated use AntLogChute */ public void logVelocityMessage( int level, String message ) { - switch ( level ) - { - case LogSystem.WARN_ID: - task.log( RuntimeConstants.WARN_PREFIX + message, Project.MSG_WARN ); - break; - case LogSystem.INFO_ID: - task.log( RuntimeConstants.INFO_PREFIX + message, Project.MSG_VERBOSE ); - break; - case LogSystem.DEBUG_ID: - task.log( RuntimeConstants.DEBUG_PREFIX + message, Project.MSG_DEBUG ); - break; - case LogSystem.ERROR_ID: - task.log( RuntimeConstants.ERROR_PREFIX + message, Project.MSG_ERR ); - break; - default: - task.log( message ); - break; - } + log(level,message); } } Modified: velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/DVSL.java URL: http://svn.apache.org/viewvc/velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/DVSL.java?view=diff&rev=537574&r1=537573&r2=537574 ============================================================================== --- velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/DVSL.java (original) +++ velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/DVSL.java Sun May 13 03:49:41 2007 @@ -73,6 +73,8 @@ import org.apache.velocity.VelocityContext; import org.apache.velocity.app.VelocityEngine; import org.apache.velocity.context.Context; +import org.apache.velocity.runtime.log.LogChute; +import org.apache.velocity.runtime.log.LogChuteSystem; import org.apache.velocity.runtime.log.LogSystem; import org.dom4j.Document; @@ -104,7 +106,7 @@ private Map velConfig = null; private File logFile; - private LogSystem logger; + private LogChute logger; private Map appVals = new HashMap(); @@ -138,9 +140,27 @@ * <p> * lets the user specify a class instance for logging. * </p> + * @deprecated use setLogChute instead */ public void setLogSystem(LogSystem logger) { + this.logger = new LogAdapter(logger); + + if (velConfig == null) + { + velConfig = new HashMap(); + } + + velConfig.put(VelocityEngine.RUNTIME_LOG_LOGSYSTEM, logger); + } + + /** + * <p> + * lets the user specify a class instance for logging. + * </p> + */ + public void setLogChute(LogChute logger) + { this.logger = logger; if (velConfig == null) @@ -151,6 +171,7 @@ velConfig.put(VelocityEngine.RUNTIME_LOG_LOGSYSTEM, logger); } + /** * <p> * lets the user pass a java.util.Properties containing @@ -192,9 +213,9 @@ * @param validate */ - public void setValidatingParser(boolean vp) + public void setValidatingParser(boolean validate) { - validate = vp; + this.validate = validate; } /** @@ -691,6 +712,15 @@ out.flush(); + } + + /* + * inner class to wrap a LogSystem into a LogChute + */ + protected static class LogAdapter extends LogChuteSystem { + protected LogAdapter(LogSystem logSystem) { + super(logSystem); + } } } Modified: velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/DVSLTask.java URL: http://svn.apache.org/viewvc/velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/DVSLTask.java?view=diff&rev=537574&r1=537573&r2=537574 ============================================================================== --- velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/DVSLTask.java (original) +++ velocity/dvsl/trunk/src/java/org/apache/tools/dvsl/DVSLTask.java Sun May 13 03:49:41 2007 @@ -73,9 +73,6 @@ import org.apache.tools.ant.taskdefs.MatchingTask; import org.apache.tools.ant.types.Path; import org.apache.tools.ant.types.Reference; -import org.apache.tools.ant.util.FileUtils; -import org.apache.velocity.VelocityContext; -import org.apache.velocity.runtime.RuntimeConstants; /** @@ -274,7 +271,7 @@ } else { - dvsl.setLogSystem(new AntLogSystem(this)); + dvsl.setLogChute(new AntLogChute(this)); } /*