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 2006/01/22 13:17:01 UTC
svn commit: r371275 -
/directory/sandbox/trustin/mina-spi/core/src/main/java/org/apache/mina/common/IoService.java
Author: trustin
Date: Sun Jan 22 04:16:54 2006
New Revision: 371275
URL: http://svn.apache.org/viewcvs?rev=371275&view=rev
Log:
Added threadPoolSize parameter
Modified:
directory/sandbox/trustin/mina-spi/core/src/main/java/org/apache/mina/common/IoService.java
Modified: directory/sandbox/trustin/mina-spi/core/src/main/java/org/apache/mina/common/IoService.java
URL: http://svn.apache.org/viewcvs/directory/sandbox/trustin/mina-spi/core/src/main/java/org/apache/mina/common/IoService.java?rev=371275&r1=371274&r2=371275&view=diff
==============================================================================
--- directory/sandbox/trustin/mina-spi/core/src/main/java/org/apache/mina/common/IoService.java (original)
+++ directory/sandbox/trustin/mina-spi/core/src/main/java/org/apache/mina/common/IoService.java Sun Jan 22 04:16:54 2006
@@ -45,8 +45,6 @@
private static final Map providers = new HashMap();
private static ExceptionMonitor exceptionMonitor = new DefaultExceptionMonitor();
- private static IoFilter threadPoolFilter = new ThreadPoolFilter();
-
static
{
registerServiceProviders();
@@ -468,6 +466,7 @@
private static IoFilterChainBuilder createFilterChainBuilder( IoAddress address, IoFilterChainBuilder originalBuilder )
{
final String THREAD_MODEL = "threadModel";
+ final String THREAD_POOL_SIZE = "threadPoolSize";
Properties props = address.getProperties();
if( props.containsKey( THREAD_MODEL ) )
@@ -478,34 +477,33 @@
{
return originalBuilder;
}
- else if( "normal".equalsIgnoreCase( threadModel ) ||
- "default".equalsIgnoreCase( threadModel ) )
- {
- return new IoFilterChainBuilderWrapper( originalBuilder );
- }
- else
+ else if( !"normal".equalsIgnoreCase( threadModel ) &&
+ !"default".equalsIgnoreCase( threadModel ) )
{
throw new IllegalArgumentException( "Unknown thread model: " + threadModel );
}
}
- else
- {
- return new IoFilterChainBuilderWrapper( originalBuilder );
- }
+
+ int poolSize = Integer.parseInt( props.getProperty( THREAD_POOL_SIZE, "16" ) );
+ return new ThreadPooledFilterChainBuilder( originalBuilder, poolSize );
}
- private static class IoFilterChainBuilderWrapper implements IoFilterChainBuilder
+ private static class ThreadPooledFilterChainBuilder implements IoFilterChainBuilder
{
private final IoFilterChainBuilder originalBuilder;
+ private final ThreadPoolFilter threadPoolFilter;
- public IoFilterChainBuilderWrapper( IoFilterChainBuilder originalBuilder )
+ public ThreadPooledFilterChainBuilder( IoFilterChainBuilder originalBuilder, int poolSize )
{
this.originalBuilder = originalBuilder;
+ threadPoolFilter = new ThreadPoolFilter();
+ threadPoolFilter.setMaximumPoolSize( poolSize );
}
public void buildFilterChain( IoFilterChain chain ) throws Exception
{
originalBuilder.buildFilterChain( chain );
+
chain.addFirst( "builtInThreadPool", threadPoolFilter );
}
}