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/05/18 20:50:40 UTC
svn commit: r539557 - in
/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools:
OldToolInfo.java ToolInfo.java Toolbox.java
view/tools/AbstractSearchTool.java view/tools/BrowserSnifferTool.java
Author: nbubna
Date: Fri May 18 11:50:39 2007
New Revision: 539557
URL: http://svn.apache.org/viewvc?view=rev&rev=539557
Log:
- make Toolbox, ToolInfo, OldToolInfo, and BrowserSnifferTool serializable for storage in session scope
- also make AbstractSearchTool$StoredResults static for more consistent serialization across JVMs
Modified:
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/OldToolInfo.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/ToolInfo.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/Toolbox.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/OldToolInfo.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/OldToolInfo.java?view=diff&rev=539557&r1=539556&r2=539557
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/OldToolInfo.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/OldToolInfo.java Fri May 18 11:50:39 2007
@@ -30,9 +30,9 @@
* @author Nathan Bubna
* @version $Id: OldToolInfo.java 511959 2007-02-26 19:24:39Z nbubna $
*/
-//TODO: make this class serializable
public class OldToolInfo extends ToolInfo
{
+ private static final long serialVersionUID = -4062162635847288761L;
public static final String INIT_METHOD_NAME = "init";
private Method init;
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/ToolInfo.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/ToolInfo.java?view=diff&rev=539557&r1=539556&r2=539557
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/ToolInfo.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/ToolInfo.java Fri May 18 11:50:39 2007
@@ -34,9 +34,9 @@
* @author <a href="mailto:henning@schmiedehausen.org">Henning P. Schmiedehausen</a>
* @version $Id: ToolInfo.java 511959 2007-02-26 19:24:39Z nbubna $
*/
-//TODO: make this class serializable
-public class ToolInfo
+public class ToolInfo implements java.io.Serializable
{
+ private static final long serialVersionUID = -8145087882015742757L;
public static final String CONFIGURE_METHOD_NAME = "configure";
private String key;
@@ -44,7 +44,7 @@
private boolean restrictToIsExact;
private String restrictTo;
private Map<String,Object> properties;
- private Method configure = null;
+ private transient Method configure = null;
/**
* Creates a new instance using the minimum required info
@@ -87,35 +87,6 @@
// in order to fail as earlier as possible. most people won't
// manually create ToolInfo. if they do and we can't get an
// instance, they should be capable of figuring out what happened
-
- // search for a configure(Map params) method in the class
- try
- {
- this.configure = Utils.findMethod(clazz, CONFIGURE_METHOD_NAME,
- new Class[]{ Map.class });
- }
- catch (SecurityException se)
- {
- // fail early, rather than wait until
- String msg = "Unable to gain access to '" +
- CONFIGURE_METHOD_NAME + "(Map)'" +
- " method for '" + clazz.getName() +
- "' under the current security manager."+
- " This tool cannot be properly configured for use.";
- throw new IllegalStateException(msg, se);
- }
-
- /* TODO? if we have performance issues with copyProperties,
- look at possibly finding and caching these common setters
- setContext(VelocityContext)
- setVelocityEngine(VelocityEngine)
- setLog(Log)
- setLocale(Locale)
- these four are tricky since we may not want servlet deps here
- setRequest(ServletRequest)
- setSession(HttpSession)
- setResponse(ServletResponse)
- setServletContext(ServletContext) */
}
/**
@@ -204,7 +175,7 @@
public boolean hasConfigure()
{
- return (this.configure != null);
+ return (getConfigure() != null);
}
/**
@@ -253,7 +224,7 @@
{
if (hasConfigure())
{
- invoke(this.configure, tool, combinedProps);
+ invoke(getConfigure(), tool, combinedProps);
}
//TODO: make this step optional?
@@ -268,6 +239,42 @@
/*********************** protected methods *************************/
+
+ protected Method getConfigure()
+ {
+ if (this.configure == null)
+ {
+ // search for a configure(Map params) method in the class
+ try
+ {
+ this.configure = Utils.findMethod(clazz, CONFIGURE_METHOD_NAME,
+ new Class[]{ Map.class });
+ }
+ catch (SecurityException se)
+ {
+ // fail early, rather than wait until
+ String msg = "Unable to gain access to '" +
+ CONFIGURE_METHOD_NAME + "(Map)'" +
+ " method for '" + clazz.getName() +
+ "' under the current security manager."+
+ " This tool cannot be properly configured for use.";
+ throw new IllegalStateException(msg, se);
+ }
+ }
+ return this.configure;
+ }
+
+ /* TODO? if we have performance issues with copyProperties,
+ look at possibly finding and caching these common setters
+ setContext(VelocityContext)
+ setVelocityEngine(VelocityEngine)
+ setLog(Log)
+ setLocale(Locale)
+ these four are tricky since we may not want servlet deps here
+ setRequest(ServletRequest)
+ setSession(HttpSession)
+ setResponse(ServletResponse)
+ setServletContext(ServletContext) */
protected Object newInstance()
{
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/Toolbox.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/Toolbox.java?view=diff&rev=539557&r1=539556&r2=539557
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/Toolbox.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/Toolbox.java Fri May 18 11:50:39 2007
@@ -31,9 +31,10 @@
* @author Nathan Bubna
* @version $Id: Toolbox.java 511959 2007-02-26 19:24:39Z nbubna $
*/
-//TODO: make this class serializable
-public class Toolbox
+public class Toolbox implements java.io.Serializable
{
+ private static final long serialVersionUID = 888081253188664649L;
+
private Map<String,ToolInfo> infoMap;
private Map<String,Object> properties;
private Map<String,Object> cache;
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java?view=diff&rev=539557&r1=539556&r2=539557
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java Fri May 18 11:50:39 2007
@@ -324,13 +324,12 @@
* the session is serialized.
* </p>
*/
- public class StoredResults implements java.io.Serializable
+ public static class StoredResults implements java.io.Serializable
{
-
/** serial version id */
- private static final long serialVersionUID = 4503130168585978169L;
+ private static final long serialVersionUID = 4503130168585978169L;
- private transient Object crit;
+ private transient Object crit;
private transient List list;
/**
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java?view=diff&rev=539557&r1=539556&r2=539557
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java Fri May 18 11:50:39 2007
@@ -61,8 +61,10 @@
*/
@DefaultKey("browser")
@InvalidScope("application")
-public class BrowserSnifferTool
+public class BrowserSnifferTool implements java.io.Serializable
{
+ private static final long serialVersionUID = 1734529350532353339L;
+
private String userAgent = null;
private String version = null;
private int majorVersion = -1;