Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade codebase to Java 17+: Switch to records, use ZonedDateTime, Nullable annotations #188

Merged
merged 2 commits into from
Dec 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 15 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

<groupId>de.sstoehr</groupId>
<artifactId>har-reader</artifactId>
<version>2.5.1-SNAPSHOT</version>
<version>3.0.0-SNAPSHOT</version>
<packaging>jar</packaging>

<name>har-reader</name>
Expand All @@ -35,6 +35,18 @@
<version>${jackson.version}</version>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>${jackson.version}</version>
</dependency>

<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>3.0.2</version>
</dependency>

<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
Expand All @@ -56,15 +68,15 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<release>8</release>
<release>17</release>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.11.1</version>
<configuration>
<source>1.8</source>
<source>17</source>
</configuration>
</plugin>
<plugin>
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/de/sstoehr/harreader/HarReader.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public class HarReader extends AbstractHarIO {
public HarReader() {
super();
}

public HarReader(MapperFactory mapperFactory) {
super(mapperFactory);
}
Expand Down
2 changes: 0 additions & 2 deletions src/main/java/de/sstoehr/harreader/HarWriter.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package de.sstoehr.harreader;

import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.io.Writer;
import java.util.function.Function;

import com.fasterxml.jackson.databind.ObjectMapper;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,33 @@
package de.sstoehr.harreader.jackson;

import java.time.Instant;
import java.time.ZonedDateTime;
import java.util.Date;

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;

import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import de.sstoehr.harreader.HarReaderMode;

public class DefaultMapperFactory implements MapperFactory {

public ObjectMapper instance(HarReaderMode mode) {
SimpleModule module = new SimpleModule();
if (mode == HarReaderMode.LAX) {
module.addDeserializer(Date.class, new ExceptionIgnoringDateDeserializer());
module.addDeserializer(ZonedDateTime.class, new ExceptionIgnoringZonedDateTimeDeserializer());
module.addDeserializer(Integer.class, new ExceptionIgnoringIntegerDeserializer());
}
return instance().registerModule(module);
}

public ObjectMapper instance() {
return new ObjectMapper();
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JavaTimeModule());
mapper.configure(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE, false);

return mapper;
}

}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package de.sstoehr.harreader.jackson;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer;

import java.io.IOException;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;

public class ExceptionIgnoringZonedDateTimeDeserializer extends JsonDeserializer<ZonedDateTime> {

@Override
public ZonedDateTime deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
try {
return InstantDeserializer.ZONED_DATE_TIME.deserialize(jp, ctxt);
} catch (IOException e) {
//ignore
}
return ZonedDateTime.ofInstant(Instant.ofEpochSecond(0L), ZoneId.of("UTC"));
}

}
34 changes: 5 additions & 29 deletions src/main/java/de/sstoehr/harreader/model/Har.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,42 +3,18 @@
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;

import java.util.Objects;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;

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

private HarLog log;

/**
* @return HAR log.
*/
public HarLog getLog() {
if (log == null) {
log = new HarLog();
}
return log;
}

public void setLog(HarLog log) {
this.log = log;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Har har = (Har) o;
return Objects.equals(log, har.log);
}

@Override
public int hashCode() {
return Objects.hash(log);
public Har(@Nullable HarLog log) {
this.log = (log == null) ? new HarLog() : log;
}
}
Loading
Loading