1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.server;
20
21 import java.io.IOException;
22 import java.net.URLClassLoader;
23 import java.util.Collections;
24
25 import org.eclipse.jetty.util.TypeUtil;
26 import org.eclipse.jetty.util.component.ContainerLifeCycle;
27 import org.eclipse.jetty.util.component.Dumpable;
28
29 public class ClassLoaderDump implements Dumpable
30 {
31 final ClassLoader _loader;
32
33 public ClassLoaderDump(ClassLoader loader)
34 {
35 _loader = loader;
36 }
37
38 @Override
39 public String dump()
40 {
41 return ContainerLifeCycle.dump(this);
42 }
43
44 @Override
45 public void dump(Appendable out, String indent) throws IOException
46 {
47 if (_loader==null)
48 out.append("No ClassLoader\n");
49 else
50 {
51 out.append(String.valueOf(_loader)).append("\n");
52
53 Object parent = _loader.getParent();
54 if (parent != null)
55 {
56 if (_loader instanceof URLClassLoader)
57 ContainerLifeCycle.dump(out,indent,TypeUtil.asList(((URLClassLoader)_loader).getURLs()),Collections.singleton(parent.toString()));
58 else
59 ContainerLifeCycle.dump(out,indent,Collections.singleton(parent.toString()));
60 }
61 }
62 }
63 }