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