ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/uk/org/iscream/cms/server/filter/FilterMain.java
Revision: 1.21
Committed: Thu Feb 1 00:18:42 2001 UTC (23 years, 4 months ago) by tdb
Branch: MAIN
Changes since 1.20: +3 -3 lines
Log Message:
General tidy up, specifically focussing on the verbosity of logging messages.

File Contents

# User Rev Content
1 tdb 1.1 //---PACKAGE DECLARATION---
2 tdb 1.11 package uk.ac.ukc.iscream.filter;
3 tdb 1.1
4     //---IMPORTS---
5 ajm 1.14 import uk.ac.ukc.iscream.util.*;
6 tdb 1.1 import uk.ac.ukc.iscream.core.*;
7 tdb 1.19 import uk.ac.ukc.iscream.componentmanager.*;
8 tdb 1.1 import uk.ac.ukc.iscream.filter.*;
9    
10     /**
11     * A Filter Startup Class
12 ajm 1.16 * A filter is an iscream component.
13 tdb 1.1 *
14 tdb 1.19 * @author $Author: tdb1 $
15 tdb 1.21 * @version $Id: FilterMain.java,v 1.20 2001/01/28 06:03:58 tdb1 Exp $
16 tdb 1.1 */
17 tdb 1.19 public class FilterMain implements Component {
18 tdb 1.1
19     //---FINAL ATTRIBUTES---
20    
21     /**
22     * The current CVS revision of this class
23     */
24 tdb 1.21 public static final String REVISION = "$Revision: 1.20 $";
25 tdb 1.1
26     //---STATIC METHODS---
27    
28 ajm 1.16 //---CONSTRUCTORS---
29    
30     /**
31     * Constructs a Filter with the name given
32     *
33     * @param givenName the name
34     */
35     public FilterMain(String givenName) {
36     NAME = givenName;
37     }
38    
39     //---PUBLIC METHODS---
40    
41     /**
42     * Starts the Filter component
43     */
44     public void start() throws ComponentStartException {
45    
46     _logger.write(toString(), Logger.SYSINIT, "coming up");
47 tdb 1.1
48 ajm 1.13 // configuration variables we require
49     int UDPListenPort = 0;
50     int TCPListenPort = 0;
51     String parentFilterName = null;
52 tdb 1.20
53 ajm 1.16 Configuration config = _refman.getCM().getConfiguration(FilterMain.NAME);
54 ajm 1.13 if (config == null) {
55 tdb 1.20 throw new ComponentStartException("Unable to obtain configuration for component");
56     }
57     else {
58 ajm 1.13 try {
59 tdb 1.20 // get the configuration properties we need
60 ajm 1.13 UDPListenPort = Integer.parseInt(config.getProperty("Filter.UDPListenPort"));
61     TCPListenPort = Integer.parseInt(config.getProperty("Filter.TCPListenPort"));
62     parentFilterName = config.getProperty("Filter.parentFilter");
63     } catch (org.omg.CORBA.MARSHAL e) {
64 tdb 1.20 throw new ComponentStartException("Unable to obtain requried configuration property for component");
65 tdb 1.2 }
66 tdb 1.1 }
67 tdb 1.20
68 ajm 1.16 _logger.write(toString(), Logger.SYSINIT, "configured");
69    
70 ajm 1.13 // get parent
71 ajm 1.16 Filter parentFilter = FilterHelper.narrow(_refman.getCORBARef("iscream.Filter." + parentFilterName));
72 ajm 1.13
73 tdb 1.18 // setup a queue
74     Queue queue = new Queue();
75    
76     // Start a filter thread
77     _logger.write(toString(), Logger.SYSINIT, "starting Filter Thread / Queue consumer");
78     FilterThread filterThread = new FilterThread(queue, parentFilter);
79     filterThread.start();
80    
81 ajm 1.13 // FilterServant start (for inbound child filter data)
82 ajm 1.16 _logger.write(toString(), Logger.DEBUG, "starting Filter Child -> Parent link for upstream parent - " + parentFilterName);
83 tdb 1.18 FilterServant filterServant = new FilterServant(TCPListenPort, UDPListenPort, queue);
84 ajm 1.16 _refman.bindToOrb(filterServant, "iscream.Filter." + FilterMain.NAME);
85 ajm 1.13
86     // UDL Reader start (for inbound host data)
87 ajm 1.16 _logger.write(toString(), Logger.SYSINIT, "starting Filter UDP listener");
88 tdb 1.18 UDPReader udpReader = new UDPReader(UDPListenPort, queue);
89 ajm 1.13 udpReader.start();
90    
91     // TCP Reader start (for heartbeats)
92 ajm 1.16 _logger.write(toString(), Logger.SYSINIT, "starting Filter TCP listener");
93 tdb 1.18 TCPReader tcpReader = new TCPReader(TCPListenPort, queue);
94 ajm 1.13 tcpReader.start();
95    
96 ajm 1.16 _logger.write(toString(), Logger.SYSINIT, "started");
97 tdb 1.1 }
98    
99 ajm 1.16 /**
100     * Overrides the {@link java.lang.Object#toString() Object.toString()}
101     * method to provide clean logging (every class should have this).
102     *
103     * This uses the uk.ac.ukc.iscream.util.NameFormat class
104     * to format the toString()
105     *
106     * @return the name of this class and its CVS revision
107     */
108     public String toString() {
109     return FormatName.getName(
110 ajm 1.17 NAME,
111 ajm 1.16 getClass().getName(),
112     REVISION);
113 tdb 1.1 }
114    
115     //---PRIVATE METHODS---
116    
117     //---ACCESSOR/MUTATOR METHODS---
118    
119     //---ATTRIBUTES---
120 ajm 1.16
121     /**
122     * This holds a reference to the
123     * system logger that is being used.
124     */
125     private Logger _logger = ReferenceManager.getInstance().getLogger();
126    
127     /**
128     * A reference to the reference manager in use
129     */
130     private ReferenceManager _refman = ReferenceManager.getInstance();
131    
132 tdb 1.1 //---STATIC ATTRIBUTES---
133 ajm 1.16
134     /**
135     * The friendly name for this component, used by
136     * all related classes.
137     * This is set from the configuration.
138     */
139     public static String NAME;
140 tdb 1.1
141 tdb 1.21 }