diff --git a/scm-queryable-test/build.gradle b/scm-queryable-test/build.gradle index 0d0f8f05e0..5e8e63c1c6 100644 --- a/scm-queryable-test/build.gradle +++ b/scm-queryable-test/build.gradle @@ -27,6 +27,7 @@ dependencies { api libraries.junitJupiterApi api libraries.mockitoCore implementation libraries.jacksonDatatypeJsr310 + implementation libraries.jacksonJaxbAnnotations // tests testImplementation project(':scm-test') diff --git a/scm-queryable-test/src/main/java/sonia/scm/store/QueryableStoreExtension.java b/scm-queryable-test/src/main/java/sonia/scm/store/QueryableStoreExtension.java index 2f6c57541f..abd73dac1e 100644 --- a/scm-queryable-test/src/main/java/sonia/scm/store/QueryableStoreExtension.java +++ b/scm-queryable-test/src/main/java/sonia/scm/store/QueryableStoreExtension.java @@ -16,12 +16,17 @@ package sonia.scm.store; +import com.fasterxml.jackson.databind.AnnotationIntrospector; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair; +import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector; +import com.fasterxml.jackson.databind.type.TypeFactory; import com.fasterxml.jackson.databind.util.StdDateFormat; import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.fasterxml.jackson.module.jakarta.xmlbind.JakartaXmlBindAnnotationIntrospector; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.extension.AfterEachCallback; import org.junit.jupiter.api.extension.BeforeEachCallback; @@ -67,6 +72,7 @@ public class QueryableStoreExtension implements ParameterResolver, BeforeEachCal return new ObjectMapper() .registerModule(new Jdk8Module()) .registerModule(new JavaTimeModule()) + .setAnnotationIntrospector(createAnnotationIntrospector()) .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) .configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false) .configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true) @@ -74,6 +80,13 @@ public class QueryableStoreExtension implements ParameterResolver, BeforeEachCal .setDateFormat(new StdDateFormat()); } + private static AnnotationIntrospector createAnnotationIntrospector() { + return new AnnotationIntrospectorPair( + new JakartaXmlBindAnnotationIntrospector(TypeFactory.defaultInstance()), + new JacksonAnnotationIntrospector() + ); + } + @Override public void beforeEach(ExtensionContext context) throws IOException { tempDirectory = Files.createTempDirectory("test");