in yoko-core/src/main/java/org/apache/yoko/orb/OBCORBA/ORB_impl.java [907:1092]
private void setParameters(org.omg.CORBA.StringSeqHolder args,
java.util.Properties properties,
org.apache.yoko.orb.OB.Logger logger) {
if (args.value == null)
args.value = new String[0];
//
// Initialize the Logger
//
if (logger == null)
logger = new org.apache.yoko.orb.OB.Logger_impl();
//
// Initialize the properties
//
if (properties == null) {
properties = new Properties();
try {
properties.putAll(System.getProperties());
} catch (SecurityException ex) {
//
// May be raised in an applet
//
// logger.warning("ORB.init: Unable to access System " +
// "properties");
}
}
args.value = ParseArgs(args.value, properties, logger);
//
// Process each property
//
String orbId = "";
String serverId = "";
String serverInstance = "";
int concModel = org.apache.yoko.orb.OB.Client.Blocking;
int nativeCs = org.apache.yoko.orb.OB.CodeSetDatabase.ISOLATIN1;
int nativeWcs = org.apache.yoko.orb.OB.CodeSetDatabase.UTF16;
int defaultWcs = 0;
java.util.Enumeration keys = properties.keys();
while (keys.hasMoreElements()) {
String key = (String) keys.nextElement();
if (!key.startsWith("yoko.orb."))
continue;
String value = properties.getProperty(key);
org.apache.yoko.orb.OB.Assert._OB_assert(value != null);
if (key.equals("yoko.orb.conc_model")) {
if (value.equals("threaded")) {
concModel = org.apache.yoko.orb.OB.Client.Threaded;
}
else {
logger.warning("ORB.init: unknown value for "
+ "yoko.orb.conc_model: " + value);
}
} else if (key.startsWith("yoko.orb.trace.")) {
// Ignore -- handled in CoreTraceLevels
} else if (key.startsWith("yoko.orb.policy.")) {
// Ignore -- handled in initializeDefaultPolicies()
} else if (key.equals("yoko.orb.id")) {
orbId = value;
} else if (key.equals("yoko.orb.server_name")) {
//
// The server name must begin with an alpha-numeric
// character
//
if (value.length() == 0
|| !Character.isLetterOrDigit(value.charAt(0))) {
String err = "ORB.init: illegal value for "
+ "yoko.orb.server_name: " + value;
logger.error(err);
throw new org.omg.CORBA.INITIALIZE(err);
}
serverId = value;
} else if (key.equals("yoko.orb.server_instance")) {
serverInstance = value;
} else if (key.equals("yoko.orb.raise_dii_exceptions")) {
if (value.equalsIgnoreCase("true"))
raiseDIIExceptions_ = true;
else
raiseDIIExceptions_ = false;
} else if (key.equals("yoko.orb.native_cs")) {
int csid = org.apache.yoko.orb.OB.CodeSetDatabase.instance()
.nameToId(value);
if (csid != 0
&& csid != org.apache.yoko.orb.OB.CodeSetDatabase.UTF8)
nativeCs = csid;
else {
String err = "ORB.init: unknown value for "
+ "yoko.orb.native_cs: " + value;
logger.error(err);
throw new org.omg.CORBA.INITIALIZE(err);
}
} else if (key.equals("yoko.orb.native_wcs")) {
int csid = org.apache.yoko.orb.OB.CodeSetDatabase.instance()
.nameToId(value);
if (csid != 0
&& csid != org.apache.yoko.orb.OB.CodeSetDatabase.UTF8)
nativeWcs = csid;
else {
String err = "ORB.init: unknown value for "
+ "yoko.orb.native_wcs: " + value;
logger.error(err);
throw new org.omg.CORBA.INITIALIZE(err);
}
} else if (key.equals("yoko.orb.default_wcs")) {
int csid = org.apache.yoko.orb.OB.CodeSetDatabase.instance()
.nameToId(value);
if (csid != 0
&& csid != org.apache.yoko.orb.OB.CodeSetDatabase.UTF8)
defaultWcs = csid;
else {
String err = "ORB.init: unknown value for "
+ "yoko.orb.default_wcs: " + value;
logger.error(err);
throw new org.omg.CORBA.INITIALIZE(err);
}
} else if (key.equals("yoko.orb.extended_wchar")) {
if (!value.equals("true") && !value.equals("false")) {
String err = "ORB.init: unknown value for "
+ "yoko.orb.extended_wchar: " + value;
logger.error(err);
throw new org.omg.CORBA.INITIALIZE(err);
}
} else if (key.equals("yoko.orb.default_init_ref")) {
if (value.length() == 0)
logger.warning("ORB.init: invalid value for "
+ "yoko.orb.default_init_ref");
} else if (key.equals("yoko.orb.server_timeout")
|| key.equals("yoko.orb.server_shutdown_timeout")) {
// Used by GIOPServerWorker
} else if (key.equals("yoko.orb.client_timeout")
|| key.equals("yoko.orb.client_shutdown_timeout")) {
// Used by GIOPClientWorker
} else if (key.startsWith("yoko.orb.service.")) {
// Ignore
} else if (key.startsWith("yoko.orb.oa.")) {
// Ignore
} else if (key.startsWith("yoko.orb.poamanager.")) {
// Ignore
} else if (key.equals("yoko.orb.noIMR")) {
// Ignore
} else if (key.equals("yoko.orb.use_type_code_cache")) {
if (!value.equals("true") && !value.equals("false")) {
String err = "ORB.init: unknown value for "
+ "yoko.orb.use_type_code_cache: " + value;
logger.error(err);
throw new org.omg.CORBA.INITIALIZE(err);
}
} else if (key.equals("yoko.orb.giop.max_message_size")) {
try {
int max = Integer.valueOf(value).intValue();
org.apache.yoko.orb.OB.GIOPIncomingMessage
.setMaxMessageSize(max);
org.apache.yoko.orb.OB.GIOPOutgoingMessage
.setMaxMessageSize(max);
} catch (NumberFormatException ex) {
String err = "ORB.init: invalid value for "
+ "yoko.orb.giop.max_message_size: " + value;
logger.error(err, ex);
throw new org.omg.CORBA.INITIALIZE(err);
}
} else if (key.equals("yoko.orb.ami_workers")) {
// ignore
} else {
logger.warning("ORB.init: unknown property `" + key + "'");
}
}
//
// Parse the tracing levels from the properties
//
org.apache.yoko.orb.OB.CoreTraceLevels coreTraceLevels = new org.apache.yoko.orb.OB.CoreTraceLevels(
logger, properties);
//
// Initialize the ORB state - this must be done after processing
// command-line options and properties
//
initialize(args, orbId, serverId, serverInstance, concModel,
coreTraceLevels, properties, logger, nativeCs, nativeWcs,
defaultWcs);
}