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

kusal pushed a commit to branch WW-5532-upg-deps
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 2c8e9e9b95a6012174659be3226db0d8faab3e1d
Author: Kusal Kithul-Godage <g...@kusal.io>
AuthorDate: Mon Feb 24 20:38:21 2025 +1100

    WW-5532 Upgrade and align various dependencies
---
 apps/pom.xml                                       |   1 -
 core/pom.xml                                       |   1 +
 plugins/cdi/pom.xml                                |  21 +-
 .../apache/struts2/cdi/CdiObjectFactoryTest.java   |  37 +++-
 plugins/jfreechart/pom.xml                         |   4 +-
 .../apache/struts2/dispatcher/ChartResultTest.java | 116 +++-------
 plugins/junit/pom.xml                              |   1 +
 plugins/rest/pom.xml                               |   1 +
 plugins/testng/pom.xml                             |   1 +
 plugins/tiles/pom.xml                              |  14 +-
 plugins/velocity/pom.xml                           |   9 +-
 .../template/VelocityTemplateEngineTest.java       |  51 +++--
 pom.xml                                            | 239 ++++++---------------
 13 files changed, 179 insertions(+), 317 deletions(-)

diff --git a/apps/pom.xml b/apps/pom.xml
index 614a3ada1..161b1c66b 100644
--- a/apps/pom.xml
+++ b/apps/pom.xml
@@ -99,7 +99,6 @@
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-test</artifactId>
-            <version>${spring.platformVersion}</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/core/pom.xml b/core/pom.xml
index 887a68361..0862a0182 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -229,6 +229,7 @@
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
+            <scope>compile</scope>
             <optional>true</optional>
         </dependency>
 
diff --git a/plugins/cdi/pom.xml b/plugins/cdi/pom.xml
index d22996444..9a34ceb67 100644
--- a/plugins/cdi/pom.xml
+++ b/plugins/cdi/pom.xml
@@ -33,7 +33,6 @@
     <packaging>jar</packaging>
 
     <dependencies>
-
         <dependency>
             <groupId>jakarta.enterprise</groupId>
             <artifactId>jakarta.enterprise.cdi-api</artifactId>
@@ -43,29 +42,31 @@
         <dependency>
             <groupId>org.jboss.weld</groupId>
             <artifactId>weld-core-impl</artifactId>
-            <scope>provided</scope>
+            <version>${weld.version}</version>
+            <scope>test</scope>
         </dependency>
-
         <dependency>
             <groupId>org.jboss.weld.se</groupId>
             <artifactId>weld-se-core</artifactId>
+            <version>${weld.version}</version>
             <scope>test</scope>
         </dependency>
-
         <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-test</artifactId>
-            <!-- org.springframework.mock.jndi.SimpleNamingContextBuilder 
removed from newer version -->
-            <version>4.3.0.RELEASE</version>
+            <groupId>com.github.h-thurow</groupId>
+            <artifactId>simple-jndi</artifactId>
+            <version>0.25.0</version>
             <scope>test</scope>
         </dependency>
-
         <dependency>
             <groupId>commons-logging</groupId>
             <artifactId>commons-logging</artifactId>
             <scope>test</scope>
         </dependency>
-
+        <dependency>
+            <groupId>jakarta.inject</groupId>
+            <artifactId>jakarta.inject-api</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <properties>
diff --git 
a/plugins/cdi/src/test/java/org/apache/struts2/cdi/CdiObjectFactoryTest.java 
b/plugins/cdi/src/test/java/org/apache/struts2/cdi/CdiObjectFactoryTest.java
index 9e127811b..62fa170b2 100644
--- a/plugins/cdi/src/test/java/org/apache/struts2/cdi/CdiObjectFactoryTest.java
+++ b/plugins/cdi/src/test/java/org/apache/struts2/cdi/CdiObjectFactoryTest.java
@@ -21,11 +21,14 @@ package org.apache.struts2.cdi;
 import org.jboss.weld.bootstrap.api.helpers.RegistrySingletonProvider;
 import org.jboss.weld.environment.se.Weld;
 import org.jboss.weld.environment.se.WeldContainer;
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
-import org.springframework.mock.jndi.SimpleNamingContextBuilder;
 
 import jakarta.enterprise.inject.spi.InjectionTarget;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
 
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
@@ -33,14 +36,28 @@ import static org.junit.Assert.assertTrue;
 
 public class CdiObjectFactoryTest {
 
+    private static final String SHARED_JNDI = "org.osjava.sj.jndi.shared";
+    private static InitialContext context;
+    private static WeldContainer container;
+
     @BeforeClass
     public static void setup() throws Exception {
-        Weld weld = new 
Weld().containerId(RegistrySingletonProvider.STATIC_INSTANCE);
-        WeldContainer container = weld.initialize();
+        container = new 
Weld().containerId(RegistrySingletonProvider.STATIC_INSTANCE).initialize();
+
+        System.setProperty(Context.INITIAL_CONTEXT_FACTORY, 
"org.osjava.sj.SimpleContextFactory");
+        System.setProperty(SHARED_JNDI, "true");
+        context = new InitialContext();
+        context.bind(CdiObjectFactory.CDI_JNDIKEY_BEANMANAGER_COMP, 
container.getBeanManager());
+    }
+
+    @AfterClass
+    public static void tearDown() throws NamingException {
+        container.shutdown();
 
-        SimpleNamingContextBuilder builder = new SimpleNamingContextBuilder();
-        builder.activate();
-        builder.bind(CdiObjectFactory.CDI_JNDIKEY_BEANMANAGER_COMP, 
container.getBeanManager());
+        context.unbind(CdiObjectFactory.CDI_JNDIKEY_BEANMANAGER_COMP);
+        context.close();
+        System.clearProperty(Context.INITIAL_CONTEXT_FACTORY);
+        System.clearProperty(SHARED_JNDI);
     }
 
     @Test
@@ -50,16 +67,16 @@ public class CdiObjectFactoryTest {
 
     @Test
     public void testGetBean() throws Exception {
-        final CdiObjectFactory cdiObjectFactory = new CdiObjectFactory();
-        FooConsumer fooConsumer = (FooConsumer) 
cdiObjectFactory.buildBean(FooConsumer.class.getCanonicalName(), null, false);
+        var cdiObjectFactory = new CdiObjectFactory();
+        var fooConsumer = (FooConsumer) 
cdiObjectFactory.buildBean(FooConsumer.class.getCanonicalName(), null, false);
         assertNotNull(fooConsumer);
         assertNotNull(fooConsumer.fooService);
     }
 
     @Test
     public void testGetInjectionTarget() {
-        final CdiObjectFactory cdiObjectFactory = new CdiObjectFactory();
-        final InjectionTarget<?> injectionTarget = 
cdiObjectFactory.getInjectionTarget(FooConsumer.class);
+        var cdiObjectFactory = new CdiObjectFactory();
+        InjectionTarget<?> injectionTarget = 
cdiObjectFactory.getInjectionTarget(FooConsumer.class);
         assertNotNull(injectionTarget);
         
assertTrue(cdiObjectFactory.injectionTargetCache.containsKey(FooConsumer.class));
         assertSame(cdiObjectFactory.getInjectionTarget(FooConsumer.class), 
injectionTarget);
diff --git a/plugins/jfreechart/pom.xml b/plugins/jfreechart/pom.xml
index 6f54a1fb0..4348c14b9 100644
--- a/plugins/jfreechart/pom.xml
+++ b/plugins/jfreechart/pom.xml
@@ -62,8 +62,8 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymock</artifactId>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-web</artifactId>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git 
a/plugins/jfreechart/src/test/java/org/apache/struts2/dispatcher/ChartResultTest.java
 
b/plugins/jfreechart/src/test/java/org/apache/struts2/dispatcher/ChartResultTest.java
index 3afd79296..0c330808e 100644
--- 
a/plugins/jfreechart/src/test/java/org/apache/struts2/dispatcher/ChartResultTest.java
+++ 
b/plugins/jfreechart/src/test/java/org/apache/struts2/dispatcher/ChartResultTest.java
@@ -20,11 +20,9 @@ package org.apache.struts2.dispatcher;
 
 import org.apache.struts2.ActionContext;
 import org.apache.struts2.ActionInvocation;
-import org.apache.struts2.ActionProxy;
-import org.apache.struts2.util.ValueStack;
 import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.junit.StrutsTestCase;
-import org.easymock.EasyMock;
+import org.apache.struts2.util.ValueStack;
 import org.jfree.chart.ChartFactory;
 import org.jfree.chart.JFreeChart;
 import org.jfree.data.general.DefaultPieDataset;
@@ -34,42 +32,53 @@ import jakarta.servlet.WriteListener;
 import jakarta.servlet.http.HttpServletResponse;
 import java.io.IOException;
 
+import static org.junit.Assert.assertThrows;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
-/**
- *
- */
 public class ChartResultTest extends StrutsTestCase {
 
+    private ChartResult result;
+
     private ActionInvocation actionInvocation;
     private JFreeChart mockChart;
     private MockServletOutputStream os;
-    private ValueStack stack;
-    private ActionProxy mockActionProxy;
     private HttpServletResponse responseMock;
 
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
 
-    public void testChart() throws Exception {
-        EasyMock.expect(responseMock.getOutputStream()).andReturn(os);
-        EasyMock.replay(responseMock, mockActionProxy, actionInvocation);
+        result = new ChartResult();
+
+        var data = new DefaultPieDataset<String>();
+        data.setValue("Java", Double.valueOf(43.2));
+        data.setValue("Visual Basic", Double.valueOf(0.0));
+        data.setValue("C/C++", Double.valueOf(17.5));
+        mockChart = ChartFactory.createPieChart("Pie Chart", data, true, true, 
false);
+
+        actionInvocation = mock(ActionInvocation.class);
+        
when(actionInvocation.getStack()).thenReturn(ActionContext.getContext().getValueStack());
 
-        ChartResult result = new ChartResult();
+        os = new MockServletOutputStream();
+        responseMock = mock(HttpServletResponse.class);
+        when(responseMock.getOutputStream()).thenReturn(os);
+
+        ServletActionContext.setResponse(responseMock);
+    }
 
+    public void testChart() throws Exception {
         result.setChart(mockChart);
 
         result.setHeight("10");
         result.setWidth("10");
         result.execute(actionInvocation);
 
-        EasyMock.verify(responseMock);
         assertTrue(os.isWritten());
     }
 
     public void testContentTypePng() throws Exception {
-        EasyMock.expect(responseMock.getOutputStream()).andReturn(os);
-        responseMock.setContentType("image/png");
-        EasyMock.replay(responseMock, mockActionProxy, actionInvocation);
-        ChartResult result = new ChartResult();
-
         result.setChart(mockChart);
 
         result.setHeight("10");
@@ -77,16 +86,11 @@ public class ChartResultTest extends StrutsTestCase {
         result.setType("png");
         result.execute(actionInvocation);
 
-        EasyMock.verify(responseMock);
+        verify(responseMock).setContentType("image/png");
         assertTrue(os.isWritten());
     }
 
     public void testContentTypeJpg() throws Exception {
-        EasyMock.expect(responseMock.getOutputStream()).andReturn(os);
-        responseMock.setContentType("image/jpg");
-        EasyMock.replay(responseMock, mockActionProxy, actionInvocation);
-        ChartResult result = new ChartResult();
-
         result.setChart(mockChart);
 
         result.setHeight("10");
@@ -94,36 +98,19 @@ public class ChartResultTest extends StrutsTestCase {
         result.setType("jpg");
         result.execute(actionInvocation);
 
-        EasyMock.verify(responseMock);
+        verify(responseMock).setContentType("image/jpg");
         assertTrue(os.isWritten());
     }
 
-
     public void testChartNotSet() {
-        ChartResult result = new ChartResult();
-        EasyMock.replay(responseMock, mockActionProxy, actionInvocation);
-
-        // expect exception if chart not set.
         result.setChart(null);
 
-        try {
-            result.execute(actionInvocation);
-            fail();
-        } catch (Exception e) {
-        }
+        assertThrows(Exception.class, () -> result.execute(actionInvocation));
 
-        EasyMock.verify(responseMock);
         assertFalse(os.isWritten());
     }
 
-
     public void testChartWithOGNLProperties() throws Exception {
-        EasyMock.expect(responseMock.getOutputStream()).andReturn(os);
-        EasyMock.replay(responseMock, mockActionProxy, actionInvocation);
-
-
-        ChartResult result = new ChartResult();
-
         result.setChart(mockChart);
 
         result.setHeight("${myHeight}");
@@ -135,50 +122,14 @@ public class ChartResultTest extends StrutsTestCase {
 
         result.execute(actionInvocation);
 
-        EasyMock.verify(responseMock);
         assertEquals(result.getHeight(), 
stack.findValue("myHeight").toString());
         assertEquals(result.getWidth(), stack.findValue("myWidth").toString());
-        assertEquals("250", result.getHeight().toString());
-        assertEquals("150", result.getWidth().toString());
+        assertEquals("250", result.getHeight());
+        assertEquals("150", result.getWidth());
         assertTrue(os.isWritten());
     }
 
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        DefaultPieDataset data = new DefaultPieDataset();
-        data.setValue("Java", new Double(43.2));
-        data.setValue("Visual Basic", new Double(0.0));
-        data.setValue("C/C++", new Double(17.5));
-        mockChart = ChartFactory.createPieChart("Pie Chart", data, true, true, 
false);
-
-
-        stack = ActionContext.getContext().getValueStack();
-
-        mockActionProxy = EasyMock.createNiceMock(ActionProxy.class);
-        EasyMock.expect(mockActionProxy.getNamespace()).andReturn("/html");
-
-        actionInvocation = EasyMock.createMock(ActionInvocation.class);
-
-        
EasyMock.expect(actionInvocation.getStack()).andReturn(stack).anyTimes();
-
-
-        os = new MockServletOutputStream();
-        responseMock = EasyMock.createNiceMock(HttpServletResponse.class);
-
-        ServletActionContext.setResponse((HttpServletResponse) responseMock);
-    }
-
-    protected void tearDown() throws Exception {
-        actionInvocation = null;
-        os = null;
-        responseMock = null;
-        stack = null;
-        mockActionProxy = null;
-    }
-
-
-    private class MockServletOutputStream extends ServletOutputStream {
+    private static class MockServletOutputStream extends ServletOutputStream {
         // very simple check that outputStream was written to.
         private boolean written = false;
 
@@ -189,6 +140,7 @@ public class ChartResultTest extends StrutsTestCase {
             return written;
         }
 
+        @Override
         public void write(int arg0) throws IOException {
             written = true;
         }
diff --git a/plugins/junit/pom.xml b/plugins/junit/pom.xml
index a445c4312..d6c66d649 100644
--- a/plugins/junit/pom.xml
+++ b/plugins/junit/pom.xml
@@ -52,6 +52,7 @@
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
+            <scope>compile</scope>
         </dependency>
     </dependencies>
 
diff --git a/plugins/rest/pom.xml b/plugins/rest/pom.xml
index 839e4ae2a..41bffba9e 100644
--- a/plugins/rest/pom.xml
+++ b/plugins/rest/pom.xml
@@ -58,6 +58,7 @@
         <dependency>
             <groupId>org.apache.juneau</groupId>
             <artifactId>juneau-marshall</artifactId>
+            <version>8.1.3</version>
             <optional>true</optional>
         </dependency>
 
diff --git a/plugins/testng/pom.xml b/plugins/testng/pom.xml
index 62fdf9638..354793246 100644
--- a/plugins/testng/pom.xml
+++ b/plugins/testng/pom.xml
@@ -35,6 +35,7 @@
         <dependency>
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
+            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.springframework</groupId>
diff --git a/plugins/tiles/pom.xml b/plugins/tiles/pom.xml
index 821e2e7dc..e6068901b 100644
--- a/plugins/tiles/pom.xml
+++ b/plugins/tiles/pom.xml
@@ -67,11 +67,17 @@
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-digester3</artifactId>
         </dependency>
+        <dependency>
+            <groupId>jakarta.el</groupId>
+            <artifactId>jakarta.el-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
         <dependency>
             <groupId>org.glassfish</groupId>
             <artifactId>jakarta.el</artifactId>
-            <optional>true</optional>
+            <scope>test</scope>
         </dependency>
+
         <dependency>
             <groupId>org.apache.velocity</groupId>
             <artifactId>velocity-engine-core</artifactId>
@@ -82,7 +88,6 @@
             <artifactId>struts2-velocity-tools-view-jakarta</artifactId>
             <optional>true</optional>
         </dependency>
-
         <dependency>
             <groupId>org.apache.struts</groupId>
             <artifactId>struts2-velocity-tools-jsp-jakarta</artifactId>
@@ -103,11 +108,6 @@
             <artifactId>log4j-jcl</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.assertj</groupId>
-            <artifactId>assertj-core</artifactId>
-            <scope>test</scope>
-        </dependency>
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-test</artifactId>
diff --git a/plugins/velocity/pom.xml b/plugins/velocity/pom.xml
index af5b49cef..a6ddf860b 100644
--- a/plugins/velocity/pom.xml
+++ b/plugins/velocity/pom.xml
@@ -51,14 +51,13 @@
         </dependency>
 
         <dependency>
-            <groupId>mockobjects</groupId>
-            <artifactId>mockobjects-core</artifactId>
+            <groupId>org.apache.struts</groupId>
+            <artifactId>struts2-junit-plugin</artifactId>
             <scope>test</scope>
         </dependency>
-
         <dependency>
-            <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-junit-plugin</artifactId>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-web</artifactId>
             <scope>test</scope>
         </dependency>
 
diff --git 
a/plugins/velocity/src/test/java/org/apache/struts2/views/velocity/template/VelocityTemplateEngineTest.java
 
b/plugins/velocity/src/test/java/org/apache/struts2/views/velocity/template/VelocityTemplateEngineTest.java
index 1e97fa383..370d505ca 100644
--- 
a/plugins/velocity/src/test/java/org/apache/struts2/views/velocity/template/VelocityTemplateEngineTest.java
+++ 
b/plugins/velocity/src/test/java/org/apache/struts2/views/velocity/template/VelocityTemplateEngineTest.java
@@ -18,41 +18,42 @@
  */
 package org.apache.struts2.views.velocity.template;
 
-import com.mockobjects.dynamic.C;
-import com.mockobjects.dynamic.Mock;
-import org.apache.struts2.XWorkTestCase;
-import org.apache.struts2.inject.Container;
 import org.apache.struts2.components.template.FreemarkerTemplateEngine;
 import org.apache.struts2.components.template.JspTemplateEngine;
 import org.apache.struts2.components.template.Template;
 import org.apache.struts2.components.template.TemplateEngine;
 import org.apache.struts2.components.template.TemplateEngineManager;
+import org.apache.struts2.inject.Container;
+import org.junit.Before;
+import org.junit.Test;
 
-import java.util.HashSet;
+import java.util.Set;
 
-public class VelocityTemplateEngineTest extends XWorkTestCase {
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+public class VelocityTemplateEngineTest {
 
     private TemplateEngineManager mgr;
 
+    @Before
     public void setUp() throws Exception {
-        super.setUp();
-
         mgr = new TemplateEngineManager();
-        Mock mockContainer = new Mock(Container.class);
-        mockContainer.matchAndReturn("getInstance", 
C.args(C.eq(TemplateEngine.class), C.eq("jsp")), new JspTemplateEngine());
-        mockContainer.matchAndReturn("getInstance", 
C.args(C.eq(TemplateEngine.class), C.eq("vm")), new VelocityTemplateEngine());
-        mockContainer.matchAndReturn("getInstance", 
C.args(C.eq(TemplateEngine.class), C.eq("ftl")), new 
FreemarkerTemplateEngine());
-        mockContainer.matchAndReturn("getInstanceNames", 
C.args(C.eq(TemplateEngine.class)), new HashSet<String>() {{
-            add("jsp");
-            add("vm");
-            add("ftl");
-        }});
 
-        mgr.setContainer((Container) mockContainer.proxy());
+        var mockContainer = mock(Container.class);
+        when(mockContainer.getInstance(TemplateEngine.class, 
"jsp")).thenReturn(new JspTemplateEngine());
+        when(mockContainer.getInstance(TemplateEngine.class, 
"vm")).thenReturn(new VelocityTemplateEngine());
+        when(mockContainer.getInstance(TemplateEngine.class, 
"ftl")).thenReturn(new FreemarkerTemplateEngine());
+        
when(mockContainer.getInstanceNames(TemplateEngine.class)).thenReturn(Set.of("jsp",
 "vm", "ftl"));
+
+        mgr.setContainer(mockContainer);
         mgr.setDefaultTemplateType("jsp");
     }
 
-    public void testTemplateTypeFromTemplateNameAndDefaults() {
+    @Test
+    public void templateTypeFromTemplateNameAndDefaults() {
 
         TemplateEngine engine = mgr.getTemplateEngine(new 
Template("/template", "simple", "foo"), null);
         assertTrue(engine instanceof JspTemplateEngine);
@@ -60,7 +61,8 @@ public class VelocityTemplateEngineTest extends XWorkTestCase 
{
         assertTrue(engine instanceof VelocityTemplateEngine);
     }
 
-    public void testTemplateTypeOverrides() {
+    @Test
+    public void templateTypeOverrides() {
         TemplateEngine engine = mgr.getTemplateEngine(new 
Template("/template", "simple", "foo"), "ftl");
         assertTrue(engine instanceof FreemarkerTemplateEngine);
         engine = mgr.getTemplateEngine(new Template("/template", "simple", 
"foo.vm"), "ftl");
@@ -69,7 +71,8 @@ public class VelocityTemplateEngineTest extends XWorkTestCase 
{
         assertTrue(engine instanceof FreemarkerTemplateEngine);
     }
 
-    public void testTemplateTypeUsesDefaultWhenNotSetInConfiguration() {
+    @Test
+    public void templateTypeUsesDefaultWhenNotSetInConfiguration() {
         mgr.setDefaultTemplateType(null);
         TemplateEngine engine = mgr.getTemplateEngine(new 
Template("/template", "simple", "foo"), null);
         Template template = new Template("/template", "simple", "foo." + 
TemplateEngineManager.DEFAULT_TEMPLATE_TYPE);
@@ -77,8 +80,4 @@ public class VelocityTemplateEngineTest extends XWorkTestCase 
{
         assertEquals(engine.getClass(), defaultTemplateEngine.getClass());
     }
 
-    protected void tearDown() throws Exception {
-        super.tearDown();
-    }
-
-}
\ No newline at end of file
+}
diff --git a/pom.xml b/pom.xml
index d4f9db62a..ec1c8a9b6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -106,24 +106,22 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         
<project.build.outputTimestamp>2025-02-17T09:41:25Z</project.build.outputTimestamp>
         <maven.compiler.release>17</maven.compiler.release>
-        <maven.compiler.source>17</maven.compiler.source>
-        <maven.compiler.target>17</maven.compiler.target>
 
         <!-- dependency versions in alphanumeric order -->
         <asm.version>9.7.1</asm.version>
-        <byte-buddy.version>1.16.1</byte-buddy.version>
+        <byte-buddy.version>1.17.1</byte-buddy.version>
         <freemarker.version>2.3.34</freemarker.version>
-        <hibernate-validator.version>8.0.1.Final</hibernate-validator.version>
+        <hibernate-validator.version>8.0.2.Final</hibernate-validator.version>
         <jackson.version>2.18.2</jackson.version>
+        <jakarta-ee.version>10.0.0</jakarta-ee.version>
         <log4j2.version>2.24.3</log4j2.version>
         <maven-surefire-plugin.version>3.5.2</maven-surefire-plugin.version>
-        <mockito.version>5.8.0</mockito.version>
+        <mockito.version>5.15.2</mockito.version>
         <ognl.version>3.3.5</ognl.version>
         <slf4j.version>2.0.16</slf4j.version>
-        <spring.platformVersion>6.0.13</spring.platformVersion>
-        <tiles.version>3.0.8</tiles.version>
-        <tiles-request.version>1.0.7</tiles-request.version>
+        <spring.version>6.2.3</spring.version>
         <velocity-tools.version>3.1</velocity-tools.version>
+        <weld.version>5.1.2.Final</weld.version>
 
         <!-- Site generation -->
         <fluido-skin.version>1.9</fluido-skin.version>
@@ -587,7 +585,6 @@
                 <artifactId>struts2-velocity-plugin</artifactId>
                 <version>${project.version}</version>
             </dependency>
-
             <dependency>
                 <groupId>org.apache.struts</groupId>
                 <artifactId>struts2-xslt-plugin</artifactId>
@@ -612,25 +609,22 @@
                 <artifactId>velocity-engine-core</artifactId>
                 <version>2.4.1</version>
             </dependency>
-
+            <dependency>
+                <groupId>org.apache.velocity.tools</groupId>
+                <artifactId>velocity-tools-generic</artifactId>
+                <version>${velocity-tools.version}</version>
+            </dependency>
             <dependency>
                 <groupId>org.apache.struts</groupId>
                 <artifactId>struts2-velocity-tools-view-jakarta</artifactId>
                 <version>${project.version}</version>
             </dependency>
-
             <dependency>
                 <groupId>org.apache.struts</groupId>
                 <artifactId>struts2-velocity-tools-jsp-jakarta</artifactId>
                 <version>${project.version}</version>
             </dependency>
 
-            <dependency>
-                <groupId>org.apache.velocity.tools</groupId>
-                <artifactId>velocity-tools-generic</artifactId>
-                <version>${velocity-tools.version}</version>
-            </dependency>
-
             <dependency>
                 <groupId>ognl</groupId>
                 <artifactId>ognl</artifactId>
@@ -648,65 +642,18 @@
             </dependency>
 
             <dependency>
-                <groupId>org.apache.commons</groupId>
-                <artifactId>commons-digester3</artifactId>
-                <version>3.2</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>commons-logging</groupId>
-                        <artifactId>commons-logging</artifactId>
-                    </exclusion>
-                    <exclusion>
-                        <groupId>asm</groupId>
-                        <artifactId>asm</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-            <dependency>
-                <groupId>junit</groupId>
-                <artifactId>junit</artifactId>
-                <version>4.13.2</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.easymock</groupId>
-                <artifactId>easymock</artifactId>
-                <version>5.4.0</version>
-                <scope>test</scope>
-            </dependency>
-
-            <dependency>
-                <groupId>org.awaitility</groupId>
-                <artifactId>awaitility</artifactId>
-                <version>4.2.2</version>
-                <scope>test</scope>
-            </dependency>
-
-            <dependency>
-                <groupId>jakarta.servlet</groupId>
-                <artifactId>jakarta.servlet-api</artifactId>
-                <version>6.0.0</version>
-                <scope>provided</scope>
+                <groupId>jakarta.platform</groupId>
+                <artifactId>jakarta.jakartaee-bom</artifactId>
+                <version>${jakarta-ee.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
             </dependency>
 
             <dependency>
                 <groupId>org.glassfish</groupId>
                 <artifactId>jakarta.el</artifactId>
                 <version>5.0.0-M1</version>
-            </dependency>
-
-            <dependency>
-                <groupId>jakarta.el</groupId>
-                <artifactId>jakarta.el-api</artifactId>
-                <version>5.0.0</version>
-            </dependency>
-
-            <dependency>
-                <groupId>jakarta.servlet.jsp</groupId>
-                <artifactId>jakarta.servlet.jsp-api</artifactId>
-                <version>3.1.0</version>
-                <scope>provided</scope>
+                <scope>test</scope>
             </dependency>
 
             <!-- Commons -->
@@ -756,47 +703,52 @@
                 <artifactId>commons-validator</artifactId>
                 <version>1.9.0</version>
             </dependency>
-
-            <!-- Mocks for unit testing (by Spring) -->
-            <dependency>
-                <groupId>org.springframework</groupId>
-                <artifactId>spring-core</artifactId>
-                <version>${spring.platformVersion}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.springframework</groupId>
-                <artifactId>spring-context</artifactId>
-                <version>${spring.platformVersion}</version>
-            </dependency>
             <dependency>
-                <groupId>org.springframework</groupId>
-                <artifactId>spring-aop</artifactId>
-                <version>${spring.platformVersion}</version>
+                <groupId>org.apache.commons</groupId>
+                <artifactId>commons-compress</artifactId>
+                <version>1.27.1</version>
             </dependency>
             <dependency>
-                <groupId>org.springframework</groupId>
-                <artifactId>spring-aspects</artifactId>
-                <version>${spring.platformVersion}</version>
+                <groupId>org.apache.commons</groupId>
+                <artifactId>commons-digester3</artifactId>
+                <version>3.2</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>commons-logging</groupId>
+                        <artifactId>commons-logging</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>asm</groupId>
+                        <artifactId>asm</artifactId>
+                    </exclusion>
+                </exclusions>
             </dependency>
+
             <dependency>
                 <groupId>org.springframework</groupId>
-                <artifactId>spring-beans</artifactId>
-                <version>${spring.platformVersion}</version>
+                <artifactId>spring-framework-bom</artifactId>
+                <version>${spring.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
             </dependency>
+
             <dependency>
-                <groupId>org.springframework</groupId>
-                <artifactId>spring-test</artifactId>
-                <version>${spring.platformVersion}</version>
+                <groupId>junit</groupId>
+                <artifactId>junit</artifactId>
+                <version>4.13.2</version>
+                <scope>test</scope>
             </dependency>
             <dependency>
-                <groupId>org.springframework</groupId>
-                <artifactId>spring-context-support</artifactId>
-                <version>${spring.platformVersion}</version>
+                <groupId>org.easymock</groupId>
+                <artifactId>easymock</artifactId>
+                <version>5.4.0</version>
+                <scope>test</scope>
             </dependency>
             <dependency>
-                <groupId>org.springframework</groupId>
-                <artifactId>spring-web</artifactId>
-                <version>${spring.platformVersion}</version>
+                <groupId>org.awaitility</groupId>
+                <artifactId>awaitility</artifactId>
+                <version>4.2.2</version>
+                <scope>test</scope>
             </dependency>
             <dependency>
                 <groupId>mockobjects</groupId>
@@ -810,21 +762,18 @@
                 <version>4.9.0</version>
                 <scope>test</scope>
             </dependency>
-
             <dependency>
                 <groupId>jmock</groupId>
                 <artifactId>jmock</artifactId>
                 <version>1.2.0</version>
                 <scope>test</scope>
             </dependency>
-
             <dependency>
                 <groupId>org.assertj</groupId>
                 <artifactId>assertj-core</artifactId>
-                <version>3.26.3</version>
+                <version>3.27.3</version>
                 <scope>test</scope>
             </dependency>
-
             <dependency>
                 <groupId>org.mockito</groupId>
                 <artifactId>mockito-core</artifactId>
@@ -843,6 +792,12 @@
                 <version>${byte-buddy.version}</version>
                 <scope>test</scope>
             </dependency>
+            <dependency>
+                <groupId>org.testng</groupId>
+                <artifactId>testng</artifactId>
+                <version>7.11.0</version>
+                <scope>test</scope>
+            </dependency>
 
             <dependency>
                 <groupId>org.slf4j</groupId>
@@ -857,34 +812,10 @@
 
             <dependency>
                 <groupId>org.apache.logging.log4j</groupId>
-                <artifactId>log4j-api</artifactId>
-                <version>${log4j2.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.logging.log4j</groupId>
-                <artifactId>log4j-core</artifactId>
-                <version>${log4j2.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.logging.log4j</groupId>
-                <artifactId>log4j-jcl</artifactId>
-                <version>${log4j2.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.logging.log4j</groupId>
-                <artifactId>log4j-slf4j-impl</artifactId>
+                <artifactId>log4j-bom</artifactId>
                 <version>${log4j2.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.commons</groupId>
-                <artifactId>commons-compress</artifactId>
-                <version>1.27.1</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.testng</groupId>
-                <artifactId>testng</artifactId>
-                <version>7.5.1</version><!-- the latest version supporting 
Java 1.8 -->
+                <type>pom</type>
+                <scope>import</scope>
             </dependency>
 
             <dependency>
@@ -900,52 +831,12 @@
             </dependency>
 
             <dependency>
-                <groupId>com.fasterxml.jackson.core</groupId>
-                <artifactId>jackson-core</artifactId>
-                <version>${jackson.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.fasterxml.jackson.core</groupId>
-                <artifactId>jackson-databind</artifactId>
-                <version>${jackson.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.fasterxml.jackson.dataformat</groupId>
-                <artifactId>jackson-dataformat-xml</artifactId>
+                <groupId>com.fasterxml.jackson</groupId>
+                <artifactId>jackson-bom</artifactId>
                 <version>${jackson.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
             </dependency>
-
-            <dependency>
-                <groupId>org.apache.juneau</groupId>
-                <artifactId>juneau-marshall</artifactId>
-                <version>8.1.3</version>
-            </dependency>
-
-            <!-- CDI & Weld -->
-            <dependency>
-                <groupId>jakarta.enterprise</groupId>
-                <artifactId>jakarta.enterprise.cdi-api</artifactId>
-                <version>4.0.0</version>
-            </dependency>
-
-            <dependency>
-                <groupId>org.jboss.weld</groupId>
-                <artifactId>weld-core-impl</artifactId>
-                <version>5.1.2.Final</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>jakarta.annotation</groupId>
-                        <artifactId>jakarta.annotation-api</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
-
-            <dependency>
-                <groupId>org.jboss.weld.se</groupId>
-                <artifactId>weld-se-core</artifactId>
-                <version>5.1.2.Final</version>
-            </dependency>
-
         </dependencies>
     </dependencyManagement>
 


Reply via email to