How to create an annotation that is a group of Jackson annotations?

annotations, jackson, java

Solution

For Jackson, this can be done with `@JacksonAnnotationsInside` meta-annotation. See this article for more, but code snippet from there is:

@Retention(RetentionPolicy.RUNTIME) // IMPORTANT
@JacksonAnnotationsInside
@JsonInclude(Include.NON_NULL)
@JsonPropertyOrder({ "id", "name" }) 
public @interface MyStdAnnotations

and from thereon you can use this type for your own classes like so:

@MyStdAnnotations
public class MyBean {
   public String name, id;
}

Problem

A year or so I read an article that explained how I could create an annotation that basically is a container for other annotations. This way if I always use the same 5 annotations in a specific use-case I create an annotation that contains them and use that instead. Unfortunately, I can't find the article anymore and would really like to do that right now for my jackson configuration. Since I can't find any information on that on my own I'm beginning to question my memory. Is this possible or I am just wrong? EDIT What i want is something like: ``` @Target(ElementType.METHOD) @com.fasterxml.jackson.databind.annotation.JsonSerialize(using=MySerializerThatIsUsedEverywhere.class @javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter(MyCustomXmlAdapter.class) @SomeOtherEvaluatedByTheSerializer public @interface SerializerUseCase01 { public String a(); public int b(); ) ``` my scenario is that i have a bunch of serialization use cases that can be handled by the same serializer with different configs. To make everything easier to use and more transparent i want to wrap the jackson config and the serializer config into one annotation.

Original source