You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2014/05/08 12:35:15 UTC
svn commit: r1593232 -
/tomcat/trunk/java/org/apache/naming/ContextBindings.java
Author: markt
Date: Thu May 8 10:35:14 2014
New Revision: 1593232
URL: http://svn.apache.org/r1593232
Log:
No functional change.
Rename fields and variables and update comments to reflect current usage
Modified:
tomcat/trunk/java/org/apache/naming/ContextBindings.java
Modified: tomcat/trunk/java/org/apache/naming/ContextBindings.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/naming/ContextBindings.java?rev=1593232&r1=1593231&r2=1593232&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/naming/ContextBindings.java (original)
+++ tomcat/trunk/java/org/apache/naming/ContextBindings.java Thu May 8 10:35:14 2014
@@ -14,8 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-
package org.apache.naming;
import java.util.Hashtable;
@@ -26,9 +24,14 @@ import javax.naming.NamingException;
/**
* Handles the associations :
* <ul>
- * <li>Catalina context name with the NamingContext</li>
- * <li>Calling thread with the NamingContext</li>
+ * <li>Object with a NamingContext</li>
+ * <li>Calling thread with a NamingContext</li>
+ * <li>Calling thread with object bound to the same naming context</li>
+ * <li>Thread context class loader with a NamingContext</li>
+ * <li>Thread context class loader with object bound to the same
+ * NamingContext</li>
* </ul>
+ * The objects are typically Catalina Server or Context objects.
*
* @author Remy Maucherat
*/
@@ -39,37 +42,37 @@ public class ContextBindings {
/**
- * Bindings name - naming context. Keyed by name.
+ * Bindings object - naming context. Keyed by object.
*/
- private static final Hashtable<Object,Context> contextNameBindings =
+ private static final Hashtable<Object,Context> objectBindings =
new Hashtable<>();
/**
- * Bindings thread - naming context. Keyed by thread id.
+ * Bindings thread - naming context. Keyed by thread.
*/
private static final Hashtable<Thread,Context> threadBindings =
new Hashtable<>();
/**
- * Bindings thread - name. Keyed by thread id.
+ * Bindings thread - object. Keyed by thread.
*/
- private static final Hashtable<Thread,Object> threadNameBindings =
+ private static final Hashtable<Thread,Object> threadObjectBindings =
new Hashtable<>();
/**
- * Bindings class loader - naming context. Keyed by CL id.
+ * Bindings class loader - naming context. Keyed by class loader.
*/
private static final Hashtable<ClassLoader,Context> clBindings =
new Hashtable<>();
/**
- * Bindings class loader - name. Keyed by CL id.
+ * Bindings class loader - object. Keyed by class loader.
*/
- private static final Hashtable<ClassLoader,Object> clNameBindings =
+ private static final Hashtable<ClassLoader,Object> clObjectBindings =
new Hashtable<>();
@@ -84,113 +87,115 @@ public class ContextBindings {
/**
- * Binds a context name.
+ * Binds an object and a naming context.
*
- * @param name Name of the context
- * @param context Associated naming context instance
+ * @param obj Object to bind with naming context
+ * @param context Associated naming context instance
*/
- public static void bindContext(Object name, Context context) {
- bindContext(name, context, null);
+ public static void bindContext(Object obj, Context context) {
+ bindContext(obj, context, null);
}
/**
- * Binds a context name.
+ * Binds an object and a naming context.
*
- * @param name Name of the context
- * @param context Associated naming context instance
- * @param token Security token
- */
- public static void bindContext(Object name, Context context,
- Object token) {
- if (ContextAccessController.checkSecurityToken(name, token))
- contextNameBindings.put(name, context);
+ * @param obj Object to bind with naming context
+ * @param context Associated naming context instance
+ * @param token Security token
+ */
+ public static void bindContext(Object obj, Context context, Object token) {
+ if (ContextAccessController.checkSecurityToken(obj, token)) {
+ objectBindings.put(obj, context);
+ }
}
/**
- * Unbind context name.
+ * Unbinds an object and a naming context.
*
- * @param name Name of the context
+ * @param obj Object to unbind
* @param token Security token
*/
- public static void unbindContext(Object name, Object token) {
- if (ContextAccessController.checkSecurityToken(name, token))
- contextNameBindings.remove(name);
+ public static void unbindContext(Object obj, Object token) {
+ if (ContextAccessController.checkSecurityToken(obj, token)) {
+ objectBindings.remove(obj);
+ }
}
/**
* Retrieve a naming context.
*
- * @param name Name of the context
+ * @param obj Object bound to the required naming context
*/
- static Context getContext(Object name) {
- return contextNameBindings.get(name);
+ static Context getContext(Object obj) {
+ return objectBindings.get(obj);
}
/**
* Binds a naming context to a thread.
*
- * @param name Name of the context
+ * @param obj Object bound to the required naming context
* @param token Security token
*/
- public static void bindThread(Object name, Object token)
- throws NamingException {
- if (ContextAccessController.checkSecurityToken(name, token)) {
- Context context = contextNameBindings.get(name);
- if (context == null)
- throw new NamingException
- (sm.getString("contextBindings.unknownContext", name));
+ public static void bindThread(Object obj, Object token) throws NamingException {
+ if (ContextAccessController.checkSecurityToken(obj, token)) {
+ Context context = objectBindings.get(obj);
+ if (context == null) {
+ throw new NamingException(
+ sm.getString("contextBindings.unknownContext", obj));
+ }
threadBindings.put(Thread.currentThread(), context);
- threadNameBindings.put(Thread.currentThread(), name);
+ threadObjectBindings.put(Thread.currentThread(), obj);
}
}
/**
- * Unbinds a naming context to a thread.
+ * Unbinds a thread and a naming context.
*
- * @param name Name of the context
+ * @param obj Object bound to the required naming context
* @param token Security token
*/
- public static void unbindThread(Object name, Object token) {
- if (ContextAccessController.checkSecurityToken(name, token)) {
+ public static void unbindThread(Object obj, Object token) {
+ if (ContextAccessController.checkSecurityToken(obj, token)) {
threadBindings.remove(Thread.currentThread());
- threadNameBindings.remove(Thread.currentThread());
+ threadObjectBindings.remove(Thread.currentThread());
}
}
/**
- * Retrieves the naming context bound to a thread.
+ * Retrieves the naming context bound to the current thread.
*/
- public static Context getThread()
- throws NamingException {
+ public static Context getThread() throws NamingException {
Context context = threadBindings.get(Thread.currentThread());
- if (context == null)
+ if (context == null) {
throw new NamingException
- (sm.getString("contextBindings.noContextBoundToThread"));
+ (sm.getString("contextBindings.noContextBoundToThread"));
+ }
return context;
}
/**
- * Retrieves the naming context name bound to a thread.
+ * Retrieves the name of the object bound to the naming context that is also
+ * bound to the current thread.
*/
- static Object getThreadName()
- throws NamingException {
- Object name = threadNameBindings.get(Thread.currentThread());
- if (name == null)
+ static String getThreadName() throws NamingException {
+ Object obj = threadObjectBindings.get(Thread.currentThread());
+ if (obj == null) {
throw new NamingException
- (sm.getString("contextBindings.noContextBoundToThread"));
- return name;
+ (sm.getString("contextBindings.noContextBoundToThread"));
+ }
+ return obj.toString();
}
/**
- * Tests if current thread is bound to a context.
+ * Tests if current thread is bound to a naming context.
*/
public static boolean isThreadBound() {
return (threadBindings.containsKey(Thread.currentThread()));
@@ -198,40 +203,42 @@ public class ContextBindings {
/**
- * Binds a naming context to a thread.
+ * Binds a naming context to a class loader.
*
- * @param name Name of the context
- * @param token Security token
- */
- public static void bindClassLoader(Object name, Object token,
- ClassLoader classLoader)
- throws NamingException {
- if (ContextAccessController.checkSecurityToken(name, token)) {
- Context context = contextNameBindings.get(name);
- if (context == null)
+ * @param obj Object bound to the required naming context
+ * @param token Security token
+ * @param classLoader The class loader to bind to the naming context
+ */
+ public static void bindClassLoader(Object obj, Object token,
+ ClassLoader classLoader) throws NamingException {
+ if (ContextAccessController.checkSecurityToken(obj, token)) {
+ Context context = objectBindings.get(obj);
+ if (context == null) {
throw new NamingException
- (sm.getString("contextBindings.unknownContext", name));
+ (sm.getString("contextBindings.unknownContext", obj));
+ }
clBindings.put(classLoader, context);
- clNameBindings.put(classLoader, name);
+ clObjectBindings.put(classLoader, obj);
}
}
/**
- * Unbinds a naming context to a class loader.
+ * Unbinds a naming context and a class loader.
*
- * @param name Name of the context
- * @param token Security token
- */
- public static void unbindClassLoader(Object name, Object token,
- ClassLoader classLoader) {
- if (ContextAccessController.checkSecurityToken(name, token)) {
- Object n = clNameBindings.get(classLoader);
- if ((n==null) || !(n.equals(name))) {
+ * @param obj Object bound to the required naming context
+ * @param token Security token
+ * @param classLoader The class loader bound to the naming context
+ */
+ public static void unbindClassLoader(Object obj, Object token,
+ ClassLoader classLoader) {
+ if (ContextAccessController.checkSecurityToken(obj, token)) {
+ Object o = clObjectBindings.get(classLoader);
+ if (o == null || !o.equals(obj)) {
return;
}
clBindings.remove(classLoader);
- clNameBindings.remove(classLoader);
+ clObjectBindings.remove(classLoader);
}
}
@@ -239,8 +246,7 @@ public class ContextBindings {
/**
* Retrieves the naming context bound to a class loader.
*/
- public static Context getClassLoader()
- throws NamingException {
+ public static Context getClassLoader() throws NamingException {
ClassLoader cl = Thread.currentThread().getContextClassLoader();
Context context = null;
do {
@@ -249,31 +255,29 @@ public class ContextBindings {
return context;
}
} while ((cl = cl.getParent()) != null);
- throw new NamingException
- (sm.getString("contextBindings.noContextBoundToCL"));
+ throw new NamingException(sm.getString("contextBindings.noContextBoundToCL"));
}
/**
- * Retrieves the naming context name bound to a class loader.
+ * Retrieves the name of the object bound to the naming context that is also
+ * bound to the thread context class loader.
*/
- static Object getClassLoaderName()
- throws NamingException {
+ static String getClassLoaderName() throws NamingException {
ClassLoader cl = Thread.currentThread().getContextClassLoader();
- Object name = null;
+ Object obj = null;
do {
- name = clNameBindings.get(cl);
- if (name != null) {
- return name;
+ obj = clObjectBindings.get(cl);
+ if (obj != null) {
+ return obj.toString();
}
} while ((cl = cl.getParent()) != null);
- throw new NamingException
- (sm.getString("contextBindings.noContextBoundToCL"));
+ throw new NamingException (sm.getString("contextBindings.noContextBoundToCL"));
}
/**
- * Tests if current class loader is bound to a context.
+ * Tests if the thread context class loader is bound to a context.
*/
public static boolean isClassLoaderBound() {
ClassLoader cl = Thread.currentThread().getContextClassLoader();
@@ -284,6 +288,4 @@ public class ContextBindings {
} while ((cl = cl.getParent()) != null);
return false;
}
-
-
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org