Skip to content

Commit 00214c2

Browse files
authored
Merge pull request kroxylicious#2019 from robobario/instant-module
refactor: use jackson java8 date module
2 parents f3afd20 + 6439e39 commit 00214c2

File tree

7 files changed

+20
-65
lines changed

7 files changed

+20
-65
lines changed

kroxylicious-operator/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,11 @@
126126
<artifactId>jackson-databind</artifactId>
127127
<scope>compile</scope>
128128
</dependency>
129+
<dependency>
130+
<groupId>com.fasterxml.jackson.datatype</groupId>
131+
<artifactId>jackson-datatype-jsr310</artifactId>
132+
<scope>compile</scope>
133+
</dependency>
129134

130135
<dependency>
131136
<groupId>org.slf4j</groupId>

kroxylicious-operator/src/main/java/io/kroxylicious/kubernetes/api/common/Condition.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@
66

77
package io.kroxylicious.kubernetes.api.common;
88

9-
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
10-
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
11-
129
/**
1310
* A common Condition type, used in CR statuses.
1411
*/
@@ -42,17 +39,13 @@ public ConditionBuilder edit() {
4239
@com.fasterxml.jackson.annotation.JsonProperty("lastTransitionTime")
4340
@com.fasterxml.jackson.annotation.JsonPropertyDescription("lastTransitionTime is the last time the condition transitioned from one status to another. \nThis should be when the underlying condition changed. \nIf that is not known, then using the time when the API field changed is acceptable.\n")
4441
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SKIP)
45-
@JsonDeserialize(using = InstantDeserializer.class)
46-
@JsonSerialize(using = InstantSerializer.class)
42+
@com.fasterxml.jackson.annotation.JsonFormat(shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING)
4743
private java.time.Instant lastTransitionTime;
4844

49-
@JsonDeserialize(using = InstantDeserializer.class)
50-
@JsonSerialize(using = InstantSerializer.class)
5145
public java.time.Instant getLastTransitionTime() {
5246
return lastTransitionTime;
5347
}
5448

55-
@com.fasterxml.jackson.annotation.JsonFormat(shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss[XXX][VV]")
5649
public void setLastTransitionTime(java.time.Instant lastTransitionTime) {
5750
this.lastTransitionTime = lastTransitionTime;
5851
}

kroxylicious-operator/src/main/java/io/kroxylicious/kubernetes/api/common/InstantDeserializer.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

kroxylicious-operator/src/main/java/io/kroxylicious/kubernetes/api/common/InstantSerializer.java

Lines changed: 0 additions & 25 deletions
This file was deleted.

kroxylicious-operator/src/main/java/io/kroxylicious/kubernetes/operator/ProxyConfigData.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import com.fasterxml.jackson.core.JsonProcessingException;
1616
import com.fasterxml.jackson.core.type.TypeReference;
1717
import com.fasterxml.jackson.databind.ObjectMapper;
18+
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
1819

1920
import io.kroxylicious.kubernetes.api.common.Condition;
2021
import io.kroxylicious.proxy.config.ConfigParser;
@@ -30,11 +31,12 @@ public class ProxyConfigData {
3031

3132
public static final String CONFIG_YAML_KEY = "proxy-config.yaml";
3233
public static final String CLUSTER_KEY_PREFIX = "cluster-";
33-
static final ObjectMapper OBJECT_MAPPER = ConfigParser.createObjectMapper();
34+
static final ObjectMapper CONFIG_OBJECT_MAPPER = ConfigParser.createObjectMapper()
35+
.registerModule(new JavaTimeModule());
3436

3537
private static String toYaml(Object filterDefs) {
3638
try {
37-
return OBJECT_MAPPER.writeValueAsString(filterDefs);
39+
return CONFIG_OBJECT_MAPPER.writeValueAsString(filterDefs);
3840
}
3941
catch (IOException e) {
4042
throw new UncheckedIOException(e);
@@ -79,7 +81,7 @@ public boolean hasConditionsForCluster(String clusterName) {
7981
return null;
8082
}
8183
try {
82-
return OBJECT_MAPPER.readValue(str, new TypeReference<List<Condition>>() {
84+
return CONFIG_OBJECT_MAPPER.readValue(str, new TypeReference<List<Condition>>() {
8385
});
8486
}
8587
catch (JsonProcessingException e) {

kroxylicious-operator/src/test/java/io/kroxylicious/kubernetes/api/common/ConditionTest.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import com.fasterxml.jackson.core.JsonProcessingException;
1414
import com.fasterxml.jackson.databind.ObjectMapper;
15+
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
1516

1617
import static org.assertj.core.api.Assertions.assertThat;
1718

@@ -22,16 +23,16 @@ void serializedFormShouldUseIso8601() throws JsonProcessingException {
2223
// Given
2324
Condition build = new ConditionBuilder().withLastTransitionTime(Instant.EPOCH).build();
2425
// When
25-
var conditionWithEpoch = new ObjectMapper().writeValueAsString(build);
26+
var conditionWithEpoch = new ObjectMapper().registerModule(new JavaTimeModule()).writeValueAsString(build);
2627
// Then
2728
assertThat(conditionWithEpoch).isEqualTo("{\"lastTransitionTime\":\"1970-01-01T00:00:00Z\"}");
2829
}
2930

3031
@Test
3132
void roundTrip() throws JsonProcessingException {
3233
// Given
33-
ObjectMapper objectMapper = new ObjectMapper();
34-
Condition wroteCondition = new ConditionBuilder().withLastTransitionTime(Instant.EPOCH).build();
34+
ObjectMapper objectMapper = new ObjectMapper().registerModule(new JavaTimeModule());
35+
Condition wroteCondition = new ConditionBuilder().withLastTransitionTime(Instant.now()).build();
3536
// When
3637
var conditionString = objectMapper.writeValueAsString(wroteCondition);
3738
var readCondition = objectMapper.readValue(conditionString, Condition.class);

kroxylicious-operator/src/test/java/io/kroxylicious/kubernetes/operator/DerivedResourcesTest.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,10 @@
3333
import org.mockito.stubbing.Answer;
3434

3535
import com.fasterxml.jackson.core.JsonProcessingException;
36+
import com.fasterxml.jackson.databind.ObjectMapper;
3637
import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator;
3738
import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
39+
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
3840

3941
import io.fabric8.kubernetes.api.model.HasMetadata;
4042
import io.fabric8.kubernetes.api.model.ObjectMeta;
@@ -63,9 +65,10 @@
6365

6466
class DerivedResourcesTest {
6567

66-
static final YAMLMapper YAML_MAPPER = new YAMLMapper()
68+
static final ObjectMapper YAML_MAPPER = new YAMLMapper()
6769
.disable(YAMLGenerator.Feature.WRITE_DOC_START_MARKER)
68-
.enable(YAMLGenerator.Feature.LITERAL_BLOCK_STYLE);
70+
.enable(YAMLGenerator.Feature.LITERAL_BLOCK_STYLE)
71+
.registerModule(new JavaTimeModule());
6972

7073
public static KafkaProxy kafkaProxyFromFile(Path path) {
7174
// TODO should validate against the CRD schema, because the DependentResource

0 commit comments

Comments
 (0)