You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pr...@apache.org on 2006/09/15 06:00:45 UTC
svn commit: r446506 - in /directory/trunks/mina/core/src:
main/java/org/apache/mina/common/support/
main/java/org/apache/mina/transport/socket/nio/
main/java/org/apache/mina/transport/vmpipe/
test/java/org/apache/mina/common/support/
Author: proyal
Date: Thu Sep 14 21:00:44 2006
New Revision: 446506
URL: http://svn.apache.org/viewvc?view=rev&rev=446506
Log:
DIRMINA-264 - Allow overriding of the "deactivate when idle" (where idle is no active sessions) for IoConnectors.
Modified:
directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/BaseIoAcceptor.java
directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/BaseIoConnector.java
directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/BaseIoService.java
directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/IoServiceListenerSupport.java
directory/trunks/mina/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java
directory/trunks/mina/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
directory/trunks/mina/core/src/test/java/org/apache/mina/common/support/IoServiceListenerSupportTest.java
Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/BaseIoAcceptor.java
URL: http://svn.apache.org/viewvc/directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/BaseIoAcceptor.java?view=diff&rev=446506&r1=446505&r2=446506
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/BaseIoAcceptor.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/BaseIoAcceptor.java Thu Sep 14 21:00:44 2006
@@ -36,6 +36,7 @@
{
protected BaseIoAcceptor()
{
+ super( false );
}
public void bind( SocketAddress address, IoHandler handler ) throws IOException
Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/BaseIoConnector.java
URL: http://svn.apache.org/viewvc/directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/BaseIoConnector.java?view=diff&rev=446506&r1=446505&r2=446506
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/BaseIoConnector.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/BaseIoConnector.java Thu Sep 14 21:00:44 2006
@@ -35,8 +35,13 @@
{
protected BaseIoConnector()
{
+ super( true );
}
-
+
+ protected BaseIoConnector( boolean deactivateWhenIdle) {
+ super( deactivateWhenIdle );
+ }
+
public ConnectFuture connect( SocketAddress address, IoHandler handler )
{
return connect( address, handler, getDefaultConfig() );
Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/BaseIoService.java
URL: http://svn.apache.org/viewvc/directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/BaseIoService.java?view=diff&rev=446506&r1=446505&r2=446506
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/BaseIoService.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/BaseIoService.java Thu Sep 14 21:00:44 2006
@@ -43,10 +43,11 @@
/**
* Maintains the {@link IoServiceListener}s of this service.
*/
- private final IoServiceListenerSupport listeners = new IoServiceListenerSupport();
+ private final IoServiceListenerSupport listeners;
- protected BaseIoService()
+ protected BaseIoService( boolean deactivateWhenIdle )
{
+ this.listeners = new IoServiceListenerSupport( deactivateWhenIdle );
}
public IoFilterChainBuilder getFilterChainBuilder()
Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/IoServiceListenerSupport.java
URL: http://svn.apache.org/viewvc/directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/IoServiceListenerSupport.java?view=diff&rev=446506&r1=446505&r2=446506
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/IoServiceListenerSupport.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/common/support/IoServiceListenerSupport.java Thu Sep 14 21:00:44 2006
@@ -64,11 +64,14 @@
*/
private final Map managedSessions = new HashMap();
+ private final boolean deactivateWhenIdle;
+
/**
* Creates a new instance.
*/
- public IoServiceListenerSupport()
+ public IoServiceListenerSupport( boolean deactivateWhenIdle )
{
+ this.deactivateWhenIdle = deactivateWhenIdle;
}
/**
@@ -288,7 +291,8 @@
finally
{
// Fire a virtual service deactivation event for the last session of the connector.
- if( session.getService() instanceof IoConnector && lastSession )
+ //TODO double-check that this is *STILL* the last service. May not be the case
+ if( deactivateWhenIdle && lastSession )
{
fireServiceDeactivated(
session.getService(), session.getServiceAddress(),
Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java
URL: http://svn.apache.org/viewvc/directory/trunks/mina/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java?view=diff&rev=446506&r1=446505&r2=446506
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java Thu Sep 14 21:00:44 2006
@@ -73,16 +73,18 @@
*/
public SocketConnector()
{
- this( 1 );
+ this( 1, true );
}
-
+
/**
* Create a connector with the desired number of processing threads
*
* @param processorCount Number of processing threads
*/
- public SocketConnector( int processorCount )
+ public SocketConnector( int processorCount, boolean deactivateWhenIdle )
{
+ super( deactivateWhenIdle );
+
if( processorCount < 1 )
{
throw new IllegalArgumentException( "Must have at least one processor" );
Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
URL: http://svn.apache.org/viewvc/directory/trunks/mina/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java?view=diff&rev=446506&r1=446505&r2=446506
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java Thu Sep 14 21:00:44 2006
@@ -52,7 +52,14 @@
}
};
- public ConnectFuture connect( SocketAddress address, IoHandler handler, IoServiceConfig config )
+ public VmPipeConnector() {
+ }
+
+ public VmPipeConnector(boolean deactivateWhenIdle) {
+ super( deactivateWhenIdle );
+ }
+
+ public ConnectFuture connect( SocketAddress address, IoHandler handler, IoServiceConfig config )
{
return connect( address, null, handler, config );
}
Modified: directory/trunks/mina/core/src/test/java/org/apache/mina/common/support/IoServiceListenerSupportTest.java
URL: http://svn.apache.org/viewvc/directory/trunks/mina/core/src/test/java/org/apache/mina/common/support/IoServiceListenerSupportTest.java?view=diff&rev=446506&r1=446505&r2=446506
==============================================================================
--- directory/trunks/mina/core/src/test/java/org/apache/mina/common/support/IoServiceListenerSupportTest.java (original)
+++ directory/trunks/mina/core/src/test/java/org/apache/mina/common/support/IoServiceListenerSupportTest.java Thu Sep 14 21:00:44 2006
@@ -47,15 +47,10 @@
{
private static final SocketAddress ADDRESS = new InetSocketAddress( 8080 );
- private IoServiceListenerSupport support;
-
- public void setUp() throws Exception
- {
- support = new IoServiceListenerSupport();
- }
-
public void testServiceLifecycle() throws Exception
{
+ IoServiceListenerSupport support = new IoServiceListenerSupport( false );
+
MockControl listenerControl = MockControl.createStrictControl( IoServiceListener.class );
IoServiceListener listener = ( IoServiceListener ) listenerControl.getMock();
@@ -92,6 +87,8 @@
public void testSessionLifecycle() throws Exception
{
+ IoServiceListenerSupport support = new IoServiceListenerSupport( false );
+
TestSession session = new TestSession( ADDRESS );
MockControl chainControl = MockControl.createStrictControl( IoFilterChain.class );
@@ -141,6 +138,8 @@
public void testDisconnectOnUnbind() throws Exception
{
+ final IoServiceListenerSupport support = new IoServiceListenerSupport( false );
+
MockControl acceptorControl = MockControl.createStrictControl( IoAcceptor.class );
IoAcceptor acceptor = ( IoAcceptor ) acceptorControl.getMock();
@@ -214,6 +213,8 @@
public void testConnectorActivation() throws Exception
{
+ IoServiceListenerSupport support = new IoServiceListenerSupport( true );
+
MockControl connectorControl = MockControl.createStrictControl( IoConnector.class );
IoConnector connector = ( IoConnector ) connectorControl.getMock();
@@ -266,12 +267,12 @@
private final SocketAddress serviceAddress;
private IoFilterChain filterChain;
- public TestSession( SocketAddress serviceAddress )
+ TestSession( SocketAddress serviceAddress )
{
this( null, serviceAddress );
}
- public TestSession( IoService service, SocketAddress serviceAddress )
+ TestSession( IoService service, SocketAddress serviceAddress )
{
this.service = service;
this.serviceAddress = serviceAddress;