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.3 by ajm, Tue Dec 5 15:59:35 2000 UTC vs.
Revision 1.4 by ajm, Wed Dec 13 12:57:38 2000 UTC

# Line 6 | Line 6 | import uk.ac.ukc.iscream.util.*;
6   import uk.ac.ukc.iscream.core.*;
7  
8   /**
9 < * A ClientInterface startup class
9 > * This class starts the real time clients
10 > * client interface.
11 > * This is an iscream component that sends data
12 > * direct to clients running on desktops to provide
13 > * real time information.
14   *
15   * @author  $Author$
16   * @version $Id$
17   */
18 < class ClientInterfaceMain {
18 > public class ClientInterfaceMain implements uk.ac.ukc.iscream.util.Component {
19  
20   //---FINAL ATTRIBUTES---
21  
# Line 22 | Line 26 | class ClientInterfaceMain {
26      
27   //---STATIC METHODS---
28  
29 <    public static void main(String[] args) {
26 <        // ***************************************
27 <        // VERY TEMPORARY - will find a better way
28 <        System.setProperty("org.omg.CORBA.ORBClass","jacorb.orb.ORB");
29 <        System.setProperty("org.omg.CORBA.ORBSingletonClass","jacorb.orb.ORBSingleton");
30 <        // ***************************************
29 > //---CONSTRUCTORS---
30  
31 <        ReferenceManager refman = ReferenceManager.init(null, null);
31 > //---PUBLIC METHODS---
32  
33 <        // can't have a real toString() :)
34 <        String toString = "ClientInterface{" + refman.getName() + "}(" + REVISION.substring(11, REVISION.length() - 2) + ")";
35 <                
36 <        refman.getLogger().write(toString, Logger.SYSINIT, "coming up");
33 >    /**
34 >     * This method starts the ClientInterface
35 >     */
36 >    public void start() throws ComponentStartException {
37 >                        
38 >        _logger.write(toString(), Logger.SYSINIT, "coming up");
39              
40          // configuration variables we require
41          String ourName = null;
42          int listenPort = 0;
43          
44 <        Configuration config = refman.getCM().getConfiguration("ClientInterface");
44 >        Configuration config = _refman.getCM().getConfiguration("ClientInterface");
45          if (config == null) {
46 <            throw new RuntimeException ("CRITICAL:Unable to obtain configuration" +
47 <                                        "         Advise you check the i-scream log for more information.");
46 >            System.err.println("CRITICAL:Unable to obtain configuration" +
47 >                               "\n         Advise you check the i-scream log for more information.");
48 >            _logger.write(toString(), Logger.FATAL, "ERROR - unable to obtain configuration");
49 >            System.exit(1);
50          } else {
51              try {
52                  ourName = config.getProperty("RootFilter.realtimeInterfaceName");
53                  listenPort = Integer.parseInt(config.getProperty("ClientInterface.listenPort"));
54              } catch (org.omg.CORBA.MARSHAL e) {
55 <                refman.getLogger().write(toString, Logger.FATAL, "required config property not present");
56 <                throw new RuntimeException ("CRITICAL:Unable to obtain required configuration property" +
57 <                                            "         Advise you check the i-scream log for more information.");
55 >                System.err.println ("CRITICAL:Unable to obtain required configuration property" +
56 >                                    "\n         Advise you check the i-scream log for more information.");
57 >                _logger.write(toString(), Logger.FATAL, "ERROR - required configuration property not present");
58 >                System.exit(1);
59  
60              }
61          }
62          // now we have the name of the interface we set it
63 <        refman.setName(ourName);
64 <        toString = "ClientInterface{" + refman.getName() + "}(" + REVISION.substring(11, REVISION.length() - 2) + ")";
65 <        refman.getLogger().write(toString, Logger.SYSINIT, "configured");
63 >        NAME = ourName;
64 >        
65 >        _logger.write(toString(), Logger.SYSINIT, "configured");
66                  
67          // ClientInterfaceServant start (for inbound data)
68 <        refman.getLogger().write(toString, Logger.DEBUG, "starting servant for inbound data");
68 >        _logger.write(toString(), Logger.DEBUG, "starting servant for inbound data");
69          ClientInterfaceServant ciServant = new ClientInterfaceServant();
70 <        refman.bindToOrb(ciServant, "iscream.ClientInterface." + refman.getName());
70 >        _refman.bindToOrb(ciServant, "iscream.ClientInterface." + ClientInterfaceMain.NAME);
71          
72          ClientListener clientListener = new ClientListener(listenPort, ciServant);
73          clientListener.start();
74          
75 <        // start the POA off
72 <        // now we are running, we just need to serve
73 <        // so we ask the orb to block for us until it has finished
74 <        refman.activatePOA();
75 <        refman.getLogger().write(toString, Logger.SYSINIT, "started");
76 <        refman.getORB().run();
75 >        _logger.write(toString(), Logger.SYSINIT, "started");
76      }
77  
78 < //---CONSTRUCTORS---
78 >    /**
79 >     * Overrides the {@link java.lang.Object#toString() Object.toString()}
80 >     * method to provide clean logging (every class should have this).
81 >     *
82 >     * This uses the uk.ac.ukc.iscream.util.NameFormat class
83 >     * to format the toString()
84 >     *
85 >     * @return the name of this class and its CVS revision
86 >     */
87 >    public String toString() {
88 >        return FormatName.getName(
89 >            _name,
90 >            getClass().getName(),
91 >            REVISION);
92 >    }
93  
81 //---PUBLIC METHODS---
82
94   //---PRIVATE METHODS---
95  
96   //---ACCESSOR/MUTATOR METHODS---
97  
98   //---ATTRIBUTES---
99  
100 +    /**
101 +     * This is the friendly identifier of the
102 +     * component this class is running in.
103 +     * eg, a Filter may be called "filter1",
104 +     * If this class does not have an owning
105 +     * component,  a name from the configuration
106 +     * can be placed here.  This name could also
107 +     * be changed to null for utility classes.
108 +     */
109 +    private String _name = ClientInterfaceMain.NAME;
110 +
111 +    /**
112 +     * This holds a reference to the
113 +     * system logger that is being used.
114 +     */
115 +    private Logger _logger = ReferenceManager.getInstance().getLogger();
116 +
117 +    /**
118 +     * A reference to the reference manager in use
119 +     */
120 +    private ReferenceManager _refman = ReferenceManager.getInstance();
121 +
122   //---STATIC ATTRIBUTES---
123  
124 < }            
124 >    /**
125 >     * The friendly name for this component, used by
126 >     * all related classes.
127 >     * This is set from the configuration.
128 >     */
129 >    public static String NAME;
130 >
131 > }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines