This is an automated email from the ASF dual-hosted git repository.

tv pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/turbine-core.git

commit b2579be84c3ede07b390bd09755fdf241c6b34c9
Author: Thomas Vandahl <[email protected]>
AuthorDate: Tue Dec 16 21:55:08 2025 +0100

    Parametrize ApplicationTool to reduce number of instanceof checks
---
 .../org/apache/turbine/annotation/TurbineTool.java |  2 +-
 src/java/org/apache/turbine/om/OMTool.java         |  2 +-
 .../apache/turbine/services/intake/IntakeTool.java | 10 +++---
 .../turbine/services/jsp/TurbineJspService.java    |  5 +--
 .../services/localization/LocalizationTool.java    | 25 +++++++------
 .../turbine/services/pull/ApplicationTool.java     |  9 ++---
 .../services/pull/PipelineDataApplicationTool.java | 41 ++--------------------
 .../services/pull/RunDataApplicationTool.java      | 40 ++-------------------
 .../turbine/services/pull/TurbinePullService.java  | 26 ++++----------
 .../turbine/services/pull/tools/ContentTool.java   | 21 +++--------
 .../turbine/services/pull/tools/TemplateLink.java  | 20 +++--------
 .../apache/turbine/services/pull/tools/UITool.java |  4 +--
 .../turbine/services/pull/util/DateFormatter.java  |  2 +-
 .../turbine/services/pull/util/SessionData.java    |  5 +--
 .../turbine/services/schedule/SchedulerTool.java   |  2 +-
 .../turbine/services/session/SessionTool.java      |  6 ++--
 .../turbine/util/template/HtmlPageAttributes.java  |  2 +-
 .../turbine/services/intake/IntakeToolTest.java    | 15 ++++----
 .../localization/LocalizationToolTest.java         |  2 +-
 19 files changed, 66 insertions(+), 173 deletions(-)

diff --git a/src/java/org/apache/turbine/annotation/TurbineTool.java 
b/src/java/org/apache/turbine/annotation/TurbineTool.java
index 292e2341..d16aa23d 100644
--- a/src/java/org/apache/turbine/annotation/TurbineTool.java
+++ b/src/java/org/apache/turbine/annotation/TurbineTool.java
@@ -39,5 +39,5 @@ public @interface TurbineTool
      *
      * @return the class the tool is responsible for
      */
-    Class<? extends ApplicationTool> value();
+    Class<? extends ApplicationTool<?>> value();
 }
diff --git a/src/java/org/apache/turbine/om/OMTool.java 
b/src/java/org/apache/turbine/om/OMTool.java
index a499ae8d..096758e2 100644
--- a/src/java/org/apache/turbine/om/OMTool.java
+++ b/src/java/org/apache/turbine/om/OMTool.java
@@ -36,7 +36,7 @@ import org.apache.turbine.services.pull.ApplicationTool;
  * @deprecated This class is probably not used anymore, it may have been 
intended for cacheable Torque OM or might be used with Fulcrum Security Torque.
  */
 @Deprecated
-public class OMTool implements ApplicationTool, Recyclable
+public class OMTool implements ApplicationTool<Object>, Recyclable
 {
     protected ConcurrentMap<String, Object> omMap;
 
diff --git a/src/java/org/apache/turbine/services/intake/IntakeTool.java 
b/src/java/org/apache/turbine/services/intake/IntakeTool.java
index 992e1079..a493ebbb 100644
--- a/src/java/org/apache/turbine/services/intake/IntakeTool.java
+++ b/src/java/org/apache/turbine/services/intake/IntakeTool.java
@@ -34,8 +34,8 @@ import org.apache.fulcrum.pool.Recyclable;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.turbine.annotation.TurbineService;
-import org.apache.turbine.services.pull.ApplicationTool;
-import org.apache.turbine.util.RunData;
+import org.apache.turbine.pipeline.PipelineData;
+import org.apache.turbine.services.pull.PipelineDataApplicationTool;
 
 
 /**
@@ -49,7 +49,7 @@ import org.apache.turbine.util.RunData;
  * @version $Id: IntakeTool.java 1886259 2021-02-06 16:54:03Z tv $
  */
 public class IntakeTool
-        implements ApplicationTool, Recyclable
+        implements PipelineDataApplicationTool, Recyclable
 {
     /** Used for logging */
     protected static final Logger log = LogManager.getLogger(IntakeTool.class);
@@ -90,7 +90,7 @@ public class IntakeTool
      * Prepares intake for a single request
      */
     @Override
-    public void init(Object runData)
+    public void init(PipelineData pipelineData)
     {
         if (groups == null) // Initialize only once
         {
@@ -109,7 +109,7 @@ public class IntakeTool
             }
         }
 
-        this.pp = ((RunData) runData).getParameters();
+        this.pp = pipelineData.getRunData().getParameters();
 
         String[] groupKeys = pp.getStrings(INTAKE_GRP);
         String[] groupNames = null;
diff --git a/src/java/org/apache/turbine/services/jsp/TurbineJspService.java 
b/src/java/org/apache/turbine/services/jsp/TurbineJspService.java
index ee1acca1..30d4644c 100644
--- a/src/java/org/apache/turbine/services/jsp/TurbineJspService.java
+++ b/src/java/org/apache/turbine/services/jsp/TurbineJspService.java
@@ -1,6 +1,5 @@
 package org.apache.turbine.services.jsp;
 
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -20,7 +19,6 @@ package org.apache.turbine.services.jsp;
  * under the License.
  */
 
-
 import java.io.File;
 import java.io.IOException;
 import java.util.Arrays;
@@ -32,7 +30,6 @@ import org.apache.logging.log4j.Logger;
 import org.apache.turbine.Turbine;
 import org.apache.turbine.pipeline.PipelineData;
 import org.apache.turbine.services.InitializationException;
-import org.apache.turbine.services.pull.ApplicationTool;
 import org.apache.turbine.services.pull.tools.TemplateLink;
 import org.apache.turbine.services.template.BaseTemplateEngineService;
 import org.apache.turbine.util.RunData;
@@ -107,7 +104,7 @@ public class TurbineJspService
         // in a regular Java Context. We have no Pull Service with the
         // Jsp Paging stuff, but we can run our Application Tool by Hand:
         //
-        ApplicationTool templateLink = new TemplateLink();
+        TemplateLink templateLink = new TemplateLink();
         templateLink.init(pipelineData);
 
         req.setAttribute(LINK, templateLink);
diff --git 
a/src/java/org/apache/turbine/services/localization/LocalizationTool.java 
b/src/java/org/apache/turbine/services/localization/LocalizationTool.java
index 2682b0b2..370472b2 100644
--- a/src/java/org/apache/turbine/services/localization/LocalizationTool.java
+++ b/src/java/org/apache/turbine/services/localization/LocalizationTool.java
@@ -26,7 +26,8 @@ import org.apache.fulcrum.localization.LocalizationService;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.turbine.annotation.TurbineService;
-import org.apache.turbine.services.pull.ApplicationTool;
+import org.apache.turbine.pipeline.PipelineData;
+import org.apache.turbine.services.pull.PipelineDataApplicationTool;
 import org.apache.turbine.util.RunData;
 /**
  * A pull tool which provides lookups for localized text by delegating
@@ -36,7 +37,7 @@ import org.apache.turbine.util.RunData;
  * @author <a href="mailto:[email protected]";>Daniel Rall</a>
  * @author <a href="mailto:[email protected]";>Jon Stevens</a>
  */
-public class LocalizationTool implements ApplicationTool
+public class LocalizationTool implements PipelineDataApplicationTool
 {
     /** Logging */
     private static Logger log = LogManager.getLogger(LocalizationTool.class);
@@ -56,7 +57,7 @@ public class LocalizationTool implements ApplicationTool
      */
     public LocalizationTool()
     {
-        refresh();
+        refresh(null);
     }
 
     /**
@@ -131,23 +132,21 @@ public class LocalizationTool implements ApplicationTool
      * from (reset on each request).
      */
     @Override
-    public void init(Object data)
+    public void init(PipelineData data)
     {
-        if (data instanceof RunData rd)
-        {
-            // Pull necessary information out of RunData while we have
-            // a reference to it.
-            locale = (localizationService instanceof 
RundataLocalizationService r) ?
-                    r.getLocale(rd):
-                    localizationService.getLocale(rd.getRequest());
-        }
+        RunData runData = data.getRunData();
+        // Pull necessary information out of RunData while we have
+        // a reference to it.
+        locale = (localizationService instanceof RundataLocalizationService r) 
?
+                r.getLocale(runData):
+                localizationService.getLocale(runData.getRequest());
     }
 
     /**
      * No-op.
      */
     @Override
-    public void refresh()
+    public void refresh(PipelineData data)
     {
         locale = null;
     }
diff --git a/src/java/org/apache/turbine/services/pull/ApplicationTool.java 
b/src/java/org/apache/turbine/services/pull/ApplicationTool.java
index 03a82085..d2592d2f 100644
--- a/src/java/org/apache/turbine/services/pull/ApplicationTool.java
+++ b/src/java/org/apache/turbine/services/pull/ApplicationTool.java
@@ -25,9 +25,8 @@ package org.apache.turbine.services.pull;
  * Tools that go into the Toolbox should implement this interface.
  *
  * @author <a href="mailto:[email protected]";>Jason van Zyl</a>
- * @version $Id$
  */
-public interface ApplicationTool
+public interface ApplicationTool<T>
 {
     /**
      * Initialize the application tool. The data parameter holds a different
@@ -50,7 +49,7 @@ public interface ApplicationTool
      *
      * @param data initialization data
      */
-    default void init(Object data) {}
+    default void init(T data) {}
 
     /**
      * Refresh the application tool. This is
@@ -60,6 +59,8 @@ public interface ApplicationTool
      * that is typically cached after initialization
      *
      * Default: do nothing
+     *
+     * @param data refresh data
      */
-    default void refresh() {}
+    default void refresh(T data) {}
 }
diff --git 
a/src/java/org/apache/turbine/services/pull/PipelineDataApplicationTool.java 
b/src/java/org/apache/turbine/services/pull/PipelineDataApplicationTool.java
index db1364db..764110b6 100644
--- a/src/java/org/apache/turbine/services/pull/PipelineDataApplicationTool.java
+++ b/src/java/org/apache/turbine/services/pull/PipelineDataApplicationTool.java
@@ -21,50 +21,13 @@ package org.apache.turbine.services.pull;
 
 import org.apache.turbine.pipeline.PipelineData;
 
-
 /**
  * Interface for tools to be init'd and refreshed using a PipelineData
  * object
- * Code largely taken from ApplicationTool.
  *
  * @author <a href="mailto:[email protected]";>Peter Courcoux</a>
  */
-public interface PipelineDataApplicationTool
+public interface PipelineDataApplicationTool extends 
ApplicationTool<PipelineData>
 {
-    /**
-     * Initialize the application tool. The data parameter holds a different
-     * type depending on how the tool is being instantiated:
-     * <ul>
-     * <li>For global tools data will be null</li>
-     * <li>For request tools data will be of type PipelineData</li>
-     * <li>For session and authorized tools data will be of type User</li>
-     * </ul>
-     * <p>
-     * It is possible that session scope tools will be initialized with a null
-     * <code>User</code> object.  This happens when the first request on a
-     * session happens to the be login action.  The next request on the session
-     * will cause the session tool to be refreshed if
-     * <code>tools.per.request.refresh</code> is set to <code>true</code>
-     * in <code>TurbineResources.properties</code>.  You will then be able to
-     * get a <code>User</code> object from the instance of
-     * <code>PipelineData</code>.
-     *
-     * Default: do nothing
-     *
-     * @param data initialization data
-     */
-    default void init(Object data) {}
-
-    /**
-     * Refresh the application tool. This is
-     * necessary for development work where you
-     * probably want the tool to refresh itself
-     * if it is using configuration information
-     * that is typically cached after initialization
-     *
-     * Default: do nothing
-     *
-     * @param data The current PipelineData Object
-     */
-    default void refresh(PipelineData data) {}
+    // empty
 }
diff --git 
a/src/java/org/apache/turbine/services/pull/RunDataApplicationTool.java 
b/src/java/org/apache/turbine/services/pull/RunDataApplicationTool.java
index d43cebd9..51cf5cb4 100644
--- a/src/java/org/apache/turbine/services/pull/RunDataApplicationTool.java
+++ b/src/java/org/apache/turbine/services/pull/RunDataApplicationTool.java
@@ -28,44 +28,8 @@ import org.apache.turbine.util.RunData;
  * implement this interface.
  *
  * @author <a href="mailto:[email protected]";>Henning P. Schmiedehausen</a>
- * @version $Id$
  */
-public interface RunDataApplicationTool
+public interface RunDataApplicationTool extends ApplicationTool<RunData>
 {
-    /**
-     * Initialize the application tool. The data parameter holds a different
-     * type depending on how the tool is being instantiated:
-     * <ul>
-     * <li>For global tools data will be null</li>
-     * <li>For request tools data will be of type RunData</li>
-     * <li>For session and authorized tools data will be of type User</li>
-     * </ul>
-     * <p>
-     * It is possible that session scope tools will be initialized with a null
-     * <code>User</code> object.  This happens when the first request on a
-     * session happens to the be login action.  The next request on the session
-     * will cause the session tool to be refreshed if
-     * <code>tools.per.request.refresh</code> is set to <code>true</code>
-     * in <code>TurbineResources.properties</code>.  You will then be able to
-     * get a <code>User</code> object from the instance of
-     * <code>RunData</code>.
-     *
-     * Default: do nothing
-     *
-     * @param data initialization data
-     */
-    default void init(Object data) {}
-
-    /**
-     * Refresh the application tool. This is
-     * necessary for development work where you
-     * probably want the tool to refresh itself
-     * if it is using configuration information
-     * that is typically cached after initialization
-     *
-     * Default: do nothing
-     *
-     * @param data The current RunData Object
-     */
-    default void refresh(RunData data){}
+    // empty
 }
diff --git a/src/java/org/apache/turbine/services/pull/TurbinePullService.java 
b/src/java/org/apache/turbine/services/pull/TurbinePullService.java
index 30a9d000..3cb09554 100644
--- a/src/java/org/apache/turbine/services/pull/TurbinePullService.java
+++ b/src/java/org/apache/turbine/services/pull/TurbinePullService.java
@@ -142,22 +142,12 @@ public class TurbinePullService
     private Context globalContext;
 
     /**
-     * This inner class is used in the lists below to store the
+     * This record is used in the lists below to store the
      * tool name and class for each of request, session and persistent
      * tools
      */
-    private static class ToolData
+    private record ToolData(String toolName, String toolClassName, 
Class<ApplicationTool<?>> toolClass)
     {
-        String toolName;
-        String toolClassName;
-        Class<ApplicationTool> toolClass;
-
-        public ToolData(String toolName, String toolClassName, 
Class<ApplicationTool> toolClass)
-        {
-            this.toolName = toolName;
-            this.toolClassName = toolClassName;
-            this.toolClass = toolClass;
-        }
     }
 
     /** Internal list of global tools */
@@ -332,7 +322,7 @@ public class TurbinePullService
             try
             {
                 // Create an instance of the tool class.
-                Class<ApplicationTool> toolClass = (Class<ApplicationTool>) 
Class.forName(toolClassName);
+                Class<ApplicationTool<?>> toolClass = 
(Class<ApplicationTool<?>>) Class.forName(toolClassName);
 
                 // Add the tool to the list being built.
                 tools.add(new ToolData(toolName, toolClassName, toolClass));
@@ -762,6 +752,7 @@ public class TurbinePullService
      *
      * @throws Exception If anything went wrong.
      */
+    @SuppressWarnings("unchecked")
     private void initTool(Object tool, Object param)
         throws Exception
     {
@@ -782,13 +773,9 @@ public class TurbinePullService
                 at.init(pd.getRunData());
             }
         }
-        else if (tool instanceof PipelineDataApplicationTool pdat)
-        {
-            pdat.init(param);
-        }
         else if (tool instanceof RunDataApplicationTool rdat)
         {
-            rdat.init(param);
+            rdat.init((RunData)param);
         }
         else if (tool instanceof ApplicationTool at)
         {
@@ -802,6 +789,7 @@ public class TurbinePullService
      * @param tool A Tool Object
      * @param dataObject The current RunData Object
      */
+    @SuppressWarnings("unchecked")
     private void refreshTool(Object tool, Object dataObject)
     {
         if (dataObject instanceof PipelineData pipelineData)
@@ -817,7 +805,7 @@ public class TurbinePullService
         }
         if (tool instanceof ApplicationTool at)
         {
-            at.refresh();
+            at.refresh(dataObject);
         }
     }
 }
diff --git a/src/java/org/apache/turbine/services/pull/tools/ContentTool.java 
b/src/java/org/apache/turbine/services/pull/tools/ContentTool.java
index a337738a..45d9e63f 100644
--- a/src/java/org/apache/turbine/services/pull/tools/ContentTool.java
+++ b/src/java/org/apache/turbine/services/pull/tools/ContentTool.java
@@ -25,7 +25,7 @@ package org.apache.turbine.services.pull.tools;
 import org.apache.commons.configuration2.Configuration;
 import org.apache.turbine.Turbine;
 import org.apache.turbine.pipeline.PipelineData;
-import org.apache.turbine.services.pull.ApplicationTool;
+import org.apache.turbine.services.pull.PipelineDataApplicationTool;
 import org.apache.turbine.util.RunData;
 import org.apache.turbine.util.uri.DataURI;
 
@@ -48,7 +48,7 @@ import org.apache.turbine.util.uri.DataURI;
  */
 
 public class ContentTool
-    implements ApplicationTool
+    implements PipelineDataApplicationTool
 {
     /** Prefix for Parameters for this tool */
     public static final String CONTENT_TOOL_PREFIX = "tool.content";
@@ -104,21 +104,10 @@ public class ContentTool
      * @param data assumed to be a PipelineData object
      */
     @Override
-    public void init(Object data)
+    public void init(PipelineData data)
     {
-        // we just blithely cast to RunData as if another object
-        // or null is passed in we'll throw an appropriate runtime
-        // exception.
-        if (data instanceof PipelineData pipelineData)
-        {
-            RunData runData = pipelineData.getRunData();
-            dataURI = new DataURI(runData);
-        }
-        else
-        {
-            dataURI = new DataURI((RunData) data);
-
-        }
+        RunData runData = data.getRunData();
+        dataURI = new DataURI(runData);
 
         Configuration conf =
                 Turbine.getConfiguration().subset(CONTENT_TOOL_PREFIX);
diff --git a/src/java/org/apache/turbine/services/pull/tools/TemplateLink.java 
b/src/java/org/apache/turbine/services/pull/tools/TemplateLink.java
index d7d96d4f..966eedcf 100644
--- a/src/java/org/apache/turbine/services/pull/tools/TemplateLink.java
+++ b/src/java/org/apache/turbine/services/pull/tools/TemplateLink.java
@@ -27,7 +27,7 @@ import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.turbine.Turbine;
 import org.apache.turbine.pipeline.PipelineData;
-import org.apache.turbine.services.pull.ApplicationTool;
+import org.apache.turbine.services.pull.PipelineDataApplicationTool;
 import org.apache.turbine.util.RunData;
 import org.apache.turbine.util.uri.TemplateURI;
 
@@ -57,7 +57,7 @@ import org.apache.turbine.util.uri.TemplateURI;
  */
 
 public class TemplateLink
-    implements ApplicationTool
+    implements PipelineDataApplicationTool
 {
     /** Prefix for Parameters for this tool */
     public static final String TEMPLATE_LINK_PREFIX = "tool.link";
@@ -121,20 +121,10 @@ public class TemplateLink
      * @param data assumed to be a PipelineData object
      */
     @Override
-    public void init(Object data)
+    public void init(PipelineData data)
     {
-        // we just blithely cast to RunData as if another object
-        // or null is passed in we'll throw an appropriate runtime
-        // exception.
-        if (data instanceof PipelineData pipelineData)
-        {
-            RunData runData = pipelineData.getRunData();
-            templateURI = new TemplateURI(runData);
-        }
-        else
-        {
-            templateURI = new TemplateURI((RunData) data);
-        }
+        RunData runData = data.getRunData();
+        templateURI = new TemplateURI(runData);
 
         Configuration conf =
                 Turbine.getConfiguration().subset(TEMPLATE_LINK_PREFIX);
diff --git a/src/java/org/apache/turbine/services/pull/tools/UITool.java 
b/src/java/org/apache/turbine/services/pull/tools/UITool.java
index ee912b42..741fc86f 100644
--- a/src/java/org/apache/turbine/services/pull/tools/UITool.java
+++ b/src/java/org/apache/turbine/services/pull/tools/UITool.java
@@ -62,7 +62,7 @@ import org.apache.turbine.util.ServerData;
  * @version $Id$
  * @see UIService
  */
-public class UITool implements ApplicationTool
+public class UITool implements ApplicationTool<Object>
 {
     /** Logging */
     private static final Logger log = LogManager.getLogger(UITool.class);
@@ -87,7 +87,7 @@ public class UITool implements ApplicationTool
      * Refresh the tool.
      */
     @Override
-    public void refresh()
+    public void refresh(Object data)
     {
         uiService.refresh(getSkin());
         log.debug("UITool refreshed for skin: {}", this::getSkin);
diff --git a/src/java/org/apache/turbine/services/pull/util/DateFormatter.java 
b/src/java/org/apache/turbine/services/pull/util/DateFormatter.java
index 87227aac..20f04b09 100644
--- a/src/java/org/apache/turbine/services/pull/util/DateFormatter.java
+++ b/src/java/org/apache/turbine/services/pull/util/DateFormatter.java
@@ -36,7 +36,7 @@ import org.apache.turbine.services.pull.ApplicationTool;
  * @version $Id$
  */
 public class DateFormatter
-        implements ApplicationTool
+        implements ApplicationTool<Object>
 {
     /** Default date format */
     private static final String DATE_FORMAT_DEFAULT = "MM/dd/yyyy";
diff --git a/src/java/org/apache/turbine/services/pull/util/SessionData.java 
b/src/java/org/apache/turbine/services/pull/util/SessionData.java
index aceed49f..823d4808 100644
--- a/src/java/org/apache/turbine/services/pull/util/SessionData.java
+++ b/src/java/org/apache/turbine/services/pull/util/SessionData.java
@@ -25,6 +25,7 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 
+import org.apache.turbine.om.security.User;
 import org.apache.turbine.services.pull.ApplicationTool;
 
 /**
@@ -36,7 +37,7 @@ import org.apache.turbine.services.pull.ApplicationTool;
  * @author <a href="mailto:[email protected]";>Quinton McCombs</a>
  * @version $Id$
  */
-public class SessionData implements ApplicationTool
+public class SessionData implements ApplicationTool<User>
 {
     /** Storage of user defined data */
     private Map<String, Object> dataStorage;
@@ -47,7 +48,7 @@ public class SessionData implements ApplicationTool
      * @param data initialization data
      */
     @Override
-    public void init(Object data)
+    public void init(User data)
     {
         dataStorage = new HashMap<>();
     }
diff --git a/src/java/org/apache/turbine/services/schedule/SchedulerTool.java 
b/src/java/org/apache/turbine/services/schedule/SchedulerTool.java
index b8342562..88238418 100644
--- a/src/java/org/apache/turbine/services/schedule/SchedulerTool.java
+++ b/src/java/org/apache/turbine/services/schedule/SchedulerTool.java
@@ -35,7 +35,7 @@ import org.apache.turbine.util.TurbineException;
  * @author <a href="mailto:[email protected]";>Quinton McCombs</a>
  * @version $Id$
  */
-public class SchedulerTool implements ApplicationTool
+public class SchedulerTool implements ApplicationTool<Object>
 {
     /** Used for logging */
     private static final Logger log = 
LogManager.getLogger(ScheduleService.LOGGER_NAME);
diff --git a/src/java/org/apache/turbine/services/session/SessionTool.java 
b/src/java/org/apache/turbine/services/session/SessionTool.java
index 9b99d073..f577d3ff 100644
--- a/src/java/org/apache/turbine/services/session/SessionTool.java
+++ b/src/java/org/apache/turbine/services/session/SessionTool.java
@@ -23,12 +23,12 @@ package org.apache.turbine.services.session;
 
 import java.util.Collection;
 
-import jakarta.servlet.http.HttpSession;
-
 import org.apache.turbine.annotation.TurbineService;
 import org.apache.turbine.om.security.User;
 import org.apache.turbine.services.pull.ApplicationTool;
 
+import jakarta.servlet.http.HttpSession;
+
 /**
  * A pull tool for accessing the SessionService from a velocity template.
  *
@@ -36,7 +36,7 @@ import org.apache.turbine.services.pull.ApplicationTool;
  * @version $Id$
  */
 public class SessionTool
-        implements ApplicationTool
+        implements ApplicationTool<Object>
 {
     /**
      * The session service.
diff --git a/src/java/org/apache/turbine/util/template/HtmlPageAttributes.java 
b/src/java/org/apache/turbine/util/template/HtmlPageAttributes.java
index dcc907db..986cc376 100644
--- a/src/java/org/apache/turbine/util/template/HtmlPageAttributes.java
+++ b/src/java/org/apache/turbine/util/template/HtmlPageAttributes.java
@@ -101,7 +101,7 @@ import org.apache.turbine.services.pull.ApplicationTool;
  * @version $Id$
  */
 public class HtmlPageAttributes
-        implements ApplicationTool
+        implements ApplicationTool<Object>
 {
     /** The title */
     private String title;
diff --git a/src/test/org/apache/turbine/services/intake/IntakeToolTest.java 
b/src/test/org/apache/turbine/services/intake/IntakeToolTest.java
index bd49cf5f..8e8192b9 100644
--- a/src/test/org/apache/turbine/services/intake/IntakeToolTest.java
+++ b/src/test/org/apache/turbine/services/intake/IntakeToolTest.java
@@ -22,14 +22,11 @@ package org.apache.turbine.services.intake;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
 import static org.mockito.Mockito.mock;
 
 import java.io.File;
 
-import jakarta.servlet.ServletConfig;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-
 import org.apache.fulcrum.intake.IntakeService;
 import org.apache.fulcrum.intake.model.Group;
 import org.apache.fulcrum.parser.DefaultParameterParser;
@@ -44,6 +41,10 @@ import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
+import jakarta.servlet.ServletConfig;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+
 /**
  * Unit test for Intake Tool, wrapping the Fulcrum Intake service.
  *
@@ -95,7 +96,7 @@ public class IntakeToolTest extends BaseTestCase
     public void testRefresh() throws Exception
     {
         int numberOfGroups = intakeTool.getGroups().size();
-        intakeTool.refresh();
+        intakeTool.refresh(null);
         assertEquals(numberOfGroups, intakeTool.getGroups().size());
     }
 
@@ -106,8 +107,8 @@ public class IntakeToolTest extends BaseTestCase
         HttpServletRequest request = getMockRequest();
         HttpServletResponse response = mock(HttpServletResponse.class);
         RunData runData = rds.getRunData(request, response, config);
-        assertEquals("Verify we are using Fulcrum parameter parser", 
DefaultParameterParser.class, runData.getParameters()
-            .getClass());
+        assertInstanceOf(DefaultParameterParser.class, runData.getParameters(),
+                "Verify we are using Fulcrum parameter parser");
         return runData;
     }
 
diff --git 
a/src/test/org/apache/turbine/services/localization/LocalizationToolTest.java 
b/src/test/org/apache/turbine/services/localization/LocalizationToolTest.java
index 7783c2b1..39bd3a7a 100644
--- 
a/src/test/org/apache/turbine/services/localization/LocalizationToolTest.java
+++ 
b/src/test/org/apache/turbine/services/localization/LocalizationToolTest.java
@@ -96,7 +96,7 @@ public class LocalizationToolTest extends BaseTestCase
     public void testRefresh() throws Exception
     {
         assertNotNull(lt.getLocale());
-        lt.refresh();
+        lt.refresh(null);
         assertNull(lt.getLocale());
     }
 

Reply via email to