You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by nb...@apache.org on 2006/11/10 20:09:58 UTC

svn commit: r473430 - in /jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/servlet: VelocityViewServlet.java velocity.properties

Author: nbubna
Date: Fri Nov 10 11:09:57 2006
New Revision: 473430

URL: http://svn.apache.org/viewvc?view=rev&rev=473430
Log:
apply changes in Henning's patch for VELOCITY-68
 - add and use default velocity.properties for VVS to make it easier to override
 - fix misc nits

Added:
    jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/servlet/velocity.properties   (with props)
Modified:
    jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/servlet/VelocityViewServlet.java

Modified: jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/servlet/VelocityViewServlet.java
URL: http://svn.apache.org/viewvc/jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/servlet/VelocityViewServlet.java?view=diff&rev=473430&r1=473429&r2=473430
==============================================================================
--- jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/servlet/VelocityViewServlet.java (original)
+++ jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/servlet/VelocityViewServlet.java Fri Nov 10 11:09:57 2006
@@ -17,13 +17,14 @@
 package org.apache.velocity.tools.view.servlet;
 
 
+import java.io.InputStream;
 import java.io.IOException;
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.io.UnsupportedEncodingException;
 import java.io.Writer;
-
+import java.util.Properties;
 import javax.servlet.ServletConfig;
 import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
@@ -32,22 +33,18 @@
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.collections.ExtendedProperties;
-
 import org.apache.velocity.Template;
 import org.apache.velocity.app.VelocityEngine;
 import org.apache.velocity.context.Context;
-import org.apache.velocity.exception.ResourceNotFoundException;
-import org.apache.velocity.exception.ParseErrorException;
 import org.apache.velocity.exception.MethodInvocationException;
+import org.apache.velocity.exception.ParseErrorException;
+import org.apache.velocity.exception.ResourceNotFoundException;
 import org.apache.velocity.io.VelocityWriter;
 import org.apache.velocity.runtime.RuntimeConstants;
-import org.apache.velocity.util.SimplePool;
-
 import org.apache.velocity.tools.generic.log.LogSystemCommonsLog;
 import org.apache.velocity.tools.view.ToolboxManager;
 import org.apache.velocity.tools.view.context.ChainedContext;
-import org.apache.velocity.tools.view.servlet.ServletToolboxManager;
-import org.apache.velocity.tools.view.servlet.WebappLoader;
+import org.apache.velocity.util.SimplePool;
 
 
 /**
@@ -104,6 +101,9 @@
 public class VelocityViewServlet extends HttpServlet
 {
 
+    /** serial version id */
+    private static final long serialVersionUID = -3329444102562079189L;
+
     /** The HTTP content type context key. */
     public static final String CONTENT_TYPE = "default.contentType";
 
@@ -120,6 +120,12 @@
     public static final String SERVLET_CONTEXT_KEY = 
         ServletContext.class.getName();
 
+    /**
+     * Default Runtime properties.
+     */
+    public static final String DEFAULT_TOOLS_PROPERTIES =
+        "/org/apache/velocity/tools/view/servlet/velocity.properties";
+
 
     /**
      * Key used to access the toolbox configuration file path from the
@@ -319,16 +325,21 @@
 
         velocity.setApplicationAttribute(SERVLET_CONTEXT_KEY, getServletContext());
 
-        // default to servletlogger, which logs to the servlet engines log
-        velocity.setProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS, 
-                             ServletLogger.class.getName());
-
-        // by default, load resources with webapp resource loader
-        velocity.setProperty(RuntimeConstants.RESOURCE_LOADER, "webapp");
-        velocity.setProperty("webapp.resource.loader.class", 
-                             WebappLoader.class.getName());
+        // Try reading the VelocityTools default configuration
+        try
+        {
+            ExtendedProperties defaultProperties = loadDefaultProperties();
+            velocity.setExtendedProperties(defaultProperties);
+        }
+        catch(Exception e)
+        {
+            log("VelocityViewServlet: Unable to read Velocity Servlet configuration file: ", e);
 
-        // Try reading an overriding Velocity configuration
+            // This is a fatal error...
+            throw new ServletException(e);
+        }   
+ 
+        // Try reading an overriding user Velocity configuration
         try
         {
             ExtendedProperties p = loadConfiguration(config);
@@ -336,8 +347,8 @@
         }
         catch(Exception e)
         {
-            getServletContext().log("VelocityViewServlet: Unable to read Velocity configuration file: "+e);
-            getServletContext().log("VelocityViewServlet: Using default Velocity configuration.");
+            log("VelocityViewServlet: Unable to read Velocity configuration file: ", e);
+            log("VelocityViewServlet: Using default Velocity configuration.");
         }   
 
         // now all is ready - init Velocity
@@ -347,9 +358,44 @@
         }
         catch(Exception e)
         {
-            getServletContext().log("VelocityViewServlet: PANIC! unable to init() - "+e);
+            log("VelocityViewServlet: PANIC! unable to init()", e);
             throw new ServletException(e);
         }
+    }
+
+    private ExtendedProperties loadDefaultProperties()
+    {
+        InputStream inputStream = null;
+        ExtendedProperties defaultProperties = new ExtendedProperties();
+
+        try
+        {
+            inputStream = getClass()
+                    .getResourceAsStream(DEFAULT_TOOLS_PROPERTIES);
+            if (inputStream != null)
+            {
+                defaultProperties.load(inputStream);
+            }
+        }
+        catch (IOException ioe)
+        {
+            log("Cannot load default extendedProperties!", ioe);
+        }
+        finally
+        {
+            try
+            {
+                if (inputStream != null)
+                {
+                    inputStream.close();
+                }
+            }
+            catch (IOException ioe)
+            {
+                log("Cannot close default extendedProperties!", ioe);
+            }
+        }
+        return defaultProperties;
     }
 
      

Added: jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/servlet/velocity.properties
URL: http://svn.apache.org/viewvc/jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/servlet/velocity.properties?view=auto&rev=473430
==============================================================================
--- jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/servlet/velocity.properties (added)
+++ jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/servlet/velocity.properties Fri Nov 10 11:09:57 2006
@@ -0,0 +1,6 @@
+# default to servletlogger, which logs to the servlet engines log
+runtime.log.logsystem.class = org.apache.velocity.tools.view.servlet.ServletLogger
+
+# by default, load resources with webapp resource loader
+resource.loader = webapp
+webapp.resource.loader.class = org.apache.velocity.tools.view.servlet.WebappLoader

Propchange: jakarta/velocity/tools/trunk/src/java/org/apache/velocity/tools/view/servlet/velocity.properties
------------------------------------------------------------------------------
    svn:eol-style = native



---------------------------------------------------------------------
To unsubscribe, e-mail: velocity-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: velocity-dev-help@jakarta.apache.org