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/10/26 06:51:14 UTC

svn commit: r328557 - in /directory/network/trunk/src: java/org/apache/mina/common/ java/org/apache/mina/common/support/ java/org/apache/mina/filter/ test/org/apache/mina/common/ test/org/apache/mina/filter/

Author: trustin
Date: Tue Oct 25 21:51:04 2005
New Revision: 328557

URL: http://svn.apache.org/viewcvs?rev=328557&view=rev
Log:
Modified the signature of IoFilter.filter(Added|Removed) method to make SSLFilter initiate handshake as soon as the filter is added.

Modified:
    directory/network/trunk/src/java/org/apache/mina/common/IoFilter.java
    directory/network/trunk/src/java/org/apache/mina/common/IoFilterAdapter.java
    directory/network/trunk/src/java/org/apache/mina/common/support/AbstractIoFilterChain.java
    directory/network/trunk/src/java/org/apache/mina/common/support/IoSessionManagerFilterChain.java
    directory/network/trunk/src/java/org/apache/mina/filter/LoggingFilter.java
    directory/network/trunk/src/java/org/apache/mina/filter/SSLFilter.java
    directory/network/trunk/src/java/org/apache/mina/filter/ThreadPoolFilter.java
    directory/network/trunk/src/test/org/apache/mina/common/IoFilterChainTest.java
    directory/network/trunk/src/test/org/apache/mina/filter/ThreadPoolFilterRegressionTest.java

Modified: directory/network/trunk/src/java/org/apache/mina/common/IoFilter.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/common/IoFilter.java?rev=328557&r1=328556&r2=328557&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/common/IoFilter.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/common/IoFilter.java Tue Oct 25 21:51:04 2005
@@ -49,7 +49,7 @@
      * @param parent the parent {@link IoSessionManager} or {@link IoSession}
      *               that added this filter to itself.
      */
-    void filterAdded( Object parent ) throws Exception;
+    void filterAdded( NextFilter nextFilter, Object parent ) throws Exception;
     
     /**
      * Invoked when this filter is removed from the specified <tt>parent</tt>
@@ -57,7 +57,7 @@
      * @param parent the parent {@link IoSessionManager} or {@link IoSession}
      *               that removed this filter from itself.
      */
-    void filterRemoved( Object parent ) throws Exception;
+    void filterRemoved( NextFilter nextFilter, Object parent ) throws Exception;
     
     /**
      * Filters {@link IoHandler#sessionOpened(IoSession)} event.

Modified: directory/network/trunk/src/java/org/apache/mina/common/IoFilterAdapter.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/common/IoFilterAdapter.java?rev=328557&r1=328556&r2=328557&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/common/IoFilterAdapter.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/common/IoFilterAdapter.java Tue Oct 25 21:51:04 2005
@@ -28,11 +28,11 @@
  */
 public class IoFilterAdapter implements IoFilter
 {
-    public void filterAdded( Object parent )
+    public void filterAdded( NextFilter nextFilter, Object parent ) throws Exception
     {
     }
     
-    public void filterRemoved( Object parent )
+    public void filterRemoved( NextFilter nextFilter, Object parent ) throws Exception
     {
     }
 

Modified: directory/network/trunk/src/java/org/apache/mina/common/support/AbstractIoFilterChain.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/common/support/AbstractIoFilterChain.java?rev=328557&r1=328556&r2=328557&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/common/support/AbstractIoFilterChain.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/common/support/AbstractIoFilterChain.java Tue Oct 25 21:51:04 2005
@@ -84,11 +84,11 @@
     {
         return new IoFilter()
         {
-            public void filterAdded( Object parent )
+            public void filterAdded( NextFilter nextFilter, Object parent )
             {
             }
             
-            public void filterRemoved( Object parent )
+            public void filterRemoved( NextFilter nextFilter, Object parent )
             {
             }
 
@@ -156,11 +156,11 @@
     {
         return new IoFilter()
         {
-            public void filterAdded( Object parent )
+            public void filterAdded( NextFilter nextFilter, Object parent )
             {
             }
             
-            public void filterRemoved( Object parent )
+            public void filterRemoved( NextFilter nextFilter, Object parent )
             {
             }
            
@@ -242,7 +242,7 @@
     
     /**
      * Adds the specified interceptor with the specified name at the beginning of this chain.
-     * @throws Exception if {@link IoFilter#filterAdded(Object)} thrown an exception.
+     * @throws Exception if {@link IoFilter#filterAdded(NextFilter, Object)} thrown an exception.
      */
     public synchronized void addFirst( String name,
                                        IoFilter filter ) throws Exception
@@ -254,7 +254,7 @@
 
     /**
      * Adds the specified interceptor with the specified name at the end of this chain.
-     * @throws Exception if {@link IoFilter#filterAdded(Object)} thrown an exception.
+     * @throws Exception if {@link IoFilter#filterAdded(NextFilter, Object)} thrown an exception.
      */
     public synchronized void addLast( String name,
                                       IoFilter filter ) throws Exception
@@ -267,7 +267,7 @@
     /**
      * Adds the specified interceptor with the specified name just before the interceptor whose name is
      * <code>baseName</code> in this chain.
-     * @throws Exception if {@link IoFilter#filterAdded(Object)} thrown an exception.
+     * @throws Exception if {@link IoFilter#filterAdded(NextFilter, Object)} thrown an exception.
      */
     public synchronized void addBefore( String baseName,
                                         String name,
@@ -282,7 +282,7 @@
     /**
      * Adds the specified interceptor with the specified name just after the interceptor whose name is
      * <code>baseName</code> in this chain.
-     * @throws Exception if {@link IoFilter#filterAdded(Object)} thrown an exception.
+     * @throws Exception if {@link IoFilter#filterAdded(NextFilter, Object)} thrown an exception.
      */
     public synchronized void addAfter( String baseName,
                                        String name,
@@ -296,7 +296,7 @@
 
     /**
      * Removes the interceptor with the specified name from this chain.
-     * @throws Exception if {@link IoFilter#filterRemoved(Object)} thrown an exception.
+     * @throws Exception if {@link IoFilter#filterRemoved(NextFilter, Object)} thrown an exception.
      */
     public synchronized IoFilter remove( String name ) throws Exception
     {
@@ -311,7 +311,7 @@
         IoFilter filter = entry.filter;
         filter2entry.remove( filter );
         
-        filter.filterRemoved( parent );
+        filter.filterRemoved( entry.nextFilter, parent );
 
         return filter;
     }
@@ -319,7 +319,7 @@
 
     /**
      * Removes all interceptors added to this chain.
-     * @throws Exception if {@link IoFilter#filterRemoved(Object)} thrown an exception.
+     * @throws Exception if {@link IoFilter#filterRemoved(NextFilter, Object)} thrown an exception.
      */
     public synchronized void clear() throws Exception
     {
@@ -332,9 +332,10 @@
 
     private void register( Entry prevEntry, String name, IoFilter filter ) throws Exception
     {
-        filter.filterAdded( parent );
-        
         Entry newEntry = new Entry( prevEntry, prevEntry.nextEntry, name, filter );
+
+        filter.filterAdded( newEntry.nextFilter, parent );
+        
         prevEntry.nextEntry.prevEntry = newEntry;
         prevEntry.nextEntry = newEntry;
         name2entry.put( name, newEntry );

Modified: directory/network/trunk/src/java/org/apache/mina/common/support/IoSessionManagerFilterChain.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/common/support/IoSessionManagerFilterChain.java?rev=328557&r1=328556&r2=328557&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/common/support/IoSessionManagerFilterChain.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/common/support/IoSessionManagerFilterChain.java Tue Oct 25 21:51:04 2005
@@ -25,7 +25,6 @@
 import org.apache.mina.common.IoSession;
 import org.apache.mina.common.IoSessionManager;
 
-
 /**
  * An {@link IoFilterChain} that forwards all events
  * except <tt>filterWrite</tt> to the {@link IoSessionFilterChain}
@@ -52,11 +51,11 @@
     {
         return new IoFilter()
         {
-            public void filterAdded( Object parent )
+            public void filterAdded( NextFilter nextFilter, Object parent )
             {
             }
             
-            public void filterRemoved( Object parent )
+            public void filterRemoved( NextFilter nextFilter, Object parent )
             {
             }
 

Modified: directory/network/trunk/src/java/org/apache/mina/filter/LoggingFilter.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/filter/LoggingFilter.java?rev=328557&r1=328556&r2=328557&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/filter/LoggingFilter.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/filter/LoggingFilter.java Tue Oct 25 21:51:04 2005
@@ -108,11 +108,11 @@
         nextFilter.filterClose( session, closeFuture );
     }
 
-    public void filterAdded( Object parent ) throws Exception
+    public void filterAdded( NextFilter nextFilter, Object parent ) throws Exception
     {
     }
 
-    public void filterRemoved( Object parent ) throws Exception
+    public void filterRemoved( NextFilter nextFilter, Object parent ) throws Exception
     {
     }
 }

Modified: directory/network/trunk/src/java/org/apache/mina/filter/SSLFilter.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/filter/SSLFilter.java?rev=328557&r1=328556&r2=328557&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/filter/SSLFilter.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/filter/SSLFilter.java Tue Oct 25 21:51:04 2005
@@ -222,6 +222,14 @@
     {
         this.enabledProtocols = protocols;
     }
+    
+    public void filterAdded( NextFilter nextFilter, Object parent ) throws SSLException
+    {
+        if( parent instanceof IoSession )
+        {
+            createSSLSessionHandler( nextFilter, ( IoSession ) parent );
+        }
+    }
 
     // IoFilter impl.
 

Modified: directory/network/trunk/src/java/org/apache/mina/filter/ThreadPoolFilter.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/filter/ThreadPoolFilter.java?rev=328557&r1=328556&r2=328557&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/filter/ThreadPoolFilter.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/filter/ThreadPoolFilter.java Tue Oct 25 21:51:04 2005
@@ -649,7 +649,7 @@
         nextFilter.filterClose( session, closeFuture );
     }
 
-    public synchronized void filterAdded( Object parent )
+    public synchronized void filterAdded( NextFilter nextFilter, Object parent )
     {
         if( parents.size() > 0 )
         {
@@ -664,7 +664,7 @@
         leader.lead();
     }
 
-    public synchronized void filterRemoved( Object parent )
+    public synchronized void filterRemoved( NextFilter nextFilter, Object parent )
     {
         parents.remove( parent );
         if( parents.size() > 0 )

Modified: directory/network/trunk/src/test/org/apache/mina/common/IoFilterChainTest.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/test/org/apache/mina/common/IoFilterChainTest.java?rev=328557&r1=328556&r2=328557&view=diff
==============================================================================
--- directory/network/trunk/src/test/org/apache/mina/common/IoFilterChainTest.java (original)
+++ directory/network/trunk/src/test/org/apache/mina/common/IoFilterChainTest.java Tue Oct 25 21:51:04 2005
@@ -232,23 +232,23 @@
             nextFilter.filterClose( session, closeFuture );
         }
 
-        public void filterAdded( Object parent ) throws Exception
+        public void filterAdded( NextFilter nextFilter, Object parent ) throws Exception
         {
         }
 
-        public void filterRemoved( Object parent ) throws Exception
+        public void filterRemoved( NextFilter nextFilter, Object parent ) throws Exception
         {
         }
     }
 
     private class AddRemoveTestFilter extends IoFilterAdapter
     {
-        public void filterAdded( Object parent )
+        public void filterAdded( NextFilter nextFilter, Object parent )
         {
             result += "ADDED";
         }
         
-        public void filterRemoved( Object parent )
+        public void filterRemoved( NextFilter nextFilter, Object parent )
         {
             result += "REMOVED";
         }

Modified: directory/network/trunk/src/test/org/apache/mina/filter/ThreadPoolFilterRegressionTest.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/test/org/apache/mina/filter/ThreadPoolFilterRegressionTest.java?rev=328557&r1=328556&r2=328557&view=diff
==============================================================================
--- directory/network/trunk/src/test/org/apache/mina/filter/ThreadPoolFilterRegressionTest.java (original)
+++ directory/network/trunk/src/test/org/apache/mina/filter/ThreadPoolFilterRegressionTest.java Tue Oct 25 21:51:04 2005
@@ -29,12 +29,12 @@
     public void setUp()
     {
         filter = new ThreadPoolFilter();
-        filter.filterAdded( FILTER_PARENT );
+        filter.filterAdded( null, FILTER_PARENT );
     }
     
     public void tearDown()
     {
-        filter.filterRemoved( FILTER_PARENT );
+        filter.filterRemoved( null, FILTER_PARENT );
         Assert.assertEquals( 0, filter.getPoolSize() );
         filter = null;
     }