in src/main/csharp/ConnectionFactory.cs [154:192]
private void CreateAdministeredConnectionFactory(
Uri factoryUri, StringDictionary properties)
{
// The initial context URL is the non-query part of the factory URI
string icUrl = factoryUri.OriginalString.Substring(0,
factoryUri.OriginalString.IndexOf('?'));
// Extract other InitialContext property values from URI
string icPrefix = "ic.";
StringDictionary icProperties = URISupport.ExtractProperties(
properties, icPrefix);
// Initialize environment Hashtable
Hashtable environment = new Hashtable();
environment[XMSC.IC_URL] = icUrl;
foreach(DictionaryEntry de in icProperties)
{
string key = ((string)de.Key).Substring(icPrefix.Length);
//TODO: convert "environment." attribute types.
environment[key] = de.Value;
}
// Create an InitialContext
InitialContext ic = new InitialContext(environment);
// Extract administered object name
string objectNameKey = "object.Name";
if(!properties.ContainsKey(objectNameKey))
{
throw new NMSException(string.Format(
"URI attribute {0} must be specified.", objectNameKey));
}
string objectName = properties[objectNameKey];
properties.Remove(objectNameKey);
// Lookup for object
this.xmsConnectionFactory =
(IBM.XMS.IConnectionFactory)ic.Lookup(objectName);
}