From 3de97f553cfb15eaaa85e8a354035f9c39de440c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Oct 2026 23:12:44 +0000 Subject: [PATCH 1/4] build(deps): bump de.rub.nds:protocol-toolkit-bom Bumps the internal group with 1 update: [de.rub.nds:protocol-toolkit-bom](https://github.com/tls-attacker/Protocol-Toolkit-BOM). Updates `de.rub.nds:protocol-toolkit-bom` from 6.2.4 to 7.0.0 - [Release notes](https://github.com/tls-attacker/Protocol-Toolkit-BOM/releases) - [Commits](https://github.com/tls-attacker/Protocol-Toolkit-BOM/compare/v6.2.4...v7.0.0) --- updated-dependencies: - dependency-name: de.rub.nds:protocol-toolkit-bom dependency-version: 7.0.0 dependency-type: direct:production update-type: version-update:semver-major dependency-group: internal ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f24b44b0..9bc202cc 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ de.rub.nds protocol-toolkit-bom - 6.2.4 + 7.0.0 modifiable-variable From 84ad85e785a3a68e8f96839e0e56540c2eedebae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20B=C3=A4umer?= Date: Mon, 19 Oct 2026 13:47:15 +0200 Subject: [PATCH 2/4] chore: Bump protocol-toolkit-bom to 7.1.1 --- pom.xml | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/pom.xml b/pom.xml index 9bc202cc..d92f79c7 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ de.rub.nds protocol-toolkit-bom - 7.0.0 + 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 From 91def834827b466feb5cb28d44c32a94a2e675a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20B=C3=A4umer?= Date: Mon, 19 Oct 2026 13:48:30 +0200 Subject: [PATCH 3/4] fix: Deprecate withX in favor of setX to avoid lint errors --- .../logging/ExtendedPatternLayout.java | 127 ++++++++++++++++-- 1 file changed, 118 insertions(+), 9 deletions(-) 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. * From 9c10429ea3061840ca48232633062e2c6d3f584d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20B=C3=A4umer?= Date: Mon, 19 Oct 2026 13:49:05 +0200 Subject: [PATCH 4/4] fix: Migrate to Jackson 3 --- .../json/JsonSchemaCliGenerator.java | 18 +++++--- .../json/ModifiableVariableModule.java | 32 +++++++------- .../json/ObjectMapperSubTypesResolver.java | 44 +++++++++++++------ .../json/ReflectiveJacksonSchemaModule.java | 26 ++++++----- .../json/BigIntegerSerializationTest.java | 12 +++-- .../json/ByteArraySerializationTest.java | 12 +++-- .../json/ByteSerializationTest.java | 12 +++-- .../json/LengthFieldSerializationTest.java | 12 +++-- .../json/LongSerializationTest.java | 12 +++-- .../json/StringSerializationTest.java | 12 +++-- 10 files changed, 119 insertions(+), 73 deletions(-) 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/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