ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/uk/org/iscream/cms/server/filtermanager/FilterManager.java
Revision: 1.19
Committed: Wed Mar 14 01:34:33 2001 UTC (23 years, 2 months ago) by tdb
Branch: MAIN
Changes since 1.18: +18 -4 lines
Log Message:
New dependency checking. The old method was to attempt to start a Component, and
if it failed, it probably had a depdency problem. The approach now is to ask the
Component to perform a dependency check first, then if this suceeds, have a go
at actually starting it up.
The actual dependency check is a bit neater and more precise than before, and
should be much more fool proof. The order the components are specified in the
default.properties file is now irrelevant, although the "correct" order would
certainly increase booting time.

File Contents

# User Rev Content
1 tdb 1.1 //---PACKAGE DECLARATION---
2 tdb 1.9 package uk.ac.ukc.iscream.filtermanager;
3 tdb 1.1
4     //---IMPORTS---
5 ajm 1.12 import uk.ac.ukc.iscream.util.*;
6 tdb 1.1 import uk.ac.ukc.iscream.core.*;
7 tdb 1.14 import uk.ac.ukc.iscream.componentmanager.*;
8 tdb 1.1
9     /**
10 ajm 1.12 * The FilterManager handles initialisation
11     * of hosts with the system, allowing hosts to
12     * gain their configuration and a hook to a Filter
13     * to talk to.
14 tdb 1.1 *
15 tdb 1.19 * @author $Author: tdb1 $
16     * @version $Id: FilterManager.java,v 1.18 2001/03/13 13:40:26 tdb1 Exp $
17 tdb 1.1 */
18 tdb 1.14 public class FilterManager implements Component {
19 tdb 1.1
20     //---FINAL ATTRIBUTES---
21    
22     /**
23     * The current CVS revision of this class
24     */
25 tdb 1.19 public static final String REVISION = "$Revision: 1.18 $";
26 ajm 1.12
27     /**
28 ajm 1.13 * The friendly name for this component, used by
29 ajm 1.12 * all related classes.
30     */
31     public static final String NAME = "FilterManager";
32 tdb 1.1
33     //---STATIC METHODS---
34    
35 ajm 1.12 //---CONSTRUCTORS---
36    
37     //---PUBLIC METHODS---
38    
39     /**
40     * This method starts the FilterManager
41     */
42     public void start() throws ComponentStartException {
43 ajm 1.17 // get references to key objects
44     _logger = ReferenceManager.getInstance().getLogger();
45    
46 ajm 1.12 _logger.write(toString(), Logger.SYSINIT, "coming up");
47 tdb 1.10
48 tdb 1.15 // startup a thread to listen for hosts
49 tdb 1.18 HostListener hostListener = new HostListener();
50 tdb 1.10 hostListener.start();
51    
52 ajm 1.12 _logger.write(toString(), Logger.SYSINIT, "started");
53 tdb 1.1 }
54 tdb 1.19
55     /**
56     * Does a dependency check. Used mainly at startup to
57     * see if the required dependencies (components) are up
58     * and running.
59     *
60     * @return a boolean value, true if the depdencies are satisfied
61     */
62     public boolean depCheck() {
63     // no real dependencies
64     // although it will require Filter's, but these cannot
65     // be predicted at this stage
66     return true;
67     }
68    
69 ajm 1.12 /**
70     * Overrides the {@link java.lang.Object#toString() Object.toString()}
71     * method to provide clean logging (every class should have this).
72     *
73     * This uses the uk.ac.ukc.iscream.util.NameFormat class
74     * to format the toString()
75     *
76     * @return the name of this class and its CVS revision
77     */
78     public String toString() {
79     return FormatName.getName(
80     _name,
81 ajm 1.13 getClass().getName(),
82 ajm 1.12 REVISION);
83     }
84 tdb 1.1
85     //---PRIVATE METHODS---
86    
87     //---ACCESSOR/MUTATOR METHODS---
88    
89     //---ATTRIBUTES---
90 ajm 1.12
91     /**
92     * This is the friendly identifier of the
93     * component this class is running in.
94     * eg, a Filter may be called "filter1",
95     * If this class does not have an owning
96     * component, a name from the configuration
97     * can be placed here. This name could also
98     * be changed to null for utility classes.
99     */
100     private String _name = FilterManager.NAME;
101    
102     /**
103     * This holds a reference to the
104     * system logger that is being used.
105     */
106 ajm 1.17 private Logger _logger;
107 tdb 1.1
108     //---STATIC ATTRIBUTES---
109    
110     }