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