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

Update to jackson 2.13 #13541

Merged
merged 10 commits into from
Oct 18, 2022
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
5 changes: 5 additions & 0 deletions full-backend-tests/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,11 @@
<artifactId>jackson-databind</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-scala_3</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
Expand Down
6 changes: 0 additions & 6 deletions graylog2-server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -178,12 +178,6 @@
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-jsonSchema</artifactId>
</dependency>
<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>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
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 @@ -109,11 +110,13 @@ public ObjectMapperProvider(@GraylogClassLoader final ClassLoader classLoader,

this.objectMapper = mapper
.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.disable(SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS)
.disable(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE)
.disable(DeserializationFeature.FAIL_ON_MISSING_EXTERNAL_TYPE_ID_PROPERTY)
.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 @@ -26,7 +26,6 @@
import org.graylog2.bindings.providers.MongoJackObjectMapperProvider;
import org.junit.After;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
import org.mongojack.DBQuery;
Expand Down Expand Up @@ -56,7 +55,7 @@ public static class TestDTO {
public String title;

@JsonCreator
public TestDTO(@JsonProperty("id") String id, @JsonProperty("title") String title) {
public TestDTO(@JsonProperty("id") @Id String id, @JsonProperty("title") String title) {
this.id = id;
this.title = title;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,4 @@ public TestBean(DateTime dateTime) {
this.dateTime = dateTime;
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,4 @@ public TestBean(ZonedDateTime dateTime) {
this.dateTime = dateTime;
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Sets;
import org.graylog2.shared.bindings.providers.ObjectMapperProvider;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.junit.Before;
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,12 +91,12 @@ public void testGetFields() throws Exception {

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

final Map<String, Object> map = mapper.readValue(mapper.writeValueAsBytes(messageSummary), valueType);

assertEquals(Sets.newHashSet("id", "timestamp", "message", "index", "source", "streamIds", "fields"), map.keySet());
assertEquals(Sets.newHashSet("id", "timestamp", "message", "index", "source", "stream_ids", "fields"), map.keySet());
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ public static TestDTO create(@JsonProperty EncryptedValue passwordValue) {
}

@JsonCreator
public static TestDTO create(@JsonProperty("id") String id, @JsonProperty("password_value") EncryptedValue passwordValue) {
public static TestDTO create(@JsonProperty("id") @Id String id, @JsonProperty("password_value") EncryptedValue passwordValue) {
return new AutoValue_EncryptedValueTest_TestDTO(id, passwordValue);
}
}
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.20221013</jackson.version>
<jadconfig.version>0.14.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