Skip to content

Commit 725b73f

Browse files
committed
Migrate to Jackson 3 and update related dependencies
Replaces com.fasterxml.jackson dependencies with tools.jackson equivalents to support Jackson 3.x, updates import statements and serialization code accordingly, and removes deprecated or redundant Jackson 2.x modules. Refactors usages of ObjectMapper and related classes to use the new Jackson 3 API, ensuring compatibility and improved serialization features across modules.
1 parent f3672b1 commit 725b73f

File tree

16 files changed

+166
-131
lines changed

16 files changed

+166
-131
lines changed

pom.xml

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
<properties>
3636
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
3737
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
38+
<jackson.version>3.0.3</jackson.version>
3839
<spring-boot.version>4.0.1</spring-boot.version>
3940
<sonar.organization>viglet</sonar.organization>
4041
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
@@ -367,9 +368,31 @@
367368
<version>2.25.3</version>
368369
</dependency>
369370
<dependency>
370-
<groupId>com.fasterxml.jackson.core</groupId>
371+
<groupId>tools.jackson.core</groupId>
371372
<artifactId>jackson-databind</artifactId>
372-
<version>2.20.1</version>
373+
<version>${jackson.version}</version>
374+
</dependency>
375+
376+
<dependency>
377+
<groupId>com.fasterxml.jackson.core</groupId>
378+
<artifactId>jackson-annotations</artifactId>
379+
<version>2.21</version>
380+
</dependency>
381+
382+
<dependency>
383+
<groupId>tools.jackson.core</groupId>
384+
<artifactId>jackson-core</artifactId>
385+
<version>${jackson.version}</version>
386+
</dependency>
387+
<dependency>
388+
<groupId>tools.jackson.datatype</groupId>
389+
<artifactId>jackson-datatype-joda</artifactId>
390+
<version>${jackson.version}</version>
391+
</dependency>
392+
<dependency>
393+
<groupId>tools.jackson.datatype</groupId>
394+
<artifactId>jackson-datatype-hibernate7</artifactId>
395+
<version>${jackson.version}</version>
373396
</dependency>
374397
<dependency>
375398
<groupId>org.apache.httpcomponents.client5</groupId>

turing-app/pom.xml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
<packaging>jar</packaging>
1515
<properties>
1616
<elasticsearch.version>9.2.4</elasticsearch.version>
17-
<jackson.version>2.20.1</jackson.version>
1817
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1918
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
2019
<maven.compiler.release>21</maven.compiler.release>
@@ -87,14 +86,12 @@
8786
<artifactId>spring-boot-starter-json</artifactId>
8887
</dependency>
8988
<dependency>
90-
<groupId>com.fasterxml.jackson.datatype</groupId>
89+
<groupId>tools.jackson.datatype</groupId>
9190
<artifactId>jackson-datatype-hibernate7</artifactId>
92-
<version>${jackson.version}</version>
9391
</dependency>
9492
<dependency>
95-
<groupId>com.fasterxml.jackson.datatype</groupId>
96-
<artifactId>jackson-datatype-jsr310</artifactId>
97-
<version>${jackson.version}</version>
93+
<groupId>tools.jackson.core</groupId>
94+
<artifactId>jackson-databind</artifactId>
9895
</dependency>
9996
<dependency>
10097
<groupId>com.viglet.turing</groupId>

turing-commons/pom.xml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,13 @@
8484
<version>2.0.17</version>
8585
</dependency>
8686
<dependency>
87-
<groupId>com.fasterxml.jackson.core</groupId>
87+
<groupId>tools.jackson.core</groupId>
8888
<artifactId>jackson-databind</artifactId>
8989
</dependency>
90+
<dependency>
91+
<groupId>tools.jackson.datatype</groupId>
92+
<artifactId>jackson-datatype-joda</artifactId>
93+
</dependency>
9094
<dependency>
9195
<groupId>org.projectlombok</groupId>
9296
<artifactId>lombok</artifactId>
@@ -102,12 +106,7 @@
102106
<artifactId>logback-classic</artifactId>
103107
<version>1.5.25</version>
104108
</dependency>
105-
<dependency>
106-
<groupId>com.fasterxml.jackson.datatype</groupId>
107-
<artifactId>jackson-datatype-joda</artifactId>
108-
<version>2.20.1</version>
109-
<scope>compile</scope>
110-
</dependency>
109+
111110
<dependency>
112111
<groupId>org.jetbrains</groupId>
113112
<artifactId>annotations</artifactId>
Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,33 @@
11
package com.viglet.turing.commons.logging;
22

3-
import com.fasterxml.jackson.core.JsonGenerator;
4-
import com.fasterxml.jackson.databind.JsonSerializer;
5-
import com.fasterxml.jackson.databind.SerializerProvider;
6-
7-
import java.io.IOException;
83
import java.time.ZoneId;
94
import java.time.ZonedDateTime;
105
import java.time.format.DateTimeFormatter;
116
import java.util.Date;
127

13-
public class IsoDateSerializer extends JsonSerializer<Date> {
8+
import tools.jackson.core.JacksonException;
9+
import tools.jackson.core.JsonGenerator;
10+
import tools.jackson.databind.SerializationContext;
11+
import tools.jackson.databind.ser.std.StdSerializer;
12+
13+
public class IsoDateSerializer extends StdSerializer<Date> {
14+
15+
// No v3, o construtor padrão chamando super() é fortemente recomendado
16+
public IsoDateSerializer() {
17+
super(Date.class);
18+
}
19+
1420
@Override
15-
public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider provider) throws IOException {
21+
public void serialize(Date date, JsonGenerator jsonGenerator, SerializationContext provider)
22+
throws JacksonException {
23+
if (date == null) {
24+
jsonGenerator.writeNull();
25+
return;
26+
}
27+
1628
ZonedDateTime zdt = date.toInstant().atZone(ZoneId.systemDefault());
1729
String isoOffsetString = zdt.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME);
18-
jsonGenerator.writeRaw(": ISODate(\"" + isoOffsetString + "\")");
30+
31+
jsonGenerator.writeRawValue("ISODate(\"" + isoOffsetString + "\")");
1932
}
20-
}
33+
}

turing-commons/src/main/java/com/viglet/turing/commons/logging/TurLoggingGeneral.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package com.viglet.turing.commons.logging;
22

3-
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
3+
import java.io.Serializable;
4+
import java.util.Date;
5+
46
import lombok.Builder;
57
import lombok.Getter;
68
import lombok.Setter;
79
import lombok.extern.slf4j.Slf4j;
8-
9-
import java.io.Serializable;
10-
import java.util.Date;
10+
import tools.jackson.databind.annotation.JsonSerialize;
1111

1212
@Slf4j
1313
@Builder

turing-commons/src/main/java/com/viglet/turing/commons/logging/TurLoggingIndexing.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
11
package com.viglet.turing.commons.logging;
22

3-
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
3+
import java.io.Serializable;
4+
import java.util.Date;
5+
import java.util.List;
6+
import java.util.Locale;
7+
48
import com.viglet.turing.commons.indexing.TurIndexingStatus;
59
import com.viglet.turing.commons.indexing.TurLoggingStatus;
10+
611
import lombok.Builder;
712
import lombok.Getter;
813
import lombok.Setter;
914
import lombok.extern.slf4j.Slf4j;
10-
11-
import java.io.Serializable;
12-
import java.util.Date;
13-
import java.util.List;
14-
import java.util.Locale;
15+
import tools.jackson.databind.annotation.JsonSerialize;
1516

1617
@Slf4j
1718
@Builder
1819
@Getter
1920
@Setter
20-
public class TurLoggingIndexing implements Serializable {
21+
public class TurLoggingIndexing implements Serializable {
2122
private TurIndexingStatus status;
2223
private String source;
2324
private String contentId;
Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,23 @@
11
package com.viglet.turing.commons.logging;
22

3+
import java.net.InetAddress;
4+
import java.net.UnknownHostException;
5+
import java.util.Date;
6+
7+
import org.bson.Document;
8+
import org.jetbrains.annotations.NotNull;
9+
310
import ch.qos.logback.classic.pattern.Abbreviator;
411
import ch.qos.logback.classic.pattern.TargetLengthBasedClassNameAbbreviator;
12+
import ch.qos.logback.classic.spi.ILoggingEvent;
513
import ch.qos.logback.classic.spi.IThrowableProxy;
614
import ch.qos.logback.classic.spi.ThrowableProxyUtil;
715
import ch.qos.logback.core.CoreConstants;
8-
import com.fasterxml.jackson.core.JsonProcessingException;
9-
import com.fasterxml.jackson.databind.ObjectMapper;
10-
import com.fasterxml.jackson.databind.SerializationFeature;
11-
import com.fasterxml.jackson.datatype.joda.JodaModule;
1216
import lombok.Setter;
13-
import org.bson.Document;
14-
15-
import ch.qos.logback.classic.spi.ILoggingEvent;
1617
import lombok.extern.slf4j.Slf4j;
17-
import org.jetbrains.annotations.NotNull;
18-
19-
import java.net.InetAddress;
20-
import java.net.UnknownHostException;
21-
import java.util.Date;
18+
import tools.jackson.databind.cfg.DateTimeFeature;
19+
import tools.jackson.databind.json.JsonMapper;
20+
import tools.jackson.datatype.joda.JodaModule;
2221

2322
@Slf4j
2423
@Setter
@@ -32,26 +31,28 @@ protected void append(ILoggingEvent event) {
3231
if (!enabled || collection == null) {
3332
return;
3433
}
34+
3535
TurLoggingGeneral turLoggingGeneral = TurLoggingGeneral.builder()
3636
.level(event.getLevel().toString())
3737
.logger(abbreviatePackage(event.getLoggerName()))
3838
.message(event.getFormattedMessage())
3939
.date(new Date(event.getTimeStamp()))
4040
.stackTrace(getStackTrace(event))
4141
.build();
42+
4243
try {
4344
turLoggingGeneral.setClusterNode(InetAddress.getLocalHost().getHostName());
4445
} catch (UnknownHostException e) {
45-
log.error(e.getMessage(), e);
46-
}
47-
try {
48-
String json = new ObjectMapper().registerModule(new JodaModule())
49-
.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, true)
50-
.writeValueAsString(turLoggingGeneral);
51-
collection.insertOne(Document.parse(json));
52-
} catch (JsonProcessingException e) {
53-
log.error(e.getMessage(), e);
46+
// Use um fallback ou log de console aqui, evite recursão se o log falhar
47+
System.err.println(e.getMessage());
5448
}
49+
JsonMapper mapper = JsonMapper.builder()
50+
.addModule(new JodaModule())
51+
.configure(DateTimeFeature.WRITE_DATES_AS_TIMESTAMPS, true)
52+
.build();
53+
String json = mapper.writeValueAsString(turLoggingGeneral);
54+
collection.insertOne(Document.parse(json));
55+
5556
}
5657

5758
private static @NotNull String getStackTrace(ILoggingEvent event) {
@@ -66,8 +67,10 @@ protected void append(ILoggingEvent event) {
6667
}
6768

6869
private static @NotNull String abbreviatePackage(String packageName) {
69-
if (packageName == null) return "";
70-
if (packageName.length() <= MAX_LENGTH_PACKAGE_NAME) return packageName;
70+
if (packageName == null)
71+
return "";
72+
if (packageName.length() <= MAX_LENGTH_PACKAGE_NAME)
73+
return packageName;
7174
return ABBREVIATOR.abbreviate(packageName);
7275
}
7376
}
Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package com.viglet.turing.commons.logging;
22

3+
import java.util.Arrays;
4+
5+
import org.bson.Document;
6+
37
import ch.qos.logback.classic.spi.ILoggingEvent;
4-
import com.fasterxml.jackson.core.JsonProcessingException;
5-
import com.fasterxml.jackson.databind.ObjectMapper;
68
import lombok.Setter;
79
import lombok.extern.slf4j.Slf4j;
8-
import org.bson.Document;
9-
10-
import java.util.Arrays;
10+
import tools.jackson.databind.ObjectMapper;
1111

1212
@Slf4j
1313
@Setter
@@ -19,11 +19,7 @@ protected void append(ILoggingEvent eventObject) {
1919
return;
2020
}
2121
Arrays.stream(eventObject.getArgumentArray()).forEach(object -> {
22-
try {
23-
collection.insertOne(Document.parse(new ObjectMapper().writeValueAsString(object)));
24-
} catch (JsonProcessingException e) {
25-
log.error(e.getMessage(), e);
26-
}
22+
collection.insertOne(Document.parse(new ObjectMapper().writeValueAsString(object)));
2723
});
2824
}
2925
}

turing-commons/src/main/java/com/viglet/turing/commons/sn/bean/TurSNSitePostParamsBean.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,15 @@
1818
import java.util.HashMap;
1919
import java.util.List;
2020
import java.util.Map;
21+
2122
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
22-
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
23-
import com.fasterxml.jackson.databind.ser.std.MapSerializer;
2423
import com.viglet.turing.commons.sn.search.TurSNFilterQueryOperator;
24+
2525
import lombok.Getter;
2626
import lombok.Setter;
2727
import lombok.ToString;
28+
import tools.jackson.databind.annotation.JsonSerialize;
29+
import tools.jackson.databind.ser.jdk.MapSerializer;
2830

2931
/**
3032
* Post Parameters for Search with sensitive data

turing-commons/src/main/java/com/viglet/turing/commons/utils/TurCommonsUtils.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,12 @@
4848
import org.json.JSONObject;
4949
import org.jsoup.Jsoup;
5050

51-
import com.fasterxml.jackson.databind.ObjectMapper;
52-
import com.fasterxml.jackson.databind.SerializationFeature;
5351
import com.viglet.turing.commons.exception.TurException;
5452

5553
import lombok.extern.slf4j.Slf4j;
5654
import net.lingala.zip4j.ZipFile;
55+
import tools.jackson.databind.SerializationFeature;
56+
import tools.jackson.databind.json.JsonMapper;
5757

5858
/**
5959
* @author Alexandre Oliveira
@@ -289,8 +289,11 @@ public static boolean isValidJson(String test) {
289289

290290
public static String asJsonString(final Object obj) throws TurException {
291291
try {
292-
ObjectMapper mapper = new ObjectMapper();
293-
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
292+
// No Jackson 3, usamos o Builder para configurar e criar o mapper
293+
JsonMapper mapper = JsonMapper.builder()
294+
.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false)
295+
.build();
296+
294297
return mapper.writeValueAsString(obj);
295298
} catch (Exception e) {
296299
throw new TurException(e);

0 commit comments

Comments
 (0)