Skip to content

Commit f5b15b0

Browse files
committed
replace ObjectMapper by JsonMapper with new builder api
- fix corresponding imports: com.fasterxml.jackson moved to tools.jackson except for com.fasterxml.jackson.annotation - replace JsonProcessingException by JacksonException - replace MappingJackson2HttpMessageConverter by JacksonJsonHttpMessageConverter
1 parent 7086ef4 commit f5b15b0

6 files changed

Lines changed: 37 additions & 35 deletions

File tree

src/main/java/org/fairdatateam/fairdatapoint/api/filter/JwtTokenFilter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
*/
2323
package org.fairdatateam.fairdatapoint.api.filter;
2424

25-
import com.fasterxml.jackson.databind.ObjectMapper;
2625
import jakarta.servlet.FilterChain;
2726
import jakarta.servlet.ServletException;
2827
import jakarta.servlet.http.HttpServletRequest;
@@ -38,6 +37,7 @@
3837
import org.springframework.security.core.context.SecurityContextHolder;
3938
import org.springframework.stereotype.Component;
4039
import org.springframework.web.filter.OncePerRequestFilter;
40+
import tools.jackson.databind.json.JsonMapper;
4141

4242
import java.io.IOException;
4343

@@ -53,7 +53,7 @@ public class JwtTokenFilter extends OncePerRequestFilter {
5353
private ApiKeyService apiKeyService;
5454

5555
@Autowired
56-
private ObjectMapper objectMapper;
56+
private JsonMapper jsonMapper;
5757

5858
@Override
5959
public void doFilterInternal(
@@ -69,7 +69,7 @@ public void doFilterInternal(
6969
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
7070
response.setContentType(MediaType.APPLICATION_JSON.toString());
7171
final ErrorDTO error = new ErrorDTO(HttpStatus.UNAUTHORIZED, "You have to be log in");
72-
objectMapper.writeValue(response.getWriter(), error);
72+
jsonMapper.writeValue(response.getWriter(), error);
7373
}
7474
}
7575

src/main/java/org/fairdatateam/fairdatapoint/config/WebMvcConfig.java

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222
*/
2323
package org.fairdatateam.fairdatapoint.config;
2424

25-
import com.fasterxml.jackson.databind.DeserializationFeature;
26-
import com.fasterxml.jackson.databind.ObjectMapper;
25+
import com.fasterxml.jackson.annotation.JsonInclude;
2726
import org.fairdatateam.fairdatapoint.api.converter.ErrorConverter;
2827
import org.fairdatateam.fairdatapoint.api.converter.RdfConverter;
2928
import org.springframework.beans.factory.annotation.Autowired;
@@ -34,16 +33,16 @@
3433
import org.springframework.http.converter.ByteArrayHttpMessageConverter;
3534
import org.springframework.http.converter.HttpMessageConverter;
3635
import org.springframework.http.converter.StringHttpMessageConverter;
37-
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
36+
import org.springframework.http.converter.json.JacksonJsonHttpMessageConverter;
3837
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
3938
import org.springframework.web.servlet.config.annotation.CorsRegistry;
4039
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
4140
import org.springframework.web.servlet.view.InternalResourceViewResolver;
41+
import tools.jackson.databind.DeserializationFeature;
42+
import tools.jackson.databind.json.JsonMapper;
4243

4344
import java.util.List;
4445

45-
import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
46-
4746
@Configuration
4847
public class WebMvcConfig implements WebMvcConfigurer {
4948

@@ -59,7 +58,7 @@ public void configureMessageConverters(List<HttpMessageConverter<?>> converters)
5958
converters.addAll(errorConverters);
6059
converters.addAll(rdfConverters);
6160
converters.add(new ByteArrayHttpMessageConverter());
62-
converters.add(new MappingJackson2HttpMessageConverter(objectMapper()));
61+
converters.add(new JacksonJsonHttpMessageConverter(jsonMapper()));
6362
}
6463

6564
@Override
@@ -75,12 +74,15 @@ public void configureContentNegotiation(ContentNegotiationConfigurer configurer)
7574

7675
@Bean
7776
@Primary
78-
public ObjectMapper objectMapper() {
79-
final ObjectMapper mapper = new ObjectMapper();
80-
mapper.findAndRegisterModules();
81-
mapper.setSerializationInclusion(NON_NULL);
82-
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
83-
return mapper;
77+
public JsonMapper jsonMapper() {
78+
return JsonMapper.builder()
79+
// https://javadoc.io/doc/com.fasterxml.jackson.core/jackson-databind/2.9.8/com/fasterxml/jackson/databind/ObjectMapper.html#findAndRegisterModules--
80+
// https://github.com/FasterXML/jackson/blob/main/jackson3/MIGRATING_TO_JACKSON_3.md#objectmapper-serialization-inclusion-configuration
81+
.changeDefaultPropertyInclusion(incl -> incl.withValueInclusion(JsonInclude.Include.NON_NULL))
82+
.changeDefaultPropertyInclusion(incl -> incl.withContentInclusion(JsonInclude.Include.NON_NULL))
83+
// https://github.com/FasterXML/jackson/blob/main/jackson3/MIGRATING_TO_JACKSON_3.md#objectmapper-visibility-configuration
84+
.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
85+
.build();
8486
}
8587

8688
@Bean

src/main/java/org/fairdatateam/fairdatapoint/service/index/event/EventService.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
*/
2323
package org.fairdatateam.fairdatapoint.service.index.event;
2424

25-
import com.fasterxml.jackson.databind.ObjectMapper;
2625
import jakarta.annotation.PostConstruct;
2726
import jakarta.servlet.http.HttpServletRequest;
2827
import lombok.SneakyThrows;
@@ -57,6 +56,7 @@
5756
import org.springframework.security.core.Authentication;
5857
import org.springframework.security.core.context.SecurityContextHolder;
5958
import org.springframework.stereotype.Service;
59+
import tools.jackson.databind.json.JsonMapper;
6060

6161
import java.time.Instant;
6262
import java.util.Collections;
@@ -70,7 +70,7 @@ public class EventService {
7070
private static final int PAGE_SIZE = 10;
7171

7272
@Autowired
73-
private ObjectMapper objectMapper;
73+
private JsonMapper jsonMapper;
7474

7575
@Autowired
7676
private ThreadPoolTaskExecutor executor;
@@ -155,7 +155,7 @@ public Event acceptIncomingPing(PingDTO reqDto, HttpServletRequest request) {
155155
event.getIncomingPing().getExchange().getResponse()
156156
.setCode(HttpStatus.BAD_REQUEST.value());
157157
event.getIncomingPing().getExchange().getResponse()
158-
.setBody(objectMapper.writeValueAsString(nextException.getErrorDTO()));
158+
.setBody(jsonMapper.writeValueAsString(nextException.getErrorDTO()));
159159
event.setFinished(Instant.now());
160160
eventRepository.save(event);
161161
log.info("Incoming ping has incorrect format: {}", exception.getMessage());

src/main/java/org/fairdatateam/fairdatapoint/service/index/event/IncomingPingUtils.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@
2222
*/
2323
package org.fairdatateam.fairdatapoint.service.index.event;
2424

25-
import com.fasterxml.jackson.core.JsonProcessingException;
26-
import com.fasterxml.jackson.databind.ObjectMapper;
2725
import jakarta.servlet.http.HttpServletRequest;
2826
import org.fairdatateam.fairdatapoint.api.dto.index.ping.PingDTO;
2927
import org.fairdatateam.fairdatapoint.entity.index.event.Event;
@@ -32,6 +30,8 @@
3230
import org.fairdatateam.fairdatapoint.entity.index.http.ExchangeDirection;
3331
import org.springframework.beans.factory.annotation.Autowired;
3432
import org.springframework.stereotype.Service;
33+
import tools.jackson.core.JacksonException;
34+
import tools.jackson.databind.json.JsonMapper;
3535

3636
import java.util.*;
3737

@@ -41,7 +41,7 @@ public class IncomingPingUtils {
4141
private static final Integer VERSION = 1;
4242

4343
@Autowired
44-
private ObjectMapper objectMapper;
44+
private JsonMapper jsonMapper;
4545

4646
public Event prepareEvent(PingDTO reqDto, HttpServletRequest request, String remoteAddr) {
4747
final IncomingPing incomingPing = new IncomingPing();
@@ -51,9 +51,9 @@ public Event prepareEvent(PingDTO reqDto, HttpServletRequest request, String rem
5151
ex.getRequest().setHeaders(getHeaders(request));
5252
ex.getRequest().setFromHttpServletRequest(request);
5353
try {
54-
ex.getRequest().setBody(objectMapper.writeValueAsString(reqDto));
54+
ex.getRequest().setBody(jsonMapper.writeValueAsString(reqDto));
5555
}
56-
catch (JsonProcessingException exception) {
56+
catch (JacksonException exception) {
5757
ex.getRequest().setBody(null);
5858
}
5959

src/main/java/org/fairdatateam/fairdatapoint/service/index/webhook/WebhookService.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@
2222
*/
2323
package org.fairdatateam.fairdatapoint.service.index.webhook;
2424

25-
import com.fasterxml.jackson.core.JsonProcessingException;
26-
import com.fasterxml.jackson.databind.ObjectMapper;
2725
import jakarta.servlet.http.HttpServletRequest;
2826
import lombok.extern.slf4j.Slf4j;
2927
import org.fairdatateam.fairdatapoint.api.dto.index.webhook.WebhookPayloadDTO;
@@ -42,6 +40,8 @@
4240
import org.springframework.security.core.Authentication;
4341
import org.springframework.security.core.context.SecurityContextHolder;
4442
import org.springframework.stereotype.Service;
43+
import tools.jackson.core.JacksonException;
44+
import tools.jackson.databind.json.JsonMapper;
4545

4646
import java.security.NoSuchAlgorithmException;
4747
import java.util.Optional;
@@ -57,7 +57,7 @@ public class WebhookService {
5757
private WebhookMapper webhookMapper;
5858

5959
@Autowired
60-
private ObjectMapper objectMapper;
60+
private JsonMapper jsonMapper;
6161

6262
@Autowired
6363
private WebhookRepository webhookRepository;
@@ -79,18 +79,18 @@ public void processWebhookTrigger(Event event) {
7979
eventRepository.save(event);
8080
final WebhookPayloadDTO webhookPayload = webhookMapper.toWebhookPayloadDTO(event);
8181
try {
82-
final String payloadWithSecret = objectMapper.writeValueAsString(webhookPayload);
82+
final String payloadWithSecret = jsonMapper.writeValueAsString(webhookPayload);
8383
final String signature = WebhookUtils.computeHashSignature(payloadWithSecret);
8484
webhookPayload.setSecret(SECRET_PLACEHOLDER);
85-
final String payloadWithoutSecret = objectMapper.writeValueAsString(webhookPayload);
85+
final String payloadWithoutSecret = jsonMapper.writeValueAsString(webhookPayload);
8686
WebhookUtils.postWebhook(
8787
event,
8888
retrievalSettings.getTimeout(),
8989
payloadWithoutSecret,
9090
signature
9191
);
9292
}
93-
catch (JsonProcessingException exception) {
93+
catch (JacksonException exception) {
9494
log.error("Failed to convert webhook payload to string");
9595
}
9696
catch (NoSuchAlgorithmException exception) {

src/main/java/org/fairdatateam/fairdatapoint/service/schema/MetadataSchemaRetrievalUtils.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@
2222
*/
2323
package org.fairdatateam.fairdatapoint.service.schema;
2424

25-
import com.fasterxml.jackson.core.JsonProcessingException;
26-
import com.fasterxml.jackson.core.type.TypeReference;
27-
import com.fasterxml.jackson.databind.ObjectMapper;
2825
import lombok.extern.slf4j.Slf4j;
2926
import org.fairdatateam.fairdatapoint.api.dto.schema.MetadataSchemaVersionDTO;
3027
import org.fairdatateam.fairdatapoint.entity.exception.MetadataSchemaImportException;
3128
import org.springframework.http.HttpHeaders;
29+
import tools.jackson.core.JacksonException;
30+
import tools.jackson.core.type.TypeReference;
31+
import tools.jackson.databind.json.JsonMapper;
3232

3333
import java.io.IOException;
3434
import java.net.URI;
@@ -49,7 +49,7 @@ public class MetadataSchemaRetrievalUtils {
4949
.connectTimeout(Duration.ofMinutes(1))
5050
.build();
5151

52-
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
52+
private static final JsonMapper JSON_MAPPER = new JsonMapper();
5353

5454
private static final TypeReference<List<MetadataSchemaVersionDTO>> RESPONSE_TYPE =
5555
new TypeReference<>() {
@@ -64,9 +64,9 @@ public static List<MetadataSchemaVersionDTO> retrievePublishedMetadataSchemas(St
6464
.GET().build();
6565
final HttpResponse<String> response =
6666
HTTP_CLIENT.send(request, HttpResponse.BodyHandlers.ofString());
67-
return OBJECT_MAPPER.readValue(response.body(), RESPONSE_TYPE);
67+
return JSON_MAPPER.readValue(response.body(), RESPONSE_TYPE);
6868
}
69-
catch (JsonProcessingException exception) {
69+
catch (JacksonException exception) {
7070
log.warn(
7171
format("Could not parse published metadata schemas from %s: %s",
7272
fdpUrl, exception.getMessage())

0 commit comments

Comments
 (0)