ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/uk/org/iscream/cms/server/clientinterface/ClientInterfaceMain.java
Revision: 1.29
Committed: Wed Feb 5 16:43:46 2003 UTC (21 years, 3 months ago) by tdb
Branch: MAIN
Changes since 1.28: +4 -4 lines
Log Message:
Changed the server to use the external util package. Quite a minor change,
but does affect a lot of files.

File Contents

# User Rev Content
1 tdb 1.26 /*
2     * i-scream central monitoring system
3 tdb 1.27 * http://www.i-scream.org.uk
4 tdb 1.26 * Copyright (C) 2000-2002 i-scream
5     *
6     * This program is free software; you can redistribute it and/or
7     * modify it under the terms of the GNU General Public License
8     * as published by the Free Software Foundation; either version 2
9     * of the License, or (at your option) any later version.
10     *
11     * This program is distributed in the hope that it will be useful,
12     * but WITHOUT ANY WARRANTY; without even the implied warranty of
13     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14     * GNU General Public License for more details.
15     *
16     * You should have received a copy of the GNU General Public License
17     * along with this program; if not, write to the Free Software
18     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19     */
20    
21 ajm 1.3 //---PACKAGE DECLARATION---
22 tdb 1.25 package uk.org.iscream.cms.server.clientinterface;
23 ajm 1.3
24     //---IMPORTS---
25 tdb 1.25 import uk.org.iscream.cms.server.componentmanager.*;
26     import uk.org.iscream.cms.server.core.*;
27 tdb 1.29 import uk.org.iscream.cms.util.*;
28 ajm 1.3
29     /**
30 ajm 1.4 * This class starts the real time clients
31     * client interface.
32     * This is an iscream component that sends data
33     * direct to clients running on desktops to provide
34     * real time information.
35 ajm 1.3 *
36 tdb 1.26 * @author $Author: tdb $
37 tdb 1.29 * @version $Id: ClientInterfaceMain.java,v 1.28 2002/09/06 15:10:48 tdb Exp $
38 ajm 1.3 */
39 tdb 1.8 public class ClientInterfaceMain implements Component {
40 ajm 1.3
41     //---FINAL ATTRIBUTES---
42    
43     /**
44     * The current CVS revision of this class
45     */
46 tdb 1.29 public static final String REVISION = "$Revision: 1.28 $";
47 ajm 1.3
48     //---STATIC METHODS---
49    
50 ajm 1.4 //---CONSTRUCTORS---
51 ajm 1.3
52 ajm 1.4 //---PUBLIC METHODS---
53 ajm 1.3
54 ajm 1.4 /**
55     * This method starts the ClientInterface
56     */
57     public void start() throws ComponentStartException {
58 ajm 1.18 // get references to key objects
59 tdb 1.21 _logger = _refman.getLogger();
60 ajm 1.18
61 ajm 1.4 _logger.write(toString(), Logger.SYSINIT, "coming up");
62 tdb 1.19
63    
64     ConfigurationProxy cp = ConfigurationProxy.getInstance();
65     String configName = "ClientInterface";
66    
67     // set our name
68     try {
69 tdb 1.24 NAME = cp.getProperty(configName, "ClientInterface.name");
70 tdb 1.19 } catch (PropertyNotFoundException e) {
71     NAME = null;
72     _logger.write(toString(), Logger.WARNING, "ClientInterface name not set: "+e);
73 tdb 1.14 }
74 ajm 1.4
75     _logger.write(toString(), Logger.SYSINIT, "configured");
76 tdb 1.10
77 tdb 1.11 // Setup a PacketSorter
78 tdb 1.19 PacketSorter ps = new PacketSorter();
79 tdb 1.12 ps.start();
80 tdb 1.10
81 ajm 1.3 // ClientInterfaceServant start (for inbound data)
82 ajm 1.4 _logger.write(toString(), Logger.DEBUG, "starting servant for inbound data");
83 tdb 1.11 ClientInterfaceServant ciServant = new ClientInterfaceServant(ps);
84 tdb 1.28 _refman.bindToOrb(ciServant, "iscream.ClientInterface\\." + ClientInterfaceMain.NAME);
85 ajm 1.3
86 tdb 1.13 // Startup the TCPListener
87 tdb 1.19 TCPClientListener tcpClientListener = new TCPClientListener(ps);
88 tdb 1.9 tcpClientListener.start();
89 tdb 1.16
90     // Startup the CORBA Listener
91     _logger.write(toString(), Logger.DEBUG, "starting servant for inbound clients");
92 tdb 1.19 CorbaClientListenerServant corbaServant = new CorbaClientListenerServant(ps);
93 tdb 1.16 // !!! verify this name is correct at some point !!!
94 tdb 1.28 _refman.bindToOrb(corbaServant, "iscream.ClientInterface\\.CorbaListener");
95 ajm 1.3
96 ajm 1.4 _logger.write(toString(), Logger.SYSINIT, "started");
97 ajm 1.3 }
98 tdb 1.20
99     /**
100     * Does a dependency check. Used mainly at startup to
101     * see if the required dependencies (components) are up
102     * and running.
103     *
104     * @return a boolean value, true if the depdencies are satisfied
105     */
106     public boolean depCheck() {
107     try {
108     org.omg.CORBA.Object obj;
109     obj = _refman.getCORBARef("iscream.Logger");
110     obj = _refman.getCORBARef("iscream.ConfigurationManager");
111     } catch(ComponentCORBAException e) {
112 tdb 1.22 System.err.println(toString() + ": Dependency Failure: "+e);
113 tdb 1.20 return false;
114     }
115     // dependency check suceeded
116     return true;
117     }
118    
119 ajm 1.4 /**
120     * Overrides the {@link java.lang.Object#toString() Object.toString()}
121     * method to provide clean logging (every class should have this).
122     *
123 tdb 1.29 * This uses the uk.org.iscream.cms.util.NameFormat class
124 ajm 1.4 * to format the toString()
125     *
126     * @return the name of this class and its CVS revision
127     */
128     public String toString() {
129     return FormatName.getName(
130 ajm 1.5 NAME,
131 ajm 1.4 getClass().getName(),
132     REVISION);
133     }
134 ajm 1.3
135     //---PRIVATE METHODS---
136    
137     //---ACCESSOR/MUTATOR METHODS---
138    
139     //---ATTRIBUTES---
140 ajm 1.4
141     /**
142     * This holds a reference to the
143     * system logger that is being used.
144     */
145 ajm 1.18 private Logger _logger;
146 ajm 1.4
147     /**
148     * A reference to the reference manager in use
149     */
150 tdb 1.21 private ReferenceManager _refman = ReferenceManager.getInstance();
151 ajm 1.4
152 ajm 1.3 //---STATIC ATTRIBUTES---
153    
154 ajm 1.4 /**
155     * The friendly name for this component, used by
156     * all related classes.
157     * This is set from the configuration.
158     */
159     public static String NAME;
160    
161     }