LdaptiveJackson2ObjectMapperBuilderCustomizer.java
package org.bremersee.spring.boot.autoconfigure.ldaptive;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.bremersee.ldaptive.LdaptiveObjectMapperModule;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.boot.jackson.autoconfigure.JsonMapperBuilderCustomizer;
import org.springframework.context.event.EventListener;
import org.springframework.util.ClassUtils;
import tools.jackson.databind.json.JsonMapper.Builder;
/**
* The ldaptive jackson 2 object mapper builder customizer.
*/
@ConditionalOnWebApplication
@ConditionalOnClass(name = {
"org.bremersee.ldaptive.LdaptiveObjectMapperModule",
"org.springframework.boot.jackson.autoconfigure.JsonMapperBuilderCustomizer",
"tools.jackson.databind.json.JsonMapper"})
@AutoConfiguration
public class LdaptiveJackson2ObjectMapperBuilderCustomizer
implements JsonMapperBuilderCustomizer {
private static final Log log = LogFactory
.getLog(LdaptiveJackson2ObjectMapperBuilderCustomizer.class);
/**
* Instantiates a new ldaptive jackson 2 object mapper builder customizer.
*/
public LdaptiveJackson2ObjectMapperBuilderCustomizer() {
super();
}
/**
* Init.
*/
@EventListener(ApplicationReadyEvent.class)
public void init() {
log.info(String.format("""
*********************************************************************************
* %s
*********************************************************************************""",
ClassUtils.getUserClass(getClass()).getSimpleName()));
}
@Override
public void customize(Builder jsonMapperBuilder) {
jsonMapperBuilder.addModules(new LdaptiveObjectMapperModule());
}
}