You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2005/06/23 11:46:02 UTC

svn commit: r193123 - in /directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server: authn/ authz/ interceptor/ invocation/ operational/

Author: trustin
Date: Thu Jun 23 02:45:59 2005
New Revision: 193123

URL: http://svn.apache.org/viewcvs?rev=193123&view=rev
Log:
* Renamed Invocation.target to 'caller'
* Revised JavaDoc for 'invocation' package

Modified:
    directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/authn/AuthenticationService.java
    directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/authz/AuthorizationService.java
    directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/interceptor/BaseInterceptor.java
    directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/invocation/Invocation.java
    directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/invocation/InvocationStack.java
    directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/operational/OperationalAttributeService.java

Modified: directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/authn/AuthenticationService.java
URL: http://svn.apache.org/viewcvs/directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/authn/AuthenticationService.java?rev=193123&r1=193122&r2=193123&view=diff
==============================================================================
--- directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/authn/AuthenticationService.java (original)
+++ directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/authn/AuthenticationService.java Thu Jun 23 02:45:59 2005
@@ -295,7 +295,7 @@
         // check if we are already authenticated and if so we return making
         // sure first that the credentials are not exposed within context
         ServerContext ctx =
-            ( ServerContext ) InvocationStack.getInstance().peek().getTarget();
+            ( ServerContext ) InvocationStack.getInstance().peek().getCaller();
 
         if ( ctx.getPrincipal() != null )
         {

Modified: directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/authz/AuthorizationService.java
URL: http://svn.apache.org/viewcvs/directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/authz/AuthorizationService.java?rev=193123&r1=193122&r2=193123&view=diff
==============================================================================
--- directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/authz/AuthorizationService.java (original)
+++ directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/authz/AuthorizationService.java Thu Jun 23 02:45:59 2005
@@ -320,7 +320,7 @@
     private void protectLookUp( Name dn ) throws NamingException
     {
         LdapContext ctx =
-            ( LdapContext ) InvocationStack.getInstance().peek().getTarget();
+            ( LdapContext ) InvocationStack.getInstance().peek().getCaller();
         Name principalDn = ( ( ServerContext ) ctx ).getPrincipal().getJndiName();
 
         if ( !principalDn.equals( ADMIN_DN ) )
@@ -381,7 +381,7 @@
         //}
         
         LdapContext ctx =
-            ( LdapContext ) InvocationStack.getInstance().peek().getTarget();
+            ( LdapContext ) InvocationStack.getInstance().peek().getCaller();
         return new SearchResultFilteringEnumeration( e, searchCtls, ctx,
                 new SearchResultFilter()
                 {
@@ -399,7 +399,7 @@
     {
         NamingEnumeration e = nextInterceptor.list( base );
         LdapContext ctx =
-            ( LdapContext ) InvocationStack.getInstance().peek().getTarget();
+            ( LdapContext ) InvocationStack.getInstance().peek().getCaller();
         
         return new SearchResultFilteringEnumeration( e, null, ctx,
             new SearchResultFilter()

Modified: directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/interceptor/BaseInterceptor.java
URL: http://svn.apache.org/viewcvs/directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/interceptor/BaseInterceptor.java?rev=193123&r1=193122&r2=193123&view=diff
==============================================================================
--- directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/interceptor/BaseInterceptor.java (original)
+++ directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/interceptor/BaseInterceptor.java Thu Jun 23 02:45:59 2005
@@ -61,7 +61,7 @@
      */
     public static LdapContext getContext()
     {
-        return ( LdapContext ) InvocationStack.getInstance().peek().getTarget();
+        return ( LdapContext ) InvocationStack.getInstance().peek().getCaller();
     }
 
 

Modified: directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/invocation/Invocation.java
URL: http://svn.apache.org/viewcvs/directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/invocation/Invocation.java?rev=193123&r1=193122&r2=193123&view=diff
==============================================================================
--- directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/invocation/Invocation.java (original)
+++ directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/invocation/Invocation.java Thu Jun 23 02:45:59 2005
@@ -23,40 +23,44 @@
 
 import javax.naming.Context;
 
-import org.apache.ldap.server.partition.ContextPartition;
+import org.apache.ldap.server.partition.ContextPartitionNexus;
 
 
 /**
- * Represents a method invocation on {@link ContextPartition}s.
- * <p/>
- * This class is abstract, and developers should extend this class to
- * represent the actual method invocations.
+ * Represents a call from JNDI {@link Context} to {@link ContextPartitionNexus}.
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$, $Date$
  */
 public class Invocation
 {
-    private final Context target;
+    private final Context caller;
     private final String name;
     private final List parameters;
     
     /**
-     * Creates a new instance.
+     * Creates a new instance that represents an invocation without parameters.
+     * 
+     * @parem caller the JNDI {@link Context} that made this invocation
+     * @param name the name of the called method
      */
-    public Invocation( Context target, String name )
+    public Invocation( Context caller, String name )
     {
-        this( target, name, null );
+        this( caller, name, null );
     }
 
     /**
      * Creates a new instance.
+     * 
+     * @parem caller the JNDI {@link Context} that made this invocation
+     * @param name the name of the called method
+     * @param parameters the array of parameters passed to the called method
      */
-    public Invocation( Context target, String name, Object[] parameters )
+    public Invocation( Context caller, String name, Object[] parameters )
     {
-        if( target == null )
+        if( caller == null )
         {
-            throw new NullPointerException( "target" );
+            throw new NullPointerException( "caller" );
         }
         if( name == null )
         {
@@ -68,7 +72,7 @@
             parameters = new Object[ 0 ];
         }
         
-        this.target = target;
+        this.caller = caller;
         this.name = name;
         
         List paramList = new ArrayList();
@@ -81,15 +85,15 @@
     }
     
     /**
-     * Returns the target context of this invocation.
+     * Returns the JNDI {@link Context} which made this invocation.
      */
-    public Context getTarget()
+    public Context getCaller()
     {
-        return target;
+        return caller;
     }
     
     /**
-     * Returns the name of this invocation.
+     * Returns the name of the called method.
      */
     public String getName()
     {
@@ -97,7 +101,7 @@
     }
     
     /**
-     * Returns the list of parameters
+     * Returns the list of parameters parameters passed to the called method.
      */
     public List getParameters()
     {

Modified: directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/invocation/InvocationStack.java
URL: http://svn.apache.org/viewcvs/directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/invocation/InvocationStack.java?rev=193123&r1=193122&r2=193123&view=diff
==============================================================================
--- directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/invocation/InvocationStack.java (original)
+++ directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/invocation/InvocationStack.java Thu Jun 23 02:45:59 2005
@@ -1,3 +1,19 @@
+/*
+ *   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
 package org.apache.ldap.server.invocation;
 
 
@@ -6,8 +22,18 @@
 import java.util.List;
 import java.util.Map;
 
+import javax.naming.Context;
+
 
 /**
+ * Keeps track of recursive {@link Invocation}s.  This stack assumes an invocation
+ * occurs in the same thread since it is called first, so we manages stacks
+ * for each invocation in {@link ThreadLocal}-like manner.  You can just use
+ * {@link #getInstance()} to get current invocation stack.
+ * <p>
+ * Using {@link InvocationStack}, you can find out current effective JNDI
+ * {@link Context} or detect infinite recursions.
+ * 
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$, $Date$
  */
@@ -18,6 +44,9 @@
     // <tt>ThreadLocal.remove()</tt>, but we're still targetting 1.4.
     private static final Map stacks = new IdentityHashMap();
     
+    /**
+     * Returns the invocation stack of current thread.
+     */
     public static InvocationStack getInstance()
     {
         Thread currentThread = Thread.currentThread();
@@ -44,6 +73,10 @@
         stacks.put( currentThread, this );
     }
     
+    /**
+     * Returns an array of {@link Invocation}s.  0th element is the
+     * latest invocation.
+     */
     public Invocation[] toArray()
     {
         Invocation[] result = new Invocation[ stack.size() ];
@@ -51,16 +84,26 @@
         return result;
     }
     
+    /**
+     * Returns the latest invocation.
+     */
     public Invocation peek()
     {
         return ( Invocation ) this.stack.get( 0 );
     }
     
+    /**
+     * Pushes the specified invocation to this stack.
+     */
     public void push( Invocation invocation )
     {
         this.stack.add( 0, invocation );
     }
     
+    /**
+     * Pops the latest invocation from this stack.  This stack is released
+     * automatically if you pop all items from this stack.
+     */
     public Invocation pop()
     {
         Invocation invocation = ( Invocation ) this.stack.remove( 0 );

Modified: directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/operational/OperationalAttributeService.java
URL: http://svn.apache.org/viewcvs/directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/operational/OperationalAttributeService.java?rev=193123&r1=193122&r2=193123&view=diff
==============================================================================
--- directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/operational/OperationalAttributeService.java (original)
+++ directory/apacheds/branches/db_refactor/core/src/main/java/org/apache/ldap/server/operational/OperationalAttributeService.java Thu Jun 23 02:45:59 2005
@@ -242,7 +242,7 @@
     {
         NamingEnumeration e = nextInterceptor.list( base );
         LdapContext ctx =
-            ( LdapContext ) InvocationStack.getInstance().peek().getTarget();
+            ( LdapContext ) InvocationStack.getInstance().peek().getCaller();
         return new SearchResultFilteringEnumeration( e, new SearchControls(), ctx, SEARCH_FILTER );
     }
 
@@ -258,7 +258,7 @@
         }
 
         LdapContext ctx =
-            ( LdapContext ) InvocationStack.getInstance().peek().getTarget();
+            ( LdapContext ) InvocationStack.getInstance().peek().getCaller();
         return new SearchResultFilteringEnumeration( e, searchCtls, ctx, SEARCH_FILTER );
     }