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

# Content
1 /*
2 * i-scream central monitoring system
3 * http://www.i-scream.org.uk
4 * 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 //---PACKAGE DECLARATION---
22 package uk.org.iscream.cms.server.clientinterface;
23
24 //---IMPORTS---
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
29 /**
30 * 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 *
36 * @author $Author: tdb $
37 * @version $Id: ClientInterfaceMain.java,v 1.27 2002/05/21 16:47:16 tdb Exp $
38 */
39 public class ClientInterfaceMain implements Component {
40
41 //---FINAL ATTRIBUTES---
42
43 /**
44 * The current CVS revision of this class
45 */
46 public static final String REVISION = "$Revision: 1.27 $";
47
48 //---STATIC METHODS---
49
50 //---CONSTRUCTORS---
51
52 //---PUBLIC METHODS---
53
54 /**
55 * This method starts the ClientInterface
56 */
57 public void start() throws ComponentStartException {
58 // get references to key objects
59 _logger = _refman.getLogger();
60
61 _logger.write(toString(), Logger.SYSINIT, "coming up");
62
63
64 ConfigurationProxy cp = ConfigurationProxy.getInstance();
65 String configName = "ClientInterface";
66
67 // set our name
68 try {
69 NAME = cp.getProperty(configName, "ClientInterface.name");
70 } catch (PropertyNotFoundException e) {
71 NAME = null;
72 _logger.write(toString(), Logger.WARNING, "ClientInterface name not set: "+e);
73 }
74
75 _logger.write(toString(), Logger.SYSINIT, "configured");
76
77 // Setup a PacketSorter
78 PacketSorter ps = new PacketSorter();
79 ps.start();
80
81 // ClientInterfaceServant start (for inbound data)
82 _logger.write(toString(), Logger.DEBUG, "starting servant for inbound data");
83 ClientInterfaceServant ciServant = new ClientInterfaceServant(ps);
84 _refman.bindToOrb(ciServant, "iscream.ClientInterface\\." + ClientInterfaceMain.NAME);
85
86 // Startup the TCPListener
87 TCPClientListener tcpClientListener = new TCPClientListener(ps);
88 tcpClientListener.start();
89
90 // Startup the CORBA Listener
91 _logger.write(toString(), Logger.DEBUG, "starting servant for inbound clients");
92 CorbaClientListenerServant corbaServant = new CorbaClientListenerServant(ps);
93 // !!! verify this name is correct at some point !!!
94 _refman.bindToOrb(corbaServant, "iscream.ClientInterface\\.CorbaListener");
95
96 _logger.write(toString(), Logger.SYSINIT, "started");
97 }
98
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 System.err.println(toString() + ": Dependency Failure: "+e);
113 return false;
114 }
115 // dependency check suceeded
116 return true;
117 }
118
119 /**
120 * Overrides the {@link java.lang.Object#toString() Object.toString()}
121 * method to provide clean logging (every class should have this).
122 *
123 * This uses the uk.org.iscream.cms.server.util.NameFormat class
124 * 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 NAME,
131 getClass().getName(),
132 REVISION);
133 }
134
135 //---PRIVATE METHODS---
136
137 //---ACCESSOR/MUTATOR METHODS---
138
139 //---ATTRIBUTES---
140
141 /**
142 * This holds a reference to the
143 * system logger that is being used.
144 */
145 private Logger _logger;
146
147 /**
148 * A reference to the reference manager in use
149 */
150 private ReferenceManager _refman = ReferenceManager.getInstance();
151
152 //---STATIC ATTRIBUTES---
153
154 /**
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 }