View Javadoc
1   package org.bremersee.spring.boot.autoconfigure.ldaptive;
2   
3   import org.apache.commons.logging.Log;
4   import org.apache.commons.logging.LogFactory;
5   import org.bremersee.ldaptive.LdaptiveObjectMapperModule;
6   import org.springframework.boot.autoconfigure.AutoConfiguration;
7   import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
8   import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
9   import org.springframework.boot.context.event.ApplicationReadyEvent;
10  import org.springframework.boot.jackson.autoconfigure.JsonMapperBuilderCustomizer;
11  import org.springframework.context.event.EventListener;
12  import org.springframework.util.ClassUtils;
13  import tools.jackson.databind.json.JsonMapper.Builder;
14  
15  /**
16   * The ldaptive jackson 2 object mapper builder customizer.
17   */
18  @ConditionalOnWebApplication
19  @ConditionalOnClass(name = {
20      "org.bremersee.ldaptive.LdaptiveObjectMapperModule",
21      "org.springframework.boot.jackson.autoconfigure.JsonMapperBuilderCustomizer",
22      "tools.jackson.databind.json.JsonMapper"})
23  @AutoConfiguration
24  public class LdaptiveJackson2ObjectMapperBuilderCustomizer
25      implements JsonMapperBuilderCustomizer {
26  
27    private static final Log log = LogFactory
28        .getLog(LdaptiveJackson2ObjectMapperBuilderCustomizer.class);
29  
30    /**
31     * Instantiates a new ldaptive jackson 2 object mapper builder customizer.
32     */
33    public LdaptiveJackson2ObjectMapperBuilderCustomizer() {
34      super();
35    }
36  
37    /**
38     * Init.
39     */
40    @EventListener(ApplicationReadyEvent.class)
41    public void init() {
42      log.info(String.format("""
43              
44              *********************************************************************************
45              * %s
46              *********************************************************************************""",
47          ClassUtils.getUserClass(getClass()).getSimpleName()));
48    }
49  
50    @Override
51    public void customize(Builder jsonMapperBuilder) {
52      jsonMapperBuilder.addModules(new LdaptiveObjectMapperModule());
53    }
54  }