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.28
Committed: Fri Sep 6 15:10:48 2002 UTC (21 years, 8 months ago) by tdb
Branch: MAIN
Changes since 1.27: +4 -4 lines
Log Message:
Fix for upgrade to Jacorb 1.4.1. It's our fault actually, we've not been
correctly using the names when binding to the Naming Service. This needs to
be fixed properly at some point, but for now I've changed changed the code
so it "means" the same as it did before the upgrade.

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     import uk.org.iscream.cms.server.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.28 * @version $Id: ClientInterfaceMain.java,v 1.27 2002/05/21 16:47:16 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.28 public static final String REVISION = "$Revision: 1.27 $";
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.25 * This uses the uk.org.iscream.cms.server.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     }