Skip to content

Commit 8ac44bd

Browse files
authored
replace ZonedDateTime with Instant (#92)
* replace LocalDateTime with ZonedDateTime * replace ZonedDateTime with OffsetDateTime * remove comment * replace OffsetDateTime with Instant --------- Signed-off-by: TOURI ANIS <[email protected]>
1 parent 97c2830 commit 8ac44bd

File tree

6 files changed

+18
-19
lines changed

6 files changed

+18
-19
lines changed

src/main/java/org/gridsuite/shortcircuit/server/dto/ShortCircuitAnalysisResult.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import lombok.Getter;
1111
import lombok.NoArgsConstructor;
1212

13-
import java.time.ZonedDateTime;
13+
import java.time.Instant;
1414
import java.util.List;
1515
import java.util.UUID;
1616

@@ -24,7 +24,7 @@ public class ShortCircuitAnalysisResult {
2424

2525
private UUID resultUuid;
2626

27-
private ZonedDateTime writeTimeStamp;
27+
private Instant writeTimeStamp;
2828

2929
private List<FaultResult> faults;
3030
}

src/main/java/org/gridsuite/shortcircuit/server/entities/ShortCircuitAnalysisResultEntity.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import jakarta.persistence.*;
1414
import lombok.experimental.FieldNameConstants;
1515

16-
import java.time.ZonedDateTime;
16+
import java.time.Instant;
1717
import java.util.Set;
1818
import java.util.UUID;
1919

@@ -30,8 +30,8 @@ public class ShortCircuitAnalysisResultEntity {
3030
@Id
3131
private UUID resultUuid;
3232

33-
@Column
34-
private ZonedDateTime writeTimeStamp;
33+
@Column(columnDefinition = "timestamptz")
34+
private Instant writeTimeStamp;
3535

3636
/*
3737
Bidirectional relation is not needed here and is done for performance
@@ -43,7 +43,7 @@ and having a constant hashCode() causes performance issues.
4343
@Setter
4444
private Set<FaultResultEntity> faultResults;
4545

46-
public ShortCircuitAnalysisResultEntity(UUID resultUuid, ZonedDateTime writeTimeStamp, Set<FaultResultEntity> faultResults) {
46+
public ShortCircuitAnalysisResultEntity(UUID resultUuid, Instant writeTimeStamp, Set<FaultResultEntity> faultResults) {
4747
this.resultUuid = resultUuid;
4848
this.writeTimeStamp = writeTimeStamp;
4949
addFaultResults(faultResults);

src/main/java/org/gridsuite/shortcircuit/server/service/ShortCircuitAnalysisResultService.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@
2828
import org.springframework.stereotype.Service;
2929
import org.springframework.transaction.annotation.Transactional;
3030

31-
import java.time.ZoneOffset;
32-
import java.time.ZonedDateTime;
31+
import java.time.Instant;
3332
import java.time.temporal.ChronoUnit;
3433
import java.util.*;
3534
import java.util.concurrent.TimeUnit;
@@ -89,7 +88,7 @@ public static ShortCircuitAnalysisResultEntity toResultEntity(UUID resultUuid, S
8988
})
9089
.collect(Collectors.toSet());
9190
//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)
92-
return new ShortCircuitAnalysisResultEntity(resultUuid, ZonedDateTime.now(ZoneOffset.UTC).truncatedTo(ChronoUnit.MICROS), faultResults);
91+
return new ShortCircuitAnalysisResultEntity(resultUuid, Instant.now().truncatedTo(ChronoUnit.MICROS), faultResults);
9392
}
9493

9594
private static FaultResultEntity toGenericFaultResultEntity(final FaultResult faultResult, final ShortCircuitLimits shortCircuitLimits) {
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
2+
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:pro="http://www.liquibase.org/xml/ns/pro" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/pro http://www.liquibase.org/xml/ns/pro/liquibase-pro-latest.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd">
3+
<changeSet author="tourian1 (generated)" id="1716912736877-1">
4+
<modifyDataType tableName="shortcircuit_result" columnName="write_time_stamp" newDataType="timestamptz"/>
5+
</changeSet>
6+
</databaseChangeLog>

src/main/resources/db/changelog/db.changelog-master.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,7 @@ databaseChangeLog:
3333
- include:
3434
file: changesets/changelog_20240403T090341Z.xml
3535
relativeToChangelogFile: true
36+
- include:
37+
file: changesets/changelog_20240528T161201Z.xml
38+
relativeToChangelogFile: true
39+

src/test/java/org/gridsuite/shortcircuit/server/ShortCircuitAnalysisControllerTest.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,6 @@
5454
import org.springframework.test.web.servlet.MvcResult;
5555

5656
import java.nio.charset.StandardCharsets;
57-
import java.time.LocalDateTime;
58-
import java.time.temporal.ChronoUnit;
5957
import java.util.*;
6058
import java.util.concurrent.CompletableFuture;
6159
import java.util.stream.Collectors;
@@ -337,8 +335,6 @@ private void cleanDB() {
337335

338336
@Test
339337
public void runTest() throws Exception {
340-
//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)
341-
LocalDateTime testTime = LocalDateTime.now().truncatedTo(ChronoUnit.MICROS);
342338
try (MockedStatic<ShortCircuitAnalysis> shortCircuitAnalysisMockedStatic = Mockito.mockStatic(ShortCircuitAnalysis.class)) {
343339

344340
shortCircuitAnalysisMockedStatic.when(() -> ShortCircuitAnalysis.runAsync(eq(network), anyList(), any(ShortCircuitParameters.class), any(ComputationManager.class), anyList(), any(ReportNode.class)))
@@ -549,8 +545,6 @@ public void testDeterministicResults() throws Exception {
549545

550546
@Test
551547
public void runWithBusIdTest() throws Exception {
552-
//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)
553-
LocalDateTime testTime = LocalDateTime.now().truncatedTo(ChronoUnit.MICROS);
554548
try (MockedStatic<ShortCircuitAnalysis> shortCircuitAnalysisMockedStatic = Mockito.mockStatic(ShortCircuitAnalysis.class)) {
555549
shortCircuitAnalysisMockedStatic.when(() -> ShortCircuitAnalysis.runAsync(eq(network), anyList(), any(ShortCircuitParameters.class), any(ComputationManager.class), anyList(), any(ReportNode.class)))
556550
.thenReturn(CompletableFuture.completedFuture(ShortCircuitAnalysisResultMock.RESULT_FORTESCUE_FULL));
@@ -612,8 +606,6 @@ public void runWithBusIdTest() throws Exception {
612606

613607
@Test
614608
public void runWithBusBarSectionIdTest() throws Exception {
615-
//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)
616-
LocalDateTime testTime = LocalDateTime.now().truncatedTo(ChronoUnit.MICROS);
617609
try (MockedStatic<ShortCircuitAnalysis> shortCircuitAnalysisMockedStatic = Mockito.mockStatic(ShortCircuitAnalysis.class)) {
618610
shortCircuitAnalysisMockedStatic.when(() -> ShortCircuitAnalysis.runAsync(eq(nodeBreakerNetwork), anyList(), any(ShortCircuitParameters.class), any(ComputationManager.class), anyList(), any(ReportNode.class)))
619611
.thenReturn(CompletableFuture.completedFuture(ShortCircuitAnalysisResultMock.RESULT_FORTESCUE_FULL));
@@ -656,8 +648,6 @@ public void runWithBusBarSectionIdTest() throws Exception {
656648

657649
@Test
658650
public void runWithBusBarSectionIdAndErrorTest() throws Exception {
659-
//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)
660-
LocalDateTime testTime = LocalDateTime.now().truncatedTo(ChronoUnit.MICROS);
661651
try (MockedStatic<ShortCircuitAnalysis> shortCircuitAnalysisMockedStatic = Mockito.mockStatic(ShortCircuitAnalysis.class)) {
662652
shortCircuitAnalysisMockedStatic.when(() -> ShortCircuitAnalysis.runAsync(eq(nodeBreakerNetwork), anyList(), any(ShortCircuitParameters.class), any(ComputationManager.class), anyList(), any(ReportNode.class)))
663653
.thenReturn(CompletableFuture.completedFuture(ShortCircuitAnalysisResultMock.RESULT_MAGNITUDE_FULL));

0 commit comments

Comments
 (0)