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 java.io.File;
20
21 import org.apache.logging.log4j.core.config.plugins.Plugin;
22
23
24
25
26 @Plugin(name = "JSONConfigurationFactory", category = "ConfigurationFactory")
27 @Order(6)
28 public class JSONConfigurationFactory extends ConfigurationFactory {
29
30
31
32
33 public static final String[] SUFFIXES = new String[] {".json", ".jsn"};
34
35 private static String[] dependencies = new String[] {
36 "com.fasterxml.jackson.databind.ObjectMapper",
37 "com.fasterxml.jackson.databind.JsonNode",
38 "com.fasterxml.jackson.core.JsonParser"
39 };
40
41 private final File configFile = null;
42
43 private boolean isActive;
44
45 public JSONConfigurationFactory() {
46 try {
47 for (final String item : dependencies) {
48 Class.forName(item);
49 }
50 } catch (final ClassNotFoundException ex) {
51 LOGGER.debug("Missing dependencies for Json support");
52 isActive = false;
53 return;
54 }
55 isActive = true;
56 }
57
58 @Override
59 protected boolean isActive() {
60 return isActive;
61 }
62
63 @Override
64 public Configuration getConfiguration(final ConfigurationSource source) {
65 if (!isActive) {
66 return null;
67 }
68 return new JSONConfiguration(source);
69 }
70
71 @Override
72 public String[] getSupportedTypes() {
73 return SUFFIXES;
74 }
75 }