View Javadoc

1   /*$Id: EmptyComponentManager.java,v 1.1 2004/05/04 11:00:12 nw Exp $
2    * Created on 04-May-2004
3    *
4    * Copyright (C) AstroGrid. All rights reserved.
5    *
6    * This software is published under the terms of the AstroGrid 
7    * Software License version 1.2, a copy of which has been included 
8    * with this distribution in the LICENSE.txt file.  
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 $Log: EmptyComponentManager.java,v $
120 Revision 1.1  2004/05/04 11:00:12  nw
121 moved pico-container component stuff from jes into common, so it can be used in cea too
122  
123 */