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/11/30 07:54:44 UTC
svn commit: r349899 - in /directory/network:
branches/0.8/src/java/org/apache/mina/io/
branches/0.8/src/java/org/apache/mina/protocol/
branches/0.8/src/test/org/apache/mina/io/
branches/0.8/src/test/org/apache/mina/protocol/
branches/chain_refactor/src...
Author: trustin
Date: Tue Nov 29 22:54:01 2005
New Revision: 349899
URL: http://svn.apache.org/viewcvs?rev=349899&view=rev
Log:
* Added IoFilterChain.Entry interface
* Revised IoFilterChain interface
* Fixed DIRMINA-134: IoFilterChain.addBefore() and addAfter() behaves wrong.
Modified:
directory/network/branches/0.8/src/java/org/apache/mina/io/AbstractIoFilterChain.java
directory/network/branches/0.8/src/java/org/apache/mina/protocol/AbstractProtocolFilterChain.java
directory/network/branches/0.8/src/test/org/apache/mina/io/IoFilterChainTest.java
directory/network/branches/0.8/src/test/org/apache/mina/protocol/ProtocolFilterChainTest.java
directory/network/branches/chain_refactor/src/java/org/apache/mina/common/IoFilterChain.java
directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/AbstractIoFilterChain.java
directory/network/branches/chain_refactor/src/java/org/apache/mina/filter/SSLFilter.java
directory/network/branches/chain_refactor/src/test/org/apache/mina/common/IoFilterChainTest.java
directory/network/branches/chain_refactor/src/test/org/apache/mina/filter/ThreadPoolFilterRegressionTest.java
directory/network/branches/chain_refactor/src/test/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java
directory/network/trunk/src/java/org/apache/mina/handler/StreamIoHandler.java
Modified: directory/network/branches/0.8/src/java/org/apache/mina/io/AbstractIoFilterChain.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/0.8/src/java/org/apache/mina/io/AbstractIoFilterChain.java?rev=349899&r1=349898&r2=349899&view=diff
==============================================================================
--- directory/network/branches/0.8/src/java/org/apache/mina/io/AbstractIoFilterChain.java (original)
+++ directory/network/branches/0.8/src/java/org/apache/mina/io/AbstractIoFilterChain.java Tue Nov 29 22:54:01 2005
@@ -214,7 +214,7 @@
{
Entry baseEntry = checkOldName( baseName );
checkAddable( name );
- register( baseEntry, name, filter );
+ register( baseEntry.prevEntry, name, filter );
}
@@ -228,7 +228,7 @@
{
Entry baseEntry = checkOldName( baseName );
checkAddable( name );
- register( baseEntry.prevEntry, name, filter );
+ register( baseEntry, name, filter );
}
Modified: directory/network/branches/0.8/src/java/org/apache/mina/protocol/AbstractProtocolFilterChain.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/0.8/src/java/org/apache/mina/protocol/AbstractProtocolFilterChain.java?rev=349899&r1=349898&r2=349899&view=diff
==============================================================================
--- directory/network/branches/0.8/src/java/org/apache/mina/protocol/AbstractProtocolFilterChain.java (original)
+++ directory/network/branches/0.8/src/java/org/apache/mina/protocol/AbstractProtocolFilterChain.java Tue Nov 29 22:54:01 2005
@@ -206,7 +206,7 @@
{
Entry baseEntry = checkOldName( baseName );
checkAddable( name );
- register( baseEntry, name, filter );
+ register( baseEntry.prevEntry, name, filter );
}
@@ -220,7 +220,7 @@
{
Entry baseEntry = checkOldName( baseName );
checkAddable( name );
- register( baseEntry.prevEntry, name, filter );
+ register( baseEntry, name, filter );
}
Modified: directory/network/branches/0.8/src/test/org/apache/mina/io/IoFilterChainTest.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/0.8/src/test/org/apache/mina/io/IoFilterChainTest.java?rev=349899&r1=349898&r2=349899&view=diff
==============================================================================
--- directory/network/branches/0.8/src/test/org/apache/mina/io/IoFilterChainTest.java (original)
+++ directory/network/branches/0.8/src/test/org/apache/mina/io/IoFilterChainTest.java Tue Nov 29 22:54:01 2005
@@ -19,6 +19,7 @@
package org.apache.mina.io;
import java.net.SocketAddress;
+import java.util.Iterator;
import junit.framework.Assert;
import junit.framework.TestCase;
@@ -50,6 +51,57 @@
public void tearDown()
{
+ }
+
+ public void testAdd() throws Exception
+ {
+ chain.addFirst( "A", new TestFilter( 'A' ) );
+ chain.addLast( "B", new TestFilter( 'B' ) );
+ chain.addFirst( "C", new TestFilter( 'C' ) );
+ chain.addLast( "D", new TestFilter( 'D' ) );
+ chain.addBefore( "B", "E", new TestFilter( 'E' ) );
+ chain.addBefore( "C", "F", new TestFilter( 'F' ) );
+ chain.addAfter( "B", "G", new TestFilter( 'G' ) );
+ chain.addAfter( "D", "H", new TestFilter( 'H' ) );
+
+ String actual = "";
+ for( Iterator i = chain.getChildren().iterator(); i.hasNext(); )
+ {
+ TestFilter f = ( TestFilter ) i.next();
+ actual += f.id;
+ }
+
+ Assert.assertEquals( "FCAEBGDH", actual );
+ }
+
+ public void testRemove() throws Exception
+ {
+ chain.addLast( "A", new TestFilter( 'A' ) );
+ chain.addLast( "B", new TestFilter( 'B' ) );
+ chain.addLast( "C", new TestFilter( 'C' ) );
+ chain.addLast( "D", new TestFilter( 'D' ) );
+ chain.addLast( "E", new TestFilter( 'E' ) );
+
+ chain.remove( "A" );
+ chain.remove( "E" );
+ chain.remove( "C" );
+ chain.remove( "B" );
+ chain.remove( "D" );
+
+ Assert.assertEquals( 0, chain.getChildren().size() );
+ }
+
+ public void testClear() throws Exception
+ {
+ chain.addLast( "A", new TestFilter( 'A' ) );
+ chain.addLast( "B", new TestFilter( 'B' ) );
+ chain.addLast( "C", new TestFilter( 'C' ) );
+ chain.addLast( "D", new TestFilter( 'D' ) );
+ chain.addLast( "E", new TestFilter( 'E' ) );
+
+ chain.clear();
+
+ Assert.assertEquals( 0, chain.getChildren().size() );
}
public void testDefault()
Modified: directory/network/branches/0.8/src/test/org/apache/mina/protocol/ProtocolFilterChainTest.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/0.8/src/test/org/apache/mina/protocol/ProtocolFilterChainTest.java?rev=349899&r1=349898&r2=349899&view=diff
==============================================================================
--- directory/network/branches/0.8/src/test/org/apache/mina/protocol/ProtocolFilterChainTest.java (original)
+++ directory/network/branches/0.8/src/test/org/apache/mina/protocol/ProtocolFilterChainTest.java Tue Nov 29 22:54:01 2005
@@ -19,6 +19,7 @@
package org.apache.mina.protocol;
import java.net.SocketAddress;
+import java.util.Iterator;
import junit.framework.Assert;
import junit.framework.TestCase;
@@ -49,6 +50,57 @@
public void tearDown()
{
+ }
+
+ public void testAdd() throws Exception
+ {
+ chain.addFirst( "A", new TestFilter( 'A' ) );
+ chain.addLast( "B", new TestFilter( 'B' ) );
+ chain.addFirst( "C", new TestFilter( 'C' ) );
+ chain.addLast( "D", new TestFilter( 'D' ) );
+ chain.addBefore( "B", "E", new TestFilter( 'E' ) );
+ chain.addBefore( "C", "F", new TestFilter( 'F' ) );
+ chain.addAfter( "B", "G", new TestFilter( 'G' ) );
+ chain.addAfter( "D", "H", new TestFilter( 'H' ) );
+
+ String actual = "";
+ for( Iterator i = chain.getChildren().iterator(); i.hasNext(); )
+ {
+ TestFilter f = ( TestFilter ) i.next();
+ actual += f.id;
+ }
+
+ Assert.assertEquals( "FCAEBGDH", actual );
+ }
+
+ public void testRemove() throws Exception
+ {
+ chain.addLast( "A", new TestFilter( 'A' ) );
+ chain.addLast( "B", new TestFilter( 'B' ) );
+ chain.addLast( "C", new TestFilter( 'C' ) );
+ chain.addLast( "D", new TestFilter( 'D' ) );
+ chain.addLast( "E", new TestFilter( 'E' ) );
+
+ chain.remove( "A" );
+ chain.remove( "E" );
+ chain.remove( "C" );
+ chain.remove( "B" );
+ chain.remove( "D" );
+
+ Assert.assertEquals( 0, chain.getChildren().size() );
+ }
+
+ public void testClear() throws Exception
+ {
+ chain.addLast( "A", new TestFilter( 'A' ) );
+ chain.addLast( "B", new TestFilter( 'B' ) );
+ chain.addLast( "C", new TestFilter( 'C' ) );
+ chain.addLast( "D", new TestFilter( 'D' ) );
+ chain.addLast( "E", new TestFilter( 'E' ) );
+
+ chain.clear();
+
+ Assert.assertEquals( 0, chain.getChildren().size() );
}
public void testDefault()
Modified: directory/network/branches/chain_refactor/src/java/org/apache/mina/common/IoFilterChain.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/java/org/apache/mina/common/IoFilterChain.java?rev=349899&r1=349898&r2=349899&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/java/org/apache/mina/common/IoFilterChain.java (original)
+++ directory/network/branches/chain_refactor/src/java/org/apache/mina/common/IoFilterChain.java Tue Nov 29 22:54:01 2005
@@ -37,35 +37,24 @@
IoSession getSession();
/**
- * Returns the {@link IoFilter} with the specified <tt>name</tt> in this chain.
- * @return <tt>null</tt> if there's no such filter in this chain
+ * Returns the {@link Entry} with the specified <tt>name</tt> in this chain.
+ * @return <tt>null</tt> if there's no such name in this chain
*/
- IoFilter get( String name );
+ Entry get( String name );
/**
- * Returns the name of the specified {@link IoFilter} in this chain.
+ * Returns the {@link Entry} with the specified {@link IoFilter} in this chain.
* @return <tt>null</tt> if there's no such filter in this chain.
*/
- String getName( IoFilter filter );
+ Entry get( IoFilter filter );
/**
- * Returns the {@link NextFilter} of the {@link IoFilter} with the specified
- * <tt>name</tt> in this chain.
- */
- NextFilter getNextFilter( String name );
-
- /**
- * Returns the {@link NextFilter} of the specified <tt>filter</tt> in this chain.
- */
- NextFilter getNextFilter( IoFilter filter );
-
- /**
- * Returns the list of all filters this chain contains.
+ * Returns the list of all {@link Entry}s this chain contains.
*/
List getAll();
/**
- * Returns the reversed list of all filters this chain contains.
+ * Returns the reversed list of all {@link Entry}s this chain contains.
*/
List getAllReversed();
@@ -117,13 +106,40 @@
/**
* Removes the specifiec <tt>filter</tt> from this chain.
+ * @return the name of the removed {@link IoFilter}
* @throws Exception if {@link IoFilter#destroy(IoFilterChain, NextFilter)} thrown an exception.
*/
- void remove( IoFilter filter ) throws Exception;
+ String remove( IoFilter filter ) throws Exception;
/**
* Removes all filters added to this chain.
* @throws Exception if {@link IoFilter#destroy(IoFilterChain, NextFilter)} thrown an exception.
*/
void clear() throws Exception;
+
+ /**
+ * Represents a name-filter pair that an {@link IoFilterChain} contains.
+ *
+ * @author The Apache Directory Project (dev@directory.apache.org)
+ * @version $Rev$, $Date$
+ */
+ public interface Entry
+ {
+ /**
+ * Returns the name of the filter.
+ */
+ String getName();
+
+ /**
+ * Returns the filter.
+ */
+ IoFilter getFilter();
+
+ /**
+ * Returns the {@link NextFilter} of the filter.
+ *
+ * @throws IllegalStateException if the {@link NextFilter} is not available
+ */
+ NextFilter getNextFilter();
+ }
}
Modified: directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/AbstractIoFilterChain.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/AbstractIoFilterChain.java?rev=349899&r1=349898&r2=349899&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/AbstractIoFilterChain.java (original)
+++ directory/network/branches/chain_refactor/src/java/org/apache/mina/common/support/AbstractIoFilterChain.java Tue Nov 29 22:54:01 2005
@@ -50,24 +50,24 @@
*/
public abstract class AbstractIoFilterChain implements IoFilterChain
{
- private final IoSession parent;
+ private final IoSession session;
private final Map name2entry = new HashMap();
private final Map filter2entry = new IdentityHashMap();
- private final Entry head;
- private final Entry tail;
+ private final EntryImpl head;
+ private final EntryImpl tail;
- protected AbstractIoFilterChain( IoSession parent )
+ protected AbstractIoFilterChain( IoSession session )
{
- if( parent == null )
+ if( session == null )
{
- throw new NullPointerException( "parent" );
+ throw new NullPointerException( "session" );
}
- this.parent = parent;
- head = new Entry( null, null, "head", createHeadFilter() );
- tail = new Entry( head, null, "tail", createTailFilter() );
+ this.session = session;
+ head = new EntryImpl( null, null, "head", createHeadFilter() );
+ tail = new EntryImpl( head, null, "tail", createTailFilter() );
head.nextEntry = tail;
}
@@ -238,20 +238,20 @@
public IoSession getSession()
{
- return parent;
+ return session;
}
- public IoFilter get( String name )
+ public Entry get( String name )
{
Entry e = ( Entry ) name2entry.get( name );
if ( e == null )
{
return null;
}
- return e.filter;
+ return e;
}
- public String getName( IoFilter filter )
+ public Entry get( IoFilter filter )
{
Entry e = ( Entry ) filter2entry.get( filter );
if( e == null )
@@ -259,30 +259,9 @@
return null;
}
- return e.name;
+ return e;
}
- public NextFilter getNextFilter( String name )
- {
- Entry e = ( Entry ) name2entry.get( name );
- if ( e == null )
- {
- return null;
- }
- return e.nextFilter;
- }
-
- public NextFilter getNextFilter( IoFilter filter )
- {
- Entry e = ( Entry ) filter2entry.get( filter );
- if( e == null )
- {
- return null;
- }
-
- return e.nextFilter;
- }
-
public synchronized void addFirst( String name,
IoFilter filter ) throws Exception
{
@@ -301,49 +280,50 @@
String name,
IoFilter filter ) throws Exception
{
- Entry baseEntry = checkOldName( baseName );
+ EntryImpl baseEntry = checkOldName( baseName );
checkAddable( name );
- register( baseEntry, name, filter );
+ register( baseEntry.prevEntry, name, filter );
}
public synchronized void addBefore( IoFilter baseFilter,
String name,
IoFilter filter ) throws Exception
{
- Entry baseEntry = getEntry( baseFilter );
+ EntryImpl baseEntry = getEntry( baseFilter );
checkAddable( name );
- register( baseEntry, name, filter );
+ register( baseEntry.prevEntry, name, filter );
}
public synchronized void addAfter( String baseName,
String name,
IoFilter filter ) throws Exception
{
- Entry baseEntry = checkOldName( baseName );
+ EntryImpl baseEntry = checkOldName( baseName );
checkAddable( name );
- register( baseEntry.prevEntry, name, filter );
+ register( baseEntry, name, filter );
}
public synchronized void addAfter( IoFilter baseFilter,
String name,
IoFilter filter ) throws Exception
{
- Entry baseEntry = getEntry( baseFilter );
+ EntryImpl baseEntry = getEntry( baseFilter );
checkAddable( name );
- register( baseEntry.prevEntry, name, filter );
+ register( baseEntry, name, filter );
}
public synchronized IoFilter remove( String name ) throws Exception
{
- Entry entry = checkOldName( name );
+ EntryImpl entry = checkOldName( name );
deregister( entry );
- return entry.filter;
+ return entry.getFilter();
}
- public synchronized void remove( IoFilter filter ) throws Exception
+ public synchronized String remove( IoFilter filter ) throws Exception
{
- Entry entry = getEntry( filter );
+ EntryImpl entry = getEntry( filter );
deregister( entry );
+ return entry.name;
}
public synchronized void clear() throws Exception
@@ -355,11 +335,11 @@
}
}
- private void register( Entry prevEntry, String name, IoFilter filter ) throws Exception
+ private void register( EntryImpl prevEntry, String name, IoFilter filter ) throws Exception
{
- Entry newEntry = new Entry( prevEntry, prevEntry.nextEntry, name, filter );
+ EntryImpl newEntry = new EntryImpl( prevEntry, prevEntry.nextEntry, name, filter );
- filter.init( this, newEntry.nextFilter );
+ filter.init( this, newEntry.getNextFilter() );
prevEntry.nextEntry.prevEntry = newEntry;
prevEntry.nextEntry = newEntry;
@@ -367,23 +347,23 @@
filter2entry.put( filter, newEntry );
}
- private void deregister( Entry entry ) throws Exception
+ private void deregister( EntryImpl entry ) throws Exception
{
- Entry prevEntry = entry.prevEntry;
- Entry nextEntry = entry.nextEntry;
+ EntryImpl prevEntry = entry.prevEntry;
+ EntryImpl nextEntry = entry.nextEntry;
prevEntry.nextEntry = nextEntry;
nextEntry.prevEntry = prevEntry;
name2entry.remove( entry.name );
- IoFilter filter = entry.filter;
+ IoFilter filter = entry.getFilter();
filter2entry.remove( filter );
- filter.destroy( this, entry.nextFilter );
+ filter.destroy( this, entry.getNextFilter() );
}
- private Entry getEntry( IoFilter filter )
+ private EntryImpl getEntry( IoFilter filter )
{
- Entry entry = ( Entry ) filter2entry.get( filter );
+ EntryImpl entry = ( EntryImpl ) filter2entry.get( filter );
if( entry == null )
{
throw new IllegalArgumentException(
@@ -398,9 +378,9 @@
*
* @return An filter entry with the specified name.
*/
- private Entry checkOldName( String baseName )
+ private EntryImpl checkOldName( String baseName )
{
- Entry e = ( Entry ) name2entry.get( baseName );
+ EntryImpl e = ( EntryImpl ) name2entry.get( baseName );
if ( e == null )
{
throw new IllegalArgumentException( "Unknown filter name:" +
@@ -431,7 +411,7 @@
{
try
{
- entry.filter.sessionCreated( entry.nextFilter, session );
+ entry.getFilter().sessionCreated( entry.getNextFilter(), session );
}
catch( Throwable e )
{
@@ -450,7 +430,7 @@
{
try
{
- entry.filter.sessionOpened( entry.nextFilter, session );
+ entry.getFilter().sessionOpened( entry.getNextFilter(), session );
}
catch( Throwable e )
{
@@ -469,7 +449,7 @@
{
try
{
- entry.filter.sessionClosed( entry.nextFilter, session );
+ entry.getFilter().sessionClosed( entry.getNextFilter(), session );
}
catch( Throwable e )
@@ -490,7 +470,7 @@
{
try
{
- entry.filter.sessionIdle( entry.nextFilter, session, status );
+ entry.getFilter().sessionIdle( entry.getNextFilter(), session, status );
}
catch( Throwable e )
{
@@ -510,7 +490,7 @@
{
try
{
- entry.filter.messageReceived( entry.nextFilter, session, message );
+ entry.getFilter().messageReceived( entry.getNextFilter(), session, message );
}
catch( Throwable e )
{
@@ -530,7 +510,7 @@
{
try
{
- entry.filter.messageSent( entry.nextFilter, session, message );
+ entry.getFilter().messageSent( entry.getNextFilter(), session, message );
}
catch( Throwable e )
{
@@ -550,7 +530,7 @@
{
try
{
- entry.filter.exceptionCaught( entry.nextFilter, session, cause );
+ entry.getFilter().exceptionCaught( entry.getNextFilter(), session, cause );
}
catch( Throwable e )
{
@@ -572,7 +552,7 @@
{
try
{
- entry.filter.filterWrite( entry.nextFilter, session, writeRequest );
+ entry.getFilter().filterWrite( entry.getNextFilter(), session, writeRequest );
}
catch( Throwable e )
{
@@ -592,7 +572,7 @@
{
try
{
- entry.filter.filterClose( entry.nextFilter, session, closeFuture );
+ entry.getFilter().filterClose( entry.getNextFilter(), session, closeFuture );
}
catch( Throwable e )
{
@@ -603,10 +583,10 @@
public List getAll()
{
List list = new ArrayList();
- Entry e = head.nextEntry;
+ EntryImpl e = head.nextEntry;
while( e != tail )
{
- list.add( e.filter );
+ list.add( e );
e = e.nextEntry;
}
@@ -616,10 +596,10 @@
public List getAllReversed()
{
List list = new ArrayList();
- Entry e = tail.prevEntry;
+ EntryImpl e = tail.prevEntry;
while( e != head )
{
- list.add( e.filter );
+ list.add( e );
e = e.prevEntry;
}
return list;
@@ -641,11 +621,11 @@
protected abstract void doClose( IoSession session, CloseFuture closeFuture ) throws Exception;
- private class Entry
+ private class EntryImpl implements Entry
{
- private Entry prevEntry;
+ private EntryImpl prevEntry;
- private Entry nextEntry;
+ private EntryImpl nextEntry;
private final String name;
@@ -653,7 +633,7 @@
private final NextFilter nextFilter;
- private Entry( Entry prevEntry, Entry nextEntry,
+ private EntryImpl( EntryImpl prevEntry, EntryImpl nextEntry,
String name, IoFilter filter )
{
if( filter == null )
@@ -673,56 +653,56 @@
{
public void sessionCreated( IoSession session )
{
- Entry nextEntry = Entry.this.nextEntry;
+ Entry nextEntry = EntryImpl.this.nextEntry;
callNextSessionCreated( nextEntry, session );
}
public void sessionOpened( IoSession session )
{
- Entry nextEntry = Entry.this.nextEntry;
+ Entry nextEntry = EntryImpl.this.nextEntry;
callNextSessionOpened( nextEntry, session );
}
public void sessionClosed( IoSession session )
{
- Entry nextEntry = Entry.this.nextEntry;
+ Entry nextEntry = EntryImpl.this.nextEntry;
callNextSessionClosed( nextEntry, session );
}
public void sessionIdle( IoSession session, IdleStatus status )
{
- Entry nextEntry = Entry.this.nextEntry;
+ Entry nextEntry = EntryImpl.this.nextEntry;
callNextSessionIdle( nextEntry, session, status );
}
public void exceptionCaught( IoSession session,
Throwable cause )
{
- Entry nextEntry = Entry.this.nextEntry;
+ Entry nextEntry = EntryImpl.this.nextEntry;
callNextExceptionCaught( nextEntry, session, cause );
}
public void messageReceived( IoSession session, Object message )
{
- Entry nextEntry = Entry.this.nextEntry;
+ Entry nextEntry = EntryImpl.this.nextEntry;
callNextMessageReceived( nextEntry, session, message );
}
public void messageSent( IoSession session, Object message )
{
- Entry nextEntry = Entry.this.nextEntry;
+ Entry nextEntry = EntryImpl.this.nextEntry;
callNextMessageSent( nextEntry, session, message );
}
public void filterWrite( IoSession session, WriteRequest writeRequest )
{
- Entry nextEntry = Entry.this.prevEntry;
+ Entry nextEntry = EntryImpl.this.prevEntry;
callPreviousFilterWrite( nextEntry, session, writeRequest );
}
public void filterClose( IoSession session, CloseFuture closeFuture )
{
- Entry nextEntry = Entry.this.prevEntry;
+ Entry nextEntry = EntryImpl.this.prevEntry;
callPreviousFilterClose( nextEntry, session, closeFuture );
}
};
@@ -736,6 +716,11 @@
public IoFilter getFilter()
{
return filter;
+ }
+
+ public NextFilter getNextFilter()
+ {
+ return nextFilter;
}
}
}
Modified: directory/network/branches/chain_refactor/src/java/org/apache/mina/filter/SSLFilter.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/java/org/apache/mina/filter/SSLFilter.java?rev=349899&r1=349898&r2=349899&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/java/org/apache/mina/filter/SSLFilter.java (original)
+++ directory/network/branches/chain_refactor/src/java/org/apache/mina/filter/SSLFilter.java Tue Nov 29 22:54:01 2005
@@ -179,7 +179,7 @@
}
}
- createSSLSessionHandler( parent.getNextFilter( this ), session );
+ createSSLSessionHandler( parent.get( this ).getNextFilter(), session );
return true;
}
}
@@ -228,7 +228,7 @@
throw new IllegalArgumentException( "Not managed by this filter." );
}
- NextFilter nextFilter = parent.getNextFilter( this );
+ NextFilter nextFilter = parent.get( this ).getNextFilter();
return initiateClosure( nextFilter, session );
}
}
Modified: directory/network/branches/chain_refactor/src/test/org/apache/mina/common/IoFilterChainTest.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/test/org/apache/mina/common/IoFilterChainTest.java?rev=349899&r1=349898&r2=349899&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/test/org/apache/mina/common/IoFilterChainTest.java (original)
+++ directory/network/branches/chain_refactor/src/test/org/apache/mina/common/IoFilterChainTest.java Tue Nov 29 22:54:01 2005
@@ -19,11 +19,13 @@
package org.apache.mina.common;
import java.net.SocketAddress;
+import java.util.Iterator;
import junit.framework.Assert;
import junit.framework.TestCase;
import org.apache.mina.common.IoFilter.WriteRequest;
+import org.apache.mina.common.IoFilterChain.Entry;
import org.apache.mina.common.support.AbstractIoFilterChain;
import org.apache.mina.common.support.BaseIoSession;
@@ -50,6 +52,57 @@
{
}
+ public void testAdd() throws Exception
+ {
+ chain.addFirst( "A", new EventOrderTestFilter( 'A' ) );
+ chain.addLast( "B", new EventOrderTestFilter( 'A' ) );
+ chain.addFirst( "C", new EventOrderTestFilter( 'A' ) );
+ chain.addLast( "D", new EventOrderTestFilter( 'A' ) );
+ chain.addBefore( "B", "E", new EventOrderTestFilter( 'A' ) );
+ chain.addBefore( "C", "F", new EventOrderTestFilter( 'A' ) );
+ chain.addAfter( "B", "G", new EventOrderTestFilter( 'A' ) );
+ chain.addAfter( "D", "H", new EventOrderTestFilter( 'A' ) );
+
+ String actual = "";
+ for( Iterator i = chain.getAll().iterator(); i.hasNext(); )
+ {
+ Entry e = ( Entry ) i.next();
+ actual += e.getName();
+ }
+
+ Assert.assertEquals( "FCAEBGDH", actual );
+ }
+
+ public void testRemove() throws Exception
+ {
+ chain.addLast( "A", new EventOrderTestFilter( 'A' ) );
+ chain.addLast( "B", new EventOrderTestFilter( 'A' ) );
+ chain.addLast( "C", new EventOrderTestFilter( 'A' ) );
+ chain.addLast( "D", new EventOrderTestFilter( 'A' ) );
+ chain.addLast( "E", new EventOrderTestFilter( 'A' ) );
+
+ chain.remove( "A" );
+ chain.remove( "E" );
+ chain.remove( "C" );
+ chain.remove( "B" );
+ chain.remove( "D" );
+
+ Assert.assertEquals( 0, chain.getAll().size() );
+ }
+
+ public void testClear() throws Exception
+ {
+ chain.addLast( "A", new EventOrderTestFilter( 'A' ) );
+ chain.addLast( "B", new EventOrderTestFilter( 'A' ) );
+ chain.addLast( "C", new EventOrderTestFilter( 'A' ) );
+ chain.addLast( "D", new EventOrderTestFilter( 'A' ) );
+ chain.addLast( "E", new EventOrderTestFilter( 'A' ) );
+
+ chain.clear();
+
+ Assert.assertEquals( 0, chain.getAll().size() );
+ }
+
public void testDefault()
{
run( "HS0 HSO HMR HMS HSI HEC HSC" );
@@ -205,6 +258,11 @@
{
return false;
}
+
+ public IoSessionManager getManager()
+ {
+ return null;
+ }
}
private class EventOrderTestFilter implements IoFilter
@@ -289,7 +347,47 @@
{
protected IoFilterChainImpl()
{
- super( new Object() );
+ super( new BaseIoSession()
+ {
+ protected void updateTrafficMask()
+ {
+ }
+
+ public IoSessionManager getManager()
+ {
+ return null;
+ }
+
+ public IoHandler getHandler()
+ {
+ return null;
+ }
+
+ public IoFilterChain getFilterChain()
+ {
+ return null;
+ }
+
+ public TransportType getTransportType()
+ {
+ return null;
+ }
+
+ public SocketAddress getRemoteAddress()
+ {
+ return null;
+ }
+
+ public SocketAddress getLocalAddress()
+ {
+ return null;
+ }
+
+ public int getScheduledWriteRequests()
+ {
+ return 0;
+ }
+ } );
}
protected void doWrite( IoSession session, WriteRequest writeRequest )
Modified: directory/network/branches/chain_refactor/src/test/org/apache/mina/filter/ThreadPoolFilterRegressionTest.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/test/org/apache/mina/filter/ThreadPoolFilterRegressionTest.java?rev=349899&r1=349898&r2=349899&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/test/org/apache/mina/filter/ThreadPoolFilterRegressionTest.java (original)
+++ directory/network/branches/chain_refactor/src/test/org/apache/mina/filter/ThreadPoolFilterRegressionTest.java Tue Nov 29 22:54:01 2005
@@ -10,6 +10,7 @@
import org.apache.mina.common.IoFilterChain;
import org.apache.mina.common.IoHandler;
import org.apache.mina.common.IoSession;
+import org.apache.mina.common.IoSessionManager;
import org.apache.mina.common.TransportType;
import org.apache.mina.common.WriteFuture;
import org.apache.mina.common.IoFilter.NextFilter;
@@ -19,7 +20,7 @@
public class ThreadPoolFilterRegressionTest extends TestCase
{
- private static final IoFilterChain FILTER_PARENT = new AbstractIoFilterChain( new Object() )
+ private static final IoFilterChain FILTER_PARENT = new AbstractIoFilterChain( new DummySession() )
{
protected void doWrite( IoSession session, WriteRequest writeRequest )
{
@@ -194,6 +195,11 @@
{
return false;
}
+
+ public IoSessionManager getManager()
+ {
+ return null;
+ }
}
private static class EventOrderChecker implements NextFilter
@@ -302,6 +308,11 @@
public boolean isClosing()
{
return false;
+ }
+
+ public IoSessionManager getManager()
+ {
+ return null;
}
}
Modified: directory/network/branches/chain_refactor/src/test/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java
URL: http://svn.apache.org/viewcvs/directory/network/branches/chain_refactor/src/test/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java?rev=349899&r1=349898&r2=349899&view=diff
==============================================================================
--- directory/network/branches/chain_refactor/src/test/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java (original)
+++ directory/network/branches/chain_refactor/src/test/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java Tue Nov 29 22:54:01 2005
@@ -30,6 +30,7 @@
import org.apache.mina.common.IoFilterChain;
import org.apache.mina.common.IoHandler;
import org.apache.mina.common.IoSession;
+import org.apache.mina.common.IoSessionManager;
import org.apache.mina.common.TransportType;
import org.apache.mina.common.WriteFuture;
import org.apache.mina.common.support.BaseIoSession;
@@ -234,6 +235,11 @@
public boolean isClosing()
{
return false;
+ }
+
+ public IoSessionManager getManager()
+ {
+ return null;
}
}
}
Modified: directory/network/trunk/src/java/org/apache/mina/handler/StreamIoHandler.java
URL: http://svn.apache.org/viewcvs/directory/network/trunk/src/java/org/apache/mina/handler/StreamIoHandler.java?rev=349899&r1=349898&r2=349899&view=diff
==============================================================================
--- directory/network/trunk/src/java/org/apache/mina/handler/StreamIoHandler.java (original)
+++ directory/network/trunk/src/java/org/apache/mina/handler/StreamIoHandler.java Tue Nov 29 22:54:01 2005
@@ -1,4 +1,4 @@
-/*
+ /*
* @(#) $Id$
*
* Copyright 2004 The Apache Software Foundation