-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Closed
Milestone
Description
When updating from v 2.4.4 to 2.5.* it appears as though annotation bundles created with @JacksonAnnotationsInside
are ignored when placed on a mixin. Moving the annotation bundel to the actual class seems to resolve the issue. Below is a simple test that attempts to rename a property. I have more complicated test cases that are also failing but this should provide some context.
public class Fun {
@Test
public void test() throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper().addMixIn(Foo.class, FooMixin.class);
String result = mapper.writeValueAsString(new Foo("result"));
Assert.assertEquals("{\"bar\":\"result\"}", result);
}
@Target(value={ ElementType.CONSTRUCTOR, ElementType.FIELD, ElementType.METHOD })
@Retention(value=RetentionPolicy.RUNTIME)
@JacksonAnnotationsInside
@JsonProperty("bar")
public @interface ExposeStuff {
}
public abstract class FooMixin {
@ExposeStuff
public abstract String getStuff();
}
public class Foo {
private String stuff;
Foo(String stuff) {
this.stuff = stuff;
}
public String getStuff() {
return stuff;
}
}
}
I'm expecting the "stuff" property to be serialized as "bar".
I apologize I haven't been able to identify the culprit (and perhaps it's in my usage). Let me know your thoughts. I'm always happy to provide more details!
Metadata
Metadata
Assignees
Labels
No labels