1
2
3
4
5
6
7
8
9
10
11 package org.astrogrid.component;
12
13 import org.astrogrid.component.descriptor.ComponentDescriptor;
14
15 import org.apache.commons.logging.Log;
16 import org.apache.commons.logging.LogFactory;
17 import org.picocontainer.MutablePicoContainer;
18 import org.picocontainer.defaults.DefaultPicoContainer;
19
20 import java.io.PrintWriter;
21 import java.io.StringWriter;
22 import java.util.Iterator;
23
24 import junit.framework.Test;
25 import junit.framework.TestSuite;
26
27 /***
28 * @author Noel Winstanley nw@jb.man.ac.uk 04-May-2004
29 *
30 */
31 public class EmptyComponentManager implements ComponentManager{
32
33 protected static final Log log = LogFactory.getLog(EmptyComponentManager.class);
34 /*** Construct a new EmptyComponentManager
35 *
36 */
37 public EmptyComponentManager() {
38 pico = new DefaultPicoContainer();
39 }
40 /*** the picocontainer that manages the components */
41 protected final MutablePicoContainer pico;
42 public String informationHTML() {
43
44 StringWriter sw = new StringWriter();
45 PrintWriter p = new PrintWriter(sw);
46 p.println("<h1>Component Information</h1>");
47 for (Iterator i = getContainer().getComponentInstances().iterator(); i.hasNext(); ) {
48 Object o = i.next();
49 if (o instanceof ComponentDescriptor) {
50 ComponentDescriptor descr = (ComponentDescriptor)o;
51 p.println("<b>" + descr.getName() + "</b> ");
52 p.println("<blockquote><pre>" + descr.getDescription() + "</pre></blockquote>");
53 } else {
54 p.println(o.getClass().getName() + ":" + o.toString());
55 }
56 p.println("<hr/>");
57 }
58 return sw.toString();
59 }
60 public String information() {
61
62 StringWriter sw = new StringWriter();
63 PrintWriter p = new PrintWriter(sw);
64 p.println("Component Information");
65 p.println("-------------------------------");
66 for (Iterator i = getContainer().getComponentInstances().iterator(); i.hasNext(); ) {
67 Object o = i.next();
68 if (o instanceof ComponentDescriptor) {
69 ComponentDescriptor descr = (ComponentDescriptor)o;
70 p.println(descr.getName());
71 p.println(descr.getDescription());
72 } else {
73 p.println(o.getClass().getName() + ":" + o.toString());
74 }
75 p.println();
76 }
77 return sw.toString();
78 }
79 public Test getSuite() {
80
81
82 TestSuite result = new TestSuite("Installation Tests");
83 for (Iterator i = getContainer().getComponentInstances().iterator(); i.hasNext(); ) {
84 Object o = i.next();
85 if (o instanceof ComponentDescriptor) {
86 ComponentDescriptor descr = (ComponentDescriptor)o;
87 Test test = descr.getInstallationTest();
88 if (test != null) {
89 result.addTest(test);
90 }
91 }
92 }
93 return result;
94 }
95 /***
96 * @see org.astrogrid.jes.component.ComponentManager#getContainer()
97 */
98 public MutablePicoContainer getContainer() {
99 return pico;
100 }
101 /***
102 * @see org.picocontainer.Startable#start()
103 */
104 public void start() {
105 log.info("Starting component manager");
106 pico.start();
107 }
108 /***
109 * @see org.picocontainer.Startable#stop()
110 */
111 public void stop() {
112 log.info("Stopping component manager");
113 pico.stop();
114 }
115 }
116
117
118
119
120
121
122
123