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,