/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package net.paulgray.bbrest.mixins; import java.util.Set; import org.reflections.Reflections; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; /** * * @author pgray */ public class MixinJacksonHttpMessageConverter extends MappingJackson2HttpMessageConverter { public MixinJacksonHttpMessageConverter(String[] basePackages) { for (String pkg: basePackages){ Reflections reflections = new Reflections(pkg); Set<Class<?>> annotated = reflections.getTypesAnnotatedWith(AutoMixin.class); for(Class<?> mixin : annotated){ AutoMixin am = mixin.getAnnotation(AutoMixin.class); for(Class toMix : am.value()){ this.getObjectMapper().addMixInAnnotations(toMix, mixin); } } } /* for (Map.Entry<Class, Class> entry : mixins.entrySet()) { Class key = entry.getKey(); Class value = entry.getValue(); this.getObjectMapper().getSerializationConfig().addMixInAnnotations(key, value); } */ } }