diff --git a/pom.xml b/pom.xml index 5983da62..ce7838ee 100644 --- a/pom.xml +++ b/pom.xml @@ -86,6 +86,11 @@ + + com.powsybl + powsybl-ws-commons + 1.19.0 + com.squareup.okhttp3 okhttp-bom diff --git a/src/main/java/org/gridsuite/securityanalysis/server/service/SecurityAnalysisWorkerService.java b/src/main/java/org/gridsuite/securityanalysis/server/service/SecurityAnalysisWorkerService.java index 1bbdcdea..de75750c 100644 --- a/src/main/java/org/gridsuite/securityanalysis/server/service/SecurityAnalysisWorkerService.java +++ b/src/main/java/org/gridsuite/securityanalysis/server/service/SecurityAnalysisWorkerService.java @@ -105,9 +105,6 @@ public SecurityAnalysisResult run(SecurityAnalysisRunContext runContext) { runContext.setNetwork(network); AtomicReference rootReporter = new AtomicReference<>(); return run(runContext, null, rootReporter); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - return null; } catch (Exception e) { LOGGER.error(getFailedMessage(getComputationType()), e); return null; diff --git a/src/main/resources/config/application.yaml b/src/main/resources/config/application.yaml index 56acbb67..44e6d8b2 100644 --- a/src/main/resources/config/application.yaml +++ b/src/main/resources/config/application.yaml @@ -1,7 +1,7 @@ spring: application: name: security-analysis-server - + jpa: properties: hibernate: @@ -20,6 +20,7 @@ spring: group: saGroup consumer: concurrency: 2 + max-attempts: 1 publishRun-out-0: destination: ${powsybl-ws.rabbitmq.destination.prefix:}sa.run publishResult-out-0: @@ -30,11 +31,21 @@ spring: destination: ${powsybl-ws.rabbitmq.destination.prefix:}sa.cancel publishStopped-out-0: destination: ${powsybl-ws.rabbitmq.destination.prefix:}sa.stopped - publishFailed-out-0: - destination: ${powsybl-ws.rabbitmq.destination.prefix:}sa.failed publishCancelFailed-out-0: destination: ${powsybl-ws.rabbitmq.destination.prefix:}sa.cancelfailed - output-bindings: publishRun-out-0;publishResult-out-0;publishCancel-out-0;publishStopped-out-0;publishFailed-out-;publishCancelFailed-out-0 + output-bindings: publishRun-out-0;publishResult-out-0;publishCancel-out-0;publishStopped-out-0;publishCancelFailed-out-0 + rabbit: + bindings: + consumeRun-in-0: + consumer: + auto-bind-dlq: true + dead-letter-exchange: ${powsybl-ws.rabbitmq.destination.prefix:}sa.run.dlx + dead-letter-queue-name: ${powsybl-ws.rabbitmq.destination.prefix:}sa.run.dlx.dlq + dead-letter-exchange-type: topic + quorum: + enabled: true + delivery-limit: 2 + powsybl-ws: database: @@ -93,4 +104,4 @@ security-analysis: - [ 1, 1, 1, 1, 1, 1 ] - [ 1, 1, 1, 1, 1, 1 ] - [ 1, 1, 0.95, 0.95, 0.9, 0.9 ] - - [ 1, 1, 0.95, 0.95, 0.9, 0.9 ] \ No newline at end of file + - [ 1, 1, 0.95, 0.95, 0.9, 0.9 ] diff --git a/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java b/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java index 258ae503..dce45f68 100644 --- a/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java +++ b/src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisControllerTest.java @@ -75,6 +75,7 @@ import static org.gridsuite.securityanalysis.server.util.TestUtils.assertLogMessage; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.doNothing; @@ -673,11 +674,8 @@ void runTestWithError() throws Exception { UUID resultUuid = mapper.readValue(resultAsString, UUID.class); assertEquals(RESULT_UUID, resultUuid); - // Message stopped has been sent - Message cancelMessage = output.receive(TIMEOUT, "sa.failed"); - assertEquals(RESULT_UUID.toString(), cancelMessage.getHeaders().get("resultUuid")); - assertEquals("me", cancelMessage.getHeaders().get("receiver")); - assertEquals(getFailedMessage(COMPUTATION_TYPE) + " : " + ERROR_MESSAGE, cancelMessage.getHeaders().get("message")); + // No result message + assertNull(output.receive(TIMEOUT, "sa.result")); // No result assertResultNotFound(RESULT_UUID);