Skip to content

Commit 40caea5

Browse files
committed
Upgrade codebase to Java 17+
1 parent fcdb942 commit 40caea5

40 files changed

+727
-1840
lines changed

pom.xml

+15-3
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
<groupId>de.sstoehr</groupId>
1212
<artifactId>har-reader</artifactId>
13-
<version>2.5.1-SNAPSHOT</version>
13+
<version>3.0.0-SNAPSHOT</version>
1414
<packaging>jar</packaging>
1515

1616
<name>har-reader</name>
@@ -35,6 +35,18 @@
3535
<version>${jackson.version}</version>
3636
</dependency>
3737

38+
<dependency>
39+
<groupId>com.fasterxml.jackson.datatype</groupId>
40+
<artifactId>jackson-datatype-jsr310</artifactId>
41+
<version>${jackson.version}</version>
42+
</dependency>
43+
44+
<dependency>
45+
<groupId>com.google.code.findbugs</groupId>
46+
<artifactId>jsr305</artifactId>
47+
<version>3.0.2</version>
48+
</dependency>
49+
3850
<dependency>
3951
<groupId>org.junit.jupiter</groupId>
4052
<artifactId>junit-jupiter</artifactId>
@@ -56,15 +68,15 @@
5668
<artifactId>maven-compiler-plugin</artifactId>
5769
<version>3.13.0</version>
5870
<configuration>
59-
<release>8</release>
71+
<release>17</release>
6072
</configuration>
6173
</plugin>
6274
<plugin>
6375
<groupId>org.apache.maven.plugins</groupId>
6476
<artifactId>maven-javadoc-plugin</artifactId>
6577
<version>3.11.1</version>
6678
<configuration>
67-
<source>1.8</source>
79+
<source>17</source>
6880
</configuration>
6981
</plugin>
7082
<plugin>
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,33 @@
11
package de.sstoehr.harreader.jackson;
22

3+
import java.time.Instant;
4+
import java.time.ZonedDateTime;
35
import java.util.Date;
46

7+
import com.fasterxml.jackson.databind.DeserializationFeature;
58
import com.fasterxml.jackson.databind.ObjectMapper;
69
import com.fasterxml.jackson.databind.module.SimpleModule;
710

11+
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
812
import de.sstoehr.harreader.HarReaderMode;
913

1014
public class DefaultMapperFactory implements MapperFactory {
1115

1216
public ObjectMapper instance(HarReaderMode mode) {
1317
SimpleModule module = new SimpleModule();
1418
if (mode == HarReaderMode.LAX) {
15-
module.addDeserializer(Date.class, new ExceptionIgnoringDateDeserializer());
19+
module.addDeserializer(ZonedDateTime.class, new ExceptionIgnoringZonedDateTimeDeserializer());
1620
module.addDeserializer(Integer.class, new ExceptionIgnoringIntegerDeserializer());
1721
}
1822
return instance().registerModule(module);
1923
}
2024

2125
public ObjectMapper instance() {
22-
return new ObjectMapper();
26+
ObjectMapper mapper = new ObjectMapper();
27+
mapper.registerModule(new JavaTimeModule());
28+
mapper.configure(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE, false);
29+
30+
return mapper;
2331
}
2432

2533
}

src/main/java/de/sstoehr/harreader/jackson/ExceptionIgnoringDateDeserializer.java

-24
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package de.sstoehr.harreader.jackson;
2+
3+
import com.fasterxml.jackson.core.JsonParser;
4+
import com.fasterxml.jackson.databind.DeserializationContext;
5+
import com.fasterxml.jackson.databind.JsonDeserializer;
6+
import com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer;
7+
8+
import java.io.IOException;
9+
import java.time.Instant;
10+
import java.time.ZoneId;
11+
import java.time.ZonedDateTime;
12+
13+
public class ExceptionIgnoringZonedDateTimeDeserializer extends JsonDeserializer<ZonedDateTime> {
14+
15+
@Override
16+
public ZonedDateTime deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
17+
try {
18+
return InstantDeserializer.ZONED_DATE_TIME.deserialize(jp, ctxt);
19+
} catch (IOException e) {
20+
//ignore
21+
}
22+
return ZonedDateTime.ofInstant(Instant.ofEpochSecond(0L), ZoneId.of("UTC"));
23+
}
24+
25+
}

src/main/java/de/sstoehr/harreader/model/Har.java

+5-29
Original file line numberDiff line numberDiff line change
@@ -3,42 +3,18 @@
33
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
44
import com.fasterxml.jackson.annotation.JsonInclude;
55

6-
import java.util.Objects;
6+
import javax.annotation.Nonnull;
7+
import javax.annotation.Nullable;
78

89
/**
910
* Main HTTP Archive Class.
1011
* @see <a href="http://www.softwareishard.com/blog/har-12-spec/">speicification</a>
1112
*/
1213
@JsonInclude(JsonInclude.Include.NON_NULL)
1314
@JsonIgnoreProperties(ignoreUnknown = true)
14-
public class Har {
15+
public record Har(@Nonnull HarLog log) {
1516

16-
private HarLog log;
17-
18-
/**
19-
* @return HAR log.
20-
*/
21-
public HarLog getLog() {
22-
if (log == null) {
23-
log = new HarLog();
24-
}
25-
return log;
26-
}
27-
28-
public void setLog(HarLog log) {
29-
this.log = log;
30-
}
31-
32-
@Override
33-
public boolean equals(Object o) {
34-
if (this == o) return true;
35-
if (o == null || getClass() != o.getClass()) return false;
36-
Har har = (Har) o;
37-
return Objects.equals(log, har.log);
38-
}
39-
40-
@Override
41-
public int hashCode() {
42-
return Objects.hash(log);
17+
public Har(@Nullable HarLog log) {
18+
this.log = (log == null) ? new HarLog() : log;
4319
}
4420
}

0 commit comments

Comments
 (0)