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

# Content
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 }