ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/uk/org/iscream/cms/server/core/Core.java
Revision: 1.1
Committed: Wed Nov 8 21:24:33 2000 UTC (23 years, 6 months ago) by ajm
Branch: MAIN
Log Message:
initial checkin of first revision CORE

File Contents

# User Rev Content
1 ajm 1.1 //---PACKAGE DECLARATION---
2    
3     //---IMPORTS---
4     import core.*;
5     import org.omg.CORBA.*;
6     import org.omg.CosNaming.*;
7     import org.omg.PortableServer.*;
8    
9     /**
10     * The main class for the CORE of the I-Scream system.
11     * The main method of this class initialises the ORB
12     * and then starts and registers CORE I-Scream services
13     * with the name service. At which point it essentially
14     * finishs its role and the started services continue to
15     * serve requests from the I-Scream system.
16     *
17     * @author $Author: ajm4 $
18     * @version $Id: TemplateClass.java,v 1.2 2000/11/08 18:18:07 ajm4 Exp $
19     */
20     class Core {
21    
22     //---FINAL ATTRIBUTES---
23    
24     /**
25     * The current CVS revision of this class
26     */
27     public static final String REVISION = "$Revision: 1.2 $";
28    
29     //---STATIC METHODS---
30    
31     /**
32     * The main method which starts the CORE
33     * Currently the args are passed direct to the ORB,
34     * so any ORB paramaters could go there.
35     *
36     * @param args the command line arguments
37     */
38     public static void main(String[] args) {
39     System.out.println("I-Scream CORE:" + REVISION + " - coming up.");
40     try {
41     // start the ORB
42     ORB orb = ORB.init(args, null);
43    
44     // get the Root POA
45     org.omg.CORBA.Object objRef = orb.resolve_initial_references("RootPOA");
46     POA poa = POAHelper.narrow(objRef);
47    
48     // get a hook to the name service
49     objRef = orb.resolve_initial_references("NameService");
50     NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
51    
52     // get a ref to our servers
53     // first the Configurator
54     ConfiguratorServant configuratorRef = new ConfiguratorServant(poa);
55    
56     // then the logger
57     // **** PUT THE LOGGER HERE TIM ****
58    
59     // advertise them to the naming context
60     // Configurator
61     objRef = poa.servant_to_reference(configuratorRef);
62     ncRef.bind(ncRef.to_name("iscream.Configurator"), objRef);
63    
64     // Logger
65     // **** REGISTER THE LOGGER WITH THE NAME SERVICE TIM ****
66    
67     // start the POA off
68     poa.the_POAManager().activate();
69    
70    
71     System.out.println("I-Scream CORE:" + REVISION + " - started.");
72    
73     // now we are running, we just need to serve
74     // so we ask the orb to block for us until it has finished
75     orb.run();
76    
77     // if there was a problem then we'll get to here
78     } catch (Exception e) {
79    
80     // there is already another CORE of the same name registered
81     if ( e instanceof org.omg.CosNaming.NamingContextPackage.AlreadyBound) {
82     System.err.println("ERROR: Another I-Scream CORE is already registered under the same name.");
83    
84     // otherwise we don't know what happened
85     // so print the error and do a stack trace
86     } else {
87     System.err.println("CORE ERROR: " + e);
88     e.printStackTrace(System.out);
89     }
90     }
91     }
92    
93     //---CONSTRUCTORS---
94    
95     //---PUBLIC METHODS---
96    
97     //---PRIVATE METHODS---
98    
99     //---ACCESSOR/MUTATOR METHODS---
100    
101     //---ATTRIBUTES---
102    
103     //---STATIC ATTRIBUTES---
104    
105     }