You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@velocity.apache.org by cb...@apache.org on 2007/05/13 12:49:42 UTC

svn commit: r537574 - in /velocity/dvsl/trunk/src/java/org/apache/tools/dvsl: AntLogChute.java AntLogSystem.java DVSL.java DVSLTask.java

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 apache@apache.org.
+ *
+ * 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:billb@progress.com">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      --&gt;  Ant Level
+     * LogSystem.TRACE_ID  --&gt;  Project.MSG_DEBUG
+     * LogSystem.DEBUG_ID  --&gt;  Project.MSG_DEBUG
+     * LogSystem.INFO_ID   --&gt;  Project.MSG_VERBOSE
+     * LogSystem.WARN_ID   --&gt;  Project.MSG_WARN
+     * LogSystem.ERROR_ID  --&gt;  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      --&gt;  Ant Level
+     * LogSystem.TRACE_ID  --&gt;  Project.MSG_DEBUG
+     * LogSystem.DEBUG_ID  --&gt;  Project.MSG_DEBUG
+     * LogSystem.INFO_ID   --&gt;  Project.MSG_VERBOSE
+     * LogSystem.WARN_ID   --&gt;  Project.MSG_WARN
+     * LogSystem.ERROR_ID  --&gt;  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:billb@progress.com">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));
         }
 
         /*