package org.openamq.pool; import org.apache.mina.common.ThreadModel; import org.apache.mina.common.IoFilterChain; import org.apache.mina.common.ReferenceCountingIoFilterWrapper; public class ReadWriteThreadModel implements ThreadModel { public void buildFilterChain(IoFilterChain chain) throws Exception { ReferenceCountingExecutorService executor = ReferenceCountingExecutorService.getInstance(); PoolingFilter asyncRead = new PoolingFilter(executor, PoolingFilter.READ_EVENTS, "AsynchronousReadFilter"); PoolingFilter asyncWrite = new PoolingFilter(executor, PoolingFilter.WRITE_EVENTS, "AsynchronousWriteFilter"); chain.addFirst("AsynchronousReadFilter", new ReferenceCountingIoFilterWrapper(asyncRead)); chain.addLast("AsynchronousWriteFilter", new ReferenceCountingIoFilterWrapper(asyncWrite)); } }