diff --git a/extensions/jackson/deployment/src/main/java/io/quarkus/jackson/deployment/JacksonProcessor.java b/extensions/jackson/deployment/src/main/java/io/quarkus/jackson/deployment/JacksonProcessor.java index 629c2ec1acff4..ab92aace4d441 100755 --- a/extensions/jackson/deployment/src/main/java/io/quarkus/jackson/deployment/JacksonProcessor.java +++ b/extensions/jackson/deployment/src/main/java/io/quarkus/jackson/deployment/JacksonProcessor.java @@ -18,6 +18,7 @@ import org.jboss.jandex.IndexView; import org.jboss.jandex.Type; +import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.SimpleObjectIdResolver; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonSerializer; @@ -55,6 +56,8 @@ public class JacksonProcessor { private static final DotName JSON_SERIALIZE = DotName.createSimple(JsonSerialize.class.getName()); + private static final DotName JSON_AUTO_DETECTOR = DotName.createSimple(JsonAutoDetect.class.getName()); + private static final DotName JSON_CREATOR = DotName.createSimple("com.fasterxml.jackson.annotation.JsonCreator"); private static final DotName JSON_NAMING = DotName.createSimple("com.fasterxml.jackson.databind.annotation.JsonNaming"); @@ -168,6 +171,11 @@ void register( } } + for (AnnotationInstance creatorInstance : index.getAnnotations(JSON_AUTO_DETECTOR)) { + reflectiveClass + .produce(new ReflectiveClassBuildItem(true, true, creatorInstance.target().asClass().name().toString())); + } + // make sure we register the constructors and methods marked with @JsonCreator for reflection for (AnnotationInstance creatorInstance : index.getAnnotations(JSON_CREATOR)) { if (METHOD == creatorInstance.target().kind()) {