1 package ca.uhn.fhir.util;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory;
25
26 import java.io.Reader;
27 import java.io.StringReader;
28
29 public class XmlDetectionUtil {
30
31 private static final Logger ourLog = LoggerFactory.getLogger(XmlDetectionUtil.class);
32 private static Boolean ourStaxPresent;
33
34
35
36
37
38 public static boolean isStaxPresent() {
39 Boolean retVal = ourStaxPresent;
40 if (retVal == null) {
41 try {
42 Class.forName("javax.xml.stream.events.XMLEvent");
43 Class<?> xmlUtilClazz = Class.forName("ca.uhn.fhir.util.XmlUtil");
44 xmlUtilClazz.getMethod("createXmlReader", Reader.class).invoke(xmlUtilClazz, new StringReader(""));
45 ourStaxPresent = Boolean.TRUE;
46 retVal = Boolean.TRUE;
47 } catch (Throwable t) {
48 ourLog.info("StAX not detected on classpath, XML processing will be disabled");
49 ourStaxPresent = Boolean.FALSE;
50 retVal = Boolean.FALSE;
51 }
52 }
53 return retVal;
54 }
55
56
57 }