diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 2da798ecb..e63b2f3dd 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -14,10 +14,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- - name: Set up JDK 11
+ - name: Set up JDK 17
uses: actions/setup-java@v1
with:
- java-version: 11
+ java-version: 17
- name: Checkout sources
uses: actions/checkout@v1
diff --git a/pom.xml b/pom.xml
index ecd43fc6b..4dd42624d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,7 +15,7 @@
com.powsybl
powsybl-parent-ws
- 10
+ 11
@@ -44,7 +44,6 @@
- 11
24
1.0.5
3.9
diff --git a/src/main/java/org/gridsuite/modification/server/entities/ModificationEntity.java b/src/main/java/org/gridsuite/modification/server/entities/ModificationEntity.java
index 4aa9bd817..923844324 100644
--- a/src/main/java/org/gridsuite/modification/server/entities/ModificationEntity.java
+++ b/src/main/java/org/gridsuite/modification/server/entities/ModificationEntity.java
@@ -16,6 +16,7 @@
import javax.persistence.*;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
+import java.time.temporal.ChronoUnit;
import java.util.UUID;
import static org.gridsuite.modification.server.NetworkModificationException.Type.MISSING_MODIFICATION_DESCRIPTION;
@@ -49,7 +50,8 @@ protected ModificationEntity(ModificationInfos modificationInfos) {
if (modificationInfos == null) {
throw new NetworkModificationException(MISSING_MODIFICATION_DESCRIPTION, "Missing network modification description");
}
- this.date = ZonedDateTime.now(ZoneOffset.UTC);
+ //We need to limit the precision to avoid database precision storage limit issue (postgres has a precision of 6 digits while h2 can go to 9)
+ this.date = ZonedDateTime.now(ZoneOffset.UTC).truncatedTo(ChronoUnit.MICROS);
}
public ModificationInfos toModificationInfos() {
diff --git a/src/test/java/org/gridsuite/modification/server/modifications/EquipmentAttributeModificationTest.java b/src/test/java/org/gridsuite/modification/server/modifications/EquipmentAttributeModificationTest.java
index df0c0f4a2..1d4261e38 100644
--- a/src/test/java/org/gridsuite/modification/server/modifications/EquipmentAttributeModificationTest.java
+++ b/src/test/java/org/gridsuite/modification/server/modifications/EquipmentAttributeModificationTest.java
@@ -20,6 +20,7 @@
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
+import java.time.temporal.ChronoUnit;
import java.util.Set;
import java.util.UUID;
@@ -40,9 +41,10 @@ public class EquipmentAttributeModificationTest extends AbstractNetworkModificat
public void testEquipmentAttributeModificationInfos() {
MvcResult mvcResult;
UUID modificationUuid = UUID.randomUUID();
+ //We need to limit the precision to avoid database precision storage limit issue (postgres has a precision of 6 digits while h2 can go to 9)
EquipmentAttributeModificationInfos modificationInfos = EquipmentAttributeModificationInfos.builder()
.uuid(modificationUuid)
- .date(ZonedDateTime.of(2021, 2, 19, 0, 0, 0, 0, ZoneOffset.UTC))
+ .date(ZonedDateTime.of(2021, 2, 19, 0, 0, 0, 0, ZoneOffset.UTC).truncatedTo(ChronoUnit.MICROS))
.equipmentId("equipmentId")
.equipmentAttributeName("equipmentAttributeName")
.equipmentAttributeValue("equipmentAttributeValue")
diff --git a/src/test/java/org/gridsuite/modification/server/modifications/GeneratorScalingTest.java b/src/test/java/org/gridsuite/modification/server/modifications/GeneratorScalingTest.java
index 090f15dd1..b6c90bc88 100644
--- a/src/test/java/org/gridsuite/modification/server/modifications/GeneratorScalingTest.java
+++ b/src/test/java/org/gridsuite/modification/server/modifications/GeneratorScalingTest.java
@@ -25,6 +25,7 @@
import org.springframework.http.MediaType;
import java.time.ZonedDateTime;
+import java.time.temporal.ChronoUnit;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@@ -164,7 +165,7 @@ public void testVentilationModeWithoutDistributionKey() {
ModificationInfos modificationToCreate = GeneratorScalingInfos.builder()
.uuid(GENERATOR_SCALING_ID)
- .date(ZonedDateTime.now())
+ .date(ZonedDateTime.now().truncatedTo(ChronoUnit.MICROS))
.variationType(VariationType.DELTA_P)
.variations(List.of(variation1))
.build();
@@ -328,7 +329,7 @@ protected ModificationInfos buildModification() {
.build();
return GeneratorScalingInfos.builder()
- .date(ZonedDateTime.now())
+ .date(ZonedDateTime.now().truncatedTo(ChronoUnit.MICROS))
.variationType(VariationType.DELTA_P)
.variations(List.of(variation1, variation2, variation3, variation4, variation5))
.build();
@@ -349,7 +350,7 @@ protected ModificationInfos buildModificationUpdate() {
return GeneratorScalingInfos.builder()
.uuid(GENERATOR_SCALING_ID)
- .date(ZonedDateTime.now())
+ .date(ZonedDateTime.now().truncatedTo(ChronoUnit.MICROS))
.variationType(VariationType.TARGET_P)
.variations(List.of(variation5))
.build();
diff --git a/src/test/java/org/gridsuite/modification/server/modifications/LoadScalingTest.java b/src/test/java/org/gridsuite/modification/server/modifications/LoadScalingTest.java
index 6cf67db66..51662ec62 100644
--- a/src/test/java/org/gridsuite/modification/server/modifications/LoadScalingTest.java
+++ b/src/test/java/org/gridsuite/modification/server/modifications/LoadScalingTest.java
@@ -27,6 +27,7 @@
import org.springframework.http.MediaType;
import java.time.ZonedDateTime;
+import java.time.temporal.ChronoUnit;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@@ -185,7 +186,7 @@ public void testVentilationModeWithoutDistributionKey() {
ModificationInfos modificationToCreate = LoadScalingInfos.builder()
.uuid(LOAD_SCALING_ID)
- .date(ZonedDateTime.now())
+ .date(ZonedDateTime.now().truncatedTo(ChronoUnit.MICROS))
.variationType(VariationType.DELTA_P)
.variations(List.of(variation1))
.build();
@@ -356,7 +357,7 @@ protected ModificationInfos buildModification() {
.build();
return LoadScalingInfos.builder()
- .date(ZonedDateTime.now())
+ .date(ZonedDateTime.now().truncatedTo(ChronoUnit.MICROS))
.variationType(VariationType.DELTA_P)
.variations(List.of(variation1, variation2, variation3, variation4, variation5))
.build();
@@ -378,7 +379,7 @@ protected ModificationInfos buildModificationUpdate() {
return LoadScalingInfos.builder()
.uuid(LOAD_SCALING_ID)
- .date(ZonedDateTime.now())
+ .date(ZonedDateTime.now().truncatedTo(ChronoUnit.MICROS))
.variationType(VariationType.TARGET_P)
.variations(List.of(variation5))
.build();
diff --git a/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorCreationInBusBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorCreationInBusBreakerTest.java
index 1732849b7..30313db5f 100644
--- a/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorCreationInBusBreakerTest.java
+++ b/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorCreationInBusBreakerTest.java
@@ -19,6 +19,7 @@
import org.springframework.http.MediaType;
import java.time.ZonedDateTime;
+import java.time.temporal.ChronoUnit;
import java.util.UUID;
import static org.gridsuite.modification.server.NetworkModificationException.Type.BUS_NOT_FOUND;
@@ -58,7 +59,7 @@ protected Network createNetwork(UUID networkUuid) {
@Override
protected ModificationInfos buildModification() {
return ShuntCompensatorCreationInfos.builder()
- .date(ZonedDateTime.now())
+ .date(ZonedDateTime.now().truncatedTo(ChronoUnit.MICROS))
.equipmentId("shuntOneId")
.equipmentName("hopOne")
.currentNumberOfSections(4)
@@ -75,7 +76,7 @@ protected ModificationInfos buildModification() {
@Override
protected ModificationInfos buildModificationUpdate() {
return ShuntCompensatorCreationInfos.builder()
- .date(ZonedDateTime.now())
+ .date(ZonedDateTime.now().truncatedTo(ChronoUnit.MICROS))
.equipmentId("shuntOneIdEdited")
.equipmentName("hopEdited")
.currentNumberOfSections(6)
diff --git a/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorCreationInNodeBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorCreationInNodeBreakerTest.java
index e4485bd22..2d6ab4f85 100644
--- a/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorCreationInNodeBreakerTest.java
+++ b/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorCreationInNodeBreakerTest.java
@@ -20,6 +20,7 @@
import org.springframework.http.MediaType;
import java.time.ZonedDateTime;
+import java.time.temporal.ChronoUnit;
import java.util.UUID;
import static org.gridsuite.modification.server.NetworkModificationException.Type.CONNECTION_POSITION_ERROR;
@@ -41,7 +42,7 @@ protected Network createNetwork(UUID networkUuid) {
@Override
protected ModificationInfos buildModification() {
return ShuntCompensatorCreationInfos.builder()
- .date(ZonedDateTime.now())
+ .date(ZonedDateTime.now().truncatedTo(ChronoUnit.MICROS))
.equipmentId("shuntOneId")
.equipmentName("hop")
.currentNumberOfSections(4)
@@ -59,7 +60,7 @@ protected ModificationInfos buildModification() {
@Override
protected ModificationInfos buildModificationUpdate() {
return ShuntCompensatorCreationInfos.builder()
- .date(ZonedDateTime.now())
+ .date(ZonedDateTime.now().truncatedTo(ChronoUnit.MICROS))
.equipmentId("shuntOneIdEdited")
.equipmentName("hopEdited")
.currentNumberOfSections(6)
diff --git a/src/test/java/org/gridsuite/modification/server/utils/MatcherBranchStatusModificationInfos.java b/src/test/java/org/gridsuite/modification/server/utils/MatcherBranchStatusModificationInfos.java
index 33a34b90e..01d9bcf9c 100644
--- a/src/test/java/org/gridsuite/modification/server/utils/MatcherBranchStatusModificationInfos.java
+++ b/src/test/java/org/gridsuite/modification/server/utils/MatcherBranchStatusModificationInfos.java
@@ -10,6 +10,7 @@
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
+import java.time.temporal.ChronoUnit;
/**
* @author Slimane Amar
@@ -22,7 +23,7 @@ protected MatcherBranchStatusModificationInfos(BranchStatusModificationInfos ref
public static MatcherBranchStatusModificationInfos createMatcherBranchStatusModificationInfos(String equipmentId, BranchStatusModificationInfos.ActionType action) {
return new MatcherBranchStatusModificationInfos(BranchStatusModificationInfos.builder()
- .date(ZonedDateTime.now(ZoneOffset.UTC))
+ .date(ZonedDateTime.now(ZoneOffset.UTC).truncatedTo(ChronoUnit.MICROS))
.equipmentId(equipmentId)
.action(action)
.build());
diff --git a/src/test/java/org/gridsuite/modification/server/utils/MatcherEquipmentAttributeModificationInfos.java b/src/test/java/org/gridsuite/modification/server/utils/MatcherEquipmentAttributeModificationInfos.java
index 826f1934f..ea9a90e0f 100644
--- a/src/test/java/org/gridsuite/modification/server/utils/MatcherEquipmentAttributeModificationInfos.java
+++ b/src/test/java/org/gridsuite/modification/server/utils/MatcherEquipmentAttributeModificationInfos.java
@@ -12,6 +12,7 @@
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
+import java.time.temporal.ChronoUnit;
import java.util.Objects;
/**
@@ -22,7 +23,7 @@ public class MatcherEquipmentAttributeModificationInfos extends MatcherModificat
public static MatcherEquipmentAttributeModificationInfos createMatcherEquipmentAttributeModificationInfos(String equipmentId, String equipmentAttributeName,
Object equipmentAttributeValue, IdentifiableType equipmentType) {
return new MatcherEquipmentAttributeModificationInfos(EquipmentAttributeModificationInfos.builder()
- .date(ZonedDateTime.now(ZoneOffset.UTC))
+ .date(ZonedDateTime.now(ZoneOffset.UTC).truncatedTo(ChronoUnit.MICROS))
.equipmentId(equipmentId)
.equipmentAttributeName(equipmentAttributeName)
.equipmentAttributeValue(equipmentAttributeValue)
diff --git a/src/test/java/org/gridsuite/modification/server/utils/MatcherGroovyScriptInfos.java b/src/test/java/org/gridsuite/modification/server/utils/MatcherGroovyScriptInfos.java
index 045752a36..0ac5ba024 100644
--- a/src/test/java/org/gridsuite/modification/server/utils/MatcherGroovyScriptInfos.java
+++ b/src/test/java/org/gridsuite/modification/server/utils/MatcherGroovyScriptInfos.java
@@ -11,6 +11,7 @@
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
+import java.time.temporal.ChronoUnit;
/**
* @author Franck Lecuyer
@@ -19,7 +20,7 @@ public class MatcherGroovyScriptInfos extends MatcherModificationInfos