You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2006/09/13 06:15:21 UTC
svn commit: r442829 - in /directory/trunks/apacheds:
protocol-changepw/src/main/java/org/apache/directory/server/changepw/
protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/kdc/
protocol-ntp/src/main/java/org/apache/directory/server/...
Author: akarasulu
Date: Tue Sep 12 21:15:20 2006
New Revision: 442829
URL: http://svn.apache.org/viewvc?view=rev&rev=442829
Log:
taking advice posted by trustin for DIRSERVER-740
Modified:
directory/trunks/apacheds/protocol-changepw/src/main/java/org/apache/directory/server/changepw/ChangePasswordServer.java
directory/trunks/apacheds/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/kdc/KerberosServer.java
directory/trunks/apacheds/protocol-ntp/src/main/java/org/apache/directory/server/ntp/NtpServer.java
directory/trunks/apacheds/server-jndi/src/main/java/org/apache/directory/server/jndi/ServerContextFactory.java
Modified: directory/trunks/apacheds/protocol-changepw/src/main/java/org/apache/directory/server/changepw/ChangePasswordServer.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/protocol-changepw/src/main/java/org/apache/directory/server/changepw/ChangePasswordServer.java?view=diff&rev=442829&r1=442828&r2=442829
==============================================================================
--- directory/trunks/apacheds/protocol-changepw/src/main/java/org/apache/directory/server/changepw/ChangePasswordServer.java (original)
+++ directory/trunks/apacheds/protocol-changepw/src/main/java/org/apache/directory/server/changepw/ChangePasswordServer.java Tue Sep 12 21:15:20 2006
@@ -29,6 +29,7 @@
import org.apache.directory.server.kerberos.shared.store.PrincipalStore;
import org.apache.mina.common.IoAcceptor;
import org.apache.mina.common.IoHandler;
+import org.apache.mina.common.IoServiceConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -51,7 +52,8 @@
private IoHandler handler;
- public ChangePasswordServer(ChangePasswordConfiguration config, IoAcceptor acceptor, PrincipalStore store)
+ public ChangePasswordServer(ChangePasswordConfiguration config, IoAcceptor acceptor, IoServiceConfig serviceConfig,
+ PrincipalStore store)
{
this.config = config;
this.acceptor = acceptor;
@@ -64,7 +66,7 @@
{
handler = new ChangePasswordProtocolHandler( config, this.store );
- acceptor.bind( new InetSocketAddress( port ), handler );
+ acceptor.bind( new InetSocketAddress( port ), handler, serviceConfig );
log.debug( "{} listening on port {}", name, new Integer( port ) );
}
Modified: directory/trunks/apacheds/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/kdc/KerberosServer.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/kdc/KerberosServer.java?view=diff&rev=442829&r1=442828&r2=442829
==============================================================================
--- directory/trunks/apacheds/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/kdc/KerberosServer.java (original)
+++ directory/trunks/apacheds/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/kdc/KerberosServer.java Tue Sep 12 21:15:20 2006
@@ -29,6 +29,7 @@
import org.apache.directory.server.kerberos.shared.store.PrincipalStore;
import org.apache.mina.common.IoAcceptor;
import org.apache.mina.common.IoHandler;
+import org.apache.mina.common.IoServiceConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -52,7 +53,7 @@
private IoHandler handler;
- public KerberosServer(KdcConfiguration config, IoAcceptor acceptor, PrincipalStore store)
+ public KerberosServer( KdcConfiguration config, IoAcceptor acceptor, IoServiceConfig serviceConfig, PrincipalStore store )
{
this.config = config;
this.acceptor = acceptor;
@@ -65,7 +66,7 @@
{
handler = new KerberosProtocolHandler( new KdcConfiguration(), this.store );
- acceptor.bind( new InetSocketAddress( port ), handler );
+ acceptor.bind( new InetSocketAddress( port ), handler, serviceConfig );
log.debug( name + " listening on port " + port );
}
Modified: directory/trunks/apacheds/protocol-ntp/src/main/java/org/apache/directory/server/ntp/NtpServer.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/protocol-ntp/src/main/java/org/apache/directory/server/ntp/NtpServer.java?view=diff&rev=442829&r1=442828&r2=442829
==============================================================================
--- directory/trunks/apacheds/protocol-ntp/src/main/java/org/apache/directory/server/ntp/NtpServer.java (original)
+++ directory/trunks/apacheds/protocol-ntp/src/main/java/org/apache/directory/server/ntp/NtpServer.java Tue Sep 12 21:15:20 2006
@@ -28,6 +28,7 @@
import org.apache.directory.server.ntp.protocol.NtpProtocolHandler;
import org.apache.mina.common.IoAcceptor;
import org.apache.mina.common.IoHandler;
+import org.apache.mina.common.IoServiceConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -43,7 +44,7 @@
private IoHandler handler;
- public NtpServer( NtpConfiguration config, IoAcceptor acceptor )
+ public NtpServer( NtpConfiguration config, IoAcceptor acceptor, IoServiceConfig serviceConfig )
{
this.config = config;
this.acceptor = acceptor;
@@ -55,7 +56,7 @@
{
handler = new NtpProtocolHandler();
- acceptor.bind( new InetSocketAddress( port ), handler );
+ acceptor.bind( new InetSocketAddress( port ), handler, serviceConfig );
log.debug( name + " listening on port " + port );
}
Modified: directory/trunks/apacheds/server-jndi/src/main/java/org/apache/directory/server/jndi/ServerContextFactory.java
URL: http://svn.apache.org/viewvc/directory/trunks/apacheds/server-jndi/src/main/java/org/apache/directory/server/jndi/ServerContextFactory.java?view=diff&rev=442829&r1=442828&r2=442829
==============================================================================
--- directory/trunks/apacheds/server-jndi/src/main/java/org/apache/directory/server/jndi/ServerContextFactory.java (original)
+++ directory/trunks/apacheds/server-jndi/src/main/java/org/apache/directory/server/jndi/ServerContextFactory.java Tue Sep 12 21:15:20 2006
@@ -57,18 +57,24 @@
import org.apache.directory.shared.ldap.exception.LdapNamingException;
import org.apache.directory.shared.ldap.message.extended.NoticeOfDisconnect;
import org.apache.mina.common.DefaultIoFilterChainBuilder;
+import org.apache.mina.common.ExecutorThreadModel;
import org.apache.mina.common.IoAcceptor;
import org.apache.mina.common.IoFilterChainBuilder;
import org.apache.mina.common.IoSession;
import org.apache.mina.common.WriteFuture;
-import org.apache.mina.filter.thread.ThreadPoolFilter;
import org.apache.mina.transport.socket.nio.DatagramAcceptor;
+import org.apache.mina.transport.socket.nio.DatagramAcceptorConfig;
import org.apache.mina.transport.socket.nio.SocketAcceptor;
import org.apache.mina.transport.socket.nio.SocketAcceptorConfig;
import org.apache.mina.transport.socket.nio.SocketSessionConfig;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue;
+import edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor;
+import edu.emory.mathcs.backport.java.util.concurrent.TimeUnit;
+
/**
* Adds additional bootstrapping for server socket listeners when firing
@@ -83,17 +89,11 @@
private static final Logger log = LoggerFactory.getLogger( ServerContextFactory.class.getName() );
private static final String LDIF_FILES_DN = "ou=loadedLdifFiles,ou=configuration,ou=system";
- protected static final IoAcceptor tcpAcceptor = new SocketAcceptor();
- protected static final IoAcceptor udpAcceptor = new DatagramAcceptor();
- protected static final ThreadPoolFilter threadPool;
+ protected static IoAcceptor tcpAcceptor;
+ protected static IoAcceptor udpAcceptor;
+ protected static ThreadPoolExecutor threadPoolExecutor;
+ protected static ExecutorThreadModel threadModel = ExecutorThreadModel.getInstance( "ApacheDS" );
- static
- {
- threadPool = new ThreadPoolFilter();
- tcpAcceptor.getFilterChain().addFirst( "threadPool", threadPool );
- udpAcceptor.getFilterChain().addFirst( "threadPool", threadPool );
- }
-
private static boolean ldapStarted;
private static boolean ldapsStarted;
private static KerberosServer tcpKdcServer;
@@ -107,7 +107,14 @@
public void beforeStartup( DirectoryService service )
{
- threadPool.getThreadPool().setMaximumPoolSize( service.getConfiguration().getStartupConfiguration().getMaxThreads() );
+ int maxThreads = service.getConfiguration().getStartupConfiguration().getMaxThreads();
+ threadPoolExecutor = new ThreadPoolExecutor( maxThreads, maxThreads, 60, TimeUnit.SECONDS,
+ new LinkedBlockingQueue() );
+ threadModel.setExecutor( threadPoolExecutor );
+
+ udpAcceptor = new DatagramAcceptor();
+ tcpAcceptor = new SocketAcceptor();
+
this.directoryService = service;
}
@@ -462,6 +469,8 @@
acceptorCfg.setDisconnectOnUnbind( false );
acceptorCfg.setReuseAddress( true );
acceptorCfg.setFilterChainBuilder( chainBuilder );
+ acceptorCfg.setThreadModel( threadModel );
+
((SocketSessionConfig)(acceptorCfg.getSessionConfig())).setTcpNoDelay( true );
tcpAcceptor.bind( new InetSocketAddress( port ), protocolProvider.getHandler(), acceptorCfg );
@@ -491,8 +500,18 @@
{
KdcConfiguration kdcConfiguration = new KdcConfiguration( env, LoadStrategy.PROPS );
PrincipalStore kdcStore = new JndiPrincipalStoreImpl( kdcConfiguration, this );
- tcpKdcServer = new KerberosServer( kdcConfiguration, tcpAcceptor, kdcStore );
- udpKdcServer = new KerberosServer( kdcConfiguration, udpAcceptor, kdcStore );
+
+ DatagramAcceptorConfig udpConfig = new DatagramAcceptorConfig();
+ udpConfig.setThreadModel( threadModel );
+
+ SocketAcceptorConfig tcpConfig = new SocketAcceptorConfig();
+ tcpConfig.setDisconnectOnUnbind( false );
+ tcpConfig.setReuseAddress( true );
+ tcpConfig.setFilterChainBuilder( new DefaultIoFilterChainBuilder() );
+ tcpConfig.setThreadModel( threadModel );
+
+ tcpKdcServer = new KerberosServer( kdcConfiguration, tcpAcceptor, tcpConfig, kdcStore );
+ udpKdcServer = new KerberosServer( kdcConfiguration, udpAcceptor, udpConfig, kdcStore );
}
catch ( Throwable t )
{
@@ -511,8 +530,20 @@
ChangePasswordConfiguration changePasswordConfiguration = new ChangePasswordConfiguration( env,
LoadStrategy.PROPS );
PrincipalStore store = new JndiPrincipalStoreImpl( changePasswordConfiguration, this );
- tcpChangePasswordServer = new ChangePasswordServer( changePasswordConfiguration, tcpAcceptor, store );
- udpChangePasswordServer = new ChangePasswordServer( changePasswordConfiguration, udpAcceptor, store );
+
+ DatagramAcceptorConfig udpConfig = new DatagramAcceptorConfig();
+ udpConfig.setThreadModel( threadModel );
+
+ SocketAcceptorConfig tcpConfig = new SocketAcceptorConfig();
+ tcpConfig.setDisconnectOnUnbind( false );
+ tcpConfig.setReuseAddress( true );
+ tcpConfig.setFilterChainBuilder( new DefaultIoFilterChainBuilder() );
+ tcpConfig.setThreadModel( threadModel );
+
+ tcpChangePasswordServer = new ChangePasswordServer( changePasswordConfiguration, tcpAcceptor,
+ tcpConfig, store );
+ udpChangePasswordServer = new ChangePasswordServer( changePasswordConfiguration, udpAcceptor,
+ udpConfig, store );
}
catch ( Throwable t )
{
@@ -529,8 +560,18 @@
try
{
NtpConfiguration ntpConfig = new NtpConfiguration( env, LoadStrategy.PROPS );
- tcpNtpServer = new NtpServer( ntpConfig, tcpAcceptor );
- udpNtpServer = new NtpServer( ntpConfig, udpAcceptor );
+
+ DatagramAcceptorConfig udpConfig = new DatagramAcceptorConfig();
+ udpConfig.setThreadModel( threadModel );
+
+ SocketAcceptorConfig tcpConfig = new SocketAcceptorConfig();
+ tcpConfig.setDisconnectOnUnbind( false );
+ tcpConfig.setReuseAddress( true );
+ tcpConfig.setFilterChainBuilder( new DefaultIoFilterChainBuilder() );
+ tcpConfig.setThreadModel( threadModel );
+
+ tcpNtpServer = new NtpServer( ntpConfig, tcpAcceptor, tcpConfig );
+ udpNtpServer = new NtpServer( ntpConfig, udpAcceptor, udpConfig );
}
catch ( Throwable t )
{