You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@velocity.apache.org by nb...@apache.org on 2007/08/07 00:18:17 UTC

svn commit: r563305 - in /velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools: ToolManager.java config/EasyFactoryConfiguration.java view/VelocityView.java

Author: nbubna
Date: Mon Aug  6 15:18:16 2007
New Revision: 563305

URL: http://svn.apache.org/viewvc?view=rev&rev=563305
Log:
make good use of new ConfigurationUtils

Modified:
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/ToolManager.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/config/EasyFactoryConfiguration.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/VelocityView.java

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/ToolManager.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/ToolManager.java?view=diff&rev=563305&r1=563304&r2=563305
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/ToolManager.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/ToolManager.java Mon Aug  6 15:18:16 2007
@@ -19,19 +19,11 @@
  * under the License.
  */
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.InputStream;
-import java.io.IOException;
 import java.util.Map;
 import org.apache.velocity.app.VelocityEngine;
-import org.apache.velocity.exception.ResourceNotFoundException;
 import org.apache.velocity.tools.Scope;
+import org.apache.velocity.tools.config.ConfigurationUtils;
 import org.apache.velocity.tools.config.FactoryConfiguration;
-import org.apache.velocity.tools.config.FileFactoryConfiguration;
-import org.apache.velocity.tools.config.PropertiesFactoryConfiguration;
-import org.apache.velocity.tools.config.XmlFactoryConfiguration;
 
 /**
  * Manages tools for non-web applications. This simplifies the process
@@ -54,33 +46,28 @@
 
     /**
      * Constructs an instance already configured to use the 
-     * {@link FactoryConfiguration#getDefault()} configuration.
+     * {@link ConfigurationUtils#getAutoLoaded()()} configuration
+     * and any configuration specified via a "toolsConfig" system
+     * property..
      */
     public ToolManager()
     {
         this(true);
     }
 
-    public ToolManager(boolean startWithDefault)
+    public ToolManager(boolean includeDefaults)
     {
         this.factory = new ToolboxFactory();
 
-        FactoryConfiguration config = new FactoryConfiguration();
-        if (startWithDefault)
+        FactoryConfiguration config =
+            ConfigurationUtils.getAutoLoaded(includeDefaults);
+
+        // look for any specified via system property
+        FactoryConfiguration sys = ConfigurationUtils.findFromSystemProperty();
+        if (sys != null)
         {
-            config.addConfiguration(FactoryConfiguration.getDefault());
+            config.addConfiguration(sys);
         }
-
-        // look for a tools.xml in the current dir or classpath root
-        FileFactoryConfiguration xml = new XmlFactoryConfiguration();
-        xml.read(DEFAULT_XML_CONFIG_PATH, false);
-        config.addConfiguration(xml);
-
-        // look for a tools.properties in the current dir or classpath root
-        FileFactoryConfiguration props = new PropertiesFactoryConfiguration();
-        props.read(DEFAULT_PROPS_CONFIG_PATH, false);
-        config.addConfiguration(props);
-
         configure(config);
     }
 
@@ -93,7 +80,15 @@
 
     public void configure(String path)
     {
-        configure(getConfiguration(path));
+        FactoryConfiguration config = ConfigurationUtils.find(path);
+        if (config != null)
+        {
+            configure(config);
+        }
+        else
+        {
+            throw new RuntimeException("Could not find any configuration at "+path);
+        }
     }
 
     public void setVelocityEngine(VelocityEngine engine)
@@ -175,85 +170,4 @@
         return this.application;
     }
 
-    protected FactoryConfiguration getConfiguration(String path)
-    {
-        FileFactoryConfiguration config = null;
-        if (path.endsWith(".xml"))
-        {
-            config = new XmlFactoryConfiguration();
-        }
-        else if (path.endsWith(".properties"))
-        {
-            config = new PropertiesFactoryConfiguration();
-        }
-        else
-        {
-            String msg = "Unknown configuration file type: " + path +
-                         "\nOnly .xml and .properties configuration files are supported at this time.";
-            throw new UnsupportedOperationException(msg);
-        }
-
-        // now, try to read the file
-        InputStream inputStream = getInputStream(path);
-        try
-        {
-            config.read(inputStream);
-        }
-        catch (IOException ioe)
-        {
-            throw new RuntimeException("Failed to load configuration at: "+path, ioe);
-        }
-        finally
-        {
-            try
-            {
-                if (inputStream != null)
-                {
-                    inputStream.close();
-                }
-            }
-            catch (IOException ioe)
-            {
-                throw new RuntimeException("Failed to close input stream for: "+path, ioe);
-            }
-        }
-        return config;
-    }
-
-    protected InputStream getInputStream(String path)
-    {
-        // first, search the classpath
-        InputStream inputStream = getClass().getResourceAsStream(path);
-        if (inputStream == null)
-        {
-            // then, try the file system directly
-            inputStream = getFileInputStream(path);
-        }
-
-        // if we still haven't found one
-        if (inputStream == null)
-        {
-            throw new ResourceNotFoundException("Could not find file at: "+path);
-        }
-        return inputStream;
-    }
-
-    protected InputStream getFileInputStream(String path)
-    {
-        File file = new File(path);
-        if (file.exists())
-        {
-            try
-            {
-                return new FileInputStream(file);
-            }
-            catch (FileNotFoundException fnfe)
-            {
-                // we should not be able to get here
-                // since we already checked whether the file exists
-                throw new IllegalStateException(fnfe);
-            }
-        }
-        return null;
-    }
 }

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/config/EasyFactoryConfiguration.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/config/EasyFactoryConfiguration.java?view=diff&rev=563305&r1=563304&r2=563305
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/config/EasyFactoryConfiguration.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/config/EasyFactoryConfiguration.java Mon Aug  6 15:18:16 2007
@@ -84,7 +84,7 @@
  */
 public class EasyFactoryConfiguration extends FactoryConfiguration
 {
-    private boolean addedDefault = false;
+    private boolean addedDefaults = false;
     private EasyWrap<ToolboxConfiguration> toolbox;
 
     public EasyFactoryConfiguration()
@@ -96,28 +96,40 @@
      * @param startWithDefault Sets whether this instance should start with the
      *        {@link FactoryConfiguration#getDefault()} configuration or not.
      */
-    public EasyFactoryConfiguration(boolean startWithDefault)
+    public EasyFactoryConfiguration(boolean includeDefaults)
     {
-        if (startWithDefault)
+        if (includeDefaults)
         {
-            addDefault();
+            addDefaultTools();
         }
     }
 
     /**
-     * Adds the {@link FactoryConfiguration#getDefault()} configuration to this
+     * Adds the {@link ConfigurationUtils#getDefaultTools()} configuration to this
      * the current configuration.
      */
-    public EasyFactoryConfiguration addDefault()
+    public EasyFactoryConfiguration addDefaultTools()
     {
-        if (!addedDefault)
+        if (!addedDefaults)
         {
-            addConfiguration(getDefault());
-            addedDefault = true;
+            addConfiguration(ConfigurationUtils.getDefaultTools());
+            addedDefaults = true;
         }
         return this;
     }
 
+    public EasyFactoryConfiguration autoLoad()
+    {
+        return autoLoad(true);
+    }
+
+    public EasyFactoryConfiguration autoLoad(boolean includeDefaults)
+    {
+        addConfiguration(ConfigurationUtils.getAutoLoaded(includeDefaults));
+        addedDefaults = true;
+        return this;
+    }
+
     public EasyData data(String key, Object value)
     {
         Data datum = new Data();
@@ -290,9 +302,9 @@
             throw new IllegalStateException("Wrapping unknown "+Configuration.class.getName()+": "+getConfiguration());
         }
 
-        public EasyWrap addDefault()
+        public EasyWrap addDefaultTools()
         {
-            EasyFactoryConfiguration.this.addDefault();
+            EasyFactoryConfiguration.this.addDefaultTools();
             return this;
         }
 

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/VelocityView.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/VelocityView.java?view=diff&rev=563305&r1=563304&r2=563305
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/VelocityView.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/VelocityView.java Mon Aug  6 15:18:16 2007
@@ -41,10 +41,12 @@
 import org.apache.velocity.runtime.RuntimeConstants;
 import org.apache.velocity.runtime.log.Log;
 import org.apache.velocity.tools.generic.log.LogChuteCommonsLog;
+import org.apache.velocity.tools.ClassUtils;
 import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.Toolbox;
 import org.apache.velocity.tools.ToolboxFactory;
 import org.apache.velocity.tools.config.ConfigurationCleaner;
+import org.apache.velocity.tools.config.ConfigurationUtils;
 import org.apache.velocity.tools.config.FactoryConfiguration;
 import org.apache.velocity.tools.config.FileFactoryConfiguration;
 import org.apache.velocity.tools.config.PropertiesFactoryConfiguration;
@@ -455,13 +457,13 @@
             "true".equalsIgnoreCase(loadDefaults))
         {
             // add all available default tools
-            getLog().trace("Loading default tool configurations...");
-            factoryConfig.addConfiguration(FactoryConfiguration.getDefault());
+            getLog().trace("Loading default tools configuration...");
+            factoryConfig.addConfiguration(ConfigurationUtils.getDefaultTools());
         }
         else
         {
             // let the user know that the defaults were suppressed
-            getLog().debug("Default tool configuration has been suppressed"
+            getLog().debug("Default tools configuration has been suppressed"
                            + (hasOldToolbox ?
                               " to avoid conflicts with older application's context and toolbox definition."
                               : "."));
@@ -551,7 +553,7 @@
     protected InputStream getInputStream(String path, boolean required)
     {
         // first, search the classpath
-        InputStream inputStream = getClass().getResourceAsStream(path);
+        InputStream inputStream = ClassUtils.getResourceAsStream(path);
         if (inputStream == null)
         {
             // then, try the servlet context