org.eclipse.jetty.jndi
Class ContextFactory

java.lang.Object
  extended by org.eclipse.jetty.jndi.ContextFactory
All Implemented Interfaces:
ObjectFactory

public class ContextFactory
extends Object
implements ObjectFactory

ContextFactory.java 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 in at the classloader that is associated with the current webapp context (if there is one). If not, we use the thread context classloader. Created: Fri Jun 27 09:26:40 2003


Constructor Summary
ContextFactory()
           
 
Method Summary
static void dump(Appendable out, String indent)
           
 Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable env)
          Find or create a context which pertains to a classloader.
 Context getParentClassLoaderContext(ClassLoader loader)
          Keep trying ancestors of the given classloader to find one to which the context is bound.
static void resetComponentContext(Context ctx)
          Set back the context with the given value.
static Context setComponentContext(Context ctx)
          Associate the given Context with the current thread.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ContextFactory

public ContextFactory()
Method Detail

getObjectInstance

public Object getObjectInstance(Object obj,
                                Name name,
                                Context nameCtx,
                                Hashtable env)
                         throws Exception
Find or create a context which pertains to a classloader. We use either the classloader for the current ContextHandler if we are handling a request, OR we use the thread context classloader if we are not processing a request.

Specified by:
getObjectInstance in interface ObjectFactory
Throws:
Exception
See Also:
ObjectFactory.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable)

getParentClassLoaderContext

public Context getParentClassLoaderContext(ClassLoader loader)
Keep trying ancestors of the given classloader to find one to which the context is bound.

Parameters:
loader -
Returns:
the context from the parent class loader

setComponentContext

public static Context setComponentContext(Context ctx)
Associate the given Context with the current thread. resetComponentContext method should be called to reset the context.

Parameters:
ctx - the context to associate to the current thread.
Returns:
the previous context associated on the thread (can be null)

resetComponentContext

public static void resetComponentContext(Context ctx)
Set back the context with the given value. Don't return the previous context, use setComponentContext() method for this.

Parameters:
ctx - the context to associate to the current thread.

dump

public static void dump(Appendable out,
                        String indent)
                 throws IOException
Throws:
IOException


Copyright © 1995-2011 Mort Bay Consulting. All Rights Reserved.