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 8ed8c9b..c4b340f 100644 --- a/src/main/java/org/gridsuite/voltageinit/server/service/NetworkModificationService.java +++ b/src/main/java/org/gridsuite/voltageinit/server/service/NetworkModificationService.java @@ -8,21 +8,10 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; - import com.powsybl.commons.PowsyblException; -import com.powsybl.iidm.network.Bus; -import com.powsybl.iidm.network.Identifiable; -import com.powsybl.iidm.network.Network; -import com.powsybl.iidm.network.ShuntCompensator; -import com.powsybl.iidm.network.Terminal; -import com.powsybl.iidm.network.TwoWindingsTransformer; +import com.powsybl.iidm.network.*; import com.powsybl.openreac.parameters.output.OpenReacResult; -import org.gridsuite.voltageinit.server.dto.GeneratorModificationInfos; -import org.gridsuite.voltageinit.server.dto.ShuntCompensatorModificationInfos; -import org.gridsuite.voltageinit.server.dto.StaticVarCompensatorModificationInfos; -import org.gridsuite.voltageinit.server.dto.TransformerModificationInfos; -import org.gridsuite.voltageinit.server.dto.VoltageInitModificationInfos; -import org.gridsuite.voltageinit.server.dto.VscConverterStationModificationInfos; +import org.gridsuite.voltageinit.server.dto.*; import org.jgrapht.alg.util.Pair; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -51,18 +40,19 @@ public class NetworkModificationService { private static final String NETWORK_MODIFICATION_API_VERSION = "v1"; private static final String DELIMITER = "/"; private static final String GROUP_PATH = "groups" + DELIMITER + "{groupUuid}"; - public static final String QUERY_PARAM_ERROR_ON_GROUP_NOT_FOUND = "errorOnGroupNotFound"; + private static final String QUERY_PARAM_ERROR_ON_GROUP_NOT_FOUND = "errorOnGroupNotFound"; private String networkModificationServerBaseUri; - private final RestTemplate restTemplate = new RestTemplate(); - + private final RestTemplate restTemplate; private final ObjectMapper objectMapper; @Autowired NetworkModificationService(@Value("${gridsuite.services.network-modification-server.base-uri:http://network-modification-server/}") String networkModificationServerBaseUri, + RestTemplate restTemplate, ObjectMapper objectMapper) { this.networkModificationServerBaseUri = networkModificationServerBaseUri; + this.restTemplate = restTemplate; this.objectMapper = objectMapper; } @@ -88,13 +78,11 @@ public void deleteModificationsGroup(UUID groupUUid) { } } - private Optional getRegulatingBus(Terminal terminal) { + private static Optional getRegulatingBus(Terminal terminal) { return terminal != null && terminal.getBusView().getBus() != null ? Optional.of(terminal.getBusView().getBus()) : Optional.empty(); } public UUID createVoltageInitModificationGroup(Network network, OpenReacResult result) { - UUID modificationsGroupUuid; - try { VoltageInitModificationInfos voltageInitModificationInfos = new VoltageInitModificationInfos(); @@ -190,14 +178,12 @@ public UUID createVoltageInitModificationGroup(Network network, OpenReacResult r HttpEntity httpEntity = new HttpEntity<>(objectMapper.writeValueAsString(voltageInitModificationInfos), headers); - modificationsGroupUuid = restTemplate.exchange(path, HttpMethod.POST, httpEntity, UUID.class) + return restTemplate.exchange(path, HttpMethod.POST, httpEntity, UUID.class) .getBody(); } catch (JsonProcessingException e) { throw new PowsyblException("Error generating json modifications", e); } catch (HttpStatusCodeException e) { throw new PowsyblException("Error creating modifications group", e); } - - return modificationsGroupUuid; } } diff --git a/src/main/java/org/gridsuite/voltageinit/server/service/ReportService.java b/src/main/java/org/gridsuite/voltageinit/server/service/ReportService.java index d143518..b28b3b9 100644 --- a/src/main/java/org/gridsuite/voltageinit/server/service/ReportService.java +++ b/src/main/java/org/gridsuite/voltageinit/server/service/ReportService.java @@ -8,6 +8,7 @@ package org.gridsuite.voltageinit.server.service; import com.powsybl.commons.reporter.Reporter; +import lombok.Setter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpEntity; @@ -34,9 +35,10 @@ public class ReportService { private static final String QUERY_PARAM_REPORT_TYPE_FILTER = "reportTypeFilter"; private static final String QUERY_PARAM_REPORT_THROW_ERROR = "errorOnReportNotFound"; + @Setter private String baseUri; - private RestTemplate restTemplate; + private final RestTemplate restTemplate; @Autowired public ReportService(@Value("${gridsuite.services.report-server.base-uri:http://report-server/}") String baseUri, RestTemplate restTemplate) { @@ -44,10 +46,6 @@ public ReportService(@Value("${gridsuite.services.report-server.base-uri:http:// this.restTemplate = restTemplate; } - public void setReportServiceBaseUri(String baseUri) { - this.baseUri = baseUri; - } - public void sendReport(UUID reportUuid, Reporter reporter) { Objects.requireNonNull(reportUuid); diff --git a/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitService.java b/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitService.java index b0090f4..482733e 100644 --- a/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitService.java +++ b/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitService.java @@ -6,15 +6,11 @@ */ package org.gridsuite.voltageinit.server.service; -import com.powsybl.network.store.client.NetworkStoreService; - import org.gridsuite.voltageinit.server.dto.ReactiveSlack; import org.gridsuite.voltageinit.server.dto.VoltageInitResult; import org.gridsuite.voltageinit.server.dto.VoltageInitStatus; import org.gridsuite.voltageinit.server.entities.VoltageInitResultEntity; import org.gridsuite.voltageinit.server.repository.VoltageInitResultRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.ComponentScan; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -25,17 +21,11 @@ /** * @author Etienne Homer */ -@ComponentScan(basePackageClasses = {NetworkStoreService.class}) @Service public class VoltageInitService { - @Autowired - NotificationService notificationService; - - @Autowired - NetworkModificationService networkModificationService; - + private final NotificationService notificationService; + private final NetworkModificationService networkModificationService; private final UuidGeneratorService uuidGeneratorService; - private final VoltageInitResultRepository resultRepository; public VoltageInitService(NotificationService notificationService, diff --git a/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitWorkerService.java b/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitWorkerService.java index 77450cc..763d827 100644 --- a/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitWorkerService.java +++ b/src/main/java/org/gridsuite/voltageinit/server/service/VoltageInitWorkerService.java @@ -27,7 +27,6 @@ import org.gridsuite.voltageinit.server.service.parameters.VoltageInitParametersService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.http.HttpStatus; import org.springframework.messaging.Message; @@ -35,7 +34,10 @@ import org.springframework.web.server.ResponseStatusException; import java.util.*; -import java.util.concurrent.*; +import java.util.concurrent.CancellationException; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; @@ -80,8 +82,7 @@ public class VoltageInitWorkerService { private final Lock lockRunAndCancelVoltageInit = new ReentrantLock(); - @Autowired - NotificationService notificationService; + private final NotificationService notificationService; public VoltageInitWorkerService(NetworkStoreService networkStoreService, NetworkModificationService networkModificationService, @@ -89,7 +90,8 @@ public VoltageInitWorkerService(NetworkStoreService networkStoreService, VoltageInitResultRepository resultRepository, ReportService reportService, VoltageInitExecutionService voltageInitExecutionService, - VoltageInitObserver voltageInitObserver) { + VoltageInitObserver voltageInitObserver, + NotificationService notificationService) { this.networkStoreService = Objects.requireNonNull(networkStoreService); this.networkModificationService = Objects.requireNonNull(networkModificationService); this.voltageInitParametersService = Objects.requireNonNull(voltageInitParametersService); @@ -97,18 +99,18 @@ public VoltageInitWorkerService(NetworkStoreService networkStoreService, this.resultRepository = Objects.requireNonNull(resultRepository); this.voltageInitExecutionService = Objects.requireNonNull(voltageInitExecutionService); this.voltageInitObserver = voltageInitObserver; + this.notificationService = notificationService; } private Network getNetwork(UUID networkUuid, String variantId) { - Network network; try { - network = networkStoreService.getNetwork(networkUuid, PreloadingStrategy.ALL_COLLECTIONS_NEEDED_FOR_BUS_VIEW); + Network network = networkStoreService.getNetwork(networkUuid, PreloadingStrategy.ALL_COLLECTIONS_NEEDED_FOR_BUS_VIEW); String variant = StringUtils.isBlank(variantId) ? VariantManagerConstants.INITIAL_VARIANT_ID : variantId; network.getVariantManager().setWorkingVariant(variant); + return network; } catch (PowsyblException e) { throw new ResponseStatusException(HttpStatus.NOT_FOUND, e.getMessage()); } - return network; } public static void addRestrictedVoltageLevelReport(Map voltageLevelsIdsRestricted, Reporter reporter) { 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 b6f6ef1..85649b8 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 @@ -6,6 +6,7 @@ */ package org.gridsuite.voltageinit.server.service.parameters; +import lombok.Setter; import org.gridsuite.voltageinit.server.dto.parameters.FilterEquipments; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.ParameterizedTypeReference; @@ -23,21 +24,18 @@ */ @Service public class FilterService { - private static final String FILTER_SERVER_API_VERSION = "v1"; - private static final String DELIMITER = "/"; - private static String filterServerBaseUri; + @Setter + private String filterServerBaseUri; - private final RestTemplate restTemplate = new RestTemplate(); - - public FilterService(@Value("${gridsuite.services.filter-server.base-uri:http://filter-server/}") String filterServerBaseUri) { - setFilterServerBaseUri(filterServerBaseUri); - } + private final RestTemplate restTemplate; - public static void setFilterServerBaseUri(String filterServerBaseUri) { - FilterService.filterServerBaseUri = filterServerBaseUri; + public FilterService(@Value("${gridsuite.services.filter-server.base-uri:http://filter-server/}") String filterServerBaseUri, + RestTemplate restTemplate) { + this.filterServerBaseUri = filterServerBaseUri; + this.restTemplate = restTemplate; } public List exportFilters(List filtersUuids, UUID networkUuid, String variantId) { diff --git a/src/test/java/org/gridsuite/voltageinit/service/ReportServiceTest.java b/src/test/java/org/gridsuite/voltageinit/service/ReportServiceTest.java index ab1f996..ffc76bd 100644 --- a/src/test/java/org/gridsuite/voltageinit/service/ReportServiceTest.java +++ b/src/test/java/org/gridsuite/voltageinit/service/ReportServiceTest.java @@ -73,7 +73,7 @@ public void setUp() throws IOException { configureWireMockServer(reportJson); - reportService.setReportServiceBaseUri("http://localhost:" + server.port()); + reportService.setBaseUri("http://localhost:" + server.port()); } @After