ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/uk/org/iscream/cms/server/client/ClientMain.java
(Generate patch)

Comparing projects/cms/source/server/uk/org/iscream/cms/server/client/ClientMain.java (file contents):
Revision 1.4 by tdb, Mon Feb 5 20:45:32 2001 UTC vs.
Revision 1.16 by tdb, Thu Mar 15 22:12:22 2001 UTC

# Line 1 | Line 1
1 < package uk.ac.ukc.iscream.client;
1 > //---PACKAGE DECLARATION---
2 > package uk.org.iscream.client;
3  
4 < import uk.ac.ukc.iscream.client.*;
5 < import uk.ac.ukc.iscream.clientinterface.*;
6 < import uk.ac.ukc.iscream.componentmanager.*;
7 < import org.omg.CosNaming.*;
8 < import org.omg.CORBA.*;
8 < import org.omg.PortableServer.*;
4 > //---IMPORTS---
5 > import uk.org.iscream.clientinterface.*;
6 > import uk.org.iscream.componentmanager.*;
7 > import uk.org.iscream.core.*;
8 > import uk.org.iscream.util.*;
9  
10 < public class ClientMain {
11 <    public static void main(String args[]) {
12 <        System.setProperty("org.omg.CORBA.ORBClass","jacorb.orb.ORB");
13 <        System.setProperty("org.omg.CORBA.ORBSingletonClass","jacorb.orb.ORBSingleton");
14 <        try {
15 <            ReferenceManager _refman = ReferenceManager.getInstance();
16 <            _refman.activatePOA();
10 > /**
11 > * A startup component for the Local Clients.
12 > *
13 > * @author  $Author$
14 > * @version $Id$
15 > */
16 > public class ClientMain implements Component {
17  
18 <            ClientServant corbaServant = new ClientServant();
19 <            org.omg.CORBA.Object o = _refman.getRootPOA().servant_to_reference(corbaServant);
20 <            Client client = ClientHelper.narrow(o);
18 > //---FINAL ATTRIBUTES---
19  
20 <            o = _refman.getCORBARef("iscream.ClientInterface.CorbaListener");
21 <            CorbaClientListener lRef = CorbaClientListenerHelper.narrow(o);
20 >    /**
21 >     * The current CVS revision of this class
22 >     */
23 >    public static final String REVISION = "$Revision$";
24 >    
25 >    /**
26 >     * The friendly name for this component, used by
27 >     * all related classes.
28 >     */
29 >    public static final String NAME = "LocalClient";
30 >    
31 > //---STATIC METHODS---
32  
33 <            boolean result;
26 <            System.out.println(" -- connecting -- ");
27 <            CorbaControlHandler handler = lRef.connect(client);
28 <            System.out.println(" -- starting data -- ");
29 <            result = handler.startData();
30 <            //System.out.println(" -- sleep for 30s -- ");
31 <            //Thread.sleep(30000);
32 <            //System.out.println(" -- stopping data -- ");
33 <            //result = handler.stopData();
34 <            //Thread.sleep(2000);
35 <            //System.out.println(" -- completed -- ");
36 <            _refman.getORB().run();
33 > //---CONSTRUCTORS---
34  
35 + //---PUBLIC METHODS---
36 +
37 +    /**
38 +     * This starts the Local Client component
39 +     */
40 +    public void start() throws ComponentStartException {
41 +        // get references to key objects
42 +        _logger = _refman.getLogger();
43 +
44 +        _logger.write(toString(), Logger.SYSINIT, "coming up");
45 +        
46 +        // setup the queues, this must be done before both managers are setup
47 +        // setup a Queue for the servant -> monitor manager
48 +        _monitorQueue = new Queue();
49 +        // setup a Queue for the monitors -> alert manager
50 +        _alerterQueue = new Queue();
51 +        
52 +        // setup the servant and connect
53 +        _logger.write(toString(), Logger.SYSINIT, "starting servant and connecting");          
54 +        try {
55 +            ClientServant ref = new ClientServant(_monitorQueue);
56 +            org.omg.CORBA.Object objRef = _refman.getRootPOA().servant_to_reference(ref);
57 +            Client client = ClientHelper.narrow(objRef);
58 +            
59 +            // this name maybe shouldn't be static
60 +            objRef = _refman.getCORBARef("iscream.ClientInterface.CorbaListener");
61 +            CorbaClientListener listener = CorbaClientListenerHelper.narrow(objRef);
62 +            
63 +            _logger.write(toString(), Logger.SYSINIT, "connecting");
64 +            CorbaControlHandler handler = listener.connect(client, NAME);
65 +            handler.startData();
66          }
67 <        catch (Exception e) {
68 <            System.out.println("ERROR : " + e);
69 <            e.printStackTrace(System.out);
67 >        catch(Exception e) {
68 >            // not sure what to do here
69 >            // so we just log the error
70 >            _logger.write(toString(), Logger.ERROR, "ERROR - " + e.getMessage());
71          }
72 +        
73 +        // setup the MonitorManager
74 +        MonitorManager monMan = MonitorManager.getInstance();
75 +        monMan.start();
76 +        
77 +        // setup the AlerterManager
78 +        AlerterManager alertMan = AlerterManager.getInstance();
79 +        alertMan.start();
80 +      
81 +        _logger.write(toString(), Logger.SYSINIT, "started");
82 +        
83      }
84 +    
85 +    /**
86 +     * Does a dependency check. Used mainly at startup to
87 +     * see if the required dependencies (components) are up
88 +     * and running.
89 +     *
90 +     * @return a boolean value, true if the depdencies are satisfied
91 +     */
92 +    public boolean depCheck() {
93 +        try {
94 +            org.omg.CORBA.Object obj;
95 +            // first check the ConfigurationManager is alive
96 +            obj = _refman.getCORBARef("iscream.ConfigurationManager");
97 +            // then get some info on the CLI
98 +            ConfigurationProxy cp = ConfigurationProxy.getInstance();
99 +            String cli = cp.getProperty("RootFilter", "RootFilter.realtimeInterfaceName");
100 +            // finally check the CLI is alive
101 +            obj = _refman.getCORBARef("iscream.ClientInterface." + cli);
102 +        } catch(ComponentCORBAException e) {
103 +            System.err.println(toString() + ": Dependency Failure: "+e);
104 +            return false;
105 +        } catch(PropertyNotFoundException e) {
106 +            System.err.println(toString() + ": Unable to obtain configuration: "+e);
107 +            return false;
108 +        }
109 +        // dependency check suceeded
110 +        return true;
111 +    }
112 +    
113 +    /**
114 +     * Overrides the {@link java.lang.Object#toString() Object.toString()}
115 +     * method to provide clean logging (every class should have this).
116 +     *
117 +     * This uses the uk.org.iscream.util.FormatName class
118 +     * to format the toString()
119 +     *
120 +     * @return the name of this class and its CVS revision
121 +     */
122 +    public String toString() {
123 +        return FormatName.getName(
124 +            NAME,
125 +            getClass().getName(),
126 +            REVISION);
127 +    }
128 +
129 + //---PRIVATE METHODS---
130 +
131 + //---ACCESSOR/MUTATOR METHODS---
132 +
133 + //---ATTRIBUTES---
134 +
135 +    /**
136 +     * This holds a reference to the
137 +     * system logger that is being used.
138 +     */
139 +    private Logger _logger;
140 +
141 +    /**
142 +     * A reference to the reference manager in use
143 +     */
144 +    private ReferenceManager _refman = ReferenceManager.getInstance();
145 +
146 + //---STATIC ATTRIBUTES---
147 +
148 +    /**
149 +     * A queue for the alerter manager
150 +     */
151 +    public static Queue _alerterQueue;
152 +    
153 +    /**
154 +     * A queue for the monitor manager
155 +     */
156 +    public static Queue _monitorQueue;
157  
158   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines