diff --git a/deprecated/alfresco-transformer-base/pom.xml b/deprecated/alfresco-transformer-base/pom.xml
index 85319b48..1a081978 100644
--- a/deprecated/alfresco-transformer-base/pom.xml
+++ b/deprecated/alfresco-transformer-base/pom.xml
@@ -78,6 +78,11 @@
com.google.guava
guava
+
+ org.springframework.boot
+ spring-boot-starter-webmvc-test
+ test
+
diff --git a/deprecated/alfresco-transformer-base/src/test/java/org/alfresco/transformer/AbstractHttpRequestTest.java b/deprecated/alfresco-transformer-base/src/test/java/org/alfresco/transformer/AbstractHttpRequestTest.java
index 1448fb03..90c462c9 100644
--- a/deprecated/alfresco-transformer-base/src/test/java/org/alfresco/transformer/AbstractHttpRequestTest.java
+++ b/deprecated/alfresco-transformer-base/src/test/java/org/alfresco/transformer/AbstractHttpRequestTest.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Transform Core
* %%
- * Copyright (C) 2005 - 2023 Alfresco Software Limited
+ * Copyright (C) 2005 - 2026 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -36,7 +36,8 @@ import static org.alfresco.transform.common.RequestParamMap.ENDPOINT_TRANSFORM;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.resttestclient.TestRestTemplate;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
@@ -49,6 +50,7 @@ import org.springframework.util.LinkedMultiValueMap;
* Super class for testing controllers with a server. Includes tests for the AbstractTransformerController itself. Note: Currently uses json rather than HTML as json is returned by this spring boot test harness.
*/
@Deprecated
+@AutoConfigureTestRestTemplate
public abstract class AbstractHttpRequestTest
{
@LocalServerPort
diff --git a/deprecated/alfresco-transformer-base/src/test/java/org/alfresco/transformer/AbstractTransformerControllerTest.java b/deprecated/alfresco-transformer-base/src/test/java/org/alfresco/transformer/AbstractTransformerControllerTest.java
index a16d8fce..9e4d32f5 100644
--- a/deprecated/alfresco-transformer-base/src/test/java/org/alfresco/transformer/AbstractTransformerControllerTest.java
+++ b/deprecated/alfresco-transformer-base/src/test/java/org/alfresco/transformer/AbstractTransformerControllerTest.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Transform Core
* %%
- * Copyright (C) 2005 - 2022 Alfresco Software Limited
+ * Copyright (C) 2005 - 2026 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -67,13 +67,13 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.test.mock.mockito.MockBean;
-import org.springframework.boot.test.mock.mockito.SpyBean;
import org.springframework.core.io.ClassPathResource;
import org.springframework.mock.web.MockMultipartFile;
+import org.springframework.test.context.bean.override.mockito.MockitoBean;
+import org.springframework.test.context.bean.override.mockito.MockitoSpyBean;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.test.web.servlet.MockMvc;
-import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
+import org.springframework.test.web.servlet.request.MockMultipartHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.alfresco.transform.client.model.InternalContext;
@@ -107,10 +107,10 @@ public abstract class AbstractTransformerControllerTest
@Autowired
protected ObjectMapper objectMapper;
- @MockBean
+ @MockitoBean
protected AlfrescoSharedFileStoreClient alfrescoSharedFileStoreClient;
- @SpyBean
+ @MockitoSpyBean
protected TransformServiceRegistry transformRegistry;
@Value("${transform.core.version}")
@@ -222,7 +222,7 @@ public abstract class AbstractTransformerControllerTest
return testFileUrl == null ? null : testFile;
}
- protected MockHttpServletRequestBuilder mockMvcRequest(String url, MockMultipartFile sourceFile, String... params)
+ protected MockMultipartHttpServletRequestBuilder mockMvcRequest(String url, MockMultipartFile sourceFile, String... params)
{
if (sourceFile == null)
{
@@ -234,10 +234,10 @@ public abstract class AbstractTransformerControllerTest
}
}
- private MockHttpServletRequestBuilder mockMvcRequestWithoutMockMultipartFile(String url,
+ private MockMultipartHttpServletRequestBuilder mockMvcRequestWithoutMockMultipartFile(String url,
String... params)
{
- MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.multipart(ENDPOINT_TRANSFORM);
+ MockMultipartHttpServletRequestBuilder builder = MockMvcRequestBuilders.multipart(ENDPOINT_TRANSFORM);
if (params.length % 2 != 0)
{
@@ -251,10 +251,10 @@ public abstract class AbstractTransformerControllerTest
return builder;
}
- private MockHttpServletRequestBuilder mockMvcRequestWithMockMultipartFile(String url, MockMultipartFile sourceFile,
+ private MockMultipartHttpServletRequestBuilder mockMvcRequestWithMockMultipartFile(String url, MockMultipartFile sourceFile,
String... params)
{
- MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.multipart(ENDPOINT_TRANSFORM).file(
+ MockMultipartHttpServletRequestBuilder builder = MockMvcRequestBuilders.multipart(ENDPOINT_TRANSFORM).file(
sourceFile);
if (params.length % 2 != 0)
diff --git a/engines/aio/pom.xml b/engines/aio/pom.xml
index 552cb3b5..71d5aa93 100644
--- a/engines/aio/pom.xml
+++ b/engines/aio/pom.xml
@@ -137,6 +137,11 @@
testcontainers
test
+
+ org.springframework.boot
+ spring-boot-starter-webmvc-test
+ test
+
diff --git a/engines/aio/src/test/java/org/alfresco/transform/aio/AIOTest.java b/engines/aio/src/test/java/org/alfresco/transform/aio/AIOTest.java
index ca3d6d3f..434e83d4 100644
--- a/engines/aio/src/test/java/org/alfresco/transform/aio/AIOTest.java
+++ b/engines/aio/src/test/java/org/alfresco/transform/aio/AIOTest.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Transform Core
* %%
- * Copyright (C) 2005 - 2025 Alfresco Software Limited
+ * Copyright (C) 2005 - 2026 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -43,7 +43,7 @@ import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.mock.web.MockMultipartFile;
-import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
+import org.springframework.test.web.servlet.request.MockMultipartHttpServletRequestBuilder;
import org.alfresco.transform.base.AbstractBaseTest;
import org.alfresco.transform.base.TransformController;
@@ -73,7 +73,7 @@ public class AIOTest extends AbstractBaseTest
@Override
// Add extra required parameters to the request.
- protected MockHttpServletRequestBuilder mockMvcRequest(String url, MockMultipartFile sourceFile, String... params)
+ protected MockMultipartHttpServletRequestBuilder mockMvcRequest(String url, MockMultipartFile sourceFile, String... params)
{
return super.mockMvcRequest(url, sourceFile, params)
.param("targetMimetype", targetMimetype)
diff --git a/engines/base/pom.xml b/engines/base/pom.xml
index 4b1de53e..0e954a61 100644
--- a/engines/base/pom.xml
+++ b/engines/base/pom.xml
@@ -30,7 +30,7 @@
org.springframework.boot
- spring-boot-starter-aop
+ spring-boot-starter-aspectj
org.springframework.boot
@@ -49,6 +49,7 @@
org.springframework.retry
spring-retry
+ ${spring-retry.version}
io.micrometer
@@ -112,6 +113,22 @@
testcontainers
test
+
+ org.springframework.boot
+ spring-boot-jackson2
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-webmvc-test
+ test
+
+
+ org.springframework.boot
+ spring-boot-starter-restclient
+
diff --git a/engines/base/src/main/java/org/alfresco/transform/base/Application.java b/engines/base/src/main/java/org/alfresco/transform/base/Application.java
index 2f33ad29..dfc72182 100644
--- a/engines/base/src/main/java/org/alfresco/transform/base/Application.java
+++ b/engines/base/src/main/java/org/alfresco/transform/base/Application.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Transform Core
* %%
- * Copyright (C) 2005 - 2022 Alfresco Software Limited
+ * Copyright (C) 2005 - 2026 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -29,8 +29,8 @@ package org.alfresco.transform.base;
import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
-import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.micrometer.metrics.autoconfigure.MeterRegistryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.core.task.SimpleAsyncTaskExecutor;
import org.springframework.core.task.TaskExecutor;
diff --git a/engines/base/src/main/java/org/alfresco/transform/base/sfs/SharedFileStoreClient.java b/engines/base/src/main/java/org/alfresco/transform/base/sfs/SharedFileStoreClient.java
index 6a2d2364..c6d55824 100644
--- a/engines/base/src/main/java/org/alfresco/transform/base/sfs/SharedFileStoreClient.java
+++ b/engines/base/src/main/java/org/alfresco/transform/base/sfs/SharedFileStoreClient.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Transform Core
* %%
- * Copyright (C) 2005 - 2023 Alfresco Software Limited
+ * Copyright (C) 2005 - 2026 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -142,8 +142,11 @@ public class SharedFileStoreClient
{
logger.debug(" Deleting intermediate file {}", fileReference);
- client.delete().uri(fileReference)
- .exchange().block();
+ client.delete()
+ .uri(fileReference)
+ .retrieve()
+ .toBodilessEntity()
+ .block();
}
catch (Exception e)
{
diff --git a/engines/base/src/test/java/org/alfresco/transform/base/AbstractBaseTest.java b/engines/base/src/test/java/org/alfresco/transform/base/AbstractBaseTest.java
index acba6539..6b5b3783 100644
--- a/engines/base/src/test/java/org/alfresco/transform/base/AbstractBaseTest.java
+++ b/engines/base/src/test/java/org/alfresco/transform/base/AbstractBaseTest.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Transform Core
* %%
- * Copyright (C) 2005 - 2022 Alfresco Software Limited
+ * Copyright (C) 2005 - 2026 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -58,17 +58,17 @@ import java.util.concurrent.atomic.AtomicLong;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.api.io.TempDir;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.mock.mockito.MockBean;
-import org.springframework.boot.test.mock.mockito.SpyBean;
+import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc;
import org.springframework.mock.web.MockMultipartFile;
+import org.springframework.test.context.bean.override.mockito.MockitoBean;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.ResultActions;
-import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
+import org.springframework.test.web.servlet.request.MockMultipartHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.alfresco.transform.base.executors.CommandExecutor;
@@ -86,6 +86,7 @@ import org.alfresco.transform.registry.TransformServiceRegistry;
* Super class for unit testing.
*/
@SpringBootTest(classes = {org.alfresco.transform.base.Application.class})
+@ExtendWith(org.mockito.junit.jupiter.MockitoExtension.class)
@AutoConfigureMockMvc
public abstract class AbstractBaseTest
{
@@ -105,10 +106,10 @@ public abstract class AbstractBaseTest
@Autowired
protected ObjectMapper objectMapper;
- @MockBean
+ @MockitoBean
protected SharedFileStoreClient sharedFileStoreClient;
- @SpyBean
+ @Autowired
protected TransformServiceRegistry transformRegistry;
protected String sourceExtension;
@@ -227,7 +228,7 @@ public abstract class AbstractBaseTest
return testFileUrl == null ? null : testFile;
}
- protected MockHttpServletRequestBuilder mockMvcRequest(String url, MockMultipartFile sourceFile, String... params)
+ protected MockMultipartHttpServletRequestBuilder mockMvcRequest(String url, MockMultipartFile sourceFile, String... params)
{
if (sourceFile == null)
{
@@ -239,9 +240,9 @@ public abstract class AbstractBaseTest
}
}
- private MockHttpServletRequestBuilder mockMvcRequestWithoutMockMultipartFile(String url, String... params)
+ private MockMultipartHttpServletRequestBuilder mockMvcRequestWithoutMockMultipartFile(String url, String... params)
{
- MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.multipart(url);
+ MockMultipartHttpServletRequestBuilder builder = MockMvcRequestBuilders.multipart(url);
if (params.length % 2 != 0)
{
@@ -255,10 +256,10 @@ public abstract class AbstractBaseTest
return builder;
}
- private MockHttpServletRequestBuilder mockMvcRequestWithMockMultipartFile(String url, MockMultipartFile sourceFile,
+ private MockMultipartHttpServletRequestBuilder mockMvcRequestWithMockMultipartFile(String url, MockMultipartFile sourceFile,
String... params)
{
- MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.multipart(ENDPOINT_TRANSFORM).file(sourceFile);
+ MockMultipartHttpServletRequestBuilder builder = MockMvcRequestBuilders.multipart(url).file(sourceFile);
if (params.length % 2 != 0)
{
@@ -330,6 +331,7 @@ public abstract class AbstractBaseTest
@Test
public void noExtensionSourceFilenameTest() throws Exception
{
+ options.clear();
sourceFile = new MockMultipartFile("file", "../quick", sourceMimetype, sourceFileBytes);
mockMvc.perform(
diff --git a/engines/base/src/test/java/org/alfresco/transform/base/TransformControllerAllInOneTest.java b/engines/base/src/test/java/org/alfresco/transform/base/TransformControllerAllInOneTest.java
index 53c0e940..f8ce4b8f 100644
--- a/engines/base/src/test/java/org/alfresco/transform/base/TransformControllerAllInOneTest.java
+++ b/engines/base/src/test/java/org/alfresco/transform/base/TransformControllerAllInOneTest.java
@@ -59,8 +59,8 @@ import java.util.concurrent.TimeUnit;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.web.servlet.MockMvc;
diff --git a/engines/base/src/test/java/org/alfresco/transform/base/TransformControllerTest.java b/engines/base/src/test/java/org/alfresco/transform/base/TransformControllerTest.java
index 9798ccaa..e2ed665a 100644
--- a/engines/base/src/test/java/org/alfresco/transform/base/TransformControllerTest.java
+++ b/engines/base/src/test/java/org/alfresco/transform/base/TransformControllerTest.java
@@ -85,14 +85,14 @@ import org.junit.jupiter.api.io.TempDir;
import org.mockito.stubbing.Answer;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc;
import org.springframework.core.io.Resource;
import org.springframework.core.io.UrlResource;
import org.springframework.http.ResponseEntity;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.bean.override.mockito.MockitoBean;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
@@ -132,7 +132,7 @@ public class TransformControllerTest
private String coreVersion;
@TempDir
public File tempDir;
- @MockBean
+ @MockitoBean
protected SharedFileStoreClient fakeSfsClient;
static void resetProbeForTesting(TransformController transformController)
diff --git a/engines/base/src/test/java/org/alfresco/transform/base/http/RestTest.java b/engines/base/src/test/java/org/alfresco/transform/base/http/RestTest.java
index c6fe51b2..375ad724 100644
--- a/engines/base/src/test/java/org/alfresco/transform/base/http/RestTest.java
+++ b/engines/base/src/test/java/org/alfresco/transform/base/http/RestTest.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Transform Core
* %%
- * Copyright (C) 2005 - 2022 Alfresco Software Limited
+ * Copyright (C) 2005 - 2026 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -40,13 +40,15 @@ import static org.alfresco.transform.common.RequestParamMap.TARGET_MIMETYPE;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.resttestclient.TestRestTemplate;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.web.util.HtmlUtils;
import org.alfresco.transform.base.fakes.FakeTransformEngineWithTwoCustomTransformers;
import org.alfresco.transform.base.fakes.FakeTransformerPdf2Png;
@@ -61,6 +63,7 @@ import org.alfresco.transform.base.fakes.FakeTransformerTxT2Pdf;
FakeTransformEngineWithTwoCustomTransformers.class,
FakeTransformerTxT2Pdf.class,
FakeTransformerPdf2Png.class})
+@AutoConfigureTestRestTemplate
public class RestTest
{
@Autowired
@@ -82,7 +85,7 @@ public class RestTest
ResponseEntity response = restTemplate.exchange(ENDPOINT_TRANSFORM, POST,
new HttpEntity<>(parameters, HEADERS), String.class, "");
- assertTrue(response.getBody().contains("Required request part 'file' is not present"));
+ assertTrue(HtmlUtils.htmlUnescape(response.getBody()).contains("Required request part 'file' is not present"));
}
@Test
diff --git a/engines/base/src/test/java/org/alfresco/transform/base/messaging/QueueTransformServiceTest.java b/engines/base/src/test/java/org/alfresco/transform/base/messaging/QueueTransformServiceTest.java
index 33779b2e..fe7fefbb 100644
--- a/engines/base/src/test/java/org/alfresco/transform/base/messaging/QueueTransformServiceTest.java
+++ b/engines/base/src/test/java/org/alfresco/transform/base/messaging/QueueTransformServiceTest.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Transform Core
* %%
- * Copyright (C) 2005 - 2023 Alfresco Software Limited
+ * Copyright (C) 2005 - 2026 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -44,23 +44,27 @@ import jakarta.jms.Message;
import org.apache.activemq.command.ActiveMQObjectMessage;
import org.apache.activemq.command.ActiveMQQueue;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
-import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jms.support.converter.MessageConversionException;
+import org.springframework.test.context.bean.override.mockito.MockitoBean;
import org.alfresco.transform.base.TransformController;
import org.alfresco.transform.client.model.TransformReply;
import org.alfresco.transform.client.model.TransformRequest;
@SpringBootTest(classes = {org.alfresco.transform.base.Application.class})
+@ExtendWith(MockitoExtension.class)
public class QueueTransformServiceTest
{
- @Mock
+ @MockitoBean
private TransformController transformController;
- @Mock
+ @MockitoBean
private TransformMessageConverter transformMessageConverter;
- @Mock
+ @MockitoBean
private TransformReplySender transformReplySender;
@InjectMocks
@@ -143,6 +147,7 @@ public class QueueTransformServiceTest
public void testConvertMessageThrowsJMSExceptionThenReplyWithInternalServerError()
throws JMSException
{
+ Mockito.reset(transformController);
ActiveMQObjectMessage msg = new ActiveMQObjectMessage();
msg.setCorrelationId("1234");
ActiveMQQueue destination = new ActiveMQQueue();
diff --git a/engines/base/src/test/java/org/alfresco/transform/base/registry/TransformRegistryRefreshTest.java b/engines/base/src/test/java/org/alfresco/transform/base/registry/TransformRegistryRefreshTest.java
index e528959a..ed10b412 100644
--- a/engines/base/src/test/java/org/alfresco/transform/base/registry/TransformRegistryRefreshTest.java
+++ b/engines/base/src/test/java/org/alfresco/transform/base/registry/TransformRegistryRefreshTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2015-2022 Alfresco Software, Ltd. All rights reserved.
+ * Copyright 2015-2026 Alfresco Software, Ltd. All rights reserved.
*
* License rights for this program may be obtained from Alfresco Software, Ltd.
* pursuant to a written agreement and any use of this program without such an
@@ -16,9 +16,8 @@ import com.google.common.collect.ImmutableMap;
import org.awaitility.Awaitility;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.mock.mockito.SpyBean;
+import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.util.ReflectionTestUtils;
@@ -36,7 +35,7 @@ import org.alfresco.transform.base.fakes.FakeTransformerTxT2Pdf;
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
public class TransformRegistryRefreshTest
{
- @SpyBean(proxyTargetAware = false)
+ @Autowired
private TransformRegistry transformRegistry;
@Autowired
private TransformConfigFromFiles transformConfigFromFiles;
diff --git a/engines/base/src/test/java/org/alfresco/transform/base/registry/TransformRegistryTest.java b/engines/base/src/test/java/org/alfresco/transform/base/registry/TransformRegistryTest.java
index 787d1090..522febbe 100644
--- a/engines/base/src/test/java/org/alfresco/transform/base/registry/TransformRegistryTest.java
+++ b/engines/base/src/test/java/org/alfresco/transform/base/registry/TransformRegistryTest.java
@@ -44,8 +44,8 @@ import com.google.common.collect.ImmutableSet;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc;
import org.springframework.test.util.ReflectionTestUtils;
import org.alfresco.transform.base.fakes.AbstractFakeTransformEngine;
diff --git a/engines/base/src/test/java/org/alfresco/transform/base/transform/FragmentHandlerTest.java b/engines/base/src/test/java/org/alfresco/transform/base/transform/FragmentHandlerTest.java
index 16945494..d1e3e246 100644
--- a/engines/base/src/test/java/org/alfresco/transform/base/transform/FragmentHandlerTest.java
+++ b/engines/base/src/test/java/org/alfresco/transform/base/transform/FragmentHandlerTest.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Transform Core
* %%
- * Copyright (C) 2022 - 2023 Alfresco Software Limited
+ * Copyright (C) 2022 - 2026 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -51,15 +51,15 @@ import com.google.common.collect.ImmutableList;
import org.apache.commons.lang3.tuple.Pair;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.bean.override.mockito.MockitoBean;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
@@ -85,11 +85,11 @@ public class FragmentHandlerTest
@Autowired
private MockMvc mockMvc;
- @MockBean
+ @MockitoBean
protected SharedFileStoreClient fakeSfsClient;
- @MockBean
+ @MockitoBean
private TransformReplySender transformReplySender;
- @MockBean
+ @MockitoBean
private ProbeTransform probeTransform;
private void assertFragments(String sourceText, String expectedError, List expectedLines)
diff --git a/engines/imagemagick/pom.xml b/engines/imagemagick/pom.xml
index f004ecf7..eff2967d 100644
--- a/engines/imagemagick/pom.xml
+++ b/engines/imagemagick/pom.xml
@@ -58,6 +58,11 @@
testcontainers
test
+
+ org.springframework.boot
+ spring-boot-starter-webmvc-test
+ test
+
diff --git a/engines/imagemagick/src/test/java/org/alfresco/transform/imagemagick/ImageMagickTest.java b/engines/imagemagick/src/test/java/org/alfresco/transform/imagemagick/ImageMagickTest.java
index dd0e3c4d..7f5e4749 100644
--- a/engines/imagemagick/src/test/java/org/alfresco/transform/imagemagick/ImageMagickTest.java
+++ b/engines/imagemagick/src/test/java/org/alfresco/transform/imagemagick/ImageMagickTest.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Transform Core
* %%
- * Copyright (C) 2005 - 2025 Alfresco Software Limited
+ * Copyright (C) 2005 - 2026 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -60,16 +60,17 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
-import org.mockito.Mock;
import org.mockito.stubbing.Answer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.mock.web.MockMultipartFile;
-import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
+import org.springframework.test.context.bean.override.mockito.MockitoBean;
+import org.springframework.test.web.servlet.request.MockMultipartHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.alfresco.transform.base.AbstractBaseTest;
@@ -84,6 +85,7 @@ import org.alfresco.transform.imagemagick.transformers.ImageMagickCommandExecuto
/**
* Test ImageMagick with mocked external command.
*/
+@AutoConfigureMockMvc
public class ImageMagickTest extends AbstractBaseTest
{
private static String PREFIX_IMAGE = "image/";
@@ -91,11 +93,11 @@ public class ImageMagickTest extends AbstractBaseTest
@Autowired
private ImageMagickCommandExecutor imageMagickCommandExecutor;
- @Mock
+ @MockitoBean
protected ExecutionResult mockExecutionResult;
- @Mock
+ @MockitoBean
protected RuntimeExec mockTransformCommand;
- @Mock
+ @MockitoBean
protected RuntimeExec mockCheckCommand;
@Value("${transform.core.imagemagick.exe}")
protected String EXE;
@@ -122,9 +124,9 @@ public class ImageMagickTest extends AbstractBaseTest
}
@Override
- protected MockHttpServletRequestBuilder mockMvcRequest(String url, MockMultipartFile sourceFile, String... params)
+ protected MockMultipartHttpServletRequestBuilder mockMvcRequest(String url, MockMultipartFile sourceFile, String... params)
{
- final MockHttpServletRequestBuilder builder = super.mockMvcRequest(url, sourceFile, params)
+ final MockMultipartHttpServletRequestBuilder builder = super.mockMvcRequest(url, sourceFile, params)
.param("targetMimetype", targetMimetype)
.param("sourceMimetype", sourceMimetype);
return builder;
diff --git a/engines/libreoffice/pom.xml b/engines/libreoffice/pom.xml
index 00f3001c..e1109db3 100644
--- a/engines/libreoffice/pom.xml
+++ b/engines/libreoffice/pom.xml
@@ -62,6 +62,11 @@
testcontainers
test
+
+ org.springframework.boot
+ spring-boot-starter-webmvc-test
+ test
+
diff --git a/engines/libreoffice/src/test/java/org/alfresco/transform/libreoffice/LibreOfficeTest.java b/engines/libreoffice/src/test/java/org/alfresco/transform/libreoffice/LibreOfficeTest.java
index 0e753350..7984ad5e 100644
--- a/engines/libreoffice/src/test/java/org/alfresco/transform/libreoffice/LibreOfficeTest.java
+++ b/engines/libreoffice/src/test/java/org/alfresco/transform/libreoffice/LibreOfficeTest.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Transform Core
* %%
- * Copyright (C) 2005 - 2022 Alfresco Software Limited
+ * Copyright (C) 2005 - 2026 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -59,17 +59,18 @@ import org.artofsolving.jodconverter.office.OfficeException;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.mockito.Mock;
-import org.mockito.Spy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.mock.web.MockMultipartFile;
+import org.springframework.test.context.bean.override.mockito.MockitoBean;
+import org.springframework.test.context.bean.override.mockito.MockitoSpyBean;
import org.springframework.test.util.ReflectionTestUtils;
-import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
+import org.springframework.test.web.servlet.request.MockMultipartHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.alfresco.transform.base.AbstractBaseTest;
@@ -84,18 +85,19 @@ import org.alfresco.transform.libreoffice.transformers.LibreOfficeTransformer;
/**
* Test LibreOffice with mocked external command.
*/
+@AutoConfigureMockMvc
public class LibreOfficeTest extends AbstractBaseTest
{
protected static String targetMimetype = MIMETYPE_PDF;
- @Autowired
+ @MockitoSpyBean
private LibreOfficeTransformer libreOfficeTransformer;
@Autowired
private CustomTransformers customTransformers;
- @Spy
+ @Autowired
private LibreOfficeTransformer spyLibreOfficeTransformer;
- @Mock
+ @MockitoBean
protected ExecutionResult mockExecutionResult;
@Value("${transform.core.libreoffice.path}")
@@ -162,9 +164,9 @@ public class LibreOfficeTest extends AbstractBaseTest
}
@Override
- protected MockHttpServletRequestBuilder mockMvcRequest(String url, MockMultipartFile sourceFile, String... params)
+ protected MockMultipartHttpServletRequestBuilder mockMvcRequest(String url, MockMultipartFile sourceFile, String... params)
{
- final MockHttpServletRequestBuilder builder = super.mockMvcRequest(url, sourceFile, params)
+ final MockMultipartHttpServletRequestBuilder builder = super.mockMvcRequest(url, sourceFile, params)
.param("targetMimetype", targetMimetype)
.param("sourceMimetype", sourceMimetype);
return builder;
diff --git a/engines/misc/pom.xml b/engines/misc/pom.xml
index b5856447..aba8e7ab 100644
--- a/engines/misc/pom.xml
+++ b/engines/misc/pom.xml
@@ -102,6 +102,11 @@
testcontainers
test
+
+ org.springframework.boot
+ spring-boot-starter-webmvc-test
+ test
+
diff --git a/engines/misc/src/test/java/org/alfresco/transform/misc/MiscTest.java b/engines/misc/src/test/java/org/alfresco/transform/misc/MiscTest.java
index 52abe699..eecbd052 100644
--- a/engines/misc/src/test/java/org/alfresco/transform/misc/MiscTest.java
+++ b/engines/misc/src/test/java/org/alfresco/transform/misc/MiscTest.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Transform Core
* %%
- * Copyright (C) 2005 - 2025 Alfresco Software Limited
+ * Copyright (C) 2005 - 2026 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -57,7 +57,7 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.test.web.servlet.MvcResult;
-import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
+import org.springframework.test.web.servlet.request.MockMultipartHttpServletRequestBuilder;
import org.alfresco.transform.base.AbstractBaseTest;
@@ -84,9 +84,9 @@ public class MiscTest extends AbstractBaseTest
}
@Override
- protected MockHttpServletRequestBuilder mockMvcRequest(String url, MockMultipartFile sourceFile, String... params)
+ protected MockMultipartHttpServletRequestBuilder mockMvcRequest(String url, MockMultipartFile sourceFile, String... params)
{
- final MockHttpServletRequestBuilder builder = super.mockMvcRequest(url, sourceFile, params)
+ final MockMultipartHttpServletRequestBuilder builder = super.mockMvcRequest(url, sourceFile, params)
.param("sourceEncoding", sourceEncoding)
.param("targetMimetype", targetMimetype)
.param("sourceMimetype", sourceMimetype)
@@ -451,7 +451,7 @@ public class MiscTest extends AbstractBaseTest
final MockMultipartFile sourceFile = new MockMultipartFile("file",
"test_file." + sourceExtension, sourceMimetype, content);
- final MockHttpServletRequestBuilder requestBuilder = super.mockMvcRequest(ENDPOINT_TRANSFORM, sourceFile)
+ final MockMultipartHttpServletRequestBuilder requestBuilder = super.mockMvcRequest(ENDPOINT_TRANSFORM, sourceFile)
.param(TARGET_MIMETYPE, targetMimetype)
.param(SOURCE_MIMETYPE, sourceMimetype);
diff --git a/engines/pdfrenderer/pom.xml b/engines/pdfrenderer/pom.xml
index d1d4c1a3..88278086 100644
--- a/engines/pdfrenderer/pom.xml
+++ b/engines/pdfrenderer/pom.xml
@@ -54,6 +54,11 @@
testcontainers
test
+
+ org.springframework.boot
+ spring-boot-starter-webmvc-test
+ test
+
diff --git a/engines/pdfrenderer/src/test/java/org/alfresco/transform/pdfrenderer/PdfRendererTest.java b/engines/pdfrenderer/src/test/java/org/alfresco/transform/pdfrenderer/PdfRendererTest.java
index 5bce24d3..1069b1e1 100644
--- a/engines/pdfrenderer/src/test/java/org/alfresco/transform/pdfrenderer/PdfRendererTest.java
+++ b/engines/pdfrenderer/src/test/java/org/alfresco/transform/pdfrenderer/PdfRendererTest.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Transform Core
* %%
- * Copyright (C) 2005 - 2022 Alfresco Software Limited
+ * Copyright (C) 2005 - 2026 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -59,7 +59,6 @@ import java.util.UUID;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.mockito.Mock;
import org.mockito.stubbing.Answer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -68,7 +67,8 @@ import org.springframework.core.io.Resource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.mock.web.MockMultipartFile;
-import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
+import org.springframework.test.context.bean.override.mockito.MockitoBean;
+import org.springframework.test.web.servlet.request.MockMultipartHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.alfresco.transform.base.AbstractBaseTest;
@@ -87,11 +87,11 @@ public class PdfRendererTest extends AbstractBaseTest
{
@Autowired
private PdfRendererTransformer pdfRendererTransformer;
- @Mock
+ @MockitoBean
private ExecutionResult mockExecutionResult;
- @Mock
+ @MockitoBean
protected RuntimeExec mockTransformCommand;
- @Mock
+ @MockitoBean
protected RuntimeExec mockCheckCommand;
@Value("${transform.core.pdfrenderer.exe}")
protected String execPath;
@@ -110,9 +110,9 @@ public class PdfRendererTest extends AbstractBaseTest
}
@Override
- protected MockHttpServletRequestBuilder mockMvcRequest(String url, MockMultipartFile sourceFile, String... params)
+ protected MockMultipartHttpServletRequestBuilder mockMvcRequest(String url, MockMultipartFile sourceFile, String... params)
{
- final MockHttpServletRequestBuilder builder = super.mockMvcRequest(url, sourceFile, params)
+ final MockMultipartHttpServletRequestBuilder builder = super.mockMvcRequest(url, sourceFile, params)
.param("targetMimetype", targetMimetype)
.param("sourceMimetype", sourceMimetype);
return builder;
diff --git a/engines/tika/pom.xml b/engines/tika/pom.xml
index 13100c47..6b9e9037 100644
--- a/engines/tika/pom.xml
+++ b/engines/tika/pom.xml
@@ -119,6 +119,11 @@
testcontainers
test
+
+ org.springframework.boot
+ spring-boot-starter-webmvc-test
+ test
+
diff --git a/engines/tika/src/test/java/org/alfresco/transform/tika/TikaTest.java b/engines/tika/src/test/java/org/alfresco/transform/tika/TikaTest.java
index 8a768aa2..a47f0e65 100644
--- a/engines/tika/src/test/java/org/alfresco/transform/tika/TikaTest.java
+++ b/engines/tika/src/test/java/org/alfresco/transform/tika/TikaTest.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Transform Core
* %%
- * Copyright (C) 2005 - 2025 Alfresco Software Limited
+ * Copyright (C) 2005 - 2026 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -29,6 +29,7 @@ package org.alfresco.transform.tika;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.when;
import static org.springframework.http.HttpHeaders.ACCEPT;
import static org.springframework.http.HttpHeaders.CONTENT_DISPOSITION;
@@ -97,7 +98,7 @@ import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.test.web.servlet.MvcResult;
-import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
+import org.springframework.test.web.servlet.request.MockMultipartHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.alfresco.transform.base.AbstractBaseTest;
@@ -156,9 +157,9 @@ public class TikaTest extends AbstractBaseTest
expectedTargetFileBytes = readTargetFileBytes ? readTestFile(targetExtension) : null;
sourceFile = new MockMultipartFile("file", "quick." + sourceExtension, sourceMimetype, sourceFileBytes);
- when(mockExecutionResult.getExitValue()).thenReturn(0);
- when(mockExecutionResult.getStdErr()).thenReturn("STDERROR");
- when(mockExecutionResult.getStdOut()).thenReturn("STDOUT");
+ lenient().when(mockExecutionResult.getExitValue()).thenReturn(0);
+ lenient().when(mockExecutionResult.getStdErr()).thenReturn("STDERROR");
+ lenient().when(mockExecutionResult.getStdOut()).thenReturn("STDOUT");
}
private void transform(String transform, String sourceExtension, String targetExtension,
@@ -170,7 +171,7 @@ public class TikaTest extends AbstractBaseTest
this.targetMimetype = targetMimetype;
System.out.println("Test " + transform + " " + sourceExtension + " to " + targetExtension);
- MockHttpServletRequestBuilder requestBuilder = includeContents == null
+ MockMultipartHttpServletRequestBuilder requestBuilder = includeContents == null
? mockMvcRequest(ENDPOINT_TRANSFORM, sourceFile,
"targetExtension", this.targetExtension)
: mockMvcRequest(ENDPOINT_TRANSFORM, sourceFile,
@@ -187,7 +188,7 @@ public class TikaTest extends AbstractBaseTest
@Override
// Add extra required parameters to the request.
- protected MockHttpServletRequestBuilder mockMvcRequest(String url, MockMultipartFile sourceFile, String... params)
+ protected MockMultipartHttpServletRequestBuilder mockMvcRequest(String url, MockMultipartFile sourceFile, String... params)
{
return super.mockMvcRequest(url, sourceFile, params)
.param("targetEncoding", targetEncoding)
@@ -384,7 +385,7 @@ public class TikaTest extends AbstractBaseTest
"\"{http://www.alfresco.org/model/content/1.0}description\":[\"desc1\",\"desc2\"]," +
"\"{http://www.alfresco.org/model/content/1.0}created\":\"created1\"}";
- MockHttpServletRequestBuilder requestBuilder = super.mockMvcRequest(ENDPOINT_TRANSFORM, sourceFile,
+ MockMultipartHttpServletRequestBuilder requestBuilder = super.mockMvcRequest(ENDPOINT_TRANSFORM, sourceFile,
"targetExtension", XLSX,
"metadata", metadata,
"targetMimetype", MIMETYPE_METADATA_EMBED,
@@ -450,7 +451,7 @@ public class TikaTest extends AbstractBaseTest
when(sharedFileStoreClient.retrieveFile(sourceFileRef)).thenReturn(response);
when(sharedFileStoreClient.saveFile(any()))
.thenReturn(new FileRefResponse(new FileRefEntity(targetFileRef)));
- when(mockExecutionResult.getExitValue()).thenReturn(0);
+ lenient().when(mockExecutionResult.getExitValue()).thenReturn(0);
// Update the Transformation Request with any specific params before sending it
updateTransformRequestWithSpecificOptions(transformRequest);
diff --git a/engines/tika/src/test/java/org/alfresco/transform/tika/TikaTransformationIT.java b/engines/tika/src/test/java/org/alfresco/transform/tika/TikaTransformationIT.java
index e55eb947..6c0b34b3 100644
--- a/engines/tika/src/test/java/org/alfresco/transform/tika/TikaTransformationIT.java
+++ b/engines/tika/src/test/java/org/alfresco/transform/tika/TikaTransformationIT.java
@@ -2,7 +2,7 @@
* #%L
* Alfresco Transform Core
* %%
- * Copyright (C) 2005 - 2025 Alfresco Software Limited
+ * Copyright (C) 2005 - 2026 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* -
@@ -171,7 +171,7 @@ public class TikaTransformationIT
/**
* Tests that while transforming a corrupted file to txt format, exception is thrown.
- *
+ *
* @param entry
* values to execute same test with different parameters.
*/
@@ -198,7 +198,7 @@ public class TikaTransformationIT
assertThat(expectedException).as(description)
.hasMessageContaining(TransformerMessages.CORRUPTED_FILE_ERROR)
.extracting(HttpClientErrorException::getStatusCode)
- .isEqualTo(HttpStatus.UNPROCESSABLE_ENTITY);
+ .isEqualTo(HttpStatus.UNPROCESSABLE_CONTENT);
}
private static Stream> engineTransformationsCorruptedToText()
diff --git a/model/pom.xml b/model/pom.xml
index 26d50f93..1c98e3a5 100644
--- a/model/pom.xml
+++ b/model/pom.xml
@@ -123,7 +123,7 @@
-
+
org.codehaus.mojo
diff --git a/pom.xml b/pom.xml
index a5f793db..5af5bd1a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.5.7
+ 4.0.2
@@ -35,6 +35,7 @@
false
3.18.0
+ 2.0.12