diff --git a/pom.xml b/pom.xml
index 13dc68eb..5625b6fc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.5.8
+ 4.0.0
@@ -19,7 +19,6 @@
2.8.14
1.6.3
7.33.0
- 5.13.4
0.8.14
@@ -74,6 +73,17 @@
spring-security-test
test
+
+ org.springframework.boot
+ spring-boot-resttestclient
+ test
+
+
+ org.springframework.boot
+ spring-boot-starter-webmvc-test
+ test
+
+
diff --git a/src/main/java/fr/insee/genesis/configuration/LogRequestFilter.java b/src/main/java/fr/insee/genesis/configuration/LogRequestFilter.java
index 3a18fc01..e93edcdb 100644
--- a/src/main/java/fr/insee/genesis/configuration/LogRequestFilter.java
+++ b/src/main/java/fr/insee/genesis/configuration/LogRequestFilter.java
@@ -32,9 +32,10 @@ public class LogRequestFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
+ int cacheLimit = -1;//<0 means no limit
//Cache request to avoid calling twice the same inputStream
- ContentCachingRequestWrapper req = new ContentCachingRequestWrapper(request);
+ ContentCachingRequestWrapper req = new ContentCachingRequestWrapper(request, cacheLimit);
ContentCachingResponseWrapper resp = new ContentCachingResponseWrapper(response);
log.info(REQUEST_MESSAGE_FORMAT,
diff --git a/src/main/java/fr/insee/genesis/controller/rest/responses/ResponseController.java b/src/main/java/fr/insee/genesis/controller/rest/responses/ResponseController.java
index bf0a6dea..26eb74bd 100644
--- a/src/main/java/fr/insee/genesis/controller/rest/responses/ResponseController.java
+++ b/src/main/java/fr/insee/genesis/controller/rest/responses/ResponseController.java
@@ -35,10 +35,10 @@
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
+import org.jspecify.annotations.Nullable;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
-import org.springframework.lang.Nullable;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.DeleteMapping;
diff --git a/src/main/java/fr/insee/genesis/domain/model/surveyunit/Mode.java b/src/main/java/fr/insee/genesis/domain/model/surveyunit/Mode.java
index cbf45b86..4d18100f 100644
--- a/src/main/java/fr/insee/genesis/domain/model/surveyunit/Mode.java
+++ b/src/main/java/fr/insee/genesis/domain/model/surveyunit/Mode.java
@@ -2,7 +2,7 @@
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
-import org.springframework.lang.Nullable;
+import org.jspecify.annotations.Nullable;
@Getter
public enum Mode {
diff --git a/src/test/java/cucumber/functional_tests/LunaticModelDefinitions.java b/src/test/java/cucumber/functional_tests/LunaticModelDefinitions.java
index efb5916c..462e7849 100644
--- a/src/test/java/cucumber/functional_tests/LunaticModelDefinitions.java
+++ b/src/test/java/cucumber/functional_tests/LunaticModelDefinitions.java
@@ -26,7 +26,7 @@
import lombok.extern.slf4j.Slf4j;
import org.assertj.core.api.Assertions;
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.test.web.server.LocalServerPort;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
diff --git a/src/test/java/cucumber/functional_tests/RawDataDefinitions.java b/src/test/java/cucumber/functional_tests/RawDataDefinitions.java
index 137ffd4a..0583211f 100644
--- a/src/test/java/cucumber/functional_tests/RawDataDefinitions.java
+++ b/src/test/java/cucumber/functional_tests/RawDataDefinitions.java
@@ -29,7 +29,8 @@
import lombok.extern.slf4j.Slf4j;
import org.assertj.core.api.Assertions;
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;
@@ -51,6 +52,7 @@
@Slf4j
@ContextConfiguration(classes = CucumberSpringConfiguration.class)
+@AutoConfigureTestRestTemplate
public class RawDataDefinitions {
diff --git a/src/test/java/cucumber/functional_tests/config/CucumberSpringConfiguration.java b/src/test/java/cucumber/functional_tests/config/CucumberSpringConfiguration.java
index 81c8ef3d..9a2425d3 100644
--- a/src/test/java/cucumber/functional_tests/config/CucumberSpringConfiguration.java
+++ b/src/test/java/cucumber/functional_tests/config/CucumberSpringConfiguration.java
@@ -1,20 +1,12 @@
package cucumber.functional_tests.config;
import fr.insee.genesis.GenesisApi;
-import fr.insee.genesis.infrastructure.repository.ContextualExternalVariableMongoDBRepository;
-import fr.insee.genesis.infrastructure.repository.ContextualPreviousVariableMongoDBRepository;
-import fr.insee.genesis.infrastructure.repository.DataProcessingContextMongoDBRepository;
-import fr.insee.genesis.infrastructure.repository.LastJsonExtractionMongoDBRepository;
-import fr.insee.genesis.infrastructure.repository.LunaticJsonMongoDBRepository;
-import fr.insee.genesis.infrastructure.repository.LunaticModelMongoDBRepository;
-import fr.insee.genesis.infrastructure.repository.QuestionnaireMetadataMongoDBRepository;
-import fr.insee.genesis.infrastructure.repository.RundeckExecutionDBRepository;
-import fr.insee.genesis.infrastructure.repository.SurveyUnitMongoDBRepository;
-import fr.insee.genesis.infrastructure.repository.VariableTypeMongoDBRepository;
+import fr.insee.genesis.infrastructure.repository.*;
import io.cucumber.spring.CucumberContextConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
-import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
+import org.springframework.boot.data.mongodb.autoconfigure.DataMongoAutoConfiguration;
+import org.springframework.boot.mongodb.autoconfigure.MongoAutoConfiguration;
+import org.springframework.boot.resttestclient.autoconfigure.AutoConfigureTestRestTemplate;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.test.context.ActiveProfiles;
@@ -23,7 +15,8 @@
@CucumberContextConfiguration
@SpringBootTest(classes = GenesisApi.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ActiveProfiles("test-cucumber")
-@EnableAutoConfiguration(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})
+@EnableAutoConfiguration(exclude = {MongoAutoConfiguration.class, DataMongoAutoConfiguration.class})
+@AutoConfigureTestRestTemplate
public class CucumberSpringConfiguration {
@MockitoBean
private MongoTemplate mongoTemplate;
diff --git a/src/test/java/fr/insee/genesis/controller/rest/ControllerAccessTest.java b/src/test/java/fr/insee/genesis/controller/rest/ControllerAccessTest.java
index 1d29e9fa..bd9d65d8 100644
--- a/src/test/java/fr/insee/genesis/controller/rest/ControllerAccessTest.java
+++ b/src/test/java/fr/insee/genesis/controller/rest/ControllerAccessTest.java
@@ -3,16 +3,7 @@
import fr.insee.genesis.domain.ports.api.DataProcessingContextApiPort;
import fr.insee.genesis.domain.ports.api.LunaticJsonRawDataApiPort;
import fr.insee.genesis.domain.ports.api.SurveyUnitApiPort;
-import fr.insee.genesis.infrastructure.repository.ContextualExternalVariableMongoDBRepository;
-import fr.insee.genesis.infrastructure.repository.ContextualPreviousVariableMongoDBRepository;
-import fr.insee.genesis.infrastructure.repository.DataProcessingContextMongoDBRepository;
-import fr.insee.genesis.infrastructure.repository.LastJsonExtractionMongoDBRepository;
-import fr.insee.genesis.infrastructure.repository.LunaticJsonMongoDBRepository;
-import fr.insee.genesis.infrastructure.repository.LunaticModelMongoDBRepository;
-import fr.insee.genesis.infrastructure.repository.QuestionnaireMetadataMongoDBRepository;
-import fr.insee.genesis.infrastructure.repository.RundeckExecutionDBRepository;
-import fr.insee.genesis.infrastructure.repository.SurveyUnitMongoDBRepository;
-import fr.insee.genesis.infrastructure.repository.VariableTypeMongoDBRepository;
+import fr.insee.genesis.infrastructure.repository.*;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
@@ -22,10 +13,10 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
-import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.data.mongodb.autoconfigure.DataMongoAutoConfiguration;
+import org.springframework.boot.mongodb.autoconfigure.MongoAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.http.HttpMethod;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
@@ -50,11 +41,10 @@
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-
@SpringBootTest
@AutoConfigureMockMvc
@ActiveProfiles("test")
-@EnableAutoConfiguration(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})
+@EnableAutoConfiguration(exclude = {MongoAutoConfiguration.class, DataMongoAutoConfiguration.class})
class ControllerAccessTest {
// Constants for user roles