Skip to content

Commit 0f26b85

Browse files
committed
Updated to Jackson 3 and Junit 6
- Updated logback-core to fix OWASP error.
1 parent df44438 commit 0f26b85

4 files changed

Lines changed: 36 additions & 50 deletions

File tree

pom.xml

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,25 @@
1212
<maven.compiler.release>25</maven.compiler.release>
1313

1414
<google-guava.version>33.5.0-jre</google-guava.version>
15-
<commons-collectiosns.version>4.5.0</commons-collectiosns.version>
15+
<commons-collections4.version>4.5.0</commons-collections4.version>
1616
<commons-lang3.version>3.19.0</commons-lang3.version>
1717
<lombok.version>1.18.42</lombok.version>
1818
<gson.version>2.13.2</gson.version>
19-
<jackson.version>2.20.0</jackson.version>
19+
<jackson.version>3.0.0</jackson.version>
2020
<reflections.version>0.10.2</reflections.version>
2121

22-
<logback.version>1.5.18</logback.version>
22+
<logback.version>1.5.19</logback.version>
2323
<slf4j.version>2.0.17</slf4j.version>
2424

25-
<junit.version>5.13.4</junit.version>
25+
<junit.version>6.0.0</junit.version>
2626
<archunit.version>1.4.1</archunit.version>
2727
<dependency-check-maven.version>12.1.6</dependency-check-maven.version>
2828
</properties>
2929

3030
<dependencyManagement>
3131
<dependencies>
3232
<dependency>
33-
<groupId>com.fasterxml.jackson</groupId>
33+
<groupId>tools.jackson</groupId>
3434
<artifactId>jackson-bom</artifactId>
3535
<version>${jackson.version}</version>
3636
<type>pom</type>
@@ -56,7 +56,7 @@
5656
<dependency>
5757
<groupId>org.apache.commons</groupId>
5858
<artifactId>commons-collections4</artifactId>
59-
<version>${commons-collectiosns.version}</version>
59+
<version>${commons-collections4.version}</version>
6060
</dependency>
6161
<dependency>
6262
<groupId>org.apache.commons</groupId>
@@ -74,17 +74,13 @@
7474
<version>${gson.version}</version>
7575
</dependency>
7676
<dependency>
77-
<groupId>com.fasterxml.jackson.core</groupId>
77+
<groupId>tools.jackson.core</groupId>
7878
<artifactId>jackson-core</artifactId>
7979
</dependency>
8080
<dependency>
81-
<groupId>com.fasterxml.jackson.core</groupId>
81+
<groupId>tools.jackson.core</groupId>
8282
<artifactId>jackson-databind</artifactId>
8383
</dependency>
84-
<dependency>
85-
<groupId>com.fasterxml.jackson.datatype</groupId>
86-
<artifactId>jackson-datatype-jsr310</artifactId>
87-
</dependency>
8884
<dependency>
8985
<groupId>org.reflections</groupId>
9086
<artifactId>reflections</artifactId>
@@ -124,11 +120,6 @@
124120
<artifactId>junit-jupiter-engine</artifactId>
125121
<scope>test</scope>
126122
</dependency>
127-
<dependency>
128-
<groupId>org.junit.platform</groupId>
129-
<artifactId>junit-platform-runner</artifactId>
130-
<scope>test</scope>
131-
</dependency>
132123
<dependency>
133124
<groupId>com.tngtech.archunit</groupId>
134125
<artifactId>archunit-junit5</artifactId>

src/main/java/nl/rdb/java_examples/jackson/JacksonExample.java

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,30 +12,29 @@
1212
import nl.rdb.java_examples.entities.PersonJackson;
1313
import nl.rdb.java_examples.jackson.deserializers.LocalDateTimeDeserializer;
1414
import nl.rdb.java_examples.scanner.Example;
15-
16-
import com.fasterxml.jackson.databind.ObjectMapper;
17-
import com.fasterxml.jackson.databind.SerializationFeature;
18-
import com.fasterxml.jackson.databind.module.SimpleModule;
19-
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
15+
import tools.jackson.databind.ObjectMapper;
16+
import tools.jackson.databind.SerializationFeature;
17+
import tools.jackson.databind.json.JsonMapper;
18+
import tools.jackson.databind.module.SimpleModule;
2019

2120
@Slf4j
2221
public class JacksonExample {
2322

2423
private final ObjectMapper objectMapper;
2524

2625
public JacksonExample() {
27-
SimpleModule module = new JavaTimeModule();
28-
module.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer());
2926

30-
ObjectMapper objMapper = new ObjectMapper();
31-
objMapper.enable(SerializationFeature.INDENT_OUTPUT);
32-
objMapper.registerModule(module);
27+
SimpleModule module = new SimpleModule();
28+
module.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer());
3329

34-
this.objectMapper = objMapper;
30+
this.objectMapper = JsonMapper.builder()
31+
.enable(SerializationFeature.INDENT_OUTPUT)
32+
.addModule(module)
33+
.build();
3534
}
3635

3736
@Example(disabled = true)
38-
void largeObjectToJsonSting() throws Exception {
37+
void largeObjectToJsonSting() {
3938

4039
List<Person> personList = new ArrayList<>();
4140
for (int i = 0; i < 10_000_000; i++) {
@@ -48,7 +47,7 @@ void largeObjectToJsonSting() throws Exception {
4847
}
4948

5049
@Example
51-
void emptyObjectToJson() throws Exception {
50+
void emptyObjectToJson() {
5251
String personJson = objectMapper.writeValueAsString(new Person());
5352
log.info("JSON: {}", personJson);
5453

@@ -57,7 +56,7 @@ void emptyObjectToJson() throws Exception {
5756
}
5857

5958
@Example
60-
void dateTimeModule() throws Exception {
59+
void dateTimeModule() {
6160
record Test(LocalDateTime date) {}
6261

6362
Test dateTime = objectMapper.readValue("{\"date\":\"22-12-2016 00:22\"}", Test.class);

src/main/java/nl/rdb/java_examples/jackson/deserializers/LocalDateTimeDeserializer.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,27 @@
11
package nl.rdb.java_examples.jackson.deserializers;
22

3-
import java.io.IOException;
43
import java.time.LocalDateTime;
54
import java.time.format.DateTimeFormatter;
65
import java.time.format.DateTimeParseException;
76
import java.util.List;
87

8+
import tools.jackson.core.JsonParser;
9+
import tools.jackson.databind.DeserializationContext;
10+
import tools.jackson.databind.deser.std.StdDeserializer;
11+
912
import org.apache.commons.lang3.StringUtils;
1013

11-
import com.fasterxml.jackson.core.JsonParser;
12-
import com.fasterxml.jackson.databind.DeserializationContext;
13-
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
1414
import com.google.common.collect.Lists;
1515

1616
public class LocalDateTimeDeserializer extends StdDeserializer<LocalDateTime> {
1717

1818
public LocalDateTimeDeserializer() {
19-
this(null);
20-
}
21-
22-
protected LocalDateTimeDeserializer(Class<?> vc) {
23-
super(vc);
19+
super(LocalDateTime.class);
2420
}
2521

2622
@Override
27-
public LocalDateTime deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
28-
return fromString(jp.getText());
23+
public LocalDateTime deserialize(JsonParser jp, DeserializationContext ctxt) {
24+
return fromString(jp.getString());
2925
}
3026

3127
private LocalDateTime fromString(String text) {

src/test/java/nl/rdb/java_examples/api_version/ApiVersionTest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ void reverseOrderTest_shouldSucceed() {
2323

2424
Collections.reverse(versionConfigs);
2525

26-
assertEquals("1.2.0", versionConfigs.get(0).getVersion());
27-
assertEquals("1.0.0", versionConfigs.get(versionConfigs.size() - 1).getVersion());
26+
assertEquals("1.2.0", versionConfigs.getFirst().getVersion());
27+
assertEquals("1.0.0", versionConfigs.getLast().getVersion());
2828
}
2929

3030
@Test
@@ -38,8 +38,8 @@ void reverseOrderTest_shouldFail() {
3838

3939
Collections.reverse(versionConfigs);
4040

41-
assertNotEquals("1.2.0", versionConfigs.get(0).getVersion());
42-
assertNotEquals("1.0.0", versionConfigs.get(versionConfigs.size() - 1).getVersion());
41+
assertNotEquals("1.2.0", versionConfigs.getFirst().getVersion());
42+
assertNotEquals("1.0.0", versionConfigs.getLast().getVersion());
4343
}
4444

4545
@Test
@@ -60,8 +60,8 @@ void orderTest_withComparator_shouldSucceed() {
6060

6161
versionConfigs = versionConfigs.stream().sorted(new ApiVersionComparator()).toList();
6262

63-
assertEquals("0.1.0", versionConfigs.get(0).getVersion());
64-
assertEquals("21", versionConfigs.get(versionConfigs.size() - 1).getVersion());
63+
assertEquals("0.1.0", versionConfigs.getFirst().getVersion());
64+
assertEquals("21", versionConfigs.getLast().getVersion());
6565
}
6666

6767
@Test
@@ -82,7 +82,7 @@ void reverseOrderTest_withComparator_shouldSucceed() {
8282

8383
versionConfigs = versionConfigs.stream().sorted(new ApiVersionComparator().reversed()).toList();
8484

85-
assertEquals("21", versionConfigs.get(0).getVersion());
86-
assertEquals("0.1.0", versionConfigs.get(versionConfigs.size() - 1).getVersion());
85+
assertEquals("21", versionConfigs.getFirst().getVersion());
86+
assertEquals("0.1.0", versionConfigs.getLast().getVersion());
8787
}
8888
}

0 commit comments

Comments
 (0)