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
(Generate patch)

Comparing projects/cms/source/server/uk/org/iscream/cms/server/clientinterface/ClientInterfaceMain.java (file contents):
Revision 1.19 by tdb, Tue Mar 13 18:37:08 2001 UTC vs.
Revision 1.30 by tdb, Mon May 5 22:05:06 2003 UTC

# Line 1 | Line 1
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.ac.ukc.iscream.clientinterface;
22 > package uk.org.iscream.cms.server.clientinterface;
23  
24   //---IMPORTS---
25 < import uk.ac.ukc.iscream.componentmanager.*;
26 < import uk.ac.ukc.iscream.core.*;
27 < import uk.ac.ukc.iscream.util.*;
25 > import uk.org.iscream.cms.server.componentmanager.*;
26 > import uk.org.iscream.cms.server.core.*;
27 > import uk.org.iscream.cms.util.*;
28  
29   /**
30   * This class starts the real time clients
# Line 29 | Line 49 | public class ClientInterfaceMain implements Component
49  
50   //---CONSTRUCTORS---
51  
52 +    /**
53 +     * Constructs a ClientInterface with the name given
54 +     *
55 +     * @param givenName the name
56 +     */
57 +    public ClientInterfaceMain(String givenName) {
58 +        NAME = givenName;
59 +    }
60 +
61   //---PUBLIC METHODS---
62  
63      /**
# Line 36 | Line 65 | public class ClientInterfaceMain implements Component
65       */
66      public void start() throws ComponentStartException {
67          // get references to key objects
68 <        _refman = ReferenceManager.getInstance();
40 <        _logger = ReferenceManager.getInstance().getLogger();
68 >        _logger = _refman.getLogger();
69          
70          _logger.write(toString(), Logger.SYSINIT, "coming up");
71          
44        
45        ConfigurationProxy cp = ConfigurationProxy.getInstance();
46        String configName = "ClientInterface";
47        
48        // set our name
49        try {
50            NAME = cp.getProperty(configName, "RootFilter.realtimeInterfaceName");
51        } catch (PropertyNotFoundException e) {
52            NAME = null;
53            _logger.write(toString(), Logger.WARNING, "ClientInterface name not set: "+e);
54        }
55        
56        _logger.write(toString(), Logger.SYSINIT, "configured");
57        
72          // Setup a PacketSorter
73          PacketSorter ps = new PacketSorter();
74          ps.start();
75          
76          // ClientInterfaceServant start (for inbound data)
77          _logger.write(toString(), Logger.DEBUG, "starting servant for inbound data");
78 <        ClientInterfaceServant ciServant = new ClientInterfaceServant(ps);
79 <        _refman.bindToOrb(ciServant, "iscream.ClientInterface." + ClientInterfaceMain.NAME);
78 >        try {
79 >            ClientInterfaceServant ciServant = new ClientInterfaceServant(ps);
80 >            //_refman.bindToOrb(ciServant, "iscream.ClientInterface\\." + ClientInterfaceMain.NAME);
81 >            org.omg.CORBA.Object objRef = _refman.getRootPOA().servant_to_reference(ciServant);
82 >            Client client = ClientHelper.narrow(objRef);
83 >            
84 >            String parent = ConfigurationProxy.getInstance().getProperty("ClientInterface." + ClientInterfaceMain.NAME, "ClientInterface.parent");
85 >            objRef = _refman.getCORBARef("iscream.ClientInterface\\." + parent);
86 >            CorbaClientListener listener = CorbaClientListenerHelper.narrow(objRef);
87 >            
88 >            CorbaControlHandler handler = listener.connect(client, NAME);
89 >            handler.startData();
90 >        }
91 >        catch(Exception e) {
92 >            // not sure what to do here
93 >            // so we just log the error
94 >            _logger.write(toString(), Logger.ERROR, "ERROR - " + e.getMessage());
95 >        }
96          
97          // Startup the TCPListener
98          TCPClientListener tcpClientListener = new TCPClientListener(ps);
# Line 71 | Line 101 | public class ClientInterfaceMain implements Component
101          // Startup the CORBA Listener
102          _logger.write(toString(), Logger.DEBUG, "starting servant for inbound clients");
103          CorbaClientListenerServant corbaServant = new CorbaClientListenerServant(ps);
104 <        // !!! verify this name is correct at some point !!!
75 <        _refman.bindToOrb(corbaServant, "iscream.ClientInterface.CorbaListener");
104 >        _refman.bindToOrb(corbaServant, "iscream.ClientInterface\\." + ClientInterfaceMain.NAME);
105          
106          _logger.write(toString(), Logger.SYSINIT, "started");
107      }
108 <
108 >    
109      /**
110 +     * Does a dependency check. Used mainly at startup to
111 +     * see if the required dependencies (components) are up
112 +     * and running.
113 +     *
114 +     * @return a boolean value, true if the depdencies are satisfied
115 +     */
116 +    public boolean depCheck() {
117 +        try {
118 +            org.omg.CORBA.Object obj;
119 +            obj = _refman.getCORBARef("iscream.Logger");
120 +            obj = _refman.getCORBARef("iscream.ConfigurationManager");
121 +            // suss out the parent client interface
122 +            ConfigurationProxy cp = ConfigurationProxy.getInstance();
123 +            String parentName = cp.getProperty("ClientInterface." + ClientInterfaceMain.NAME, "ClientInterface.parent");
124 +            // check the parent is alive
125 +            obj = _refman.getCORBARef("iscream.ClientInterface\\." + parentName);
126 +        } catch(ComponentCORBAException e) {
127 +            System.err.println(toString() + ": Dependency Failure: "+e);
128 +            return false;
129 +        } catch(PropertyNotFoundException e) {
130 +            System.err.println(toString() + ": Unable to obtain configuration: "+e);
131 +            return false;
132 +        }
133 +        // dependency check suceeded
134 +        return true;
135 +    }
136 +    
137 +    /**
138       * Overrides the {@link java.lang.Object#toString() Object.toString()}
139       * method to provide clean logging (every class should have this).
140       *
141 <     * This uses the uk.ac.ukc.iscream.util.NameFormat class
141 >     * This uses the uk.org.iscream.cms.util.NameFormat class
142       * to format the toString()
143       *
144       * @return the name of this class and its CVS revision
# Line 108 | Line 165 | public class ClientInterfaceMain implements Component
165      /**
166       * A reference to the reference manager in use
167       */
168 <    private ReferenceManager _refman;
168 >    private ReferenceManager _refman = ReferenceManager.getInstance();
169  
170   //---STATIC ATTRIBUTES---
171  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines