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/07/20 19:33:54 UTC

svn commit: r558066 - in /velocity/tools/branches/2.x/src: main/java/org/apache/velocity/tools/ main/java/org/apache/velocity/tools/config/ main/java/org/apache/velocity/tools/struts/ main/java/org/apache/velocity/tools/view/ test/java/org/apache/veloc...

Author: nbubna
Date: Fri Jul 20 10:33:46 2007
New Revision: 558066

URL: http://svn.apache.org/viewvc?view=rev&rev=558066
Log:
add Scope constants/registry to provide compile-time typo checking and runtime validation of toolbox scopes

Added:
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/Scope.java   (with props)
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/ToolboxFactory.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/config/ToolboxConfiguration.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/ActionMessagesTool.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/ErrorsTool.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/FormTool.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/MessageTool.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/TilesTool.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/ValidatorTool.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/PagerTool.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/VelocityView.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java
    velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java
    velocity/tools/branches/2.x/src/test/java/org/apache/velocity/tools/test/whitebox/ConfigTests.java

Added: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/Scope.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/Scope.java?view=auto&rev=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/Scope.java (added)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/Scope.java Fri Jul 20 10:33:46 2007
@@ -0,0 +1,87 @@
+package org.apache.velocity.tools;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * A specialized constants class to provide some compile-time typo checking and
+ * runtime validation for scopes specified in annotations, toolbox configs, etc.
+ *
+ * @author Nathan Bubna
+ * @version $Id: Toolbox.java 511959 2007-02-26 19:24:39Z nbubna $
+ */
+public final class Scope
+{
+    public static final String REQUEST = "request";
+    public static final String SESSION = "session";
+    public static final String APPLICATION = "application";
+
+    private static final List<String> VALUES;
+    static
+    {
+        List<String> defaults = new ArrayList<String>(3);
+        defaults.add(REQUEST);
+        defaults.add(SESSION);
+        defaults.add(APPLICATION);
+        VALUES = Collections.synchronizedList(defaults);
+    }
+
+    // keep an instance available in case someone wants to
+    // drop this into a template for some reason
+    private static final Scope INSTANCE = new Scope();
+
+    public static final Scope getInstance()
+    {
+        return INSTANCE;
+    }
+
+    public static final void add(String newScope)
+    {
+        // keep everything lower case
+        newScope = newScope.toLowerCase();
+        // complain if it already exists
+        if (VALUES.contains(newScope))
+        {
+            throw new IllegalArgumentException("Scope '"+newScope+"' has already been registered.");
+        }
+        VALUES.add(newScope);
+    }
+
+    public static final boolean exists(String scope)
+    {
+        // keep everything lower case
+        scope = scope.toLowerCase();
+        return VALUES.contains(scope);
+    }
+
+    public static final List<String> values()
+    {
+        return Collections.unmodifiableList(VALUES);
+    }
+
+    private Scope()
+    {
+        // keep constructor private, this is a singleton
+    }
+
+}

Propchange: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/Scope.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/Scope.java
------------------------------------------------------------------------------
    svn:keywords = Revision

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=558066&r1=558065&r2=558066
==============================================================================
--- 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 Fri Jul 20 10:33:46 2007
@@ -27,6 +27,7 @@
 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.FactoryConfiguration;
 import org.apache.velocity.tools.config.FileFactoryConfiguration;
 import org.apache.velocity.tools.config.PropertiesFactoryConfiguration;
@@ -138,17 +139,17 @@
 
     protected boolean hasRequestTools()
     {
-        return this.factory.hasTools(ToolboxFactory.DEFAULT_SCOPE);
+        return this.factory.hasTools(Scope.REQUEST);
     }
 
     protected Toolbox getRequestToolbox()
     {
-        return this.factory.createToolbox(ToolboxFactory.DEFAULT_SCOPE);
+        return this.factory.createToolbox(Scope.REQUEST);
     }
 
     protected boolean hasApplicationTools()
     {
-        return this.factory.hasTools(ToolboxFactory.APPLICATION_SCOPE);
+        return this.factory.hasTools(Scope.APPLICATION);
     }
 
     protected Toolbox getApplicationToolbox()
@@ -156,7 +157,7 @@
         if (this.application == null)
         {
             this.application =
-                this.factory.createToolbox(ToolboxFactory.APPLICATION_SCOPE);
+                this.factory.createToolbox(Scope.APPLICATION);
         }
         return this.application;
     }

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/ToolboxFactory.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/ToolboxFactory.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/ToolboxFactory.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/ToolboxFactory.java Fri Jul 20 10:33:46 2007
@@ -25,6 +25,7 @@
 import java.util.Map;
 import org.apache.velocity.tools.config.Data;
 import org.apache.velocity.tools.config.FactoryConfiguration;
+import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.config.ToolboxConfiguration;
 import org.apache.velocity.tools.config.ToolConfiguration;
 
@@ -36,8 +37,7 @@
  */
 public class ToolboxFactory
 {
-    public static final String DEFAULT_SCOPE = "request";
-    public static final String APPLICATION_SCOPE = "application";
+    public static final String DEFAULT_SCOPE = Scope.REQUEST;
 
     private Map<String,Map<String,ToolInfo>> scopedToolInfo;
     private Map<String,Map<String,Object>> scopedProperties;
@@ -193,7 +193,7 @@
         {
             return true;
         }
-        else if (data != null && APPLICATION_SCOPE.equals(scope))
+        else if (data != null && Scope.APPLICATION.equals(scope))
         {
             return true;
         }
@@ -231,7 +231,7 @@
         // if application scoped or if there's only one toolbox,
         // then automatically include data, if we have any.
         if (data != null &&
-            (scopedToolInfo.size() == 1 || scope.equals(APPLICATION_SCOPE)))
+            (scopedToolInfo.size() == 1 || scope.equals(Scope.APPLICATION)))
         {
             toolbox.cacheData(getData());
         }

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/config/ToolboxConfiguration.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/config/ToolboxConfiguration.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/config/ToolboxConfiguration.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/config/ToolboxConfiguration.java Fri Jul 20 10:33:46 2007
@@ -20,6 +20,7 @@
  */
 
 import java.util.List;
+import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.ToolboxFactory;
 
 /**
@@ -133,6 +134,10 @@
         if (getScope() == null)
         {
             throw new ConfigurationException(this, "Toolbox scope cannot be null");
+        }
+        if (!Scope.exists(getScope()))
+        {
+            throw new ConfigurationException(this, "Scope '"+getScope()+"' is not recognized. Please correct or add your new custom scope with "+Scope.class.getName()+".add(\""+getScope()+"\").");
         }
 
         // validate that all tools are allowed in this scope

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/ActionMessagesTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/ActionMessagesTool.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/ActionMessagesTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/ActionMessagesTool.java Fri Jul 20 10:33:46 2007
@@ -25,6 +25,7 @@
 import org.apache.struts.action.ActionMessage;
 import org.apache.struts.action.ActionMessages;
 import org.apache.struts.util.MessageResources;
+import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.config.DefaultKey;
 import org.apache.velocity.tools.config.ValidScope;
 
@@ -54,7 +55,7 @@
  * @version $Id$
  */
 @DefaultKey("messages")
-@ValidScope("request")
+@ValidScope(Scope.REQUEST)
 public class ActionMessagesTool extends MessageResourcesTool
 {
     /** A reference to the queued action messages. */

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/ErrorsTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/ErrorsTool.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/ErrorsTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/ErrorsTool.java Fri Jul 20 10:33:46 2007
@@ -21,6 +21,7 @@
 
 import java.util.Map;
 import org.apache.struts.action.ActionMessages;
+import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.config.DefaultKey;
 import org.apache.velocity.tools.config.ValidScope;
 
@@ -53,7 +54,7 @@
  * @version $Id$
  */
 @DefaultKey("errors")
-@ValidScope("request")
+@ValidScope(Scope.REQUEST)
 public class ErrorsTool extends ActionMessagesTool
 {
 

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/FormTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/FormTool.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/FormTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/FormTool.java Fri Jul 20 10:33:46 2007
@@ -24,6 +24,7 @@
 import javax.servlet.http.HttpSession;
 import org.apache.struts.action.ActionForm;
 import org.apache.velocity.tools.view.ViewContext;
+import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.config.DefaultKey;
 import org.apache.velocity.tools.config.ValidScope;
 
@@ -49,7 +50,7 @@
  * @version $Id$
  */
 @DefaultKey("form")
-@ValidScope("request")
+@ValidScope(Scope.REQUEST)
 public class FormTool
 {
 

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/MessageTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/MessageTool.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/MessageTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/MessageTool.java Fri Jul 20 10:33:46 2007
@@ -22,6 +22,7 @@
 import java.util.List;
 import java.util.Locale;
 import org.apache.struts.util.MessageResources;
+import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.config.DefaultKey;
 import org.apache.velocity.tools.config.ValidScope;
 
@@ -50,7 +51,7 @@
  * @version $Id$
  */
 @DefaultKey("text")
-@ValidScope("request")
+@ValidScope(Scope.REQUEST)
 public class MessageTool extends MessageResourcesTool
 {
 

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/TilesTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/TilesTool.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/TilesTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/TilesTool.java Fri Jul 20 10:33:46 2007
@@ -33,6 +33,7 @@
 import org.apache.struts.tiles.DirectStringAttribute;
 import org.apache.struts.tiles.TilesUtil;
 import org.apache.velocity.context.Context;
+import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.config.DefaultKey;
 import org.apache.velocity.tools.config.ValidScope;
 import org.apache.velocity.tools.view.ImportSupport;
@@ -66,7 +67,7 @@
  * @version $Revision$ $Date$
  */
 @DefaultKey("tiles")
-@ValidScope("request")
+@ValidScope(Scope.REQUEST)
 public class TilesTool extends ImportSupport
 {
     static final String PAGE_SCOPE = "page";

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/ValidatorTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/ValidatorTool.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/ValidatorTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/ValidatorTool.java Fri Jul 20 10:33:46 2007
@@ -41,6 +41,7 @@
 import org.apache.struts.util.ModuleUtils;
 import org.apache.struts.validator.Resources;
 import org.apache.struts.validator.ValidatorPlugIn;
+import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.config.DefaultKey;
 import org.apache.velocity.tools.config.ValidScope;
 import org.apache.velocity.tools.view.ViewContext;
@@ -74,7 +75,7 @@
  * @version $Revision$ $Date$
  */
 @DefaultKey("validator")
-@ValidScope("request")
+@ValidScope(Scope.REQUEST)
 public class ValidatorTool
 {
 

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java Fri Jul 20 10:33:46 2007
@@ -23,6 +23,7 @@
 import java.util.List;
 import javax.servlet.http.HttpServletRequest;
 import org.apache.velocity.runtime.log.Log;
+import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.config.DefaultKey;
 import org.apache.velocity.tools.config.InvalidScope;
 
@@ -119,7 +120,7 @@
  * @version $Revision$ $Date$
  */
 @DefaultKey("search")
-@InvalidScope({"application","session"})
+@InvalidScope({Scope.APPLICATION,Scope.SESSION})
 public abstract class AbstractSearchTool extends PagerTool
 {
     public static final String DEFAULT_CRITERIA_KEY = "find";

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java Fri Jul 20 10:33:46 2007
@@ -23,9 +23,10 @@
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;
 import javax.servlet.http.HttpServletRequest;
+import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.config.DefaultKey;
-import org.apache.velocity.tools.view.ViewContext;
 import org.apache.velocity.tools.config.InvalidScope;
+import org.apache.velocity.tools.view.ViewContext;
 
 /**
  *  <p>browser-sniffing tool (session or request scope requested, session scope advised).</p>
@@ -60,7 +61,7 @@
  * @version $Revision$ $Date$
  */
 @DefaultKey("browser")
-@InvalidScope("application")
+@InvalidScope(Scope.APPLICATION)
 public class BrowserTool implements java.io.Serializable
 {
     private static final long serialVersionUID = 1734529350532353339L;

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java Fri Jul 20 10:33:46 2007
@@ -30,6 +30,7 @@
 import javax.servlet.ServletContext;
 import org.apache.velocity.context.AbstractContext;
 import org.apache.velocity.context.Context;
+import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.config.DefaultKey;
 import org.apache.velocity.tools.config.InvalidScope;
 import org.apache.velocity.tools.generic.ValueParser;
@@ -60,7 +61,7 @@
  * @version $Id: ContextTool.java 385122 2006-03-11 18:37:42Z nbubna $
  */
 @DefaultKey("context")
-@InvalidScope({"application","session"})
+@InvalidScope({Scope.APPLICATION,Scope.SESSION})
 public class ContextTool
 {
     /**

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java Fri Jul 20 10:33:46 2007
@@ -24,6 +24,7 @@
 import javax.servlet.http.HttpServletResponse;
 import org.apache.velocity.tools.config.DefaultKey;
 import org.apache.velocity.tools.config.ValidScope;
+import org.apache.velocity.tools.Scope;
 
 /**
  * <p>View tool for convenient cookie access and creation.</p>
@@ -48,7 +49,7 @@
  * @version $Id$
  */
 @DefaultKey("cookies")
-@ValidScope("request")
+@ValidScope(Scope.REQUEST)
 public class CookieTool
 {
 

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java Fri Jul 20 10:33:46 2007
@@ -19,6 +19,7 @@
  * under the License.
  */
 
+import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.config.DefaultKey;
 import org.apache.velocity.tools.config.ValidScope;
 import org.apache.velocity.tools.view.ImportSupport;
@@ -43,7 +44,7 @@
  * @version $Revision$ $Date$
  */
 @DefaultKey("import")
-@ValidScope("request")
+@ValidScope(Scope.REQUEST)
 public class ImportTool extends ImportSupport
 {
     /**

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java Fri Jul 20 10:33:46 2007
@@ -29,6 +29,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import org.apache.velocity.runtime.log.Log;
+import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.config.DefaultKey;
 import org.apache.velocity.tools.config.ValidScope;
 import org.apache.velocity.tools.generic.ValueParser;
@@ -59,7 +60,7 @@
  * @version $Id$
  */
 @DefaultKey("link")
-@ValidScope("request")
+@ValidScope(Scope.REQUEST)
 public class LinkTool implements Cloneable
 {
     /**

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java Fri Jul 20 10:33:46 2007
@@ -24,6 +24,7 @@
 import javax.servlet.ServletContext;
 import org.apache.velocity.app.VelocityEngine;
 import org.apache.velocity.context.Context;
+import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.config.DefaultKey;
 import org.apache.velocity.tools.config.InvalidScope;
 import org.apache.velocity.tools.view.ViewToolContext;
@@ -42,7 +43,7 @@
  * @author <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a>
  */
 @DefaultKey("i18n")
-@InvalidScope("application")
+@InvalidScope(Scope.APPLICATION)
 public class MultiViewsTool
 {
     /**

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/PagerTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/PagerTool.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/PagerTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/PagerTool.java Fri Jul 20 10:33:46 2007
@@ -25,6 +25,7 @@
 import java.util.Map;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
+import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.config.DefaultKey;
 import org.apache.velocity.tools.config.InvalidScope;
 import org.apache.velocity.tools.view.ViewContext;
@@ -99,7 +100,7 @@
  * @version $Revision$ $Date$
  */
 @DefaultKey("pager")
-@InvalidScope({"application","session"})
+@InvalidScope({Scope.APPLICATION,Scope.SESSION})
 public class PagerTool
 {
     public static final String DEFAULT_NEW_ITEMS_KEY = "new.items";

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java Fri Jul 20 10:33:46 2007
@@ -21,6 +21,7 @@
 
 import java.util.Map;
 import javax.servlet.ServletRequest;
+import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.config.DefaultKey;
 import org.apache.velocity.tools.config.ValidScope;
 import org.apache.velocity.tools.generic.ValueParser;
@@ -50,7 +51,7 @@
  * @version $Revision$ $Date$
  */
 @DefaultKey("params")
-@ValidScope("request")
+@ValidScope(Scope.REQUEST)
 public class ParameterTool extends ValueParser
 {
     private ServletRequest request;

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=558066&r1=558065&r2=558066
==============================================================================
--- 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 Fri Jul 20 10:33:46 2007
@@ -41,6 +41,7 @@
 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.Scope;
 import org.apache.velocity.tools.Toolbox;
 import org.apache.velocity.tools.ToolboxFactory;
 import org.apache.velocity.tools.config.ConfigurationCleaner;
@@ -368,8 +369,7 @@
         }
 
         // add any application toolbox to the application attributes
-        Toolbox appTools =
-            toolboxFactory.createToolbox(ToolboxFactory.APPLICATION_SCOPE);
+        Toolbox appTools = toolboxFactory.createToolbox(Scope.APPLICATION);
         if (appTools != null &&
             this.servletContext.getAttribute(this.toolboxKey) == null)
         {
@@ -794,12 +794,11 @@
     public void prepareToolboxes(HttpServletRequest request)
     {
         // only set a new toolbox if we need one
-        if (toolboxFactory.hasTools(ToolboxFactory.DEFAULT_SCOPE)
+        if (toolboxFactory.hasTools(Scope.REQUEST)
             && request.getAttribute(this.toolboxKey) == null)
         {
             // add request toolbox, if any
-            Toolbox reqTools =
-                toolboxFactory.createToolbox(ToolboxFactory.DEFAULT_SCOPE);
+            Toolbox reqTools = toolboxFactory.createToolbox(Scope.REQUEST);
             if (reqTools != null)
             {
                 request.setAttribute(this.toolboxKey, reqTools);

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java Fri Jul 20 10:33:46 2007
@@ -20,8 +20,9 @@
  */
 
 import org.apache.velocity.context.Context;
-import org.apache.velocity.tools.generic.RenderTool;
+import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.config.InvalidScope;
+import org.apache.velocity.tools.generic.RenderTool;
 
 /**
  * This tool expose methods to evaluate the given

Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java Fri Jul 20 10:33:46 2007
@@ -20,6 +20,7 @@
  */
 
 import javax.servlet.http.HttpServletRequest;
+import org.apache.velocity.tools.Scope;
 import org.apache.velocity.tools.config.InvalidScope;
 import org.apache.velocity.tools.generic.ResourceTool;
 
@@ -62,7 +63,7 @@
  * @version $Revision$ $Date: 2006-11-27 10:49:37 -0800 (Mon, 27 Nov 2006) $
  * @since VelocityTools 1.3
  */
-@InvalidScope({"application","session"})
+@InvalidScope({Scope.APPLICATION,Scope.SESSION})
 public class ViewResourceTool extends ResourceTool
 {
     /**

Modified: velocity/tools/branches/2.x/src/test/java/org/apache/velocity/tools/test/whitebox/ConfigTests.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/test/java/org/apache/velocity/tools/test/whitebox/ConfigTests.java?view=diff&rev=558066&r1=558065&r2=558066
==============================================================================
--- velocity/tools/branches/2.x/src/test/java/org/apache/velocity/tools/test/whitebox/ConfigTests.java (original)
+++ velocity/tools/branches/2.x/src/test/java/org/apache/velocity/tools/test/whitebox/ConfigTests.java Fri Jul 20 10:33:46 2007
@@ -29,11 +29,11 @@
 import org.apache.commons.beanutils.converters.BooleanConverter;
 import org.apache.commons.beanutils.converters.DoubleConverter;
 import org.apache.commons.beanutils.converters.IntegerConverter;
-import org.apache.commons.beanutils.converters.StringConverter;
-import org.apache.velocity.tools.view.ViewRenderTool;
+import org.apache.velocity.tools.Scope;
+import org.apache.velocity.tools.config.*;
 import org.apache.velocity.tools.generic.MathTool;
 import org.apache.velocity.tools.generic.NumberTool;
-import org.apache.velocity.tools.config.*;
+import org.apache.velocity.tools.view.ViewRenderTool;
 
 /**
  * <p>Configuration tests.</p>
@@ -59,7 +59,7 @@
         base.addData(datum);
 
         ToolboxConfiguration toolbox = new ToolboxConfiguration();
-        toolbox.setScope("request");
+        toolbox.setScope(Scope.REQUEST);
         toolbox.setProperty("locale", Locale.US);
             ToolConfiguration tool = new ToolConfiguration();
                 tool.setClass(ViewRenderTool.class);
@@ -67,7 +67,7 @@
         base.addToolbox(toolbox);
 
         toolbox = new ToolboxConfiguration();
-        toolbox.setScope("application");
+        toolbox.setScope(Scope.APPLICATION);
             tool = new ToolConfiguration();
                 tool.setKey("calc");
                 tool.setClass(MathTool.class);
@@ -159,7 +159,10 @@
         datum.setType("number");
         assertInvalid(datum);
 
-        //TODO: test converter/target class stuff
+        // should fail to convert a decimal string to an integer
+        datum.setValue("0.1");
+        datum.convertWith(new IntegerConverter());
+        assertInvalid(datum);
     }
 
     public @Test void testData()