Skip to content

Commit f502f9f

Browse files
authored
Use zoned date time in benchmark params (#4351)
This is useful when the results are processed across different systems.
1 parent 05492d2 commit f502f9f

File tree

2 files changed

+325
-228
lines changed

2 files changed

+325
-228
lines changed

test/sdk-benchmarks/src/main/java/software/amazon/awssdk/benchmark/stats/SdkBenchmarkParams.java

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,14 @@
1717

1818
import com.fasterxml.jackson.core.JsonGenerator;
1919
import com.fasterxml.jackson.core.JsonParser;
20-
import com.fasterxml.jackson.core.JsonProcessingException;
2120
import com.fasterxml.jackson.databind.DeserializationContext;
2221
import com.fasterxml.jackson.databind.JsonDeserializer;
2322
import com.fasterxml.jackson.databind.JsonSerializer;
2423
import com.fasterxml.jackson.databind.SerializerProvider;
2524
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
2625
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
2726
import java.io.IOException;
28-
import java.time.LocalDateTime;
27+
import java.time.ZonedDateTime;
2928
import java.time.format.DateTimeFormatter;
3029
import org.openjdk.jmh.annotations.Mode;
3130
import org.openjdk.jmh.infra.BenchmarkParams;
@@ -46,9 +45,9 @@ public class SdkBenchmarkParams {
4645

4746
private Mode mode;
4847

49-
@JsonSerialize(using = LocalDateSerializer.class)
50-
@JsonDeserialize(using = LocalDateDeserializer.class)
51-
private LocalDateTime date;
48+
@JsonSerialize(using = ZonedDateSerializer.class)
49+
@JsonDeserialize(using = ZonedDateDeserializer.class)
50+
private ZonedDateTime date;
5251

5352
public SdkBenchmarkParams() {
5453
}
@@ -59,7 +58,7 @@ public SdkBenchmarkParams(BenchmarkParams benchmarkParams) {
5958
this.jvmName = benchmarkParams.getVmName();
6059
this.jvmVersion = benchmarkParams.getVmVersion();
6160
this.mode = benchmarkParams.getMode();
62-
this.date = LocalDateTime.now();
61+
this.date = ZonedDateTime.now();
6362
}
6463

6564
public String getSdkVersion() {
@@ -94,11 +93,11 @@ public void setJvmVersion(String jvmVersion) {
9493
this.jvmVersion = jvmVersion;
9594
}
9695

97-
public LocalDateTime getDate() {
96+
public ZonedDateTime getDate() {
9897
return date;
9998
}
10099

101-
public void setDate(LocalDateTime date) {
100+
public void setDate(ZonedDateTime date) {
102101
this.date = date;
103102
}
104103

@@ -110,18 +109,18 @@ public void setMode(Mode mode) {
110109
this.mode = mode;
111110
}
112111

113-
private static class LocalDateSerializer extends JsonSerializer<LocalDateTime> {
112+
private static class ZonedDateSerializer extends JsonSerializer<ZonedDateTime> {
114113

115114
@Override
116-
public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
117-
gen.writeString(value.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
115+
public void serialize(ZonedDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
116+
gen.writeString(value.format(DateTimeFormatter.ISO_ZONED_DATE_TIME));
118117
}
119118
}
120119

121-
private static class LocalDateDeserializer extends JsonDeserializer<LocalDateTime> {
120+
private static class ZonedDateDeserializer extends JsonDeserializer<ZonedDateTime> {
122121
@Override
123-
public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
124-
return LocalDateTime.parse(p.readValueAs(String.class));
122+
public ZonedDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
123+
return ZonedDateTime.parse(p.getValueAsString());
125124
}
126125
}
127126
}

0 commit comments

Comments
 (0)