1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.config;
18
19 import org.apache.logging.log4j.core.config.plugins.Plugin;
20
21
22
23
24 @Plugin(name = "JSONConfigurationFactory", category = "ConfigurationFactory")
25 @Order(6)
26 public class JSONConfigurationFactory extends ConfigurationFactory {
27
28
29
30
31 public static final String[] SUFFIXES = new String[] {".json", ".jsn"};
32
33 private static String[] dependencies = new String[] {
34 "com.fasterxml.jackson.databind.ObjectMapper",
35 "com.fasterxml.jackson.databind.JsonNode",
36 "com.fasterxml.jackson.core.JsonParser"
37 };
38
39 private boolean isActive;
40
41 public JSONConfigurationFactory() {
42 try {
43 for (final String item : dependencies) {
44 Class.forName(item);
45 }
46 } catch (final ClassNotFoundException ex) {
47 LOGGER.debug("Missing dependencies for Json support");
48 isActive = false;
49 return;
50 }
51 isActive = true;
52 }
53
54 @Override
55 protected boolean isActive() {
56 return isActive;
57 }
58
59 @Override
60 public Configuration getConfiguration(final ConfigurationSource source) {
61 if (!isActive) {
62 return null;
63 }
64 return new JSONConfiguration(source);
65 }
66
67 @Override
68 public String[] getSupportedTypes() {
69 return SUFFIXES;
70 }
71 }