You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2007/04/03 08:51:48 UTC
svn commit: r525060 - in /mina:
branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/
branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/
trunk/core/src/main/java/org/apache/mina/transport/socket/nio/ trunk/cor...
Author: trustin
Date: Mon Apr 2 23:51:46 2007
New Revision: 525060
URL: http://svn.apache.org/viewvc?view=rev&rev=525060
Log:
Related issue: DIRMINA-365 (Make use of covariant return types)
* Applied covariant return types to all core classes (except VM pipe transport in trunk. It needs more work.)
* We can't do much with covariant return type not introducing transport-specific session types such as SocketSession, so you will have to use trunk to get the most out of it. 1.1 has limited support on the other hand.
Added:
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramSession.java (with props)
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSession.java (with props)
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSession.java (with props)
Modified:
mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java
mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramConnector.java
mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramServiceConfig.java
mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java
mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java
mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramConnector.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSessionImpl.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeSessionImpl.java
Modified: mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java
URL: http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java?view=diff&rev=525060&r1=525059&r2=525060
==============================================================================
--- mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java (original)
+++ mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java Mon Apr 2 23:51:46 2007
@@ -19,13 +19,13 @@
*/
package org.apache.mina.transport.socket.nio;
+import java.util.concurrent.Executor;
+
import org.apache.mina.common.IoAcceptor;
import org.apache.mina.common.support.DelegatedIoAcceptor;
import org.apache.mina.transport.socket.nio.support.DatagramAcceptorDelegate;
import org.apache.mina.util.NewThreadExecutor;
-import java.util.concurrent.Executor;
-
/**
* {@link IoAcceptor} for datagram transport (UDP/IP).
*
@@ -50,6 +50,12 @@
public DatagramAcceptor( Executor executor )
{
init( new DatagramAcceptorDelegate( this, executor ) );
+ }
+
+ @Override
+ public DatagramAcceptorConfig getDefaultConfig()
+ {
+ return ( DatagramAcceptorConfig ) super.getDefaultConfig();
}
/**
Modified: mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramConnector.java
URL: http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramConnector.java?view=diff&rev=525060&r1=525059&r2=525060
==============================================================================
--- mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramConnector.java (original)
+++ mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramConnector.java Mon Apr 2 23:51:46 2007
@@ -19,11 +19,12 @@
*/
package org.apache.mina.transport.socket.nio;
+import java.util.concurrent.Executor;
+
import org.apache.mina.common.IoConnector;
import org.apache.mina.common.support.DelegatedIoConnector;
import org.apache.mina.transport.socket.nio.support.DatagramConnectorDelegate;
import org.apache.mina.util.NewThreadExecutor;
-import java.util.concurrent.Executor;
/**
* {@link IoConnector} for datagram transport (UDP/IP).
@@ -49,6 +50,12 @@
public DatagramConnector( Executor executor )
{
init( new DatagramConnectorDelegate( this, executor ) );
+ }
+
+ @Override
+ public DatagramConnectorConfig getDefaultConfig()
+ {
+ return ( DatagramConnectorConfig ) super.getDefaultConfig();
}
/**
Modified: mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramServiceConfig.java
URL: http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramServiceConfig.java?view=diff&rev=525060&r1=525059&r2=525060
==============================================================================
--- mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramServiceConfig.java (original)
+++ mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramServiceConfig.java Mon Apr 2 23:51:46 2007
@@ -30,6 +30,8 @@
*/
public interface DatagramServiceConfig extends IoServiceConfig
{
+ DatagramSessionConfig getSessionConfig();
+
/**
* Returns the {@link IoSessionRecycler} for this service.
*/
Modified: mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java
URL: http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java?view=diff&rev=525060&r1=525059&r2=525060
==============================================================================
--- mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java (original)
+++ mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java Mon Apr 2 23:51:46 2007
@@ -336,7 +336,7 @@
return ioProcessors[processorDistributor++ % processorCount];
}
- public IoServiceConfig getDefaultConfig()
+ public SocketAcceptorConfig getDefaultConfig()
{
return defaultConfig;
}
@@ -387,7 +387,7 @@
}
else
{
- cfg = ( SocketAcceptorConfig ) getDefaultConfig();
+ cfg = getDefaultConfig();
}
ssc.socket().setReuseAddress( cfg.isReuseAddress() );
Modified: mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java
URL: http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java?view=diff&rev=525060&r1=525059&r2=525060
==============================================================================
--- mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java (original)
+++ mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java Mon Apr 2 23:51:46 2007
@@ -219,7 +219,7 @@
return request;
}
- public IoServiceConfig getDefaultConfig()
+ public SocketConnectorConfig getDefaultConfig()
{
return defaultConfig;
}
Modified: mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
URL: http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java?view=diff&rev=525060&r1=525059&r2=525060
==============================================================================
--- mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java (original)
+++ mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java Mon Apr 2 23:51:46 2007
@@ -265,7 +265,7 @@
req.config.getThreadModel().buildFilterChain( session.getFilterChain() );
}
- public IoServiceConfig getDefaultConfig()
+ public DatagramAcceptorConfig getDefaultConfig()
{
return defaultConfig;
}
@@ -555,7 +555,7 @@
}
else
{
- cfg = ( DatagramSessionConfig ) getDefaultConfig().getSessionConfig();
+ cfg = getDefaultConfig().getSessionConfig();
}
ch.socket().setReuseAddress( cfg.isReuseAddress() );
Modified: mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java
URL: http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java?view=diff&rev=525060&r1=525059&r2=525060
==============================================================================
--- mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java (original)
+++ mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java Mon Apr 2 23:51:46 2007
@@ -120,7 +120,7 @@
}
else
{
- cfg = ( DatagramSessionConfig ) getDefaultConfig().getSessionConfig();
+ cfg = getDefaultConfig().getSessionConfig();
}
ch.socket().setReuseAddress( cfg.isReuseAddress() );
@@ -187,7 +187,7 @@
return request;
}
- public IoServiceConfig getDefaultConfig()
+ public DatagramConnectorConfig getDefaultConfig()
{
return defaultConfig;
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java?view=diff&rev=525060&r1=525059&r2=525060
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramAcceptor.java Mon Apr 2 23:51:46 2007
@@ -19,6 +19,7 @@
*/
package org.apache.mina.transport.socket.nio;
+import java.net.InetSocketAddress;
import java.util.concurrent.Executor;
import org.apache.mina.common.IoAcceptor;
@@ -52,7 +53,15 @@
{
init( new DatagramAcceptorDelegate( this, executor ) );
}
+
+ public DatagramSessionConfig getSessionConfig() {
+ return ( ( DatagramAcceptorDelegate ) delegate ).getSessionConfig();
+ }
+ public InetSocketAddress getLocalAddress() {
+ return ( ( DatagramAcceptorDelegate ) delegate ).getLocalAddress();
+ }
+
/**
* Returns the {@link IoSessionRecycler} for this service.
*/
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramConnector.java?view=diff&rev=525060&r1=525059&r2=525060
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramConnector.java Mon Apr 2 23:51:46 2007
@@ -23,6 +23,7 @@
import org.apache.mina.common.IoConnector;
import org.apache.mina.common.support.DelegatedIoConnector;
+import org.apache.mina.transport.socket.nio.support.DatagramAcceptorDelegate;
import org.apache.mina.transport.socket.nio.support.DatagramConnectorDelegate;
import org.apache.mina.util.NewThreadExecutor;
@@ -50,5 +51,9 @@
public DatagramConnector( Executor executor )
{
init( new DatagramConnectorDelegate( this, executor ) );
+ }
+
+ public DatagramSessionConfig getSessionConfig() {
+ return ( ( DatagramAcceptorDelegate ) delegate ).getSessionConfig();
}
}
Added: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramSession.java?view=auto&rev=525060
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramSession.java (added)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramSession.java Mon Apr 2 23:51:46 2007
@@ -0,0 +1,12 @@
+package org.apache.mina.transport.socket.nio;
+
+import java.net.InetSocketAddress;
+
+import org.apache.mina.common.BroadcastIoSession;
+
+public interface DatagramSession extends BroadcastIoSession {
+ DatagramSessionConfig getConfig();
+ InetSocketAddress getRemoteAddress();
+ InetSocketAddress getLocalAddress();
+ InetSocketAddress getServiceAddress();
+}
Propchange: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramSession.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DatagramSession.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java?view=diff&rev=525060&r1=525059&r2=525060
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java Mon Apr 2 23:51:46 2007
@@ -20,6 +20,7 @@
package org.apache.mina.transport.socket.nio;
import java.io.IOException;
+import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.SocketAddress;
import java.nio.channels.SelectionKey;
@@ -158,6 +159,15 @@
public TransportType getTransportType() {
return TransportType.SOCKET;
}
+
+ public SocketSessionConfig getSessionConfig() {
+ return (SocketSessionConfig) super.getSessionConfig();
+ }
+
+ @Override
+ public InetSocketAddress getLocalAddress() {
+ return (InetSocketAddress) super.getLocalAddress();
+ }
/**
* @see ServerSocket#getReuseAddress()
@@ -419,7 +429,7 @@
// Configure the server socket,
ssc.socket().setReuseAddress( isReuseAddress() );
ssc.socket().setReceiveBufferSize(
- ( ( SocketSessionConfig ) getSessionConfig() ).getReceiveBufferSize() );
+ getSessionConfig().getReceiveBufferSize() );
// and bind.
ssc.socket().bind( getLocalAddress(), getBacklog() );
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java?view=diff&rev=525060&r1=525059&r2=525060
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketConnector.java Mon Apr 2 23:51:46 2007
@@ -126,6 +126,10 @@
public TransportType getTransportType() {
return TransportType.SOCKET;
}
+
+ public SocketSessionConfig getSessionConfig() {
+ return (SocketSessionConfig) super.getSessionConfig();
+ }
/**
* How many seconds to keep the connection thread alive between connection requests
Added: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSession.java?view=auto&rev=525060
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSession.java (added)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSession.java Mon Apr 2 23:51:46 2007
@@ -0,0 +1,12 @@
+package org.apache.mina.transport.socket.nio;
+
+import java.net.InetSocketAddress;
+
+import org.apache.mina.common.IoSession;
+
+public interface SocketSession extends IoSession {
+ SocketSessionConfig getConfig();
+ InetSocketAddress getRemoteAddress();
+ InetSocketAddress getLocalAddress();
+ InetSocketAddress getServiceAddress();
+}
Propchange: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSession.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSession.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSessionImpl.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSessionImpl.java?view=diff&rev=525060&r1=525059&r2=525060
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSessionImpl.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSessionImpl.java Mon Apr 2 23:51:46 2007
@@ -19,7 +19,7 @@
*/
package org.apache.mina.transport.socket.nio;
-import java.net.SocketAddress;
+import java.net.InetSocketAddress;
import java.net.SocketException;
import java.nio.channels.SelectionKey;
import java.nio.channels.SocketChannel;
@@ -44,7 +44,7 @@
* @author The Apache MINA Project (dev@mina.apache.org)
* @version $Rev$, $Date$
*/
-class SocketSessionImpl extends BaseIoSession
+class SocketSessionImpl extends BaseIoSession implements SocketSession
{
private final IoService service;
private final SocketSessionConfig config = new SessionConfigImpl();
@@ -94,7 +94,7 @@
return service;
}
- public IoSessionConfig getConfig()
+ public SocketSessionConfig getConfig()
{
return config;
}
@@ -174,14 +174,18 @@
return TransportType.SOCKET;
}
- public SocketAddress getRemoteAddress()
+ public InetSocketAddress getRemoteAddress()
{
- return ch.socket().getRemoteSocketAddress();
+ return (InetSocketAddress) ch.socket().getRemoteSocketAddress();
}
- public SocketAddress getLocalAddress()
+ public InetSocketAddress getLocalAddress()
{
- return ch.socket().getLocalSocketAddress();
+ return (InetSocketAddress) ch.socket().getLocalSocketAddress();
+ }
+
+ public InetSocketAddress getServiceAddress() {
+ return (InetSocketAddress) super.getServiceAddress();
}
protected void updateTrafficMask()
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java?view=diff&rev=525060&r1=525059&r2=525060
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java Mon Apr 2 23:51:46 2007
@@ -20,6 +20,7 @@
package org.apache.mina.transport.socket.nio.support;
import java.io.IOException;
+import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.nio.channels.DatagramChannel;
import java.nio.channels.SelectionKey;
@@ -105,7 +106,15 @@
public TransportType getTransportType() {
return TransportType.DATAGRAM;
}
-
+
+ public DatagramSessionConfig getSessionConfig() {
+ return (DatagramSessionConfig) super.getSessionConfig();
+ }
+
+ public InetSocketAddress getLocalAddress() {
+ return (InetSocketAddress) super.getLocalAddress();
+ }
+
protected void doBind() throws IOException
{
RegistrationRequest request = new RegistrationRequest();
@@ -202,7 +211,7 @@
// If a new session needs to be created.
DatagramSessionImpl datagramSession = new DatagramSessionImpl(
- wrapper, this, ch, getHandler(), remoteAddress );
+ wrapper, this, ch, getHandler(), (InetSocketAddress) remoteAddress );
datagramSession.setSelectionKey( key );
getSessionRecycler().put( datagramSession );
@@ -371,7 +380,7 @@
private void readSession( DatagramChannel channel ) throws Exception
{
ByteBuffer readBuf = ByteBuffer.allocate(
- ( ( DatagramSessionConfig ) getSessionConfig() ).getReceiveBufferSize() );
+ getSessionConfig().getReceiveBufferSize() );
SocketAddress remoteAddress = channel.receive( readBuf.buf() );
if( remoteAddress != null )
@@ -499,7 +508,7 @@
try
{
ch = DatagramChannel.open();
- DatagramSessionConfig cfg = ( DatagramSessionConfig ) getSessionConfig();
+ DatagramSessionConfig cfg = getSessionConfig();
ch.socket().setReuseAddress( cfg.isReuseAddress() );
ch.socket().setBroadcast( cfg.isBroadcast() );
ch.socket().setReceiveBufferSize( cfg.getReceiveBufferSize() );
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java?view=diff&rev=525060&r1=525059&r2=525060
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java Mon Apr 2 23:51:46 2007
@@ -101,6 +101,10 @@
public TransportType getTransportType() {
return TransportType.DATAGRAM;
}
+
+ public DatagramSessionConfig getSessionConfig() {
+ return (DatagramSessionConfig) super.getSessionConfig();
+ }
protected ConnectFuture doConnect( SocketAddress remoteAddress, SocketAddress localAddress )
{
@@ -109,7 +113,7 @@
try
{
ch = DatagramChannel.open();
- DatagramSessionConfig cfg = ( DatagramSessionConfig ) getSessionConfig();
+ DatagramSessionConfig cfg = getSessionConfig();
ch.socket().setReuseAddress( cfg.isReuseAddress() );
ch.socket().setBroadcast( cfg.isBroadcast() );
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java?view=diff&rev=525060&r1=525059&r2=525060
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionImpl.java Mon Apr 2 23:51:46 2007
@@ -19,6 +19,7 @@
*/
package org.apache.mina.transport.socket.nio.support;
+import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.net.SocketException;
import java.nio.channels.DatagramChannel;
@@ -26,7 +27,6 @@
import java.util.LinkedList;
import java.util.Queue;
-import org.apache.mina.common.BroadcastIoSession;
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.IoAcceptor;
import org.apache.mina.common.IoConnector;
@@ -40,6 +40,7 @@
import org.apache.mina.common.WriteFuture;
import org.apache.mina.common.IoFilter.WriteRequest;
import org.apache.mina.common.support.BaseIoSession;
+import org.apache.mina.transport.socket.nio.DatagramSession;
import org.apache.mina.transport.socket.nio.DatagramSessionConfig;
import org.apache.mina.transport.socket.nio.DefaultDatagramSessionConfig;
@@ -49,7 +50,7 @@
* @author The Apache MINA Project (dev@mina.apache.org)
* @version $Rev$, $Date$
*/
-class DatagramSessionImpl extends BaseIoSession implements BroadcastIoSession
+class DatagramSessionImpl extends BaseIoSession implements DatagramSession
{
private final IoService service;
private final DatagramSessionConfig config = new SessionConfigImpl();
@@ -58,8 +59,8 @@
private final DatagramChannel ch;
private final Queue<WriteRequest> writeRequestQueue = new LinkedList<WriteRequest>();
private final IoHandler handler;
- private final SocketAddress localAddress;
- private final SocketAddress remoteAddress;
+ private final InetSocketAddress localAddress;
+ private final InetSocketAddress remoteAddress;
private SelectionKey key;
private int readBufferSize;
@@ -69,7 +70,7 @@
DatagramSessionImpl( IoAcceptor service,
DatagramService managerDelegate,
DatagramChannel ch, IoHandler defaultHandler,
- SocketAddress remoteAddress )
+ InetSocketAddress remoteAddress )
{
this.service = service;
this.managerDelegate = managerDelegate;
@@ -80,7 +81,7 @@
// We didn't set the localAddress by calling getLocalSocketAddress() to avoid
// the case that getLocalSocketAddress() returns IPv6 address while
// serviceAddress represents the same address in IPv4.
- this.localAddress = service.getLocalAddress();
+ this.localAddress = (InetSocketAddress) service.getLocalAddress();
applySettings();
}
@@ -96,8 +97,8 @@
this.managerDelegate = managerDelegate;
this.ch = ch;
this.handler = defaultHandler;
- this.remoteAddress = ch.socket().getRemoteSocketAddress();
- this.localAddress = ch.socket().getLocalSocketAddress();
+ this.remoteAddress = (InetSocketAddress) ch.socket().getRemoteSocketAddress();
+ this.localAddress = (InetSocketAddress) ch.socket().getLocalSocketAddress();
applySettings();
}
@@ -125,7 +126,7 @@
return service;
}
- public IoSessionConfig getConfig()
+ public DatagramSessionConfig getConfig()
{
return config;
}
@@ -219,14 +220,19 @@
return TransportType.DATAGRAM;
}
- public SocketAddress getRemoteAddress()
+ public InetSocketAddress getRemoteAddress()
{
return remoteAddress;
}
- public SocketAddress getLocalAddress()
+ public InetSocketAddress getLocalAddress()
{
return localAddress;
+ }
+
+ public InetSocketAddress getServiceAddress()
+ {
+ return (InetSocketAddress) super.getServiceAddress();
}
protected void updateTrafficMask()
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java?view=diff&rev=525060&r1=525059&r2=525060
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeAcceptor.java Mon Apr 2 23:51:46 2007
@@ -52,6 +52,10 @@
public TransportType getTransportType() {
return TransportType.VM_PIPE;
}
+
+ public VmPipeSessionConfig getSessionConfig() {
+ return (VmPipeSessionConfig) super.getSessionConfig();
+ }
protected void doBind() throws IOException
{
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java?view=diff&rev=525060&r1=525059&r2=525060
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeConnector.java Mon Apr 2 23:51:46 2007
@@ -57,6 +57,10 @@
public TransportType getTransportType() {
return TransportType.VM_PIPE;
}
+
+ public VmPipeSessionConfig getSessionConfig() {
+ return (VmPipeSessionConfig) super.getSessionConfig();
+ }
protected ConnectFuture doConnect( SocketAddress remoteAddress, SocketAddress localAddress )
{
@@ -86,7 +90,7 @@
// The following sentences don't throw any exceptions.
localSession.setAttribute( AbstractIoFilterChain.CONNECT_FUTURE, future );
getListeners().fireSessionCreated( localSession );
- VmPipeIdleStatusChecker.getInstance().addSession( localSession);
+ VmPipeIdleStatusChecker.getInstance().addSession( localSession );
}
catch( Throwable t )
{
Added: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSession.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSession.java?view=auto&rev=525060
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSession.java (added)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSession.java Mon Apr 2 23:51:46 2007
@@ -0,0 +1,14 @@
+package org.apache.mina.transport.vmpipe;
+
+import org.apache.mina.common.IoSession;
+
+public interface VmPipeSession extends IoSession {
+ VmPipeSessionConfig getConfig();
+ /* FIXME: These methods can return AnonymousSocketAddress.
+ * We need to create a port number manager like O/S do for port
+ * numbers.
+ VmPipeAddress getRemoteAddress();
+ VmPipeAddress getLocalAddress();
+ VmPipeAddress getServiceAddress();
+ */
+}
Propchange: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSession.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSession.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeSessionImpl.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeSessionImpl.java?view=diff&rev=525060&r1=525059&r2=525060
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeSessionImpl.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/support/VmPipeSessionImpl.java Mon Apr 2 23:51:46 2007
@@ -29,12 +29,13 @@
import org.apache.mina.common.IoHandler;
import org.apache.mina.common.IoService;
import org.apache.mina.common.IoSession;
-import org.apache.mina.common.IoSessionConfig;
import org.apache.mina.common.TransportType;
import org.apache.mina.common.IoFilter.WriteRequest;
import org.apache.mina.common.support.BaseIoSession;
-import org.apache.mina.common.support.BaseIoSessionConfig;
import org.apache.mina.common.support.IoServiceListenerSupport;
+import org.apache.mina.transport.vmpipe.DefaultVmPipeSessionConfig;
+import org.apache.mina.transport.vmpipe.VmPipeSession;
+import org.apache.mina.transport.vmpipe.VmPipeSessionConfig;
/**
* A {@link IoSession} for in-VM transport (VM_PIPE).
@@ -42,11 +43,9 @@
* @author The Apache Directory Project (mina-dev@directory.apache.org)
* @version $Rev$, $Date$
*/
-public class VmPipeSessionImpl extends BaseIoSession
+public class VmPipeSessionImpl extends BaseIoSession implements VmPipeSession
{
- private static final IoSessionConfig CONFIG = new BaseIoSessionConfig()
- {
- };
+ private static final VmPipeSessionConfig CONFIG = new DefaultVmPipeSessionConfig();
private final IoService service;
private final IoServiceListenerSupport serviceListeners;
@@ -105,7 +104,7 @@
return serviceListeners;
}
- public IoSessionConfig getConfig()
+ public VmPipeSessionConfig getConfig()
{
return CONFIG;
}