directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From trus...@apache.org
Subject svn commit: r158019 - in directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi: FailFastPipeline.java Interceptor.java InterceptorChain.java InterceptorPipeline.java JndiProvider.java OnErrorPipeline.java
Date Fri, 18 Mar 2005 04:04:40 GMT
Author: trustin
Date: Thu Mar 17 20:04:38 2005
New Revision: 158019

URL: http://svn.apache.org/viewcvs?view=rev&rev=158019
Log:
* Revamped Interceptor interface.
* Now implementing InterceptorChain...

Added:
    directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/InterceptorChain.java
  (with props)
Removed:
    directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/FailFastPipeline.java
    directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/InterceptorPipeline.java
    directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/OnErrorPipeline.java
Modified:
    directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/Interceptor.java
  (contents, props changed)
    directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/JndiProvider.java

Modified: directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/Interceptor.java
URL: http://svn.apache.org/viewcvs/directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/Interceptor.java?view=diff&r1=158018&r2=158019
==============================================================================
--- directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/Interceptor.java
(original)
+++ directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/Interceptor.java
Thu Mar 17 20:04:38 2005
@@ -16,34 +16,44 @@
  */
 package org.apache.ldap.server.jndi;
 
+import java.util.Properties;
 
 import javax.naming.NamingException;
 
-
 /**
- * The Interceptor is a component through which invocations pass thru.  In 
- * most cases the invocations pass thru a series of Interceptor objects 
- * before the target object is invoked.
- * 
- * Got this idea from a class written by Peter Donald who originally wrote it
- * for XInvoke in the Spice Project at Codehaus.
- * 
- * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
- * @version $Rev$
+ * Processes or filters any directory operations.  You can intercept the
+ * {@link Invocation}s and perform 'before', 'after', 'around' any any other
+ * filtering operations.
+ *
+ * @author The Apache Directory Project (dev@directory.apache.org)
+ * @author Trustin Lee (trustin@apache.org)
+ * @version $Rev$, $Date$
  */
 public interface Interceptor
 {
-    /**
-     * Process a particular invocation.  The method must try to catch and
-     * rethrow exceptions as EveInterceptorExceptions and any other exceptions
-     * will be caught and placed into the invocation via
-     * {@link Invocation#setThrowable} or {@link Invocation#addFailure(Throwable)}.
-     *
-     * <p>Note: most Interceptors pass control to the next Interceptor in the
-     * series.</p>
+	/**
+	 * Intializes this interceptor.  This is invoked by directory service
+	 * provider when this intercepter is loaded into invocation chain.
+	 * 
+	 * @param config the configuration properties for this interceptor
+	 * @throws NamingException if failed to initialize this interceptor
+	 */
+	void init( Properties config ) throws NamingException;
+
+	/**
+	 * Deinitialized this interceptor.  This is invoked by directory service
+	 * provider when this intercepter is unloaded from invocation chain.
+	 */
+	void destroy();
+
+	/**
+     * Process a particular invocation.  You can pass control to
+     * <code>nextInterceptor</code> by invoking {@link #invoke(Interceptor, Invocation)}.

      *
+     * @param nextInterceptor the next interceptor in the interceptor chain
      * @param invocation the invocation to process
      * @throws NamingException on failures while handling the invokation
      */
-    void invoke( Invocation invocation ) throws NamingException;
+    void invoke( Interceptor nextInterceptor, Invocation invocation )
+	        throws NamingException;
 }

Propchange: directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/Interceptor.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Thu Mar 17 20:04:38 2005
@@ -1 +1 @@
-Rev
+HeadURL Id LastChangedBy LastChangedDate LastChangedRevision

Added: directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/InterceptorChain.java
URL: http://svn.apache.org/viewcvs/directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/InterceptorChain.java?view=auto&rev=158019
==============================================================================
--- directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/InterceptorChain.java
(added)
+++ directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/InterceptorChain.java
Thu Mar 17 20:04:38 2005
@@ -0,0 +1,40 @@
+package org.apache.ldap.server.jndi;
+
+/**
+ * Manages {@link Interceptor} stack.  The first {@link Interceptor} is
+ * invoked and then invocation chain starts.
+ * 
+ * TODO imeplement me.
+ * 
+ * @author The Apache Directory Project (dev@directory.apache.org)
+ * @author Trustin Lee (trustin@apache.org)
+ * @version $Rev$, $Date$
+ */
+public class InterceptorChain
+{
+	
+	public Interceptor getInterceptor( String name )
+	{
+		
+	}
+
+	public void addFirst( String name, Interceptor interceptor )
+	{
+		
+	}
+	
+	public void addLast( String name, Interceptor interceptor )
+	{
+		
+	}
+	
+	public void addBefore( Interceptor other, String name, Interceptor interceptor )
+	{
+		
+	}
+	
+	public void addAfter( Interceptor other, String name, Interceptor interceptor )
+	{
+		
+	}
+}

Propchange: directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/InterceptorChain.java
------------------------------------------------------------------------------
    svn:keywords = HeadURL Id LastChangedBy LastChangedDate LastChangedRevision

Modified: directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/JndiProvider.java
URL: http://svn.apache.org/viewcvs/directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/JndiProvider.java?view=diff&r1=158018&r2=158019
==============================================================================
--- directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/JndiProvider.java
(original)
+++ directory/apacheds/branches/interceptor_revamp/core/src/main/java/org/apache/ldap/server/jndi/JndiProvider.java
Thu Mar 17 20:04:38 2005
@@ -44,12 +44,8 @@
     /** Singleton instance of this class */
     private static JndiProvider s_singleton = null;
     
-    /** Interceptor of interceptors in post-invocation pipeline */
-    private InterceptorPipeline after = new FailFastPipeline();
-    /** Interceptor of interceptors in pre-invocation pipeline */
-    private InterceptorPipeline before = new FailFastPipeline();
-    /** Interceptor of interceptors in post-invocation pipeline failure */
-    private InterceptorPipeline afterFailure = new OnErrorPipeline();
+    /** The interceptor chain for this provider */
+    private final InterceptorChain interceptors = new InterceptorChain();
     /** RootNexus as it was given to us by the ServiceManager */
     private RootNexus nexus = null;
     /** PartitionNexus proxy wrapping nexus to inject services */
@@ -146,9 +142,7 @@
         this.nexus.close();
         this.nexus = null;
         this.proxy = null;
-        this.before = null;
-        this.after = null;
-        this.afterFailure = null;
+        this.interceptors.clear();
         this.isShutdown = true;
         s_singleton = null;
     }



Mime
View raw message