public Context getInitialContext(Hashtable env) throws NamingException {
String providerURL = (String) env.get(Context.PROVIDER_URL);
Name prefix = null;
/** This may be a comma separated list of provider urls in which
case we do not parse the urls for the requested context prefix name
*/
int comma = providerURL != null ? providerURL.indexOf(',') : -1;
if( providerURL != null && comma < 0 )
{
Name name = new CompoundName(providerURL, NamingParser.syntax);
String serverInfo = NamingContext.parseNameForScheme(name, env);
if( serverInfo != null )
{
env = (Hashtable) env.clone();
// Set hostname:port value for the naming server
env.put(Context.PROVIDER_URL, serverInfo);
// Set the context prefix to name
Name parsedName = (Name) env.get(NamingContext.JNP_PARSED_NAME);
if( parsedName != null )
prefix = parsedName;
else
prefix = name;
}
}
return new NamingContext(env, prefix, null);
}
|