This is an object factory that produces a jndi naming
context based on a classloader.
It is used for the java:comp context.
This object factory is bound at java:comp. When a
lookup arrives for java:comp, this object factory
is invoked and will return a context specific to
the caller's environment (so producing the java:comp/env
specific to a webapp).
The context selected is based on classloaders. First
we try looking at the thread context classloader if it is set, and walk its
hierarchy, creating a context if none is found. If the thread context classloader
is not set, then we use the classloader associated with the current Context.
If there is no current context, or no classloader, we return null.
Created: Fri Jun 27 09:26:40 2003
Find or create a context which pertains to a classloader.
If the thread context classloader is set, we try to find an already-created naming context
for it. If one does not exist, we walk its classloader hierarchy until one is found, or we
run out of parent classloaders. In the latter case, we will create a new naming context associated
with the original thread context classloader.
If the thread context classloader is not set, we obtain the classloader from the current
jetty Context, and look for an already-created naming context.
If there is no current jetty Context, or it has no associated classloader, we