Package pkg = cls.getPackage();
if (pkg != null) {
XmlJavaTypeAdapters adapters = pkg.getAnnotation(XmlJavaTypeAdapters.class);
if (adapters != null) {
CustomSerializerFactory serializerFactory = new CustomSerializerFactory();
CustomDeserializerFactory deserializerFactory = new CustomDeserializerFactory();
for (XmlJavaTypeAdapter a : adapters.value()) {
XmlAdapter xmlAdapter = null;
try {
xmlAdapter = a.value().newInstance();
} catch (Throwable e) {
// Ignore
}
if (xmlAdapter != null) {
XmlAdapterJsonDeserializer deserializer = new XmlAdapterJsonDeserializer(xmlAdapter, null);
XmlAdapterJsonSerializer serializer = new XmlAdapterJsonSerializer(xmlAdapter, null);
deserializerFactory.addSpecificMapping(a.type(), deserializer);
serializerFactory.addGenericMapping(a.type(), serializer);
StdDeserializerProvider deserializerProvider =
new StdDeserializerProvider(deserializerFactory);
mapper.setSerializerFactory(serializerFactory);
mapper.setDeserializerProvider(deserializerProvider);