1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.settings4j.config;
21
22 import java.io.ByteArrayInputStream;
23 import java.io.InputStream;
24
25 import org.xml.sax.EntityResolver;
26 import org.xml.sax.InputSource;
27
28
29
30
31
32
33
34 public class Settings4jEntityResolver implements EntityResolver {
35
36
37 private static final org.slf4j.Logger LOG = org.slf4j.LoggerFactory.getLogger(Settings4jEntityResolver.class);
38
39 @Override
40 public InputSource resolveEntity(final String publicId, final String systemId) {
41 if (systemId.endsWith("settings4j.dtd")) {
42 final Class<?> clazz = getClass();
43 InputStream in = clazz.getResourceAsStream("/org/settings4j/config/settings4j.dtd");
44 if (in == null) {
45 LOG.warn("Could not find [settings4j.dtd] using [{}] class loader, parsed without DTD.",
46 clazz.getClassLoader());
47 in = new ByteArrayInputStream(new byte[0]);
48 }
49 return new InputSource(in);
50 }
51
52 return null;
53 }
54 }