90 |
|
objRef = orb.resolve_initial_references("NameService"); |
91 |
|
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef); |
92 |
|
|
93 |
+ |
// check we got it |
94 |
+ |
if (ncRef == null) { |
95 |
+ |
throw new Exception("Unable to locate CORBA Naming Service for configured ORB!"); |
96 |
+ |
} |
97 |
+ |
|
98 |
|
// start and bind each server in turn |
99 |
< |
|
100 |
< |
// create the logger (either Screen or File) |
101 |
< |
ScreenLoggerServant loggerRef = new ScreenLoggerServant(Integer.parseInt(System.getProperty("uk.ac.ukc.iscream.Verbosity"))); |
102 |
< |
//FileLoggerServant loggerRef = new FileLoggerServant("core.log"); |
103 |
< |
// and advertise it to the naming context |
99 |
> |
|
100 |
> |
// work out which logger to use |
101 |
> |
String whichLogger = System.getProperty("uk.ac.ukc.iscream.LoggerClass", defaultLogger); |
102 |
> |
|
103 |
> |
// construct the relevant LoggerImpl |
104 |
> |
LoggerImpl loggerImplRef = (LoggerImpl) ClassLoader.getSystemClassLoader().loadClass(whichLogger).newInstance(); |
105 |
> |
|
106 |
> |
// setup and bind the LoggerServant |
107 |
> |
LoggerServant loggerRef = new LoggerServant(loggerImplRef); |
108 |
|
objRef = poa.servant_to_reference(loggerRef); |
109 |
|
ncRef.bind(ncRef.to_name("iscream.Logger"), objRef); |
110 |
|
|
111 |
< |
// get a ref to the logger servant as a Logger reference |
111 |
> |
// get a reference to the servant as a Logger |
112 |
|
Logger logRef = LoggerHelper.narrow(objRef); |
113 |
< |
|
113 |
> |
|
114 |
|
// create the Configurator |
115 |
< |
ConfiguratorServant configuratorRef = new ConfiguratorServant(System.getProperty("uk.ac.ukc.iscream.ConfigurationLocation"), poa, logRef); |
115 |
> |
ConfigurationManagerServant configManRef = new ConfigurationManagerServant(poa, logRef); |
116 |
|
|
117 |
|
// and advertise it to the naming context |
118 |
< |
objRef = poa.servant_to_reference(configuratorRef); |
119 |
< |
ncRef.bind(ncRef.to_name("iscream.Configurator"), objRef); |
118 |
> |
objRef = poa.servant_to_reference(configManRef); |
119 |
> |
ncRef.bind(ncRef.to_name("iscream.ConfigurationManager"), objRef); |
120 |
|
|
121 |
|
// start the POA off |
122 |
|
poa.the_POAManager().activate(); |
132 |
|
|
133 |
|
// there is already another CORE of the same name registered |
134 |
|
if ( e instanceof org.omg.CosNaming.NamingContextPackage.AlreadyBound) { |
135 |
< |
System.err.println("ERROR: Another I-Scream CORE is already registered under the same name."); |
135 |
> |
System.err.println("CORE ERROR: Another I-Scream CORE is already registered under the same name."); |
136 |
|
|
137 |
|
// otherwise we don't know what happened |
138 |
< |
// so print the error and do a stack trace |
138 |
> |
// so print the error and do a stack trace if debug is enabled |
139 |
|
} else { |
140 |
< |
System.err.println("CORE ERROR: " + e); |
141 |
< |
e.printStackTrace(System.out); |
140 |
> |
System.err.println("CORE ERROR: " + e.getMessage()); |
141 |
> |
if (Integer.parseInt(System.getProperty("uk.ac.ukc.iscream.Verbosity")) == Logger.DEBUG) { |
142 |
> |
System.err.println("*** DEBUG ENABLED - printing stack trace ***"); |
143 |
> |
e.printStackTrace(System.out); |
144 |
> |
} |
145 |
|
} |
146 |
|
} |
147 |
|
} |
153 |
|
* properly. |
154 |
|
*/ |
155 |
|
public static void usage() { |
156 |
< |
System.out.println("USAGE: java Core.java <option>"); |
156 |
> |
System.out.println("USAGE: java Core <option>"); |
157 |
|
System.out.println("WHERE <option>:"); |
158 |
|
System.out.println(" -l <filename> - the location of initial system properties"); |
159 |
|
System.out.println(" -h - this help screen"); |
169 |
|
//---ACCESSOR/MUTATOR METHODS--- |
170 |
|
|
171 |
|
//---ATTRIBUTES--- |
172 |
< |
|
172 |
> |
|
173 |
|
//---STATIC ATTRIBUTES--- |
174 |
+ |
|
175 |
+ |
/** |
176 |
+ |
* Default logger, to be used when one is not provided |
177 |
+ |
* in the configuration. |
178 |
+ |
*/ |
179 |
+ |
private static final String defaultLogger = "ScreenLogger"; |
180 |
+ |
|
181 |
+ |
/** |
182 |
+ |
* Default configPath, to be used when one is not provided |
183 |
+ |
* in the configuration. |
184 |
+ |
*/ |
185 |
+ |
private static final String defaultConfigPath = "."; |
186 |
|
|
187 |
|
} |