From 6708934044c1fa3e6a9c7136b83a5bafade36866 Mon Sep 17 00:00:00 2001 From: Florian Dupuy Date: Thu, 23 Nov 2023 11:30:17 +0100 Subject: [PATCH] Bump powsybl-core to 6.1.0-alpha-1 Signed-off-by: Florian Dupuy --- commons/pom.xml | 2 +- .../dynawo/commons/DynawoConstants.java | 4 +- .../powsybl/dynawo/commons/DynawoUtil.java | 2 +- .../dynawo/commons/NetworkResultsUpdater.java | 8 +-- .../dynawo/commons/loadmerge/LoadsMerger.java | 4 +- .../commons/timeline/XmlTimeLineParser.java | 19 ++++-- .../commons/AbstractDynawoCommonsTest.java | 14 ++-- .../dynawo/commons/DynawoVersionTest.java | 3 +- .../commons/NetworkResultsUpdaterTest.java | 20 +++--- .../dynawo/commons/TestNetworkFactory.java | 6 +- dynaflow/pom.xml | 2 +- .../powsybl/dynaflow/DynaFlowProvider.java | 4 +- .../dynaflow/xml/ConstraintsReader.java | 65 ++++++++++++------ .../dynaflow/DynaFlowParametersTest.java | 4 +- .../dynaflow/DynaFlowProviderTest.java | 14 ++-- .../DynaFlowSecurityAnalysisTest.java | 11 +-- .../JsonDynaFlowParametersSerializerTest.java | 4 +- ...urrentLimitAutomatonGroovyExtension.groovy | 3 +- ...itTwoLevelsAutomatonGroovyExtension.groovy | 5 +- .../EventDisconnectionGroovyExtension.groovy | 3 +- .../models/hvdc/AbstractHvdcBuilder.groovy | 3 +- dynawaltz/pom.xml | 2 +- .../powsybl/dynawaltz/DynaWaltzProvider.java | 43 +++++------- .../dynawaltz/models/utils/SideConverter.java | 11 ++- ...l.java => AbstractXmlDynawaltzWriter.java} | 35 ++++++---- .../com/powsybl/dynawaltz/xml/CurvesXml.java | 14 ++-- .../com/powsybl/dynawaltz/xml/DydXml.java | 14 ++-- .../com/powsybl/dynawaltz/xml/JobsXml.java | 14 ++-- .../powsybl/dynawaltz/xml/ParametersXml.java | 68 ++++++++++++------- .../dynawaltz/xml/XmlDynawaltzWriter.java | 21 ++++++ .../dynawaltz/DynaWaltzParametersTest.java | 4 +- .../dynawaltz/DynaWaltzProviderTest.java | 20 +++--- .../xml/AbstractDynamicModelXmlTest.java | 4 +- ...stractParametrizedDynamicModelXmlTest.java | 4 +- .../dynawaltz/xml/DynaWaltzTestUtil.java | 4 +- .../dynawaltz/xml/ParametersXmlTest.java | 3 +- .../com/powsybl/dynawo/it/DynaWaltzTest.java | 13 ++-- pom.xml | 2 +- 38 files changed, 267 insertions(+), 209 deletions(-) rename dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/{XmlUtil.java => AbstractXmlDynawaltzWriter.java} (54%) create mode 100644 dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/XmlDynawaltzWriter.java diff --git a/commons/pom.xml b/commons/pom.xml index eaade231c..68c1efed5 100644 --- a/commons/pom.xml +++ b/commons/pom.xml @@ -51,7 +51,7 @@ com.powsybl - powsybl-iidm-xml-converter + powsybl-iidm-serde com.powsybl diff --git a/commons/src/main/java/com/powsybl/dynawo/commons/DynawoConstants.java b/commons/src/main/java/com/powsybl/dynawo/commons/DynawoConstants.java index 25474862e..9e1eebdd9 100644 --- a/commons/src/main/java/com/powsybl/dynawo/commons/DynawoConstants.java +++ b/commons/src/main/java/com/powsybl/dynawo/commons/DynawoConstants.java @@ -7,7 +7,7 @@ */ package com.powsybl.dynawo.commons; -import com.powsybl.iidm.xml.IidmXmlVersion; +import com.powsybl.iidm.serde.IidmVersion; import java.util.List; @@ -22,7 +22,7 @@ private DynawoConstants() { /** * write the network to XIIDM v1.4 because currently Dynawo does not support versions above */ - public static final String IIDM_VERSION = IidmXmlVersion.V_1_4.toString("."); + public static final String IIDM_VERSION = IidmVersion.V_1_4.toString("."); public static final String DYNAWO_CMD_NAME = "dynawo"; diff --git a/commons/src/main/java/com/powsybl/dynawo/commons/DynawoUtil.java b/commons/src/main/java/com/powsybl/dynawo/commons/DynawoUtil.java index 3cf6da070..681076e6b 100644 --- a/commons/src/main/java/com/powsybl/dynawo/commons/DynawoUtil.java +++ b/commons/src/main/java/com/powsybl/dynawo/commons/DynawoUtil.java @@ -11,7 +11,7 @@ import com.powsybl.commons.PowsyblException; import com.powsybl.computation.*; import com.powsybl.iidm.network.Network; -import com.powsybl.iidm.xml.XMLExporter; +import com.powsybl.iidm.serde.XMLExporter; import java.io.IOException; import java.io.InputStream; diff --git a/commons/src/main/java/com/powsybl/dynawo/commons/NetworkResultsUpdater.java b/commons/src/main/java/com/powsybl/dynawo/commons/NetworkResultsUpdater.java index ec6cca474..520cf1102 100644 --- a/commons/src/main/java/com/powsybl/dynawo/commons/NetworkResultsUpdater.java +++ b/commons/src/main/java/com/powsybl/dynawo/commons/NetworkResultsUpdater.java @@ -78,10 +78,10 @@ public static void update(Network targetNetwork, Network sourceNetwork, boolean private static void updateHvdcLines(Network targetNetwork, Iterable hvdcLines) { for (HvdcLine sourceHvdcLine : hvdcLines) { - Terminal targetTerminal1 = targetNetwork.getHvdcLine(sourceHvdcLine.getId()).getConverterStation(HvdcLine.Side.ONE).getTerminal(); - Terminal targetTerminal2 = targetNetwork.getHvdcLine(sourceHvdcLine.getId()).getConverterStation(HvdcLine.Side.TWO).getTerminal(); - Terminal sourceTerminal1 = sourceHvdcLine.getConverterStation(HvdcLine.Side.ONE).getTerminal(); - Terminal sourceTerminal2 = sourceHvdcLine.getConverterStation(HvdcLine.Side.TWO).getTerminal(); + Terminal targetTerminal1 = targetNetwork.getHvdcLine(sourceHvdcLine.getId()).getConverterStation(TwoSides.ONE).getTerminal(); + Terminal targetTerminal2 = targetNetwork.getHvdcLine(sourceHvdcLine.getId()).getConverterStation(TwoSides.TWO).getTerminal(); + Terminal sourceTerminal1 = sourceHvdcLine.getConverterStation(TwoSides.ONE).getTerminal(); + Terminal sourceTerminal2 = sourceHvdcLine.getConverterStation(TwoSides.TWO).getTerminal(); update(targetTerminal1, sourceTerminal1); update(targetTerminal2, sourceTerminal2); } diff --git a/commons/src/main/java/com/powsybl/dynawo/commons/loadmerge/LoadsMerger.java b/commons/src/main/java/com/powsybl/dynawo/commons/loadmerge/LoadsMerger.java index dfb5de9e3..5b17b9bb1 100644 --- a/commons/src/main/java/com/powsybl/dynawo/commons/loadmerge/LoadsMerger.java +++ b/commons/src/main/java/com/powsybl/dynawo/commons/loadmerge/LoadsMerger.java @@ -12,7 +12,7 @@ import com.powsybl.iidm.network.Load; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.VoltageLevel; -import com.powsybl.iidm.xml.NetworkXml; +import com.powsybl.iidm.serde.NetworkSerDe; import java.util.EnumMap; import java.util.List; @@ -33,7 +33,7 @@ private LoadsMerger() { } public static Network mergeLoads(Network network) throws PowsyblException { - Network mergedLoadsNetwork = NetworkXml.copy(network); + Network mergedLoadsNetwork = NetworkSerDe.copy(network); mergedLoadsNetwork.getVoltageLevelStream().forEach(LoadsMerger::mergeLoadsInVoltageLevel); return mergedLoadsNetwork; } diff --git a/commons/src/main/java/com/powsybl/dynawo/commons/timeline/XmlTimeLineParser.java b/commons/src/main/java/com/powsybl/dynawo/commons/timeline/XmlTimeLineParser.java index fe697a08b..33d344983 100644 --- a/commons/src/main/java/com/powsybl/dynawo/commons/timeline/XmlTimeLineParser.java +++ b/commons/src/main/java/com/powsybl/dynawo/commons/timeline/XmlTimeLineParser.java @@ -75,13 +75,18 @@ private static List read(XMLStreamReader xmlReader) throws XMLStr while (state == XMLStreamConstants.COMMENT) { state = xmlReader.next(); } - XmlUtil.readUntilEndElement("timeline", xmlReader, () -> { - if (xmlReader.getLocalName().equals("event")) { - String time = xmlReader.getAttributeValue(null, TIME); - String modelName = xmlReader.getAttributeValue(null, MODEL_NAME); - String message = xmlReader.getAttributeValue(null, MESSAGE); - TimeLineUtil.createEvent(time, modelName, message) - .ifPresent(timeline::add); + XmlUtil.readSubElements(xmlReader, elementName -> { + try { + if (elementName.equals("event")) { + String time = xmlReader.getAttributeValue(null, TIME); + String modelName = xmlReader.getAttributeValue(null, MODEL_NAME); + String message = xmlReader.getAttributeValue(null, MESSAGE); + XmlUtil.readEndElementOrThrow(xmlReader); + TimeLineUtil.createEvent(time, modelName, message) + .ifPresent(timeline::add); + } + } catch (XMLStreamException e) { + throw new UncheckedXmlStreamException(e); } }); return timeline; diff --git a/commons/src/test/java/com/powsybl/dynawo/commons/AbstractDynawoCommonsTest.java b/commons/src/test/java/com/powsybl/dynawo/commons/AbstractDynawoCommonsTest.java index 8ac2f3dda..d284f684d 100644 --- a/commons/src/test/java/com/powsybl/dynawo/commons/AbstractDynawoCommonsTest.java +++ b/commons/src/test/java/com/powsybl/dynawo/commons/AbstractDynawoCommonsTest.java @@ -7,9 +7,9 @@ */ package com.powsybl.dynawo.commons; -import com.powsybl.commons.test.AbstractConverterTest; +import com.powsybl.commons.test.AbstractSerDeTest; import com.powsybl.iidm.network.Network; -import com.powsybl.iidm.xml.NetworkXml; +import com.powsybl.iidm.serde.NetworkSerDe; import java.io.IOException; import java.io.InputStream; @@ -17,25 +17,25 @@ import java.nio.file.Path; import java.util.Objects; -import static com.powsybl.commons.test.ComparisonUtils.compareTxt; +import static com.powsybl.commons.test.ComparisonUtils.compareXml; /** * @author Florian Dupuy {@literal } */ -abstract class AbstractDynawoCommonsTest extends AbstractConverterTest { +abstract class AbstractDynawoCommonsTest extends AbstractSerDeTest { protected void compare(String expectedIidmResource, Network actual) throws IOException { InputStream expected = Objects.requireNonNull(getClass().getResourceAsStream(expectedIidmResource)); - compareTxt(expected, getInputStream(actual, tmpDir.resolve("actual.xiidm"))); + compareXml(expected, getInputStream(actual, tmpDir.resolve("actual.xiidm"))); } protected void compare(Network expected, Network actual) throws IOException { - compareTxt(getInputStream(expected, tmpDir.resolve("expected.xiidm")), + compareXml(getInputStream(expected, tmpDir.resolve("expected.xiidm")), getInputStream(actual, tmpDir.resolve("actual.xiidm"))); } private InputStream getInputStream(Network n, Path path) throws IOException { - NetworkXml.write(n, path); + NetworkSerDe.write(n, path); return Files.newInputStream(path); } } diff --git a/commons/src/test/java/com/powsybl/dynawo/commons/DynawoVersionTest.java b/commons/src/test/java/com/powsybl/dynawo/commons/DynawoVersionTest.java index 7526d49a9..4abbb8fa8 100644 --- a/commons/src/test/java/com/powsybl/dynawo/commons/DynawoVersionTest.java +++ b/commons/src/test/java/com/powsybl/dynawo/commons/DynawoVersionTest.java @@ -8,7 +8,6 @@ package com.powsybl.dynawo.commons; import com.powsybl.commons.PowsyblException; -import com.powsybl.commons.test.AbstractConverterTest; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; @@ -16,7 +15,7 @@ /** * @author Laurent Issertial {@literal } */ -class DynawoVersionTest extends AbstractConverterTest { +class DynawoVersionTest { private static final DynawoVersion DV_MIN = new DynawoVersion(1, 3, 0); diff --git a/commons/src/test/java/com/powsybl/dynawo/commons/NetworkResultsUpdaterTest.java b/commons/src/test/java/com/powsybl/dynawo/commons/NetworkResultsUpdaterTest.java index 50a2ec135..2f36f3d50 100644 --- a/commons/src/test/java/com/powsybl/dynawo/commons/NetworkResultsUpdaterTest.java +++ b/commons/src/test/java/com/powsybl/dynawo/commons/NetworkResultsUpdaterTest.java @@ -9,8 +9,8 @@ import com.powsybl.dynawo.commons.loadmerge.LoadsMerger; import com.powsybl.iidm.network.*; import com.powsybl.iidm.network.test.FourSubstationsNodeBreakerFactory; -import com.powsybl.iidm.xml.ExportOptions; -import com.powsybl.iidm.xml.NetworkXml; +import com.powsybl.iidm.serde.ExportOptions; +import com.powsybl.iidm.serde.NetworkSerDe; import org.junit.jupiter.api.Test; import java.io.IOException; @@ -24,7 +24,7 @@ class NetworkResultsUpdaterTest extends AbstractDynawoCommonsTest { @Test void testUpdateWithoutMergeLoads() throws IOException { Network expected = TestNetworkFactory.createMultiBusesVoltageLevelNetwork(); - Network actual = NetworkXml.copy(expected); + Network actual = NetworkSerDe.copy(expected); reset(actual); NetworkResultsUpdater.update(actual, expected, false); compare(expected, actual); @@ -33,7 +33,7 @@ void testUpdateWithoutMergeLoads() throws IOException { @Test void testUpdateWithMergeLoads() throws IOException { Network expected = TestNetworkFactory.createMultiBusesVoltageLevelNetwork(); - Network actual = NetworkXml.copy(expected); + Network actual = NetworkSerDe.copy(expected); NetworkResultsUpdater.update(actual, LoadsMerger.mergeLoads(expected), true); compare(expected, actual); } @@ -41,7 +41,7 @@ void testUpdateWithMergeLoads() throws IOException { @Test void testUpdateNetworkPassingThroughBusBreaker() throws IOException { Network expected = TestNetworkFactory.createMultiBusesVoltageLevelNetwork(); - Network actual = NetworkXml.copy(expected); + Network actual = NetworkSerDe.copy(expected); reset(actual); // We assume that the original network will be updated by some analysis tool @@ -50,8 +50,8 @@ void testUpdateNetworkPassingThroughBusBreaker() throws IOException { // is properly updated from the Bus/Breaker "solution" exchanged // with the external analysis tool Path pexpectedAsBusBreaker = tmpDir.resolve("expected-as-busbreaker.xiidm"); - NetworkXml.write(expected, new ExportOptions().setTopologyLevel(TopologyLevel.BUS_BREAKER), pexpectedAsBusBreaker); - Network expectedBusBreaker = NetworkXml.read(pexpectedAsBusBreaker); + NetworkSerDe.write(expected, new ExportOptions().setTopologyLevel(TopologyLevel.BUS_BREAKER), pexpectedAsBusBreaker); + Network expectedBusBreaker = NetworkSerDe.read(pexpectedAsBusBreaker); NetworkResultsUpdater.update(actual, expectedBusBreaker, false); compare(expected, actual); @@ -60,7 +60,7 @@ void testUpdateNetworkPassingThroughBusBreaker() throws IOException { @Test void testUpdateWithDisconnects() throws IOException { Network expected = FourSubstationsNodeBreakerFactory.create(); - Network actual = NetworkXml.copy(expected); + Network actual = NetworkSerDe.copy(expected); reset(actual); // Test with some elements disconnected in the network @@ -89,8 +89,8 @@ private static void reset(Network targetNetwork) { reset(targetDangling.getTerminal()); } for (HvdcLine targetHvdcLine : targetNetwork.getHvdcLines()) { - reset(targetHvdcLine.getConverterStation(HvdcLine.Side.ONE).getTerminal()); - reset(targetHvdcLine.getConverterStation(HvdcLine.Side.TWO).getTerminal()); + reset(targetHvdcLine.getConverterStation(TwoSides.ONE).getTerminal()); + reset(targetHvdcLine.getConverterStation(TwoSides.TWO).getTerminal()); } for (TwoWindingsTransformer targetTwoWindingsTransformer : targetNetwork.getTwoWindingsTransformers()) { reset(targetTwoWindingsTransformer.getTerminal1()); diff --git a/commons/src/test/java/com/powsybl/dynawo/commons/TestNetworkFactory.java b/commons/src/test/java/com/powsybl/dynawo/commons/TestNetworkFactory.java index b3588c79c..51bf19394 100644 --- a/commons/src/test/java/com/powsybl/dynawo/commons/TestNetworkFactory.java +++ b/commons/src/test/java/com/powsybl/dynawo/commons/TestNetworkFactory.java @@ -8,8 +8,8 @@ package com.powsybl.dynawo.commons; import com.powsybl.iidm.network.*; -import org.joda.time.DateTime; +import java.time.ZonedDateTime; import java.util.List; /** @@ -22,7 +22,7 @@ private TestNetworkFactory() { static Network createMultiBusesVoltageLevelNetwork() { Network network = Network.create("multiBusesVl", "test") - .setCaseDate(DateTime.parse("2023-02-17T05:41:11.194+01:00")); + .setCaseDate(ZonedDateTime.parse("2023-02-17T05:41:11.194+01:00")); Substation s = network.newSubstation().setId("substation").add(); VoltageLevel vl1 = s.newVoltageLevel().setId("vl1").setNominalV(250).setTopologyKind(TopologyKind.NODE_BREAKER).add(); @@ -70,7 +70,7 @@ static Network createMultiBusesVoltageLevelNetwork() { */ static Network createMultiLoadsBusesNetwork(List loadStates) { Network network = Network.create("multiLoads", "test") - .setCaseDate(DateTime.parse("2023-02-17T05:41:11.194+01:00")); + .setCaseDate(ZonedDateTime.parse("2023-02-17T05:41:11.194+01:00")); Substation s = network.newSubstation().setId("substation").add(); // First node breaker voltage level diff --git a/dynaflow/pom.xml b/dynaflow/pom.xml index b66ead0ca..791b35d8c 100644 --- a/dynaflow/pom.xml +++ b/dynaflow/pom.xml @@ -28,7 +28,7 @@ com.powsybl - powsybl-iidm-xml-converter + powsybl-iidm-serde com.powsybl diff --git a/dynaflow/src/main/java/com/powsybl/dynaflow/DynaFlowProvider.java b/dynaflow/src/main/java/com/powsybl/dynaflow/DynaFlowProvider.java index a5cfa4986..260795236 100644 --- a/dynaflow/src/main/java/com/powsybl/dynaflow/DynaFlowProvider.java +++ b/dynaflow/src/main/java/com/powsybl/dynaflow/DynaFlowProvider.java @@ -24,7 +24,7 @@ import com.powsybl.dynawo.commons.timeline.TimelineEntry; import com.powsybl.dynawo.commons.timeline.XmlTimeLineParser; import com.powsybl.iidm.network.Network; -import com.powsybl.iidm.xml.NetworkXml; +import com.powsybl.iidm.serde.NetworkSerDe; import com.powsybl.loadflow.LoadFlowParameters; import com.powsybl.loadflow.LoadFlowProvider; import com.powsybl.loadflow.LoadFlowResult; @@ -187,7 +187,7 @@ public LoadFlowResult after(Path workingDir, ExecutionReport report) { boolean status = true; Path outputNetworkFile = workingDir.resolve("outputs").resolve("finalState").resolve(OUTPUT_IIDM_FILENAME); if (Files.exists(outputNetworkFile)) { - NetworkResultsUpdater.update(network, NetworkXml.read(outputNetworkFile), dynaFlowParameters.isMergeLoads()); + NetworkResultsUpdater.update(network, NetworkSerDe.read(outputNetworkFile), dynaFlowParameters.isMergeLoads()); } else { status = false; } diff --git a/dynaflow/src/main/java/com/powsybl/dynaflow/xml/ConstraintsReader.java b/dynaflow/src/main/java/com/powsybl/dynaflow/xml/ConstraintsReader.java index c46b29f14..8ba676199 100644 --- a/dynaflow/src/main/java/com/powsybl/dynaflow/xml/ConstraintsReader.java +++ b/dynaflow/src/main/java/com/powsybl/dynaflow/xml/ConstraintsReader.java @@ -72,21 +72,27 @@ public static List read(Network network, InputStream is) { state = reader.next(); } - XmlUtil.readUntilEndElement(CONSTRAINTS_ELEMENT_NAME, reader, () -> { - if (!reader.getLocalName().equals(CONSTRAINT_ELEMENT_NAME)) { - throw new AssertionError(); + XmlUtil.readSubElements(reader, elementName -> { + try { + if (!elementName.equals(CONSTRAINT_ELEMENT_NAME)) { + throw new PowsyblException("Unknown element name '" + elementName + "' in constraints file"); + } + String name = reader.getAttributeValue(null, MODEL_NAME); + reader.getAttributeValue(null, DESCRIPTION); // description: unused + reader.getAttributeValue(null, TYPE); // type: unused + String kind = reader.getAttributeValue(null, KIND); + double limit = readDouble(reader, LIMIT); + double value = readDouble(reader, VALUE); + Integer side = readInteger(reader, SIDE); + Integer acceptableDuration = readInteger(reader, ACCEPTABLE_DURATION, Integer.MAX_VALUE); + XmlUtil.readEndElementOrThrow(reader); + + getLimitViolation(network, name, kind, limit, 1f, value, side, acceptableDuration) + .ifPresent(lvRead -> addOrDismiss(lvRead, limitViolations)); + + } catch (XMLStreamException e) { + throw new UncheckedXmlStreamException(e); } - String name = reader.getAttributeValue(null, MODEL_NAME); - reader.getAttributeValue(null, DESCRIPTION); // description: unused - reader.getAttributeValue(null, TYPE); // type: unused - String kind = reader.getAttributeValue(null, KIND); - double limit = XmlUtil.readOptionalDoubleAttribute(reader, LIMIT); - double value = XmlUtil.readOptionalDoubleAttribute(reader, VALUE); - Integer side = XmlUtil.readOptionalIntegerAttribute(reader, SIDE); - Integer acceptableDuration = XmlUtil.readOptionalIntegerAttribute(reader, ACCEPTABLE_DURATION, Integer.MAX_VALUE); - - getLimitViolation(network, name, kind, limit, 1f, value, side, acceptableDuration) - .ifPresent(lvRead -> addOrDismiss(lvRead, limitViolations)); }); return limitViolations; } catch (XMLStreamException e) { @@ -94,6 +100,21 @@ public static List read(Network network, InputStream is) { } } + private static double readDouble(XMLStreamReader reader, String name) { + String doubleStr = reader.getAttributeValue(null, name); + return doubleStr != null ? Double.parseDouble(doubleStr) : Double.NaN; + } + + private static Integer readInteger(XMLStreamReader reader, String name) { + String intStr = reader.getAttributeValue(null, name); + return intStr != null ? Integer.valueOf(intStr) : null; + } + + private static int readInteger(XMLStreamReader reader, String name, int defaultValue) { + String intStr = reader.getAttributeValue(null, name); + return intStr != null ? Integer.parseInt(intStr) : defaultValue; + } + private static void addOrDismiss(LimitViolation lvRead, List limitViolations) { LimitViolationComparator comparator = new LimitViolationComparator(); limitViolations.stream().filter(lv -> comparator.compare(lvRead, lv) == 0).findFirst() @@ -117,7 +138,7 @@ private static Optional getLimitViolation(Network network, Strin .map(identifiable -> new LimitViolation( identifiable.getId(), identifiable.getOptionalName().orElse(null), toLimitViolationType(kind), kind, acceptableDuration, - limit, limitReduction, value, toBranchSide(side))); + limit, limitReduction, value, toThreeSides(side))); } private static Optional> getLimitViolationIdentifiable(Network network, String name) { @@ -142,16 +163,16 @@ private static Optional> getLimitViolationIdentifiable(Network n } } - private static Branch.Side toBranchSide(Integer side) { + private static ThreeSides toThreeSides(Integer side) { if (side == null) { return null; - } else if (side == 1) { - return Branch.Side.ONE; - } else if (side == 2) { - return Branch.Side.TWO; - } else { - return null; } + return switch (side) { + case 1 -> ThreeSides.ONE; + case 2 -> ThreeSides.TWO; + case 3 -> ThreeSides.THREE; + default -> null; + }; } private static LimitViolationType toLimitViolationType(String kind) { diff --git a/dynaflow/src/test/java/com/powsybl/dynaflow/DynaFlowParametersTest.java b/dynaflow/src/test/java/com/powsybl/dynaflow/DynaFlowParametersTest.java index 022543290..52347e736 100644 --- a/dynaflow/src/test/java/com/powsybl/dynaflow/DynaFlowParametersTest.java +++ b/dynaflow/src/test/java/com/powsybl/dynaflow/DynaFlowParametersTest.java @@ -10,7 +10,7 @@ import com.google.common.jimfs.Jimfs; import com.powsybl.commons.config.InMemoryPlatformConfig; import com.powsybl.commons.config.MapModuleConfig; -import com.powsybl.commons.test.AbstractConverterTest; +import com.powsybl.commons.test.AbstractSerDeTest; import com.powsybl.dynaflow.DynaFlowConstants.ActivePowerCompensation; import com.powsybl.dynaflow.DynaFlowConstants.OutputTypes; import com.powsybl.dynaflow.DynaFlowConstants.StartingPointMode; @@ -34,7 +34,7 @@ * * @author Guillaume Pernin {@literal } */ -class DynaFlowParametersTest extends AbstractConverterTest { +class DynaFlowParametersTest extends AbstractSerDeTest { private InMemoryPlatformConfig platformConfig; diff --git a/dynaflow/src/test/java/com/powsybl/dynaflow/DynaFlowProviderTest.java b/dynaflow/src/test/java/com/powsybl/dynaflow/DynaFlowProviderTest.java index b45e099e1..e04371357 100644 --- a/dynaflow/src/test/java/com/powsybl/dynaflow/DynaFlowProviderTest.java +++ b/dynaflow/src/test/java/com/powsybl/dynaflow/DynaFlowProviderTest.java @@ -7,14 +7,14 @@ package com.powsybl.dynaflow; import com.powsybl.commons.PowsyblException; -import com.powsybl.commons.test.AbstractConverterTest; +import com.powsybl.commons.test.AbstractSerDeTest; import com.powsybl.computation.ComputationManager; import com.powsybl.computation.local.LocalCommandExecutor; import com.powsybl.computation.local.LocalComputationConfig; import com.powsybl.computation.local.LocalComputationManager; import com.powsybl.dynawo.commons.DynawoConstants; import com.powsybl.iidm.network.*; -import com.powsybl.iidm.xml.NetworkXml; +import com.powsybl.iidm.serde.NetworkSerDe; import com.powsybl.loadflow.LoadFlow; import com.powsybl.loadflow.LoadFlowParameters; import com.powsybl.loadflow.LoadFlowResult; @@ -40,7 +40,7 @@ /** * @author Guillaume Pernin {@literal } */ -class DynaFlowProviderTest extends AbstractConverterTest { +class DynaFlowProviderTest extends AbstractSerDeTest { private Path homeDir; private DynaFlowConfig config; @@ -137,7 +137,7 @@ void testWithoutMergeLoads() throws Exception { assertTrue(result.isOk()); InputStream pReferenceOutput = getClass().getResourceAsStream("/output.xiidm"); - Network expectedNetwork = NetworkXml.read(pReferenceOutput); + Network expectedNetwork = NetworkSerDe.read(pReferenceOutput); compare(expectedNetwork, network); } @@ -158,7 +158,7 @@ void testWithMergeLoads() throws Exception { assertTrue(result.isOk()); InputStream pReferenceOutput = getClass().getResourceAsStream("/output.xiidm"); - Network expectedNetwork = NetworkXml.read(pReferenceOutput); + Network expectedNetwork = NetworkSerDe.read(pReferenceOutput); compare(expectedNetwork, network); } @@ -217,9 +217,9 @@ private void compare(Network expected, Network actual) throws IOException { assertNotNull(pexpected); Path pactual = tmpDir.resolve("actual.xiidm"); assertNotNull(pactual); - NetworkXml.write(expected, pexpected); + NetworkSerDe.write(expected, pexpected); actual.setCaseDate(expected.getCaseDate()); - NetworkXml.write(actual, pactual); + NetworkSerDe.write(actual, pactual); compareXml(Files.newInputStream(pexpected), Files.newInputStream(pactual)); } diff --git a/dynaflow/src/test/java/com/powsybl/dynaflow/DynaFlowSecurityAnalysisTest.java b/dynaflow/src/test/java/com/powsybl/dynaflow/DynaFlowSecurityAnalysisTest.java index c20d88729..60d6c4910 100644 --- a/dynaflow/src/test/java/com/powsybl/dynaflow/DynaFlowSecurityAnalysisTest.java +++ b/dynaflow/src/test/java/com/powsybl/dynaflow/DynaFlowSecurityAnalysisTest.java @@ -7,7 +7,7 @@ package com.powsybl.dynaflow; import com.powsybl.commons.PowsyblException; -import com.powsybl.commons.test.AbstractConverterTest; +import com.powsybl.commons.test.AbstractSerDeTest; import com.powsybl.computation.ComputationManager; import com.powsybl.computation.local.LocalCommandExecutor; import com.powsybl.computation.local.LocalComputationConfig; @@ -22,7 +22,6 @@ import com.powsybl.security.SecurityAnalysisReport; import com.powsybl.security.SecurityAnalysisResult; import com.powsybl.security.json.SecurityAnalysisResultSerializer; -import org.joda.time.DateTime; import org.junit.jupiter.api.Test; import java.io.IOException; @@ -31,6 +30,7 @@ import java.io.UncheckedIOException; import java.nio.file.Files; import java.nio.file.Path; +import java.time.ZonedDateTime; import java.util.List; import java.util.Map; import java.util.Objects; @@ -40,12 +40,13 @@ import static com.powsybl.commons.test.ComparisonUtils.compareXml; import static com.powsybl.dynaflow.DynaFlowConstants.DYNAFLOW_NAME; import static com.powsybl.dynaflow.DynaFlowConstants.IIDM_FILENAME; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; /** * @author Marcos de Miguel {@literal } */ -class DynaFlowSecurityAnalysisTest extends AbstractConverterTest { +class DynaFlowSecurityAnalysisTest extends AbstractSerDeTest { private static class LocalCommandExecutorMock extends AbstractLocalCommandExecutor { @@ -142,7 +143,7 @@ void testCallingBadVersionDynawo() throws IOException { private static Network buildNetwork() { Network network = EurostagTutorialExample1Factory.create(); - network.setCaseDate(DateTime.parse("2023-03-23T16:40:48.060+01:00")); + network.setCaseDate(ZonedDateTime.parse("2023-03-23T16:40:48.060+01:00")); // Changing the network for having some pre-contingencies violations network.getBusBreakerView().getBus("NHV1").setV(380.0); diff --git a/dynaflow/src/test/java/com/powsybl/dynaflow/json/JsonDynaFlowParametersSerializerTest.java b/dynaflow/src/test/java/com/powsybl/dynaflow/json/JsonDynaFlowParametersSerializerTest.java index 58dc5f866..fcc5c4982 100644 --- a/dynaflow/src/test/java/com/powsybl/dynaflow/json/JsonDynaFlowParametersSerializerTest.java +++ b/dynaflow/src/test/java/com/powsybl/dynaflow/json/JsonDynaFlowParametersSerializerTest.java @@ -6,8 +6,8 @@ */ package com.powsybl.dynaflow.json; -import com.powsybl.commons.test.AbstractConverterTest; import com.powsybl.commons.config.InMemoryPlatformConfig; +import com.powsybl.commons.test.AbstractSerDeTest; import com.powsybl.dynaflow.DynaFlowConstants; import com.powsybl.dynaflow.DynaFlowParameters; import com.powsybl.loadflow.LoadFlowParameters; @@ -25,7 +25,7 @@ * * @author Guillaume Pernin {@literal } */ -class JsonDynaFlowParametersSerializerTest extends AbstractConverterTest { +class JsonDynaFlowParametersSerializerTest extends AbstractSerDeTest { @Test void testDeserialize() { diff --git a/dynawaltz-dsl/src/main/groovy/com/powsybl/dynawaltz/dsl/automatons/CurrentLimitAutomatonGroovyExtension.groovy b/dynawaltz-dsl/src/main/groovy/com/powsybl/dynawaltz/dsl/automatons/CurrentLimitAutomatonGroovyExtension.groovy index a63db5d7d..a7edb0814 100644 --- a/dynawaltz-dsl/src/main/groovy/com/powsybl/dynawaltz/dsl/automatons/CurrentLimitAutomatonGroovyExtension.groovy +++ b/dynawaltz-dsl/src/main/groovy/com/powsybl/dynawaltz/dsl/automatons/CurrentLimitAutomatonGroovyExtension.groovy @@ -18,6 +18,7 @@ import com.powsybl.dynawaltz.models.automatons.CurrentLimitAutomaton import com.powsybl.dynawaltz.models.utils.SideConverter import com.powsybl.iidm.network.Branch import com.powsybl.iidm.network.Network +import com.powsybl.iidm.network.TwoSides /** * An implementation of {@link DynamicModelGroovyExtension} that adds the
CurrentLimitAutomaton
keyword to the DSL @@ -56,7 +57,7 @@ class CurrentLimitAutomatonGroovyExtension extends AbstractPureDynamicGroovyExte iMeasurement.addEquipment(staticId, network::getBranch) } - void iMeasurementSide(Branch.Side side) { + void iMeasurementSide(TwoSides side) { this.iMeasurementSide = SideConverter.convert(side) } diff --git a/dynawaltz-dsl/src/main/groovy/com/powsybl/dynawaltz/dsl/automatons/CurrentLimitTwoLevelsAutomatonGroovyExtension.groovy b/dynawaltz-dsl/src/main/groovy/com/powsybl/dynawaltz/dsl/automatons/CurrentLimitTwoLevelsAutomatonGroovyExtension.groovy index 289abdcf1..387b384ea 100644 --- a/dynawaltz-dsl/src/main/groovy/com/powsybl/dynawaltz/dsl/automatons/CurrentLimitTwoLevelsAutomatonGroovyExtension.groovy +++ b/dynawaltz-dsl/src/main/groovy/com/powsybl/dynawaltz/dsl/automatons/CurrentLimitTwoLevelsAutomatonGroovyExtension.groovy @@ -18,6 +18,7 @@ import com.powsybl.dynawaltz.models.automatons.CurrentLimitTwoLevelsAutomaton import com.powsybl.dynawaltz.models.utils.SideConverter import com.powsybl.iidm.network.Branch import com.powsybl.iidm.network.Network +import com.powsybl.iidm.network.TwoSides /** * @author Laurent Issertial {@literal } @@ -52,7 +53,7 @@ class CurrentLimitTwoLevelsAutomatonGroovyExtension extends AbstractPureDynamicG iMeasurement(staticId) } - void iMeasurement1Side(Branch.Side side) { + void iMeasurement1Side(TwoSides side) { iMeasurementSide(side) } @@ -60,7 +61,7 @@ class CurrentLimitTwoLevelsAutomatonGroovyExtension extends AbstractPureDynamicG iMeasurement2.addEquipment(staticId, network::getBranch) } - void iMeasurement2Side(Branch.Side side) { + void iMeasurement2Side(TwoSides side) { this.iMeasurement2Side = SideConverter.convert(side) } diff --git a/dynawaltz-dsl/src/main/groovy/com/powsybl/dynawaltz/dsl/events/EventDisconnectionGroovyExtension.groovy b/dynawaltz-dsl/src/main/groovy/com/powsybl/dynawaltz/dsl/events/EventDisconnectionGroovyExtension.groovy index 82d165476..b68f65872 100644 --- a/dynawaltz-dsl/src/main/groovy/com/powsybl/dynawaltz/dsl/events/EventDisconnectionGroovyExtension.groovy +++ b/dynawaltz-dsl/src/main/groovy/com/powsybl/dynawaltz/dsl/events/EventDisconnectionGroovyExtension.groovy @@ -22,6 +22,7 @@ import com.powsybl.iidm.network.HvdcLine import com.powsybl.iidm.network.Identifiable import com.powsybl.iidm.network.IdentifiableType import com.powsybl.iidm.network.Network +import com.powsybl.iidm.network.TwoSides /** * @author Laurent Issertial {@literal } @@ -58,7 +59,7 @@ class EventDisconnectionGroovyExtension extends AbstractPureDynamicGroovyExtensi super(network, new DslEquipment("Disconnectable equipment"), tag) } - void disconnectOnly(Branch.Side side) { + void disconnectOnly(TwoSides side) { disconnectSide = true switch (side) { case Branch.Side.ONE : diff --git a/dynawaltz-dsl/src/main/groovy/com/powsybl/dynawaltz/dsl/models/hvdc/AbstractHvdcBuilder.groovy b/dynawaltz-dsl/src/main/groovy/com/powsybl/dynawaltz/dsl/models/hvdc/AbstractHvdcBuilder.groovy index b166a9df8..4e16413c9 100644 --- a/dynawaltz-dsl/src/main/groovy/com/powsybl/dynawaltz/dsl/models/hvdc/AbstractHvdcBuilder.groovy +++ b/dynawaltz-dsl/src/main/groovy/com/powsybl/dynawaltz/dsl/models/hvdc/AbstractHvdcBuilder.groovy @@ -15,6 +15,7 @@ import com.powsybl.iidm.network.Branch import com.powsybl.iidm.network.HvdcLine import com.powsybl.iidm.network.IdentifiableType import com.powsybl.iidm.network.Network +import com.powsybl.iidm.network.TwoSides /** * @author Laurent Issertial {@literal } @@ -27,7 +28,7 @@ abstract class AbstractHvdcBuilder extends AbstractEquipmentModelBuilder com.powsybl - powsybl-iidm-xml-converter + powsybl-iidm-serde com.powsybl diff --git a/dynawaltz/src/main/java/com/powsybl/dynawaltz/DynaWaltzProvider.java b/dynawaltz/src/main/java/com/powsybl/dynawaltz/DynaWaltzProvider.java index 0df2081f7..ea7fabecb 100644 --- a/dynawaltz/src/main/java/com/powsybl/dynawaltz/DynaWaltzProvider.java +++ b/dynawaltz/src/main/java/com/powsybl/dynawaltz/DynaWaltzProvider.java @@ -8,7 +8,7 @@ import com.google.auto.service.AutoService; import com.powsybl.commons.config.PlatformConfig; -import com.powsybl.commons.exceptions.UncheckedXmlStreamException; +import com.powsybl.commons.reporter.Reporter; import com.powsybl.computation.*; import com.powsybl.dynamicsimulation.*; import com.powsybl.dynawaltz.models.BlackBoxModel; @@ -22,7 +22,7 @@ import com.powsybl.dynawo.commons.PowsyblDynawoVersion; import com.powsybl.dynawo.commons.loadmerge.LoadsMerger; import com.powsybl.iidm.network.Network; -import com.powsybl.iidm.xml.NetworkXml; +import com.powsybl.iidm.serde.NetworkSerDe; import com.powsybl.timeseries.TimeSeries; import com.powsybl.timeseries.TimeSeries.TimeFormat; import com.powsybl.timeseries.TimeSeriesConstants; @@ -30,9 +30,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.xml.stream.XMLStreamException; import java.io.IOException; -import java.io.UncheckedIOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardCopyOption; @@ -103,7 +101,7 @@ public static Command getVersionCommand(DynaWaltzConfig dynaWaltzConfig) { @Override public CompletableFuture run(Network network, DynamicModelsSupplier dynamicModelsSupplier, EventModelsSupplier eventModelsSupplier, CurvesSupplier curvesSupplier, String workingVariantId, - ComputationManager computationManager, DynamicSimulationParameters parameters) { + ComputationManager computationManager, DynamicSimulationParameters parameters, Reporter reporter) { Objects.requireNonNull(dynamicModelsSupplier); Objects.requireNonNull(eventModelsSupplier); Objects.requireNonNull(curvesSupplier); @@ -178,7 +176,7 @@ public DynamicSimulationResult after(Path workingDir, ExecutionReport report) th if (parameters.isWriteFinalState()) { Path outputNetworkFile = workingDir.resolve(OUTPUTS_FOLDER).resolve(FINAL_STATE_FOLDER).resolve(OUTPUT_IIDM_FILENAME); if (Files.exists(outputNetworkFile)) { - NetworkResultsUpdater.update(context.getNetwork(), NetworkXml.read(outputNetworkFile), context.getDynaWaltzParameters().isMergeLoads()); + NetworkResultsUpdater.update(context.getNetwork(), NetworkSerDe.read(outputNetworkFile), context.getDynaWaltzParameters().isMergeLoads()); } else { status = false; } @@ -204,27 +202,20 @@ public DynamicSimulationResult after(Path workingDir, ExecutionReport report) th return new DynamicSimulationResultImpl(status, null, curves, DynamicSimulationResult.emptyTimeLine()); } - private void writeInputFiles(Path workingDir) { - try { - DynawoUtil.writeIidm(dynawoInput, workingDir.resolve(NETWORK_FILENAME)); - JobsXml.write(workingDir, context); - DydXml.write(workingDir, context); - ParametersXml.write(workingDir, context); - if (context.withCurves()) { - CurvesXml.write(workingDir, context); - } - DumpFileParameters dumpFileParameters = context.getDynaWaltzParameters().getDumpFileParameters(); - if (dumpFileParameters.useDumpFile()) { - Path dumpFilePath = dumpFileParameters.getDumpFilePath(); - if (dumpFilePath != null) { - Files.copy(dumpFilePath, workingDir.resolve(dumpFileParameters.dumpFile()), StandardCopyOption.REPLACE_EXISTING); - } + private void writeInputFiles(Path workingDir) throws IOException { + DynawoUtil.writeIidm(dynawoInput, workingDir.resolve(NETWORK_FILENAME)); + JobsXml.write(workingDir, context); + DydXml.write(workingDir, context); + ParametersXml.write(workingDir, context); + if (context.withCurves()) { + CurvesXml.write(workingDir, context); + } + DumpFileParameters dumpFileParameters = context.getDynaWaltzParameters().getDumpFileParameters(); + if (dumpFileParameters.useDumpFile()) { + Path dumpFilePath = dumpFileParameters.getDumpFilePath(); + if (dumpFilePath != null) { + Files.copy(dumpFilePath, workingDir.resolve(dumpFileParameters.dumpFile()), StandardCopyOption.REPLACE_EXISTING); } - - } catch (IOException e) { - throw new UncheckedIOException(e); - } catch (XMLStreamException e) { - throw new UncheckedXmlStreamException(e); } } } diff --git a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/utils/SideConverter.java b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/utils/SideConverter.java index 2c368c76e..b98214c53 100644 --- a/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/utils/SideConverter.java +++ b/dynawaltz/src/main/java/com/powsybl/dynawaltz/models/utils/SideConverter.java @@ -8,8 +8,7 @@ package com.powsybl.dynawaltz.models.utils; import com.powsybl.dynawaltz.models.Side; -import com.powsybl.iidm.network.Branch; -import com.powsybl.iidm.network.HvdcLine; +import com.powsybl.iidm.network.TwoSides; /** * @author Laurent Issertial {@literal } @@ -19,17 +18,17 @@ public final class SideConverter { private SideConverter() { } - public static Side convert(Branch.Side side) { + public static Side convert(TwoSides side) { return switch (side) { case ONE -> Side.ONE; case TWO -> Side.TWO; }; } - public static HvdcLine.Side convert(Side side) { + public static TwoSides convert(Side side) { return switch (side) { - case ONE -> HvdcLine.Side.ONE; - case TWO -> HvdcLine.Side.TWO; + case ONE -> TwoSides.ONE; + case TWO -> TwoSides.TWO; }; } } diff --git a/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/XmlUtil.java b/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/AbstractXmlDynawaltzWriter.java similarity index 54% rename from dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/XmlUtil.java rename to dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/AbstractXmlDynawaltzWriter.java index 59f93e77e..281ce2ff4 100644 --- a/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/XmlUtil.java +++ b/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/AbstractXmlDynawaltzWriter.java @@ -1,12 +1,13 @@ /** - * Copyright (c) 2020, RTE (http://www.rte-france.com) + * Copyright (c) 2023, RTE (http://www.rte-france.com) * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * SPDX-License-Identifier: MPL-2.0 */ - package com.powsybl.dynawaltz.xml; +import com.powsybl.commons.exceptions.UncheckedXmlStreamException; import com.powsybl.dynawaltz.DynaWaltzContext; import javax.xml.stream.XMLStreamException; @@ -22,39 +23,43 @@ import static com.powsybl.dynawaltz.xml.DynaWaltzXmlConstants.DYN_URI; /** - * @author Mathieu Bague {@literal } + * @author Florian Dupuy {@literal } */ -public final class XmlUtil { +public abstract class AbstractXmlDynawaltzWriter implements XmlDynawaltzWriter { - @FunctionalInterface - public interface XmlDynawaltzWriter { - void write(XMLStreamWriter writer, DynaWaltzContext dynaWaltzContext) throws XMLStreamException; - } + private final String xmlFileName; + private final String xmlRootName; - private XmlUtil() { + protected AbstractXmlDynawaltzWriter(String xmlFileName, String xmlRootName) { + this.xmlFileName = Objects.requireNonNull(xmlFileName); + this.xmlRootName = Objects.requireNonNull(xmlRootName); } - public static void write(Path file, DynaWaltzContext context, String elementName, XmlDynawaltzWriter xmlDynawaltzWriter) throws IOException, XMLStreamException { - Objects.requireNonNull(file); + @Override + public void createXmlFileFromContext(Path workingDir, DynaWaltzContext context) throws IOException { + Objects.requireNonNull(workingDir); Objects.requireNonNull(context); - Objects.requireNonNull(elementName); - Objects.requireNonNull(xmlDynawaltzWriter); + Path file = workingDir.resolve(xmlFileName); try (Writer writer = Files.newBufferedWriter(file, StandardCharsets.UTF_8)) { XMLStreamWriter xmlWriter = XmlStreamWriterFactory.newInstance(writer); try { xmlWriter.writeStartDocument(StandardCharsets.UTF_8.toString(), "1.0"); xmlWriter.setPrefix(DYN_PREFIX, DYN_URI); - xmlWriter.writeStartElement(DYN_URI, elementName); + xmlWriter.writeStartElement(DYN_URI, xmlRootName); xmlWriter.writeNamespace(DYN_PREFIX, DYN_URI); - xmlDynawaltzWriter.write(xmlWriter, context); + write(xmlWriter, context); xmlWriter.writeEndElement(); xmlWriter.writeEndDocument(); } finally { xmlWriter.close(); } + } catch (XMLStreamException e) { + throw new UncheckedXmlStreamException(e); } } + + abstract void write(XMLStreamWriter writer, DynaWaltzContext dynaWaltzContext) throws XMLStreamException; } diff --git a/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/CurvesXml.java b/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/CurvesXml.java index 1de66e92c..3fe6aec83 100644 --- a/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/CurvesXml.java +++ b/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/CurvesXml.java @@ -14,7 +14,6 @@ import javax.xml.stream.XMLStreamWriter; import java.io.IOException; import java.nio.file.Path; -import java.util.Objects; import static com.powsybl.dynawaltz.xml.DynaWaltzConstants.CRV_FILENAME; import static com.powsybl.dynawaltz.xml.DynaWaltzXmlConstants.DYN_URI; @@ -22,19 +21,18 @@ /** * @author Marcos de Miguel {@literal } */ -public final class CurvesXml { +public final class CurvesXml extends AbstractXmlDynawaltzWriter { private CurvesXml() { + super(CRV_FILENAME, "curvesInput"); } - public static void write(Path workingDir, DynaWaltzContext context) throws IOException, XMLStreamException { - Objects.requireNonNull(workingDir); - Path file = workingDir.resolve(CRV_FILENAME); - - XmlUtil.write(file, context, "curvesInput", CurvesXml::write); + public static void write(Path workingDir, DynaWaltzContext context) throws IOException { + new CurvesXml().createXmlFileFromContext(workingDir, context); } - private static void write(XMLStreamWriter writer, DynaWaltzContext context) throws XMLStreamException { + @Override + public void write(XMLStreamWriter writer, DynaWaltzContext context) throws XMLStreamException { for (Curve curve : context.getCurves()) { DynaWaltzCurve dynCurve = (DynaWaltzCurve) curve; writer.writeEmptyElement(DYN_URI, "curve"); diff --git a/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/DydXml.java b/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/DydXml.java index c477e2b7f..6774e22e6 100644 --- a/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/DydXml.java +++ b/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/DydXml.java @@ -16,26 +16,24 @@ import javax.xml.stream.XMLStreamWriter; import java.io.IOException; import java.nio.file.Path; -import java.util.Objects; import static com.powsybl.dynawaltz.xml.DynaWaltzConstants.DYD_FILENAME; /** * @author Mathieu Bague {@literal } */ -public final class DydXml { +public final class DydXml extends AbstractXmlDynawaltzWriter { private DydXml() { + super(DYD_FILENAME, "dynamicModelsArchitecture"); } - public static void write(Path workingDir, DynaWaltzContext context) throws IOException, XMLStreamException { - Objects.requireNonNull(workingDir); - Path file = workingDir.resolve(DYD_FILENAME); - - XmlUtil.write(file, context, "dynamicModelsArchitecture", DydXml::write); + public static void write(Path workingDir, DynaWaltzContext context) throws IOException { + new DydXml().createXmlFileFromContext(workingDir, context); } - private static void write(XMLStreamWriter writer, DynaWaltzContext context) throws XMLStreamException { + @Override + public void write(XMLStreamWriter writer, DynaWaltzContext context) throws XMLStreamException { // loop over the values of the map indexed by dynamicIds to write only once objects with the same dynamicId for (BlackBoxModel model : context.getBlackBoxDynamicModels()) { model.write(writer, context); diff --git a/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/JobsXml.java b/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/JobsXml.java index 329ad79f0..2dcf216b8 100644 --- a/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/JobsXml.java +++ b/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/JobsXml.java @@ -15,7 +15,6 @@ import javax.xml.stream.XMLStreamWriter; import java.io.IOException; import java.nio.file.Path; -import java.util.Objects; import static com.powsybl.dynawaltz.xml.DynaWaltzConstants.*; import static com.powsybl.dynawaltz.xml.DynaWaltzXmlConstants.DYN_URI; @@ -23,19 +22,18 @@ /** * @author Marcos de Miguel {@literal } */ -public final class JobsXml { +public final class JobsXml extends AbstractXmlDynawaltzWriter { private JobsXml() { + super(JOBS_FILENAME, "jobs"); } - public static void write(Path workingDir, DynaWaltzContext context) throws IOException, XMLStreamException { - Objects.requireNonNull(workingDir); - Path file = workingDir.resolve(JOBS_FILENAME); - - XmlUtil.write(file, context, "jobs", JobsXml::write); + public static void write(Path workingDir, DynaWaltzContext context) throws IOException { + new JobsXml().createXmlFileFromContext(workingDir, context); } - private static void write(XMLStreamWriter writer, DynaWaltzContext context) throws XMLStreamException { + @Override + public void write(XMLStreamWriter writer, DynaWaltzContext context) throws XMLStreamException { writer.writeStartElement(DYN_URI, "job"); writer.writeAttribute("name", "Job"); writeSolver(writer, context); diff --git a/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/ParametersXml.java b/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/ParametersXml.java index 2d19b6999..5b0039a06 100644 --- a/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/ParametersXml.java +++ b/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/ParametersXml.java @@ -9,6 +9,7 @@ import com.powsybl.commons.PowsyblException; import com.powsybl.commons.exceptions.UncheckedXmlStreamException; +import com.powsybl.commons.xml.XmlUtil; import com.powsybl.dynawaltz.DynaWaltzContext; import com.powsybl.dynawaltz.DynaWaltzParameters; import com.powsybl.dynawaltz.parameters.Parameter; @@ -93,8 +94,8 @@ public static ParametersSet load(Path parametersFile, String parameterSetId) { private static List readAndClose(XMLStreamReader xmlReader) throws XMLStreamException { List parametersSets = new ArrayList<>(); skipComments(xmlReader); - com.powsybl.commons.xml.XmlUtil.readUntilEndElement(PARAMETERS_SET_ELEMENT_NAME, xmlReader, () -> { - if (!xmlReader.getLocalName().equals("set")) { + XmlUtil.readSubElements(xmlReader, elementName -> { + if (!elementName.equals("set")) { closeAndThrowException(xmlReader, xmlReader.getLocalName()); } String parameterSetIdRead = xmlReader.getAttributeValue(null, "id"); @@ -107,40 +108,49 @@ private static List readAndClose(XMLStreamReader xmlReader) throw private static ParametersSet readOneSetAndClose(XMLStreamReader xmlReader, String parameterSetId) throws XMLStreamException { AtomicReference parametersSet = new AtomicReference<>(); skipComments(xmlReader); - com.powsybl.commons.xml.XmlUtil.readUntilEndElement(PARAMETERS_SET_ELEMENT_NAME, xmlReader, () -> { + XmlUtil.readSubElements(xmlReader, elementName -> { if (parametersSet.get() != null) { return; } - if (!xmlReader.getLocalName().equals("set")) { + if (!elementName.equals("set")) { closeAndThrowException(xmlReader, xmlReader.getLocalName()); } - if (xmlReader.getAttributeValue(null, "id").equals(parameterSetId)) { + String idSetRead = xmlReader.getAttributeValue(null, "id"); + if (idSetRead.equals(parameterSetId)) { parametersSet.set(createParametersSet(xmlReader, parameterSetId)); } else { - com.powsybl.commons.xml.XmlUtil.readUntilEndElement("set", xmlReader, () -> { - }); + XmlUtil.readSubElements(xmlReader); } }); xmlReader.close(); return parametersSet.get(); } - private static ParametersSet createParametersSet(XMLStreamReader xmlReader, String parameterSetId) throws XMLStreamException { + private static ParametersSet createParametersSet(XMLStreamReader xmlReader, String parameterSetId) { ParametersSet parametersSet = new ParametersSet(parameterSetId); - com.powsybl.commons.xml.XmlUtil.readUntilEndElement("set", xmlReader, () -> { - String name = xmlReader.getAttributeValue(null, "name"); - ParameterType type = ParameterType.valueOf(xmlReader.getAttributeValue(null, "type")); - if (xmlReader.getLocalName().equals("par")) { - String value = xmlReader.getAttributeValue(null, "value"); - parametersSet.addParameter(name, type, value); - } else if (xmlReader.getLocalName().equals("reference")) { - String origData = xmlReader.getAttributeValue(null, "origData"); - String origName = xmlReader.getAttributeValue(null, "origName"); - String componentId = xmlReader.getAttributeValue(null, "componentId"); - parametersSet.addReference(name, type, origData, origName, componentId); - } else { - closeAndThrowException(xmlReader, xmlReader.getLocalName()); + XmlUtil.readSubElements(xmlReader, elementName -> { + try { + String name = xmlReader.getAttributeValue(null, "name"); + ParameterType type = ParameterType.valueOf(xmlReader.getAttributeValue(null, "type")); + switch (elementName) { + case "par" -> { + String value = xmlReader.getAttributeValue(null, "value"); + XmlUtil.readEndElementOrThrow(xmlReader); + parametersSet.addParameter(name, type, value); + } + case "reference" -> { + String origData = xmlReader.getAttributeValue(null, "origData"); + String origName = xmlReader.getAttributeValue(null, "origName"); + String componentId = xmlReader.getAttributeValue(null, "componentId"); + XmlUtil.readEndElementOrThrow(xmlReader); + parametersSet.addReference(name, type, origData, origName, componentId); + } + default -> closeAndThrowException(xmlReader, xmlReader.getLocalName()); + } + } catch (XMLStreamException e) { + throw new UncheckedXmlStreamException(e); } + }); return parametersSet; } @@ -159,12 +169,16 @@ private static void skipComments(XMLStreamReader xmlReader) throws XMLStreamExce } } - private static void closeAndThrowException(XMLStreamReader xmlReader, String unexpectedElement) throws XMLStreamException { - xmlReader.close(); + private static void closeAndThrowException(XMLStreamReader xmlReader, String unexpectedElement) { + try { + xmlReader.close(); + } catch (XMLStreamException e) { + throw new UncheckedXmlStreamException(e); + } throw new PowsyblException("Unexpected element: " + unexpectedElement); } - public static void write(Path workingDir, DynaWaltzContext context) throws IOException, XMLStreamException { + public static void write(Path workingDir, DynaWaltzContext context) { Objects.requireNonNull(workingDir); write(context.getDynamicModelsParameters(), context.getSimulationParFile(), workingDir, DYN_PREFIX); @@ -174,7 +188,7 @@ public static void write(Path workingDir, DynaWaltzContext context) throws IOExc write(List.of(parameters.getSolverParameters()), DynaWaltzParameters.SOLVER_OUTPUT_PARAMETERS_FILE, workingDir, ""); } - private static void write(Collection parametersSets, String filename, Path workingDir, String dynPrefix) throws IOException, XMLStreamException { + private static void write(Collection parametersSets, String filename, Path workingDir, String dynPrefix) { Path parametersPath = workingDir.resolve(filename); try (Writer writer = Files.newBufferedWriter(parametersPath, StandardCharsets.UTF_8)) { XMLStreamWriter xmlWriter = XmlStreamWriterFactory.newInstance(writer); @@ -191,6 +205,10 @@ private static void write(Collection parametersSets, String filen } finally { xmlWriter.close(); } + } catch (IOException e) { + throw new UncheckedIOException(e); + } catch (XMLStreamException e) { + throw new UncheckedXmlStreamException(e); } } diff --git a/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/XmlDynawaltzWriter.java b/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/XmlDynawaltzWriter.java new file mode 100644 index 000000000..4668e8f06 --- /dev/null +++ b/dynawaltz/src/main/java/com/powsybl/dynawaltz/xml/XmlDynawaltzWriter.java @@ -0,0 +1,21 @@ +/** + * Copyright (c) 2023, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * SPDX-License-Identifier: MPL-2.0 + */ +package com.powsybl.dynawaltz.xml; + +import com.powsybl.dynawaltz.DynaWaltzContext; + +import java.io.IOException; +import java.nio.file.Path; + +/** + * @author Florian Dupuy {@literal } + */ +@FunctionalInterface +public interface XmlDynawaltzWriter { + void createXmlFileFromContext(Path workingDir, DynaWaltzContext context) throws IOException; +} diff --git a/dynawaltz/src/test/java/com/powsybl/dynawaltz/DynaWaltzParametersTest.java b/dynawaltz/src/test/java/com/powsybl/dynawaltz/DynaWaltzParametersTest.java index c5c84add3..3a27d257a 100644 --- a/dynawaltz/src/test/java/com/powsybl/dynawaltz/DynaWaltzParametersTest.java +++ b/dynawaltz/src/test/java/com/powsybl/dynawaltz/DynaWaltzParametersTest.java @@ -9,7 +9,7 @@ import com.powsybl.commons.PowsyblException; import com.powsybl.commons.config.InMemoryPlatformConfig; import com.powsybl.commons.config.MapModuleConfig; -import com.powsybl.commons.test.AbstractConverterTest; +import com.powsybl.commons.test.AbstractSerDeTest; import com.powsybl.dynamicsimulation.DynamicSimulationParameters; import com.powsybl.dynamicsimulation.json.JsonDynamicSimulationParameters; import com.powsybl.dynawaltz.DynaWaltzParameters.SolverType; @@ -31,7 +31,7 @@ /** * @author Marcos de Miguel {@literal } */ -class DynaWaltzParametersTest extends AbstractConverterTest { +class DynaWaltzParametersTest extends AbstractSerDeTest { public static final String USER_HOME = "/home/user/"; diff --git a/dynawaltz/src/test/java/com/powsybl/dynawaltz/DynaWaltzProviderTest.java b/dynawaltz/src/test/java/com/powsybl/dynawaltz/DynaWaltzProviderTest.java index 8324633b4..4f54899cc 100644 --- a/dynawaltz/src/test/java/com/powsybl/dynawaltz/DynaWaltzProviderTest.java +++ b/dynawaltz/src/test/java/com/powsybl/dynawaltz/DynaWaltzProviderTest.java @@ -7,7 +7,8 @@ package com.powsybl.dynawaltz; import com.powsybl.commons.PowsyblException; -import com.powsybl.commons.test.AbstractConverterTest; +import com.powsybl.commons.reporter.Reporter; +import com.powsybl.commons.test.AbstractSerDeTest; import com.powsybl.computation.ComputationManager; import com.powsybl.computation.local.LocalCommandExecutor; import com.powsybl.computation.local.LocalComputationConfig; @@ -37,7 +38,7 @@ * @author Florian Dupuy {@literal } * @author Marcos de Miguel {@literal } */ -class DynaWaltzProviderTest extends AbstractConverterTest { +class DynaWaltzProviderTest extends AbstractSerDeTest { private static final String OUTPUT_IIDM_FILENAME = "outputIIDM.xml"; private DynaWaltzConfig config; @@ -49,9 +50,8 @@ public void setUp() throws IOException { } public static class CurvesSupplierMock implements CurvesSupplier { - @Override - public List get(Network network) { + public List get(Network network, Reporter reporter) { return Collections.singletonList(new DynaWaltzCurve("bus", "uPu")); } } @@ -86,7 +86,7 @@ void testWithMergeLoads() throws Exception { ComputationManager computationManager = new LocalComputationManager(new LocalComputationConfig(tmpDir, 1), commandExecutor, ForkJoinPool.commonPool()); DynamicSimulation.Runner dynawoSimulation = DynamicSimulation.find(); assertEquals(DynaWaltzProvider.NAME, dynawoSimulation.getName()); - DynamicSimulationResult result = dynawoSimulation.run(network, n -> Collections.emptyList(), EventModelsSupplier.empty(), + DynamicSimulationResult result = dynawoSimulation.run(network, (n, r) -> Collections.emptyList(), EventModelsSupplier.empty(), CurvesSupplier.empty(), network.getVariantManager().getWorkingVariantId(), computationManager, DynamicSimulationParameters.load()); assertNotNull(result); @@ -104,7 +104,7 @@ void testWithoutMergeLoads() throws Exception { dynamicSimulationParameters.addExtension(DynaWaltzParameters.class, dynaWaltzParameters); assertEquals(DynaWaltzProvider.NAME, dynawoSimulation.getName()); - DynamicSimulationResult result = dynawoSimulation.run(network, n -> Collections.emptyList(), EventModelsSupplier.empty(), + DynamicSimulationResult result = dynawoSimulation.run(network, (n, r) -> Collections.emptyList(), EventModelsSupplier.empty(), CurvesSupplier.empty(), network.getVariantManager().getWorkingVariantId(), computationManager, dynamicSimulationParameters); assertNotNull(result); @@ -128,7 +128,7 @@ void testWithDump() throws Exception { dynamicSimulationParameters.addExtension(DynaWaltzParameters.class, dynaWaltzParameters); assertEquals(DynaWaltzProvider.NAME, dynawoSimulation.getName()); - DynamicSimulationResult result = dynawoSimulation.run(network, n -> Collections.emptyList(), EventModelsSupplier.empty(), + DynamicSimulationResult result = dynawoSimulation.run(network, (n, r) -> Collections.emptyList(), EventModelsSupplier.empty(), CurvesSupplier.empty(), network.getVariantManager().getWorkingVariantId(), computationManager, dynamicSimulationParameters); assertNotNull(result); @@ -141,7 +141,7 @@ void testFail() throws Exception { ComputationManager computationManager = new LocalComputationManager(new LocalComputationConfig(tmpDir, 1), commandExecutor, ForkJoinPool.commonPool()); DynamicSimulation.Runner dynawoSimulation = DynamicSimulation.find(); assertEquals(DynaWaltzProvider.NAME, dynawoSimulation.getName()); - DynamicSimulationResult result = dynawoSimulation.run(network, n -> Collections.emptyList(), EventModelsSupplier.empty(), + DynamicSimulationResult result = dynawoSimulation.run(network, (n, r) -> Collections.emptyList(), EventModelsSupplier.empty(), CurvesSupplier.empty(), network.getVariantManager().getWorkingVariantId(), computationManager, DynamicSimulationParameters.load()); assertNotNull(result); @@ -155,7 +155,7 @@ void testWithoutCurves() throws Exception { ComputationManager computationManager = new LocalComputationManager(new LocalComputationConfig(tmpDir, 1), commandExecutor, ForkJoinPool.commonPool()); DynamicSimulation.Runner dynawoSimulation = DynamicSimulation.find(); assertEquals(DynaWaltzProvider.NAME, dynawoSimulation.getName()); - DynamicSimulationResult result = dynawoSimulation.run(network, n -> Collections.emptyList(), EventModelsSupplier.empty(), + DynamicSimulationResult result = dynawoSimulation.run(network, (n, r) -> Collections.emptyList(), EventModelsSupplier.empty(), new CurvesSupplierMock(), network.getVariantManager().getWorkingVariantId(), computationManager, DynamicSimulationParameters.load()); assertNotNull(result); @@ -189,7 +189,7 @@ void testCallingBadVersionDynawo() throws Exception { ComputationManager computationManager = new LocalComputationManager(new LocalComputationConfig(tmpDir, 1), commandExecutor, ForkJoinPool.commonPool()); DynamicSimulation.Runner dynawoSimulation = DynamicSimulation.find(); assertEquals(DynaWaltzProvider.NAME, dynawoSimulation.getName()); - DynamicModelsSupplier dms = n -> Collections.emptyList(); + DynamicModelsSupplier dms = (n, r) -> Collections.emptyList(); EventModelsSupplier ems = EventModelsSupplier.empty(); CurvesSupplier cs = CurvesSupplier.empty(); String wvId = network.getVariantManager().getWorkingVariantId(); diff --git a/dynawaltz/src/test/java/com/powsybl/dynawaltz/xml/AbstractDynamicModelXmlTest.java b/dynawaltz/src/test/java/com/powsybl/dynawaltz/xml/AbstractDynamicModelXmlTest.java index f8f909f3d..74a4f73a5 100644 --- a/dynawaltz/src/test/java/com/powsybl/dynawaltz/xml/AbstractDynamicModelXmlTest.java +++ b/dynawaltz/src/test/java/com/powsybl/dynawaltz/xml/AbstractDynamicModelXmlTest.java @@ -7,7 +7,7 @@ */ package com.powsybl.dynawaltz.xml; -import com.powsybl.commons.test.AbstractConverterTest; +import com.powsybl.commons.test.AbstractSerDeTest; import com.powsybl.dynamicsimulation.Curve; import com.powsybl.dynamicsimulation.DynamicSimulationParameters; import com.powsybl.dynawaltz.DynaWaltzContext; @@ -37,7 +37,7 @@ /** * @author Laurent Issertial {@literal } */ -public abstract class AbstractDynamicModelXmlTest extends AbstractConverterTest { +public abstract class AbstractDynamicModelXmlTest extends AbstractSerDeTest { protected Network network; protected List dynamicModels = new ArrayList<>(); diff --git a/dynawaltz/src/test/java/com/powsybl/dynawaltz/xml/AbstractParametrizedDynamicModelXmlTest.java b/dynawaltz/src/test/java/com/powsybl/dynawaltz/xml/AbstractParametrizedDynamicModelXmlTest.java index 253fd2dc5..c0a138037 100644 --- a/dynawaltz/src/test/java/com/powsybl/dynawaltz/xml/AbstractParametrizedDynamicModelXmlTest.java +++ b/dynawaltz/src/test/java/com/powsybl/dynawaltz/xml/AbstractParametrizedDynamicModelXmlTest.java @@ -7,7 +7,7 @@ */ package com.powsybl.dynawaltz.xml; -import com.powsybl.commons.test.AbstractConverterTest; +import com.powsybl.commons.test.AbstractSerDeTest; import com.powsybl.dynamicsimulation.Curve; import com.powsybl.dynamicsimulation.DynamicSimulationParameters; import com.powsybl.dynawaltz.DynaWaltzContext; @@ -35,7 +35,7 @@ /** * @author Laurent Issertial {@literal } */ -abstract class AbstractParametrizedDynamicModelXmlTest extends AbstractConverterTest { +abstract class AbstractParametrizedDynamicModelXmlTest extends AbstractSerDeTest { protected Network network; protected List dynamicModels = new ArrayList<>(); diff --git a/dynawaltz/src/test/java/com/powsybl/dynawaltz/xml/DynaWaltzTestUtil.java b/dynawaltz/src/test/java/com/powsybl/dynawaltz/xml/DynaWaltzTestUtil.java index 8dc9a2052..cc1f12c23 100644 --- a/dynawaltz/src/test/java/com/powsybl/dynawaltz/xml/DynaWaltzTestUtil.java +++ b/dynawaltz/src/test/java/com/powsybl/dynawaltz/xml/DynaWaltzTestUtil.java @@ -6,7 +6,7 @@ */ package com.powsybl.dynawaltz.xml; -import com.powsybl.commons.test.AbstractConverterTest; +import com.powsybl.commons.test.AbstractSerDeTest; import com.powsybl.dynamicsimulation.Curve; import com.powsybl.dynawaltz.DynaWaltzCurve; import com.powsybl.dynawaltz.models.BlackBoxModel; @@ -43,7 +43,7 @@ /** * @author Marcos de Miguel {@literal } */ -public class DynaWaltzTestUtil extends AbstractConverterTest { +public class DynaWaltzTestUtil extends AbstractSerDeTest { protected Network network; protected List dynamicModels; diff --git a/dynawaltz/src/test/java/com/powsybl/dynawaltz/xml/ParametersXmlTest.java b/dynawaltz/src/test/java/com/powsybl/dynawaltz/xml/ParametersXmlTest.java index 8ee5e79bb..e71d57ba9 100644 --- a/dynawaltz/src/test/java/com/powsybl/dynawaltz/xml/ParametersXmlTest.java +++ b/dynawaltz/src/test/java/com/powsybl/dynawaltz/xml/ParametersXmlTest.java @@ -13,7 +13,6 @@ import org.junit.jupiter.api.Test; import org.xml.sax.SAXException; -import javax.xml.stream.XMLStreamException; import java.io.IOException; /** @@ -22,7 +21,7 @@ class ParametersXmlTest extends DynaWaltzTestUtil { @Test - void writeOmegaRef() throws SAXException, IOException, XMLStreamException { + void writeOmegaRef() throws SAXException, IOException { DynamicSimulationParameters parameters = DynamicSimulationParameters.load(); DynaWaltzParameters dynawoParameters = DynaWaltzParameters.load(PlatformConfig.defaultConfig(), fileSystem); DynaWaltzContext context = new DynaWaltzContext(network, network.getVariantManager().getWorkingVariantId(), dynamicModels, eventModels, curves, parameters, dynawoParameters); diff --git a/dynawo-integration-tests/src/test/java/com/powsybl/dynawo/it/DynaWaltzTest.java b/dynawo-integration-tests/src/test/java/com/powsybl/dynawo/it/DynaWaltzTest.java index b60287a5c..09fce25bf 100644 --- a/dynawo-integration-tests/src/test/java/com/powsybl/dynawo/it/DynaWaltzTest.java +++ b/dynawo-integration-tests/src/test/java/com/powsybl/dynawo/it/DynaWaltzTest.java @@ -8,6 +8,7 @@ import com.powsybl.commons.datasource.ResourceDataSource; import com.powsybl.commons.datasource.ResourceSet; +import com.powsybl.commons.reporter.Reporter; import com.powsybl.dynamicsimulation.*; import com.powsybl.dynamicsimulation.groovy.*; import com.powsybl.dynawaltz.DumpFileParameters; @@ -81,7 +82,7 @@ void testIeee14() { .setDefaultDumpFileParameters(); DynamicSimulationResult result = provider.run(network, dynamicModelsSupplier, eventModelsSupplier, curvesSupplier, - VariantManagerConstants.INITIAL_VARIANT_ID, computationManager, parameters) + VariantManagerConstants.INITIAL_VARIANT_ID, computationManager, parameters, Reporter.NO_OP) .join(); assertTrue(result.isOk()); @@ -125,7 +126,7 @@ void testIeee14WithDump() throws IOException { .setDumpFileParameters(dumpFileParameters); DynamicSimulationResult result = provider.run(network, dynamicModelsSupplier, eventModelsSupplier, curvesSupplier, - VariantManagerConstants.INITIAL_VARIANT_ID, computationManager, parameters) + VariantManagerConstants.INITIAL_VARIANT_ID, computationManager, parameters, Reporter.NO_OP) .join(); assertTrue(result.isOk()); @@ -140,7 +141,7 @@ void testIeee14WithDump() throws IOException { dynaWaltzParameters.setDumpFileParameters(DumpFileParameters.createImportDumpFileParameters(dumpDir, dumpFile)); result = provider.run(network, dynamicModelsSupplier, eventModelsSupplier, curvesSupplier, - VariantManagerConstants.INITIAL_VARIANT_ID, computationManager, parameters) + VariantManagerConstants.INITIAL_VARIANT_ID, computationManager, parameters, Reporter.NO_OP) .join(); assertTrue(result.isOk()); @@ -165,7 +166,7 @@ void testSvc() { .setDefaultDumpFileParameters(); DynamicSimulationResult result = provider.run(network, dynamicModelsSupplier, EventModelsSupplier.empty(), CurvesSupplier.empty(), - VariantManagerConstants.INITIAL_VARIANT_ID, computationManager, parameters) + VariantManagerConstants.INITIAL_VARIANT_ID, computationManager, parameters, Reporter.NO_OP) .join(); assertTrue(result.isOk()); @@ -193,7 +194,7 @@ void testHvdc() { .setDefaultDumpFileParameters(); DynamicSimulationResult result = provider.run(network, dynamicModelsSupplier, EventModelsSupplier.empty(), CurvesSupplier.empty(), - VariantManagerConstants.INITIAL_VARIANT_ID, computationManager, parameters) + VariantManagerConstants.INITIAL_VARIANT_ID, computationManager, parameters, Reporter.NO_OP) .join(); assertTrue(result.isOk()); @@ -230,7 +231,7 @@ void testSmib() { .setDefaultDumpFileParameters(); DynamicSimulationResult result = provider.run(network, dynamicModelsSupplier, eventModelsSupplier, curvesSupplier, - VariantManagerConstants.INITIAL_VARIANT_ID, computationManager, parameters) + VariantManagerConstants.INITIAL_VARIANT_ID, computationManager, parameters, Reporter.NO_OP) .join(); assertTrue(result.isOk()); diff --git a/pom.xml b/pom.xml index ddfdb8c4c..ec3734768 100644 --- a/pom.xml +++ b/pom.xml @@ -56,7 +56,7 @@ 17 - 6.0.1 + 6.1.0-alpha-1 4.0.14 ../distribution/target/site/jacoco-aggregate/jacoco.xml,