Skip to content

Commit 04ab2fa

Browse files
authored
Upgrade to powsybl.dependencies 2024.1.0 (#89)
Signed-off-by: Etienne Homer <[email protected]>
1 parent 3f5009b commit 04ab2fa

22 files changed

+423
-1395
lines changed

pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
</developers>
4343

4444
<properties>
45-
<powsybl-ws-dependencies.version>2.9.0</powsybl-ws-dependencies.version>
45+
<gridsuite-dependencies.version>29</gridsuite-dependencies.version>
4646
<liquibase-hibernate-package>org.gridsuite.shortcircuit.server</liquibase-hibernate-package>
4747
<mockito-inline.version>3.11.1</mockito-inline.version>
4848
<db-util.version>1.0.5</db-util.version>
@@ -88,9 +88,9 @@
8888

8989
<!-- imports -->
9090
<dependency>
91-
<groupId>com.powsybl</groupId>
92-
<artifactId>powsybl-ws-dependencies</artifactId>
93-
<version>${powsybl-ws-dependencies.version}</version>
91+
<groupId>org.gridsuite</groupId>
92+
<artifactId>gridsuite-dependencies</artifactId>
93+
<version>${gridsuite-dependencies.version}</version>
9494
<type>pom</type>
9595
<scope>import</scope>
9696
</dependency>

src/main/java/org/gridsuite/shortcircuit/server/RestTemplateConfig.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
import com.fasterxml.jackson.databind.InjectableValues;
1111
import com.fasterxml.jackson.databind.ObjectMapper;
1212
import com.fasterxml.jackson.databind.SerializationFeature;
13-
import com.powsybl.commons.reporter.ReporterModelDeserializer;
14-
import com.powsybl.commons.reporter.ReporterModelJsonModule;
13+
import com.powsybl.commons.report.ReportNodeDeserializer;
14+
import com.powsybl.commons.report.ReportNodeJsonModule;
1515
import com.powsybl.shortcircuit.json.ShortCircuitAnalysisJsonModule;
1616
import org.springframework.context.annotation.Bean;
1717
import org.springframework.context.annotation.Configuration;
@@ -51,8 +51,8 @@ private static ObjectMapper createObjectMapper() {
5151
var objectMapper = Jackson2ObjectMapperBuilder.json().build();
5252
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
5353
objectMapper.registerModule(new ShortCircuitAnalysisJsonModule());
54-
objectMapper.registerModule(new ReporterModelJsonModule());
55-
objectMapper.setInjectableValues(new InjectableValues.Std().addValue(ReporterModelDeserializer.DICTIONARY_VALUE_ID, null));
54+
objectMapper.registerModule(new ReportNodeJsonModule());
55+
objectMapper.setInjectableValues(new InjectableValues.Std().addValue(ReportNodeDeserializer.DICTIONARY_VALUE_ID, null));
5656
return objectMapper;
5757
}
5858

src/main/java/org/gridsuite/shortcircuit/server/ShortCircuitController.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ public ShortCircuitController(ShortCircuitService shortCircuitService) {
4545
}
4646

4747
private static ShortCircuitParameters getNonNullParameters(ShortCircuitParameters parameters) {
48-
return parameters != null ? parameters : new ShortCircuitParameters();
48+
ShortCircuitParameters shortCircuitParameters = parameters != null ? parameters : new ShortCircuitParameters();
49+
shortCircuitParameters.setDetailedReport(false);
50+
return shortCircuitParameters;
4951
}
5052

5153
@PostMapping(value = "/networks/{networkUuid}/run-and-save", produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE)

src/main/java/org/gridsuite/shortcircuit/server/reports/AbstractReportMapper.java

Lines changed: 44 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,8 @@
66
*/
77
package org.gridsuite.shortcircuit.server.reports;
88

9-
import com.powsybl.commons.reporter.Report;
10-
import com.powsybl.commons.reporter.Reporter;
11-
import com.powsybl.commons.reporter.ReporterModel;
12-
import com.powsybl.commons.reporter.TypedValue;
9+
import com.powsybl.commons.report.*;
10+
import jdk.javadoc.doclet.Reporter;
1311
import lombok.NonNull;
1412
import lombok.extern.slf4j.Slf4j;
1513
import org.gridsuite.shortcircuit.server.service.ShortCircuitRunContext;
@@ -38,19 +36,34 @@
3836
public abstract class AbstractReportMapper {
3937
/**
4038
* Will try to modify the reporter
41-
* @param reporter the reporter to modify
39+
* @param reportNode reportNode to modify
4240
* @return the result
4341
*
4442
* @implNote currently support only some implementations of {@link Reporter}
4543
*/
46-
public Reporter processReporter(@NonNull final Reporter reporter) {
47-
if (reporter instanceof ReporterModel reporterModel && reporterModel.getTaskKey()
44+
public ReportNode processReporter(@NonNull final ReportNode reportNode) {
45+
if (reportNode.getMessageKey() != null && reportNode.getMessageKey()
4846
.matches("^([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}@)?.*ShortCircuitAnalysis$")) {
4947
log.debug("ShortCircuitAnalysis root node found, will modify it!");
50-
return forUuidAtShortCircuitAnalysis(reporterModel);
48+
return forUuidAtShortCircuitAnalysis(reportNode);
5149
} else {
52-
log.trace("Unrecognized Reporter: {}", reporter);
53-
return reporter;
50+
log.trace("Unrecognized ReportNode: {}", reportNode);
51+
return reportNode;
52+
}
53+
}
54+
55+
public static void insertReportNode(ReportNode parent, ReportNode child) {
56+
ReportNodeAdder adder = parent.newReportNode().withMessageTemplate(child.getMessageKey(), child.getMessageTemplate());
57+
for (Map.Entry<String, TypedValue> valueEntry : child.getValues().entrySet()) {
58+
adder.withUntypedValue(valueEntry.getKey(), valueEntry.getValue().toString());
59+
}
60+
TypedValue severity = child.getValue(ReportConstants.REPORT_SEVERITY_KEY).orElse(null);
61+
if (severity != null) {
62+
adder.withSeverity(severity);
63+
}
64+
ReportNode insertedChild = adder.add();
65+
if (child.getChildren() != null) {
66+
child.getChildren().forEach(grandChild -> insertReportNode(insertedChild, grandChild));
5467
}
5568
}
5669

@@ -59,32 +72,37 @@ public Reporter processReporter(@NonNull final Reporter reporter) {
5972
*
6073
* @implNote we assume there will always be at least one modification
6174
*/
62-
protected Reporter forUuidAtShortCircuitAnalysis(@NonNull final ReporterModel reporterModel) {
63-
final ReporterModel newReporter = new ReporterModel(reporterModel.getTaskKey(), reporterModel.getDefaultName(), reporterModel.getTaskValues());
64-
reporterModel.getReports().forEach(newReporter::report);
65-
reporterModel.getSubReporters().forEach(reporter -> {
66-
if (reporter.getTaskKey() != null && reporter.getTaskKey().endsWith("ShortCircuitAnalysis")) {
67-
newReporter.addSubReporter(forShortCircuitAnalysis(reporter));
75+
protected ReportNode forUuidAtShortCircuitAnalysis(@NonNull final ReportNode reportNode) {
76+
ReportNodeBuilder builder = ReportNode.newRootReportNode()
77+
.withMessageTemplate(reportNode.getMessageKey(), reportNode.getMessageTemplate());
78+
reportNode.getValues().entrySet().forEach(entry -> builder.withTypedValue(entry.getKey(), entry.getValue().getValue().toString(), entry.getValue().getType()));
79+
final ReportNode newReportNode = builder.build();
80+
81+
reportNode.getChildren().forEach(child -> {
82+
if (child.getMessageKey() != null && child.getMessageKey().endsWith("ShortCircuitAnalysis")) {
83+
insertReportNode(newReportNode, forShortCircuitAnalysis(child));
6884
} else {
69-
newReporter.addSubReporter(reporter);
85+
insertReportNode(newReportNode, child);
7086
}
7187
});
72-
return newReporter;
88+
return newReportNode;
7389
}
7490

7591
/**
7692
* Modify node with key {@code ShortCircuitAnalysis}
7793
*/
78-
protected abstract ReporterModel forShortCircuitAnalysis(@NonNull final ReporterModel reporterModel);
94+
protected abstract ReportNode forShortCircuitAnalysis(@NonNull final ReportNode reportNode);
7995

8096
/**
81-
* Copy the report, but with {@link TypedValue#TRACE_SEVERITY} severity
82-
* @param reporterModel the {@link ReporterModel reporter} to which add the modified {@link Report}
83-
* @param report the report to copy with {@code TRACE} severity
97+
* Copy the reportNode, but with {@link TypedValue#TRACE_SEVERITY} severity
98+
* @param reportNode the {@link ReportNode reporter} to which add the modified {@link ReportNode}
99+
* @param child the report to copy with {@code TRACE} severity
84100
*/
85-
static void copyReportAsTrace(@NonNull final ReporterModel reporterModel, @NonNull final Report report) {
86-
final Map<String, TypedValue> values = new HashMap<>(report.getValues());
87-
values.put(Report.REPORT_SEVERITY_KEY, TypedValue.TRACE_SEVERITY);
88-
reporterModel.report(new Report(report.getReportKey(), report.getDefaultMessage(), values));
101+
static void copyReportAsTrace(@NonNull final ReportNode reportNode, @NonNull final ReportNode child) {
102+
final Map<String, TypedValue> values = new HashMap<>(child.getValues());
103+
values.put(ReportConstants.REPORT_SEVERITY_KEY, TypedValue.TRACE_SEVERITY);
104+
ReportNodeAdder adder = reportNode.newReportNode().withMessageTemplate(child.getMessageKey(), child.getMessageTemplate());
105+
values.entrySet().forEach(entry -> adder.withTypedValue(entry.getKey(), entry.getValue().getValue().toString(), entry.getValue().getType()));
106+
adder.add();
89107
}
90108
}

0 commit comments

Comments
 (0)