Skip to content

Commit

Permalink
update to jackson 2.13
Browse files Browse the repository at this point in the history
  • Loading branch information
patrickmann committed Sep 26, 2022
1 parent bfede28 commit 28ed2e5
Show file tree
Hide file tree
Showing 10 changed files with 30 additions and 16 deletions.
4 changes: 2 additions & 2 deletions graylog2-server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -181,8 +181,8 @@
<dependency>
<!-- Workaround for https://github.com/FasterXML/jackson-bom/pull/38 -->
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-scala_2.13</artifactId>
<version>2.9.10</version>
<artifactId>jackson-module-scala_3</artifactId>
<version>2.13.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public Message decode(@Nonnull RawMessage rawMessage) {
final JsonNode event;
try {
event = objectMapper.readTree(payload);
if (event == null) {
if (event == null || event.isMissingNode()) {
throw new IOException("null result");
}
} catch (IOException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.fasterxml.jackson.databind.type.TypeFactory;
import com.fasterxml.jackson.databind.util.StdDateFormat;
import com.fasterxml.jackson.datatype.guava.GuavaModule;
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
import com.fasterxml.jackson.datatype.joda.JodaModule;
Expand Down Expand Up @@ -80,7 +81,7 @@ public class ObjectMapperProvider implements Provider<ObjectMapper> {
private final LoadingCache<DateTimeZone, ObjectMapper> mapperByTimeZone = CacheBuilder.newBuilder()
.maximumSize(DateTimeZone.getAvailableIDs().size())
.build(
new CacheLoader<DateTimeZone, ObjectMapper>() {
new CacheLoader<>() {
@Override
public ObjectMapper load(@Nonnull DateTimeZone key) {
return objectMapper.copy().setTimeZone(key.toTimeZone());
Expand Down Expand Up @@ -114,6 +115,7 @@ public ObjectMapperProvider(@GraylogClassLoader final ClassLoader classLoader,
.setPropertyNamingStrategy(new PropertyNamingStrategy.SnakeCaseStrategy())
.setSubtypeResolver(subtypeResolver)
.setTypeFactory(typeFactory)
.setDateFormat(new StdDateFormat().withColonInTimeZone(false))
.registerModule(new GuavaModule())
.registerModule(new JodaModule())
.registerModule(new Jdk8Module())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,14 +100,14 @@ public class EventDefinitionFacadeTest {
@Rule
public final MongoDBInstance mongodb = MongoDBInstance.createForClass();

private ObjectMapper objectMapper = new ObjectMapperProvider().get();
private ObjectMapper objectMapper;

private EventDefinitionFacade facade;

@Rule
public final MockitoRule mockitoRule = MockitoJUnit.rule();

private MongoJackObjectMapperProvider mapperProvider = new MongoJackObjectMapperProvider(objectMapper);
private MongoJackObjectMapperProvider mapperProvider;

@Mock
private DBEventProcessorStateService stateService;
Expand All @@ -129,11 +129,14 @@ public class EventDefinitionFacadeTest {
@Before
@SuppressForbidden("Using Executors.newSingleThreadExecutor() is okay in tests")
public void setUp() throws Exception {
objectMapper = new ObjectMapperProvider().get();
objectMapper.registerSubtypes(
AggregationEventProcessorConfig.class,
PersistToStreamsStorageHandler.Config.class,
TemplateFieldValueProvider.Config.class,
AggregationEventProcessorConfigEntity.class);
mapperProvider = new MongoJackObjectMapperProvider(objectMapper);

stateService = mock(DBEventProcessorStateService.class);
jobDefinitionService = mock(DBJobDefinitionService.class);
jobTriggerService = mock(DBJobTriggerService.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ public class NotificationFacadeTest {
@Rule
public final MongoDBInstance mongodb = MongoDBInstance.createForClass();

private ObjectMapper objectMapper = new ObjectMapperProvider().get();
private ObjectMapper objectMapper;

private NotificationFacade facade;

Expand All @@ -98,17 +98,20 @@ public class NotificationFacadeTest {
@Rule
public final MockitoRule mockitoRule = MockitoJUnit.rule();

private MongoJackObjectMapperProvider mapperProvider = new MongoJackObjectMapperProvider(objectMapper);
private MongoJackObjectMapperProvider mapperProvider;

@Before
@SuppressForbidden("Using Executors.newSingleThreadExecutor() is okay in tests")
public void setUp() throws Exception {
objectMapper = new ObjectMapperProvider().get();
objectMapper.registerSubtypes(
EmailEventNotificationConfig.class,
EmailEventNotificationConfigEntity.class,
HttpEventNotificationConfigEntity.class,
HTTPEventNotificationConfig.class
);
mapperProvider = new MongoJackObjectMapperProvider(objectMapper);

jobDefinitionService = mock(DBJobDefinitionService.class);
stateService = mock(DBEventProcessorStateService.class);
eventDefinitionService = new DBEventDefinitionService(mongodb.mongoConnection(), mapperProvider, stateService, mock(EntityOwnershipService.class), null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.util.StdDateFormat;
import com.mongodb.BasicDBObject;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
Expand Down Expand Up @@ -73,7 +74,8 @@ public class V20200204122000_MigrateUntypedViewsToDashboardsTest {
@Mock
private ClusterConfigService clusterConfigService;

private final ObjectMapper objectMapper = new ObjectMapperProvider().get();
private final ObjectMapper objectMapper = new ObjectMapperProvider().get()
.setDateFormat(new StdDateFormat().withColonInTimeZone(false));

private Migration migration;
private MongoCollection<Document> viewsCollection;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.util.StdDateFormat;
import org.graylog2.shared.bindings.providers.ObjectMapperProvider;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
Expand All @@ -26,7 +27,8 @@
import static org.assertj.core.api.Assertions.assertThat;

public class MongoJodaDateTimeSerializerTest {
private final ObjectMapper objectMapper = new ObjectMapperProvider().get();
private final ObjectMapper objectMapper = new ObjectMapperProvider().get()
.setDateFormat(new StdDateFormat().withColonInTimeZone(false));

@Test
public void serializeZonedDateTime() throws Exception {
Expand Down Expand Up @@ -54,4 +56,4 @@ public TestBean(DateTime dateTime) {
this.dateTime = dateTime;
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.util.StdDateFormat;
import org.graylog2.shared.bindings.providers.ObjectMapperProvider;
import org.junit.Test;

Expand All @@ -27,7 +28,8 @@
import static org.assertj.core.api.Assertions.assertThat;

public class MongoZonedDateTimeSerializerTest {
private final ObjectMapper objectMapper = new ObjectMapperProvider().get();
private final ObjectMapper objectMapper = new ObjectMapperProvider().get()
.setDateFormat(new StdDateFormat().withColonInTimeZone(false));

@Test
public void serializeZonedDateTime() throws Exception {
Expand Down Expand Up @@ -55,4 +57,4 @@ public TestBean(ZonedDateTime dateTime) {
this.dateTime = dateTime;
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.type.MapType;
import com.fasterxml.jackson.datatype.joda.JodaModule;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Sets;
Expand All @@ -27,7 +28,6 @@
import org.junit.Test;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import static org.assertj.core.api.Assertions.assertThat;
Expand Down Expand Up @@ -91,7 +91,7 @@ public void testGetFields() throws Exception {

@Test
public void testJSONSerialization() throws Exception {
final ObjectMapper mapper = new ObjectMapper();
final ObjectMapper mapper = new ObjectMapper().registerModule(new JodaModule());
final MapType valueType = mapper.getTypeFactory().constructMapType(HashMap.class, String.class, Object.class);

final Map<String, Object> map = mapper.readValue(mapper.writeValueAsBytes(messageSummary), valueType);
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@
<HdrHistogram.version>2.1.12</HdrHistogram.version>
<hibernate-validator.version>6.1.2.Final</hibernate-validator.version>
<hk2.version>2.6.1</hk2.version> <!-- The HK2 version should match the version being used by Jersey -->
<jackson.version>2.9.10.20200411</jackson.version>
<jackson.version>2.13.4</jackson.version>
<jadconfig.version>0.13.0</jadconfig.version>
<java-semver.version>0.9.0</java-semver.version>
<javax.annotation-api.version>1.3.2</javax.annotation-api.version>
Expand Down

0 comments on commit 28ed2e5

Please sign in to comment.