Author: nbubna
Date: Thu Jul 24 13:42:19 2008
New Revision: 679535
URL: http://svn.apache.org/viewvc?rev=679535&view=rev
Log:
make it easier to get a VV's ToolboxFactory, keep default Toolbox key in
Toolbox class, and fix Toolbox.combine()
Modified:
velocity/tools/trunk/src/main/java/org/apache/velocity/tools/Toolbox.java
velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/VelocityView.java
Modified:
velocity/tools/trunk/src/main/java/org/apache/velocity/tools/Toolbox.java
URL:
http://svn.apache.org/viewvc/velocity/tools/trunk/src/main/java/org/apache/velocity/tools/Toolbox.java?rev=679535&r1=679534&r2=679535&view=diff
==============================================================================
--- velocity/tools/trunk/src/main/java/org/apache/velocity/tools/Toolbox.java
(original)
+++ velocity/tools/trunk/src/main/java/org/apache/velocity/tools/Toolbox.java
Thu Jul 24 13:42:19 2008
@@ -42,6 +42,11 @@
*/
public class Toolbox implements java.io.Serializable
{
+ /**
+ * The key used to place instances in various scopes.
+ */
+ public static final String KEY = Toolbox.class.getName();
+
private static final long serialVersionUID = 888081253188664649L;
private Map<String,ToolInfo> infoMap;
@@ -205,20 +210,24 @@
}
/**
- * Returns a new [EMAIL PROTECTED] Toolbox} that is a combination of this
- * toolbox with one or more specified [EMAIL PROTECTED] Toolbox}es.
+ * Returns a new [EMAIL PROTECTED] Toolbox} that is a combination of
+ * this Toolbox with one or more specified [EMAIL PROTECTED] Toolbox}es.
+ * Neither this instance nor those specified are modified.
*/
public Toolbox combine(Toolbox... toolboxes)
{
Map<String,ToolInfo> info = new HashMap<String,ToolInfo>(this.infoMap);
- Map<String,Object> props = new HashMap<String,Object>(properties);
+ Map<String,Object> props = new HashMap<String,Object>(this.properties);
+ Map<String,Object> data = new HashMap<String,Object>(this.cache);
for (Toolbox toolbox : toolboxes)
{
- cache.putAll(toolbox.cache);
info.putAll(toolbox.infoMap);
props.putAll(toolbox.properties);
+ data.putAll(toolbox.cache);
}
- return new Toolbox(info, props);
+ Toolbox combination = new Toolbox(info, props);
+ combination.cacheData(data);
+ return combination;
}
}
Modified:
velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/VelocityView.java
URL:
http://svn.apache.org/viewvc/velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/VelocityView.java?rev=679535&r1=679534&r2=679535&view=diff
==============================================================================
---
velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/VelocityView.java
(original)
+++
velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/VelocityView.java
Thu Jul 24 13:42:19 2008
@@ -105,8 +105,7 @@
public static final String SERVLET_CONTEXT_KEY =
ServletContext.class.getName();
- public static final String DEFAULT_TOOLBOX_KEY =
- Toolbox.class.getName();
+ public static final String DEFAULT_TOOLBOX_KEY = Toolbox.KEY;
public static final String CREATE_SESSION_PROPERTY = "createSession";
@@ -262,7 +261,10 @@
return getVelocityEngine().getLog();
}
- protected ToolboxFactory getToolboxFactory()
+ /**
+ * Returns the underlying [EMAIL PROTECTED] ToolboxFactory} being used.
+ */
+ public ToolboxFactory getToolboxFactory()
{
return this.toolboxFactory;
}
@@ -896,12 +898,8 @@
if (toolboxFactory.hasTools(Scope.REQUEST)
&& request.getAttribute(this.toolboxKey) == null)
{
- // add request toolbox, if any
Toolbox reqTools = toolboxFactory.createToolbox(Scope.REQUEST);
- if (reqTools != null)
- {
- request.setAttribute(this.toolboxKey, reqTools);
- }
+ request.setAttribute(this.toolboxKey, reqTools);
}
}