172 // |
172 // |
173 private static final String ORBClassKey = "org.omg.CORBA.ORBClass"; |
173 private static final String ORBClassKey = "org.omg.CORBA.ORBClass"; |
174 private static final String ORBSingletonClassKey = "org.omg.CORBA.ORBSingletonClass"; |
174 private static final String ORBSingletonClassKey = "org.omg.CORBA.ORBSingletonClass"; |
175 |
175 |
176 // |
176 // |
177 // The last resort fallback ORB implementation classes in case |
|
178 // no ORB implementation class is dynamically configured through |
|
179 // properties or applet parameters. Change these values to |
|
180 // vendor-specific class names. |
|
181 // |
|
182 private static final String defaultORB = "com.sun.corba.se.impl.orb.ORBImpl"; |
|
183 private static final String defaultORBSingleton = "com.sun.corba.se.impl.orb.ORBSingleton"; |
|
184 |
|
185 // |
|
186 // The global instance of the singleton ORB implementation which |
177 // The global instance of the singleton ORB implementation which |
187 // acts as a factory for typecodes for generated Helper classes. |
178 // acts as a factory for typecodes for generated Helper classes. |
188 // TypeCodes should be immutable since they may be shared across |
179 // TypeCodes should be immutable since they may be shared across |
189 // different security contexts (applets). There should be no way to |
180 // different security contexts (applets). There should be no way to |
190 // use a TypeCode as a storage depot for illicitly passing |
181 // use a TypeCode as a storage depot for illicitly passing |
292 public static synchronized ORB init() { |
283 public static synchronized ORB init() { |
293 if (singleton == null) { |
284 if (singleton == null) { |
294 String className = getSystemProperty(ORBSingletonClassKey); |
285 String className = getSystemProperty(ORBSingletonClassKey); |
295 if (className == null) |
286 if (className == null) |
296 className = getPropertyFromFile(ORBSingletonClassKey); |
287 className = getPropertyFromFile(ORBSingletonClassKey); |
297 if (className == null) |
288 if (className == null) { |
298 className = defaultORBSingleton; |
289 singleton = new com.sun.corba.se.impl.orb.ORBSingleton(); |
299 |
290 } else { |
300 singleton = create_impl(className); |
291 singleton = create_impl(className); |
|
292 } |
301 } |
293 } |
302 return singleton; |
294 return singleton; |
303 } |
295 } |
304 |
296 |
305 private static ORB create_impl(String className) { |
297 private static ORB create_impl(String className) { |
345 className = props.getProperty(ORBClassKey); |
337 className = props.getProperty(ORBClassKey); |
346 if (className == null) |
338 if (className == null) |
347 className = getSystemProperty(ORBClassKey); |
339 className = getSystemProperty(ORBClassKey); |
348 if (className == null) |
340 if (className == null) |
349 className = getPropertyFromFile(ORBClassKey); |
341 className = getPropertyFromFile(ORBClassKey); |
350 if (className == null) |
342 if (className == null) { |
351 className = defaultORB; |
343 orb = new com.sun.corba.se.impl.orb.ORBImpl(); |
352 |
344 } else { |
353 orb = create_impl(className); |
345 orb = create_impl(className); |
|
346 } |
|
347 |
354 orb.set_parameters(args, props); |
348 orb.set_parameters(args, props); |
355 return orb; |
349 return orb; |
356 } |
350 } |
357 |
351 |
358 |
352 |
373 className = props.getProperty(ORBClassKey); |
367 className = props.getProperty(ORBClassKey); |
374 if (className == null) |
368 if (className == null) |
375 className = getSystemProperty(ORBClassKey); |
369 className = getSystemProperty(ORBClassKey); |
376 if (className == null) |
370 if (className == null) |
377 className = getPropertyFromFile(ORBClassKey); |
371 className = getPropertyFromFile(ORBClassKey); |
378 if (className == null) |
372 if (className == null) { |
379 className = defaultORB; |
373 orb = new com.sun.corba.se.impl.orb.ORBImpl(); |
380 |
374 } else { |
381 orb = create_impl(className); |
375 orb = create_impl(className); |
|
376 } |
|
377 |
382 orb.set_parameters(app, props); |
378 orb.set_parameters(app, props); |
383 return orb; |
379 return orb; |
384 } |
380 } |
385 |
381 |
386 /** |
382 /** |