From 8ef53a58cb4abe4b4a5fc9d224e96ec034b56547 Mon Sep 17 00:00:00 2001 From: Abdelsalem Date: Mon, 3 Nov 2025 14:35:11 +0100 Subject: [PATCH 1/3] use springboot managed resttemplate Signed-off-by: Abdelsalem --- .../gridsuite/voltageinit/server/RestTemplateConfig.java | 5 +++-- .../server/service/NetworkModificationService.java | 6 ++++-- .../server/service/parameters/FilterService.java | 6 ++++-- .../server/service/parameters/FilterServiceTest.java | 3 ++- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/gridsuite/voltageinit/server/RestTemplateConfig.java b/src/main/java/org/gridsuite/voltageinit/server/RestTemplateConfig.java index 28cb198..a140b12 100644 --- a/src/main/java/org/gridsuite/voltageinit/server/RestTemplateConfig.java +++ b/src/main/java/org/gridsuite/voltageinit/server/RestTemplateConfig.java @@ -13,6 +13,7 @@ import com.powsybl.commons.report.ReportNodeDeserializer; import com.powsybl.commons.report.ReportNodeJsonModule; import com.powsybl.openreac.parameters.input.json.OpenReactJsonModule; +import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.converter.HttpMessageConverter; @@ -27,8 +28,8 @@ public class RestTemplateConfig { @Bean - public RestTemplate restTemplate() { - final RestTemplate restTemplate = new RestTemplate(); + public RestTemplate restTemplate(RestTemplateBuilder builder) { + final RestTemplate restTemplate = builder.build(); //find and replace Jackson message converter with our own for (int i = 0; i < restTemplate.getMessageConverters().size(); i++) { diff --git a/src/main/java/org/gridsuite/voltageinit/server/service/NetworkModificationService.java b/src/main/java/org/gridsuite/voltageinit/server/service/NetworkModificationService.java index 0b843a8..b7cf1b4 100644 --- a/src/main/java/org/gridsuite/voltageinit/server/service/NetworkModificationService.java +++ b/src/main/java/org/gridsuite/voltageinit/server/service/NetworkModificationService.java @@ -55,17 +55,19 @@ public class NetworkModificationService { private String networkModificationServerBaseUri; - private final RestTemplate restTemplate = new RestTemplate(); + private final RestTemplate restTemplate; private final ObjectMapper objectMapper; private final UuidGeneratorService uuidGeneratorService; NetworkModificationService(@Value("${gridsuite.services.network-modification-server.base-uri:http://network-modification-server/}") String networkModificationServerBaseUri, - ObjectMapper objectMapper, UuidGeneratorService uuidGeneratorService) { + ObjectMapper objectMapper, UuidGeneratorService uuidGeneratorService, + RestTemplate restTemplate) { this.networkModificationServerBaseUri = networkModificationServerBaseUri; this.objectMapper = objectMapper; this.uuidGeneratorService = uuidGeneratorService; + this.restTemplate = restTemplate; } public void setNetworkModificationServerBaseUri(String networkModificationServerBaseUri) { diff --git a/src/main/java/org/gridsuite/voltageinit/server/service/parameters/FilterService.java b/src/main/java/org/gridsuite/voltageinit/server/service/parameters/FilterService.java index e12af5e..5410abf 100644 --- a/src/main/java/org/gridsuite/voltageinit/server/service/parameters/FilterService.java +++ b/src/main/java/org/gridsuite/voltageinit/server/service/parameters/FilterService.java @@ -56,16 +56,18 @@ public class FilterService implements FilterLoader { private static String filterServerBaseUri; - private final RestTemplate restTemplate = new RestTemplate(); + private final RestTemplate restTemplate; private final NetworkStoreService networkStoreService; public static final String FILTERS_NOT_FOUND = "Filters not found"; public FilterService(NetworkStoreService networkStoreService, - @Value("${gridsuite.services.filter-server.base-uri:http://filter-server/}") String filterServerBaseUri) { + @Value("${gridsuite.services.filter-server.base-uri:http://filter-server/}") String filterServerBaseUri, + RestTemplate restTemplate) { this.networkStoreService = networkStoreService; setFilterServerBaseUri(filterServerBaseUri); + this.restTemplate = restTemplate; } public static void setFilterServerBaseUri(String filterServerBaseUri) { diff --git a/src/test/java/org/gridsuite/voltageinit/server/service/parameters/FilterServiceTest.java b/src/test/java/org/gridsuite/voltageinit/server/service/parameters/FilterServiceTest.java index 9cef230..12eda92 100644 --- a/src/test/java/org/gridsuite/voltageinit/server/service/parameters/FilterServiceTest.java +++ b/src/test/java/org/gridsuite/voltageinit/server/service/parameters/FilterServiceTest.java @@ -12,6 +12,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mockito; +import org.springframework.web.client.RestTemplate; import java.util.List; import java.util.Map; @@ -33,7 +34,7 @@ class FilterServiceTest { @BeforeEach void setUp() { - filterService = spy(new FilterService(Mockito.mock(NetworkStoreService.class), "http://filter-server/")); + filterService = spy(new FilterService(Mockito.mock(NetworkStoreService.class), "http://filter-server/", new RestTemplate())); } @Test From 7cd583ead7eabc8dd4c1893b5b873d78d7e722cd Mon Sep 17 00:00:00 2001 From: Abdelsalem Date: Mon, 3 Nov 2025 16:41:18 +0100 Subject: [PATCH 2/3] mock resttemplate Signed-off-by: Abdelsalem --- .../server/service/parameters/FilterServiceTest.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/gridsuite/voltageinit/server/service/parameters/FilterServiceTest.java b/src/test/java/org/gridsuite/voltageinit/server/service/parameters/FilterServiceTest.java index 12eda92..f6ea058 100644 --- a/src/test/java/org/gridsuite/voltageinit/server/service/parameters/FilterServiceTest.java +++ b/src/test/java/org/gridsuite/voltageinit/server/service/parameters/FilterServiceTest.java @@ -12,6 +12,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mockito; +import org.springframework.test.context.bean.override.mockito.MockitoBean; import org.springframework.web.client.RestTemplate; import java.util.List; @@ -32,9 +33,12 @@ class FilterServiceTest { private FilterService filterService; + @MockitoBean + private RestTemplate restTemplate; + @BeforeEach void setUp() { - filterService = spy(new FilterService(Mockito.mock(NetworkStoreService.class), "http://filter-server/", new RestTemplate())); + filterService = spy(new FilterService(Mockito.mock(NetworkStoreService.class), "http://filter-server/", restTemplate)); } @Test From 6a41c1e4e6b2995abe3cc56ee42ac28fddb11f76 Mon Sep 17 00:00:00 2001 From: Abdelsalem Date: Tue, 4 Nov 2025 09:25:40 +0100 Subject: [PATCH 3/3] remove useless mockitobean and pass null instead Signed-off-by: Abdelsalem --- .../server/service/parameters/FilterServiceTest.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/test/java/org/gridsuite/voltageinit/server/service/parameters/FilterServiceTest.java b/src/test/java/org/gridsuite/voltageinit/server/service/parameters/FilterServiceTest.java index f6ea058..ed76dc4 100644 --- a/src/test/java/org/gridsuite/voltageinit/server/service/parameters/FilterServiceTest.java +++ b/src/test/java/org/gridsuite/voltageinit/server/service/parameters/FilterServiceTest.java @@ -12,8 +12,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mockito; -import org.springframework.test.context.bean.override.mockito.MockitoBean; -import org.springframework.web.client.RestTemplate; import java.util.List; import java.util.Map; @@ -33,12 +31,9 @@ class FilterServiceTest { private FilterService filterService; - @MockitoBean - private RestTemplate restTemplate; - @BeforeEach void setUp() { - filterService = spy(new FilterService(Mockito.mock(NetworkStoreService.class), "http://filter-server/", restTemplate)); + filterService = spy(new FilterService(Mockito.mock(NetworkStoreService.class), "http://filter-server/", null)); } @Test