1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.discovery.jdk;
18
19 import java.util.Enumeration;
20 import java.io.IOException;
21
22
23 /***
24 * @author Richard A. Sitze
25 */
26 public abstract class JDKHooks {
27 private static final JDKHooks jdkHooks;
28
29 static {
30 jdkHooks = new JDK12Hooks();
31 }
32
33 protected JDKHooks() { }
34
35 /***
36 * Return singleton object representing JVM hooks/tools.
37 *
38 * TODO: add logic to detect JDK level.
39 */
40 public static final JDKHooks getJDKHooks() {
41 return jdkHooks;
42 }
43
44 /***
45 * Get the system property
46 *
47 * @param propName name of the property
48 * @return value of the property
49 */
50 public abstract String getSystemProperty(final String propName);
51
52 /***
53 * The thread context class loader is available for JDK 1.2
54 * or later, if certain security conditions are met.
55 *
56 * @return The thread context class loader, if available.
57 * Otherwise return null.
58 */
59 public abstract ClassLoader getThreadContextClassLoader();
60
61 /***
62 * The system class loader is available for JDK 1.2
63 * or later, if certain security conditions are met.
64 *
65 * @return The system class loader, if available.
66 * Otherwise return null.
67 */
68 public abstract ClassLoader getSystemClassLoader();
69
70 public abstract Enumeration getResources(ClassLoader loader,
71 String resourceName)
72 throws IOException;
73 }