diff --git a/pom.xml b/pom.xml
index f24b44b0..d92f79c7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
de.rub.nds
protocol-toolkit-bom
- 6.2.4
+ 7.1.1
modifiable-variable
@@ -64,6 +64,8 @@
false
${skipTests}
${skipTests}
+
+ 3.0.3
@@ -76,14 +78,6 @@
com.fasterxml.jackson.core
jackson-annotations
-
- com.fasterxml.jackson.core
- jackson-core
-
-
- com.fasterxml.jackson.core
- jackson-databind
-
com.github.victools
jsonschema-generator
@@ -112,6 +106,16 @@
org.reflections
reflections
+
+ tools.jackson.core
+ jackson-core
+ ${deps.jackson3.version}
+
+
+ tools.jackson.core
+ jackson-databind
+ ${deps.jackson3.version}
+
com.github.spotbugs
spotbugs-annotations
diff --git a/src/main/java/de/rub/nds/modifiablevariable/json/JsonSchemaCliGenerator.java b/src/main/java/de/rub/nds/modifiablevariable/json/JsonSchemaCliGenerator.java
index 3f4ec158..124779e2 100644
--- a/src/main/java/de/rub/nds/modifiablevariable/json/JsonSchemaCliGenerator.java
+++ b/src/main/java/de/rub/nds/modifiablevariable/json/JsonSchemaCliGenerator.java
@@ -7,12 +7,13 @@
*/
package de.rub.nds.modifiablevariable.json;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.Module;
-import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.victools.jsonschema.generator.*;
import java.io.File;
import java.lang.reflect.InvocationTargetException;
+import tools.jackson.databind.JacksonModule;
+import tools.jackson.databind.JsonNode;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
public class JsonSchemaCliGenerator {
@@ -24,14 +25,16 @@ public class JsonSchemaCliGenerator {
* additional Jackson modules to register.
*/
public static void main(String[] args) {
- ObjectMapper mapper = new ObjectMapper();
- mapper.setVisibility(ModifiableVariableModule.getFieldVisibilityChecker());
+ JsonMapper.Builder mapperBuilder =
+ JsonMapper.builder()
+ .changeDefaultVisibility(
+ vc -> ModifiableVariableModule.getFieldVisibilityChecker());
// Register additional modules (if any) passed as command line arguments
for (int i = 2; i < args.length; i++) {
try {
- mapper.registerModule(
- (Module) Class.forName(args[i]).getConstructor().newInstance());
+ mapperBuilder.addModule(
+ (JacksonModule) Class.forName(args[i]).getConstructor().newInstance());
} catch (InstantiationException
| IllegalAccessException
| InvocationTargetException
@@ -40,6 +43,7 @@ public static void main(String[] args) {
throw new RuntimeException(e);
}
}
+ ObjectMapper mapper = mapperBuilder.build();
// Prepare the schema generator
SchemaGeneratorConfigBuilder builder =
diff --git a/src/main/java/de/rub/nds/modifiablevariable/json/ModifiableVariableModule.java b/src/main/java/de/rub/nds/modifiablevariable/json/ModifiableVariableModule.java
index afc41d0c..c13bfefa 100644
--- a/src/main/java/de/rub/nds/modifiablevariable/json/ModifiableVariableModule.java
+++ b/src/main/java/de/rub/nds/modifiablevariable/json/ModifiableVariableModule.java
@@ -8,25 +8,24 @@
package de.rub.nds.modifiablevariable.json;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.SerializerProvider;
-import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
-import com.fasterxml.jackson.databind.introspect.VisibilityChecker;
-import com.fasterxml.jackson.databind.module.SimpleModule;
-import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import de.rub.nds.modifiablevariable.ModifiableVariable;
import de.rub.nds.modifiablevariable.VariableModification;
import de.rub.nds.modifiablevariable.util.DataConverter;
-import java.io.IOException;
import org.reflections.Reflections;
+import tools.jackson.core.JsonGenerator;
+import tools.jackson.core.JsonParser;
+import tools.jackson.databind.DeserializationContext;
+import tools.jackson.databind.SerializationContext;
+import tools.jackson.databind.deser.std.StdDeserializer;
+import tools.jackson.databind.introspect.VisibilityChecker;
+import tools.jackson.databind.module.SimpleModule;
+import tools.jackson.databind.ser.std.StdSerializer;
/**
* A Jackson module for the ModifiableVariable library. It registers serializers and deserializers
* required for modifiable variables. Make sure to include it using {@code
- * ObjectMapper.registerModule(new ModifiableVariableModule())} in your Jackson configuration before
- * serializing or deserializing modifiable variables.
+ * JsonMapper.builder().addModule(new ModifiableVariableModule())} in your Jackson configuration
+ * before serializing or deserializing modifiable variables.
*/
public class ModifiableVariableModule extends SimpleModule {
@@ -51,8 +50,7 @@ public UnformattedByteArraySerializer() {
}
@Override
- public void serialize(byte[] value, JsonGenerator gen, SerializerProvider serializers)
- throws IOException {
+ public void serialize(byte[] value, JsonGenerator gen, SerializationContext serializers) {
gen.writeString(DataConverter.bytesToRawHexString(value));
}
}
@@ -63,13 +61,13 @@ public UnformattedByteArrayDeserializer() {
}
@Override
- public byte[] deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
- return DataConverter.hexStringToByteArray(p.getText());
+ public byte[] deserialize(JsonParser p, DeserializationContext ctxt) {
+ return DataConverter.hexStringToByteArray(p.getString());
}
}
- public static VisibilityChecker> getFieldVisibilityChecker() {
- return VisibilityChecker.Std.defaultInstance()
+ public static VisibilityChecker getFieldVisibilityChecker() {
+ return VisibilityChecker.defaultInstance()
.withFieldVisibility(JsonAutoDetect.Visibility.ANY)
.withGetterVisibility(JsonAutoDetect.Visibility.NONE)
.withSetterVisibility(JsonAutoDetect.Visibility.NONE)
diff --git a/src/main/java/de/rub/nds/modifiablevariable/json/ObjectMapperSubTypesResolver.java b/src/main/java/de/rub/nds/modifiablevariable/json/ObjectMapperSubTypesResolver.java
index ea4e5a4c..8558fd80 100644
--- a/src/main/java/de/rub/nds/modifiablevariable/json/ObjectMapperSubTypesResolver.java
+++ b/src/main/java/de/rub/nds/modifiablevariable/json/ObjectMapperSubTypesResolver.java
@@ -9,12 +9,6 @@
import com.fasterxml.classmate.ResolvedType;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.introspect.AnnotatedClass;
-import com.fasterxml.jackson.databind.introspect.AnnotatedClassResolver;
-import com.fasterxml.jackson.databind.jsontype.NamedType;
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
import com.github.victools.jsonschema.generator.CustomDefinition;
import com.github.victools.jsonschema.generator.CustomDefinitionProviderV2;
import com.github.victools.jsonschema.generator.FieldScope;
@@ -32,6 +26,12 @@
import java.util.*;
import java.util.stream.Collectors;
import org.apache.commons.lang3.NotImplementedException;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.introspect.AnnotatedClass;
+import tools.jackson.databind.introspect.AnnotatedClassResolver;
+import tools.jackson.databind.jsontype.NamedType;
+import tools.jackson.databind.node.ArrayNode;
+import tools.jackson.databind.node.ObjectNode;
/**
* Look-up of subtypes from a {@link ObjectMapper} instance. Based on {@link
@@ -108,12 +108,13 @@ public List findSubtypes(
AnnotatedClass annotatedClass =
AnnotatedClassResolver.resolveWithoutSuperTypes(
- objectMapper.getDeserializationConfig(), declaredType.getErasedType());
+ objectMapper.deserializationConfig(), declaredType.getErasedType());
Collection registeredSubtypes =
objectMapper
+ .deserializationConfig()
.getSubtypeResolver()
.collectAndResolveSubtypesByTypeId(
- objectMapper.getDeserializationConfig(), annotatedClass);
+ objectMapper.deserializationConfig(), annotatedClass);
return registeredSubtypes.stream()
.map(NamedType::getType)
@@ -136,11 +137,14 @@ public List findSubtypes(
}
/**
- * Filter subtypes to ensure that they have the same type bindings as the declared type.
+ * Filter subtypes to ensure that their type bindings are compatible with the declared type,
+ * i.e. each type parameter of the subtype is assignable to the corresponding type parameter of
+ * the declared type. Unbound type variables of the declared type are resolved to their bound
+ * (e.g. {@link Object}) and therefore match any subtype.
*
* @param declaredType the supertype for which subtypes are being resolved
* @param resolvedType the resolved subtype to check against the declared type
- * @return true if the subtype has the same type bindings as the declared type, false otherwise
+ * @return true if the subtype has compatible type bindings, false otherwise
*/
public boolean filterSubtypesWithMatchingTypeBindings(
ResolvedType declaredType, ResolvedType resolvedType) {
@@ -150,9 +154,23 @@ public boolean filterSubtypesWithMatchingTypeBindings(
// If the resolved type does not have the declared type as a parent, return false
return false;
}
- return declaredType.getTypeBindings().isEmpty()
- || resolvedTypeParameters.equals(
- declaredType.getTypeBindings().getTypeParameters());
+ List declaredTypeParameters =
+ declaredType.getTypeBindings().getTypeParameters();
+ if (declaredTypeParameters.isEmpty()) {
+ return true;
+ }
+ if (declaredTypeParameters.size() != resolvedTypeParameters.size()) {
+ return false;
+ }
+ for (int i = 0; i < declaredTypeParameters.size(); i++) {
+ if (!declaredTypeParameters
+ .get(i)
+ .getErasedType()
+ .isAssignableFrom(resolvedTypeParameters.get(i).getErasedType())) {
+ return false;
+ }
+ }
+ return true;
}
/*
diff --git a/src/main/java/de/rub/nds/modifiablevariable/json/ReflectiveJacksonSchemaModule.java b/src/main/java/de/rub/nds/modifiablevariable/json/ReflectiveJacksonSchemaModule.java
index 2142c3b0..ba72fcc6 100644
--- a/src/main/java/de/rub/nds/modifiablevariable/json/ReflectiveJacksonSchemaModule.java
+++ b/src/main/java/de/rub/nds/modifiablevariable/json/ReflectiveJacksonSchemaModule.java
@@ -15,10 +15,6 @@
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import com.fasterxml.jackson.annotation.JsonUnwrapped;
-import com.fasterxml.jackson.databind.BeanDescription;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.PropertyNamingStrategy;
-import com.fasterxml.jackson.databind.annotation.JsonNaming;
import com.github.victools.jsonschema.generator.AnnotationHelper;
import com.github.victools.jsonschema.generator.FieldScope;
import com.github.victools.jsonschema.generator.MemberScope;
@@ -37,6 +33,12 @@
import java.util.Map;
import java.util.Set;
import java.util.function.Predicate;
+import tools.jackson.databind.BeanDescription;
+import tools.jackson.databind.JavaType;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.PropertyNamingStrategy;
+import tools.jackson.databind.annotation.JsonNaming;
+import tools.jackson.databind.introspect.ClassIntrospector;
/**
* Module for setting up schema generation aspects based on {@code jackson-annotations}. Supports
@@ -302,13 +304,13 @@ protected final BeanDescription getBeanDescriptionForClass(ResolvedType targetTy
synchronized (this.beanDescriptions) {
return this.beanDescriptions.computeIfAbsent(
targetType.getErasedType(),
- type ->
- this.objectMapper
- .getSerializationConfig()
- .introspect(
- this.objectMapper
- .getTypeFactory()
- .constructType(type)));
+ type -> {
+ ClassIntrospector classIntrospector =
+ this.objectMapper.serializationConfig().classIntrospectorInstance();
+ JavaType javaType = this.objectMapper.getTypeFactory().constructType(type);
+ return classIntrospector.introspectForSerialization(
+ javaType, classIntrospector.introspectClassAnnotations(javaType));
+ });
}
}
@@ -345,7 +347,7 @@ protected boolean shouldIgnoreField(FieldScope field) {
// some kinds of field ignorals are only available via an annotation introspector
Set ignoredProperties =
this.objectMapper
- .getSerializationConfig()
+ .serializationConfig()
.getAnnotationIntrospector()
.findPropertyIgnoralByName(null, beanDescription.getClassInfo())
.getIgnored();
diff --git a/src/main/java/de/rub/nds/modifiablevariable/logging/ExtendedPatternLayout.java b/src/main/java/de/rub/nds/modifiablevariable/logging/ExtendedPatternLayout.java
index 9e48ee68..c2161aee 100644
--- a/src/main/java/de/rub/nds/modifiablevariable/logging/ExtendedPatternLayout.java
+++ b/src/main/java/de/rub/nds/modifiablevariable/logging/ExtendedPatternLayout.java
@@ -438,11 +438,23 @@ private static boolean useAnsiEscapeCodes() {
* @param pattern The pattern string
* @return This builder instance
*/
- public ExtendedPatternLayout.Builder withPattern(String pattern) {
+ public ExtendedPatternLayout.Builder setPattern(String pattern) {
this.pattern = pattern;
return this;
}
+ /**
+ * Sets the conversion pattern to use for formatting log events.
+ *
+ * @param pattern The pattern string
+ * @return This builder instance
+ * @deprecated Use {@link #setPattern(String)} instead
+ */
+ @Deprecated
+ public ExtendedPatternLayout.Builder withPattern(String pattern) {
+ return setPattern(pattern);
+ }
+
/**
* Sets the pattern selector for dynamic pattern selection based on log event properties.
*
@@ -483,7 +495,7 @@ public ExtendedPatternLayout.Builder withRegexReplacement(
* @param charset The character set
* @return This builder instance
*/
- public ExtendedPatternLayout.Builder withCharset(Charset charset) {
+ public ExtendedPatternLayout.Builder setCharset(Charset charset) {
if (charset != null) {
this.charset = charset;
}
@@ -491,84 +503,181 @@ public ExtendedPatternLayout.Builder withCharset(Charset charset) {
return this;
}
+ /**
+ * Sets the character set to use for encoding the output.
+ *
+ * @param charset The character set
+ * @return This builder instance
+ * @deprecated Use {@link #setCharset(Charset)} instead
+ */
+ @Deprecated
+ public ExtendedPatternLayout.Builder withCharset(Charset charset) {
+ return setCharset(charset);
+ }
+
/**
* Sets whether to always include exception information in the output.
*
* @param alwaysWriteExceptions Whether to always write exceptions
* @return This builder instance
*/
- public ExtendedPatternLayout.Builder withAlwaysWriteExceptions(
+ public ExtendedPatternLayout.Builder setAlwaysWriteExceptions(
boolean alwaysWriteExceptions) {
this.alwaysWriteExceptions = alwaysWriteExceptions;
return this;
}
+ /**
+ * Sets whether to always include exception information in the output.
+ *
+ * @param alwaysWriteExceptions Whether to always write exceptions
+ * @return This builder instance
+ * @deprecated Use {@link #setAlwaysWriteExceptions(boolean)} instead
+ */
+ @Deprecated
+ public ExtendedPatternLayout.Builder withAlwaysWriteExceptions(
+ boolean alwaysWriteExceptions) {
+ return setAlwaysWriteExceptions(alwaysWriteExceptions);
+ }
+
/**
* Sets whether to disable ANSI escape codes in the output.
*
* @param disableAnsi Whether to disable ANSI escape codes
* @return This builder instance
*/
- public ExtendedPatternLayout.Builder withDisableAnsi(boolean disableAnsi) {
+ public ExtendedPatternLayout.Builder setDisableAnsi(boolean disableAnsi) {
this.disableAnsi = disableAnsi;
return this;
}
+ /**
+ * Sets whether to disable ANSI escape codes in the output.
+ *
+ * @param disableAnsi Whether to disable ANSI escape codes
+ * @return This builder instance
+ * @deprecated Use {@link #setDisableAnsi(boolean)} instead
+ */
+ @Deprecated
+ public ExtendedPatternLayout.Builder withDisableAnsi(boolean disableAnsi) {
+ return setDisableAnsi(disableAnsi);
+ }
+
/**
* Sets whether to disable ANSI escapes when output is not to a console.
*
* @param noConsoleNoAnsi Whether to disable ANSI when not writing to console
* @return This builder instance
*/
- public ExtendedPatternLayout.Builder withNoConsoleNoAnsi(boolean noConsoleNoAnsi) {
+ public ExtendedPatternLayout.Builder setNoConsoleNoAnsi(boolean noConsoleNoAnsi) {
this.noConsoleNoAnsi = noConsoleNoAnsi;
return this;
}
+ /**
+ * Sets whether to disable ANSI escapes when output is not to a console.
+ *
+ * @param noConsoleNoAnsi Whether to disable ANSI when not writing to console
+ * @return This builder instance
+ * @deprecated Use {@link #setNoConsoleNoAnsi(boolean)} instead
+ */
+ @Deprecated
+ public ExtendedPatternLayout.Builder withNoConsoleNoAnsi(boolean noConsoleNoAnsi) {
+ return setNoConsoleNoAnsi(noConsoleNoAnsi);
+ }
+
/**
* Sets the pattern to use for the header.
*
* @param header The header pattern
* @return This builder instance
*/
- public ExtendedPatternLayout.Builder withHeader(String header) {
+ public ExtendedPatternLayout.Builder setHeader(String header) {
this.header = header;
return this;
}
+ /**
+ * Sets the pattern to use for the header.
+ *
+ * @param header The header pattern
+ * @return This builder instance
+ * @deprecated Use {@link #setHeader(String)} instead
+ */
+ @Deprecated
+ public ExtendedPatternLayout.Builder withHeader(String header) {
+ return setHeader(header);
+ }
+
/**
* Sets the pattern to use for the footer.
*
* @param footer The footer pattern
* @return This builder instance
*/
- public ExtendedPatternLayout.Builder withFooter(String footer) {
+ public ExtendedPatternLayout.Builder setFooter(String footer) {
this.footer = footer;
return this;
}
+ /**
+ * Sets the pattern to use for the footer.
+ *
+ * @param footer The footer pattern
+ * @return This builder instance
+ * @deprecated Use {@link #setFooter(String)} instead
+ */
+ @Deprecated
+ public ExtendedPatternLayout.Builder withFooter(String footer) {
+ return setFooter(footer);
+ }
+
/**
* Sets whether to start byte array output on a new line.
*
* @param initNewLine Whether to initialize byte array output on a new line
* @return This builder instance
*/
- public ExtendedPatternLayout.Builder withInitNewLine(boolean initNewLine) {
+ public ExtendedPatternLayout.Builder setInitNewLine(boolean initNewLine) {
this.initNewLine = initNewLine;
return this;
}
+ /**
+ * Sets whether to start byte array output on a new line.
+ *
+ * @param initNewLine Whether to initialize byte array output on a new line
+ * @return This builder instance
+ * @deprecated Use {@link #setInitNewLine(boolean)} instead
+ */
+ @Deprecated
+ public ExtendedPatternLayout.Builder withInitNewLine(boolean initNewLine) {
+ return setInitNewLine(initNewLine);
+ }
+
/**
* Sets whether to format byte arrays with spaces between bytes for readability.
*
* @param prettyPrinting Whether to pretty print byte arrays
* @return This builder instance
*/
- public ExtendedPatternLayout.Builder withPrettyPrinting(boolean prettyPrinting) {
+ public ExtendedPatternLayout.Builder setPrettyPrinting(boolean prettyPrinting) {
this.prettyPrinting = prettyPrinting;
return this;
}
+ /**
+ * Sets whether to format byte arrays with spaces between bytes for readability.
+ *
+ * @param prettyPrinting Whether to pretty print byte arrays
+ * @return This builder instance
+ * @deprecated Use {@link #setPrettyPrinting(boolean)} instead
+ */
+ @Deprecated
+ public ExtendedPatternLayout.Builder withPrettyPrinting(boolean prettyPrinting) {
+ return setPrettyPrinting(prettyPrinting);
+ }
+
/**
* Builds a new ExtendedPatternLayout instance with the configured settings.
*
diff --git a/src/test/java/de/rub/nds/modifiablevariable/json/BigIntegerSerializationTest.java b/src/test/java/de/rub/nds/modifiablevariable/json/BigIntegerSerializationTest.java
index c3fc4838..77297c2b 100644
--- a/src/test/java/de/rub/nds/modifiablevariable/json/BigIntegerSerializationTest.java
+++ b/src/test/java/de/rub/nds/modifiablevariable/json/BigIntegerSerializationTest.java
@@ -10,7 +10,6 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotSame;
-import com.fasterxml.jackson.databind.ObjectMapper;
import de.rub.nds.modifiablevariable.VariableModification;
import de.rub.nds.modifiablevariable.biginteger.BigIntegerAddModification;
import de.rub.nds.modifiablevariable.biginteger.ModifiableBigInteger;
@@ -20,6 +19,8 @@
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
class BigIntegerSerializationTest {
@@ -31,9 +32,12 @@ class BigIntegerSerializationTest {
@BeforeAll
static void setUpClass() {
- mapper = new ObjectMapper();
- mapper.registerModule(new ModifiableVariableModule());
- mapper.setVisibility(ModifiableVariableModule.getFieldVisibilityChecker());
+ mapper =
+ JsonMapper.builder()
+ .addModule(new ModifiableVariableModule())
+ .changeDefaultVisibility(
+ vc -> ModifiableVariableModule.getFieldVisibilityChecker())
+ .build();
}
@BeforeEach
diff --git a/src/test/java/de/rub/nds/modifiablevariable/json/ByteArraySerializationTest.java b/src/test/java/de/rub/nds/modifiablevariable/json/ByteArraySerializationTest.java
index 6e4506c9..75dd9fe3 100644
--- a/src/test/java/de/rub/nds/modifiablevariable/json/ByteArraySerializationTest.java
+++ b/src/test/java/de/rub/nds/modifiablevariable/json/ByteArraySerializationTest.java
@@ -10,7 +10,6 @@
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertNotSame;
-import com.fasterxml.jackson.databind.ObjectMapper;
import de.rub.nds.modifiablevariable.VariableModification;
import de.rub.nds.modifiablevariable.bytearray.*;
import org.apache.logging.log4j.LogManager;
@@ -18,6 +17,8 @@
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
class ByteArraySerializationTest {
@@ -29,9 +30,12 @@ class ByteArraySerializationTest {
@BeforeAll
static void setUpClass() {
- mapper = new ObjectMapper();
- mapper.registerModule(new ModifiableVariableModule());
- mapper.setVisibility(ModifiableVariableModule.getFieldVisibilityChecker());
+ mapper =
+ JsonMapper.builder()
+ .addModule(new ModifiableVariableModule())
+ .changeDefaultVisibility(
+ vc -> ModifiableVariableModule.getFieldVisibilityChecker())
+ .build();
}
@BeforeEach
diff --git a/src/test/java/de/rub/nds/modifiablevariable/json/ByteSerializationTest.java b/src/test/java/de/rub/nds/modifiablevariable/json/ByteSerializationTest.java
index c03251f3..d4156030 100644
--- a/src/test/java/de/rub/nds/modifiablevariable/json/ByteSerializationTest.java
+++ b/src/test/java/de/rub/nds/modifiablevariable/json/ByteSerializationTest.java
@@ -9,13 +9,14 @@
import static org.junit.jupiter.api.Assertions.*;
-import com.fasterxml.jackson.databind.ObjectMapper;
import de.rub.nds.modifiablevariable.singlebyte.*;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
class ByteSerializationTest {
@@ -27,9 +28,12 @@ class ByteSerializationTest {
@BeforeAll
public static void setUpClass() {
- mapper = new ObjectMapper();
- mapper.registerModule(new ModifiableVariableModule());
- mapper.setVisibility(ModifiableVariableModule.getFieldVisibilityChecker());
+ mapper =
+ JsonMapper.builder()
+ .addModule(new ModifiableVariableModule())
+ .changeDefaultVisibility(
+ vc -> ModifiableVariableModule.getFieldVisibilityChecker())
+ .build();
}
@BeforeEach
diff --git a/src/test/java/de/rub/nds/modifiablevariable/json/LengthFieldSerializationTest.java b/src/test/java/de/rub/nds/modifiablevariable/json/LengthFieldSerializationTest.java
index d02ba4b0..f155e0e9 100644
--- a/src/test/java/de/rub/nds/modifiablevariable/json/LengthFieldSerializationTest.java
+++ b/src/test/java/de/rub/nds/modifiablevariable/json/LengthFieldSerializationTest.java
@@ -9,7 +9,6 @@
import static org.junit.jupiter.api.Assertions.*;
-import com.fasterxml.jackson.databind.ObjectMapper;
import de.rub.nds.modifiablevariable.bytearray.ModifiableByteArray;
import de.rub.nds.modifiablevariable.integer.IntegerAddModification;
import de.rub.nds.modifiablevariable.length.ModifiableLengthField;
@@ -18,6 +17,8 @@
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
public class LengthFieldSerializationTest {
@@ -29,9 +30,12 @@ public class LengthFieldSerializationTest {
@BeforeAll
public static void setUpClass() {
- mapper = new ObjectMapper();
- mapper.registerModule(new ModifiableVariableModule());
- mapper.setVisibility(ModifiableVariableModule.getFieldVisibilityChecker());
+ mapper =
+ JsonMapper.builder()
+ .addModule(new ModifiableVariableModule())
+ .changeDefaultVisibility(
+ vc -> ModifiableVariableModule.getFieldVisibilityChecker())
+ .build();
}
@BeforeEach
diff --git a/src/test/java/de/rub/nds/modifiablevariable/json/LongSerializationTest.java b/src/test/java/de/rub/nds/modifiablevariable/json/LongSerializationTest.java
index c4a8c029..d35fdbc7 100644
--- a/src/test/java/de/rub/nds/modifiablevariable/json/LongSerializationTest.java
+++ b/src/test/java/de/rub/nds/modifiablevariable/json/LongSerializationTest.java
@@ -9,7 +9,6 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
-import com.fasterxml.jackson.databind.ObjectMapper;
import de.rub.nds.modifiablevariable.VariableModification;
import de.rub.nds.modifiablevariable.longint.LongAddModification;
import de.rub.nds.modifiablevariable.longint.ModifiableLong;
@@ -18,6 +17,8 @@
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
class LongSerializationTest {
@@ -29,9 +30,12 @@ class LongSerializationTest {
@BeforeAll
public static void setUpClass() {
- mapper = new ObjectMapper();
- mapper.registerModule(new ModifiableVariableModule());
- mapper.setVisibility(ModifiableVariableModule.getFieldVisibilityChecker());
+ mapper =
+ JsonMapper.builder()
+ .addModule(new ModifiableVariableModule())
+ .changeDefaultVisibility(
+ vc -> ModifiableVariableModule.getFieldVisibilityChecker())
+ .build();
}
@BeforeEach
diff --git a/src/test/java/de/rub/nds/modifiablevariable/json/StringSerializationTest.java b/src/test/java/de/rub/nds/modifiablevariable/json/StringSerializationTest.java
index adc08339..7ce20145 100644
--- a/src/test/java/de/rub/nds/modifiablevariable/json/StringSerializationTest.java
+++ b/src/test/java/de/rub/nds/modifiablevariable/json/StringSerializationTest.java
@@ -9,7 +9,6 @@
import static org.junit.jupiter.api.Assertions.*;
-import com.fasterxml.jackson.databind.ObjectMapper;
import de.rub.nds.modifiablevariable.VariableModification;
import de.rub.nds.modifiablevariable.string.ModifiableString;
import de.rub.nds.modifiablevariable.string.StringInsertValueModification;
@@ -18,6 +17,8 @@
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
class StringSerializationTest {
@@ -29,9 +30,12 @@ class StringSerializationTest {
@BeforeAll
public static void setUpClass() {
- mapper = new ObjectMapper();
- mapper.registerModule(new ModifiableVariableModule());
- mapper.setVisibility(ModifiableVariableModule.getFieldVisibilityChecker());
+ mapper =
+ JsonMapper.builder()
+ .addModule(new ModifiableVariableModule())
+ .changeDefaultVisibility(
+ vc -> ModifiableVariableModule.getFieldVisibilityChecker())
+ .build();
}
@BeforeEach