You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ni...@apache.org on 2006/11/27 09:00:14 UTC
svn commit: r479536 - in /mina/trunk/core/src/main/java/org/apache/mina:
common/ common/support/ transport/socket/nio/ transport/socket/nio/support/
transport/vmpipe/
Author: niklas
Date: Mon Nov 27 00:00:12 2006
New Revision: 479536
URL: http://svn.apache.org/viewvc?view=rev&rev=479536
Log:
Renamed SocketSessionConfigImpl to DefaultSocketSessionConfig.
Renamed DatagramSessionConfigImpl to DefaultDatagramSessionConfig and moved it into o.a.m.transport.socket.nio.
Added VmPipeSessionConfig interface and default implementation DefaultVmPipeSessionConfig for vmpipe transport.
Added setSessionConfig( IoSessionConfig ) method to IoService.
BaseIoService now handles to IoSessionConfig instance for the IoService. getSessionConfig() and setSessionConfig() have been removed from the concrete classes implementing IoService (SocketAcceptor, DatagramConnector, etc).
Added:
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultDatagramSessionConfig.java (with props)
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultSocketSessionConfig.java
- copied, changed from r479116, mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSessionConfigImpl.java
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/DefaultVmPipeSessionConfig.java (with props)
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionConfig.java (with props)
Removed:
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSessionConfigImpl.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionConfigImpl.java
Modified:
mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java
mina/trunk/core/src/main/java/org/apache/mina/common/support/BaseIoAcceptor.java
mina/trunk/core/src/main/java/org/apache/mina/common/support/BaseIoConnector.java
mina/trunk/core/src/main/java/org/apache/mina/common/support/BaseIoService.java
mina/trunk/core/src/main/java/org/apache/mina/common/support/DelegatedIoAcceptor.java
mina/trunk/core/src/main/java/org/apache/mina/common/support/DelegatedIoConnector.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
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java?view=diff&rev=479536&r1=479535&r2=479536
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java Mon Nov 27 00:00:12 2006
@@ -65,10 +65,21 @@
Set getManagedSessions();
/**
- * Resturns the default configuration of the new {@link IoSession}s
+ * Returns the default configuration of the new {@link IoSession}s
* created by this service.
*/
IoSessionConfig getSessionConfig();
+
+ /**
+ * Sets the default configuration of the new {@link IoSession}s
+ * created by this service.
+ *
+ * @param config the new default config.
+ * @throws IllegalArgumentException if the type of the specified config doesn't
+ * match the {@link IoSessionConfig} implementation supported by
+ * this {@link IoService}.
+ */
+ void setSessionConfig( IoSessionConfig config );
/**
* Returns the {@link IoFilterChainBuilder} which will build the
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/support/BaseIoAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/support/BaseIoAcceptor.java?view=diff&rev=479536&r1=479535&r2=479536
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/support/BaseIoAcceptor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/support/BaseIoAcceptor.java Mon Nov 27 00:00:12 2006
@@ -23,6 +23,7 @@
import java.net.SocketAddress;
import org.apache.mina.common.IoAcceptor;
+import org.apache.mina.common.IoSessionConfig;
/**
* A base implementation of {@link IoAcceptor}.
@@ -43,8 +44,9 @@
*/
protected final Object bindLock = new Object();
- protected BaseIoAcceptor()
+ protected BaseIoAcceptor( IoSessionConfig sessionConfig )
{
+ super( sessionConfig );
}
public SocketAddress getLocalAddress()
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/support/BaseIoConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/support/BaseIoConnector.java?view=diff&rev=479536&r1=479535&r2=479536
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/support/BaseIoConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/support/BaseIoConnector.java Mon Nov 27 00:00:12 2006
@@ -23,6 +23,7 @@
import org.apache.mina.common.ConnectFuture;
import org.apache.mina.common.IoConnector;
+import org.apache.mina.common.IoSessionConfig;
/**
* A base implementation of {@link IoConnector}.
@@ -34,8 +35,9 @@
{
private int connectTimeout = 60; // 1 minute
- protected BaseIoConnector()
+ protected BaseIoConnector( IoSessionConfig sessionConfig )
{
+ super( sessionConfig );
}
public int getConnectTimeout()
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/support/BaseIoService.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/support/BaseIoService.java?view=diff&rev=479536&r1=479535&r2=479536
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/support/BaseIoService.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/support/BaseIoService.java Mon Nov 27 00:00:12 2006
@@ -28,6 +28,7 @@
import org.apache.mina.common.IoHandler;
import org.apache.mina.common.IoService;
import org.apache.mina.common.IoServiceListener;
+import org.apache.mina.common.IoSessionConfig;
import org.apache.mina.common.ThreadModel;
/**
@@ -63,9 +64,15 @@
*/
private final IoServiceListenerSupport listeners;
- protected BaseIoService()
+ /**
+ * The default {@link IoSessionConfig} which will be used to configure new sessions.
+ */
+ private IoSessionConfig sessionConfig;
+
+ protected BaseIoService( IoSessionConfig sessionConfig )
{
this.listeners = new IoServiceListenerSupport( this );
+ setSessionConfig( sessionConfig );
}
/**
@@ -73,6 +80,11 @@
*/
protected abstract Class<? extends SocketAddress> getAddressType();
+ /**
+ * Returns the type of {@link IoSessionConfig} this service uses.
+ */
+ protected abstract Class<? extends IoSessionConfig> getSessionConfigType();
+
public IoFilterChainBuilder getFilterChainBuilder()
{
return filterChainBuilder;
@@ -150,4 +162,24 @@
{
return listeners;
}
+
+ public IoSessionConfig getSessionConfig()
+ {
+ return sessionConfig;
+ }
+
+ public void setSessionConfig( IoSessionConfig sessionConfig )
+ {
+ if( sessionConfig == null )
+ {
+ throw new NullPointerException( "sessionConfig" );
+ }
+ if( ! getSessionConfigType().isAssignableFrom( sessionConfig.getClass() ) )
+ {
+ throw new IllegalArgumentException( "sessionConfig type: "
+ + sessionConfig.getClass()
+ + " (expected: " + getSessionConfigType() + ")" );
+ }
+ this.sessionConfig = sessionConfig;
+ }
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/support/DelegatedIoAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/support/DelegatedIoAcceptor.java?view=diff&rev=479536&r1=479535&r2=479536
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/support/DelegatedIoAcceptor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/support/DelegatedIoAcceptor.java Mon Nov 27 00:00:12 2006
@@ -133,6 +133,11 @@
return delegate.getSessionConfig();
}
+ public void setSessionConfig( IoSessionConfig config )
+ {
+ delegate.setSessionConfig( config );
+ }
+
public ThreadModel getThreadModel()
{
return delegate.getThreadModel();
Modified: mina/trunk/core/src/main/java/org/apache/mina/common/support/DelegatedIoConnector.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/support/DelegatedIoConnector.java?view=diff&rev=479536&r1=479535&r2=479536
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/support/DelegatedIoConnector.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/support/DelegatedIoConnector.java Mon Nov 27 00:00:12 2006
@@ -121,7 +121,12 @@
{
return delegate.getSessionConfig();
}
-
+
+ public void setSessionConfig( IoSessionConfig config )
+ {
+ delegate.setSessionConfig( config );
+ }
+
public ThreadModel getThreadModel()
{
return delegate.getThreadModel();
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=479536&r1=479535&r2=479536
==============================================================================
--- 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 Nov 27 00:00:12 2006
@@ -62,15 +62,4 @@
{
( ( DatagramAcceptorDelegate ) delegate ).setSessionRecycler( sessionRecycler );
}
-
- /**
- * Sets the {@link DatagramSessionConfig} this acceptor will use for new sessions.
- *
- * @param sessionConfig the config.
- * @throws NullPointerException if the specified value is <code>null</code>.
- */
- public void setSessionConfig( DatagramSessionConfig sessionConfig )
- {
- ( ( DatagramAcceptorDelegate ) delegate ).setSessionConfig( sessionConfig );
- }
}
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=479536&r1=479535&r2=479536
==============================================================================
--- 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 Nov 27 00:00:12 2006
@@ -62,15 +62,4 @@
{
( ( DatagramConnectorDelegate ) delegate ).setSessionRecycler( sessionRecycler );
}
-
- /**
- * Sets the {@link DatagramSessionConfig} this connector will use for new sessions.
- *
- * @param sessionConfig the config.
- * @throws NullPointerException if the specified value is <code>null</code>.
- */
- public void setSessionConfig( DatagramSessionConfig sessionConfig )
- {
- ( ( DatagramConnectorDelegate ) delegate ).setSessionConfig( sessionConfig );
- }
}
Added: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultDatagramSessionConfig.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultDatagramSessionConfig.java?view=auto&rev=479536
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultDatagramSessionConfig.java (added)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultDatagramSessionConfig.java Mon Nov 27 00:00:12 2006
@@ -0,0 +1,237 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.mina.transport.socket.nio;
+
+import java.net.DatagramSocket;
+import java.net.SocketException;
+
+import org.apache.mina.common.RuntimeIOException;
+import org.apache.mina.common.support.BaseIoSessionConfig;
+
+/**
+ * @author The Apache Directory Project (mina-dev@directory.apache.org)
+ * @version $Rev: 439913 $, $Date: 2006-09-04 05:12:43 +0200 (mån, 04 sep 2006) $
+ */
+public class DefaultDatagramSessionConfig extends BaseIoSessionConfig implements DatagramSessionConfig
+{
+ private static boolean SET_RECEIVE_BUFFER_SIZE_AVAILABLE = false;
+ private static boolean SET_SEND_BUFFER_SIZE_AVAILABLE = false;
+ private static boolean GET_TRAFFIC_CLASS_AVAILABLE = false;
+ private static boolean SET_TRAFFIC_CLASS_AVAILABLE = false;
+
+ private static boolean DEFAULT_BROADCAST;
+ private static boolean DEFAULT_REUSE_ADDRESS;
+ private static int DEFAULT_RECEIVE_BUFFER_SIZE;
+ private static int DEFAULT_SEND_BUFFER_SIZE;
+ private static int DEFAULT_TRAFFIC_CLASS;
+
+ static
+ {
+ initialize();
+ }
+
+ private static void initialize()
+ {
+ DatagramSocket socket = null;
+
+ try
+ {
+ socket = new DatagramSocket();
+ DEFAULT_BROADCAST = socket.getBroadcast();
+ DEFAULT_REUSE_ADDRESS = socket.getReuseAddress();
+ DEFAULT_RECEIVE_BUFFER_SIZE = socket.getReceiveBufferSize();
+ DEFAULT_SEND_BUFFER_SIZE = socket.getSendBufferSize();
+
+ // Check if setReceiveBufferSize is supported.
+ try
+ {
+ socket.setReceiveBufferSize(DEFAULT_RECEIVE_BUFFER_SIZE);
+ SET_RECEIVE_BUFFER_SIZE_AVAILABLE = true;
+ }
+ catch( SocketException e )
+ {
+ SET_RECEIVE_BUFFER_SIZE_AVAILABLE = false;
+ }
+
+ // Check if setSendBufferSize is supported.
+ try
+ {
+ socket.setSendBufferSize(DEFAULT_SEND_BUFFER_SIZE);
+ SET_SEND_BUFFER_SIZE_AVAILABLE = true;
+ }
+ catch( SocketException e )
+ {
+ SET_SEND_BUFFER_SIZE_AVAILABLE = false;
+ }
+
+ // Check if getTrafficClass is supported.
+ try
+ {
+ DEFAULT_TRAFFIC_CLASS = socket.getTrafficClass();
+ GET_TRAFFIC_CLASS_AVAILABLE = true;
+ }
+ catch( SocketException e )
+ {
+ GET_TRAFFIC_CLASS_AVAILABLE = false;
+ DEFAULT_TRAFFIC_CLASS = 0;
+ }
+ } catch (SocketException e) {
+ throw new ExceptionInInitializerError(e);
+ }
+ finally {
+ if( socket != null )
+ {
+ socket.close();
+ }
+ }
+ }
+
+ public static boolean isSetReceiveBufferSizeAvailable() {
+ return SET_RECEIVE_BUFFER_SIZE_AVAILABLE;
+ }
+
+ public static boolean isSetSendBufferSizeAvailable() {
+ return SET_SEND_BUFFER_SIZE_AVAILABLE;
+ }
+
+ public static boolean isGetTrafficClassAvailable() {
+ return GET_TRAFFIC_CLASS_AVAILABLE;
+ }
+
+ public static boolean isSetTrafficClassAvailable() {
+ return SET_TRAFFIC_CLASS_AVAILABLE;
+ }
+
+ private boolean broadcast = DEFAULT_BROADCAST;
+ private boolean reuseAddress = DEFAULT_REUSE_ADDRESS;
+ private int receiveBufferSize = DEFAULT_RECEIVE_BUFFER_SIZE;
+ private int sendBufferSize = DEFAULT_SEND_BUFFER_SIZE;
+ private int trafficClass = DEFAULT_TRAFFIC_CLASS;
+
+ /**
+ * Creates a new instance.
+ *
+ * @throws RuntimeIOException if failed to get the default configuration
+ */
+ public DefaultDatagramSessionConfig()
+ {
+ DatagramSocket s = null;
+ try
+ {
+ s = new DatagramSocket();
+ broadcast = s.getBroadcast();
+ reuseAddress = s.getReuseAddress();
+ receiveBufferSize = s.getReceiveBufferSize();
+ sendBufferSize = s.getSendBufferSize();
+ trafficClass = s.getTrafficClass();
+ }
+ catch( SocketException e )
+ {
+ throw new RuntimeIOException( "Failed to get the default configuration.", e );
+ }
+ finally
+ {
+ if( s != null )
+ {
+ s.close();
+ }
+ }
+ }
+
+ /**
+ * @see DatagramSocket#getBroadcast()
+ */
+ public boolean isBroadcast()
+ {
+ return broadcast;
+ }
+
+ /**
+ * @see DatagramSocket#setBroadcast(boolean)
+ */
+ public void setBroadcast( boolean broadcast )
+ {
+ this.broadcast = broadcast;
+ }
+
+ /**
+ * @see DatagramSocket#getReuseAddress()
+ */
+ public boolean isReuseAddress()
+ {
+ return reuseAddress;
+ }
+
+ /**
+ * @see DatagramSocket#setReuseAddress(boolean)
+ */
+ public void setReuseAddress( boolean reuseAddress )
+ {
+ this.reuseAddress = reuseAddress;
+ }
+
+ /**
+ * @see DatagramSocket#getReceiveBufferSize()
+ */
+ public int getReceiveBufferSize()
+ {
+ return receiveBufferSize;
+ }
+
+ /**
+ * @see DatagramSocket#setReceiveBufferSize(int)
+ */
+ public void setReceiveBufferSize( int receiveBufferSize )
+ {
+ this.receiveBufferSize = receiveBufferSize;
+ }
+
+ /**
+ * @see DatagramSocket#getSendBufferSize()
+ */
+ public int getSendBufferSize()
+ {
+ return sendBufferSize;
+ }
+
+ /**
+ * @see DatagramSocket#setSendBufferSize(int)
+ */
+ public void setSendBufferSize( int sendBufferSize )
+ {
+ this.sendBufferSize = sendBufferSize;
+ }
+
+ /**
+ * @see DatagramSocket#getTrafficClass()
+ */
+ public int getTrafficClass()
+ {
+ return trafficClass;
+ }
+
+ /**
+ * @see DatagramSocket#setTrafficClass(int)
+ */
+ public void setTrafficClass( int trafficClass )
+ {
+ this.trafficClass = trafficClass;
+ }
+}
\ No newline at end of file
Propchange: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultDatagramSessionConfig.java
------------------------------------------------------------------------------
svn:keywords = Id
Copied: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultSocketSessionConfig.java (from r479116, mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSessionConfigImpl.java)
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultSocketSessionConfig.java?view=diff&rev=479536&p1=mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSessionConfigImpl.java&r1=479116&p2=mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultSocketSessionConfig.java&r2=479536
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketSessionConfigImpl.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultSocketSessionConfig.java Mon Nov 27 00:00:12 2006
@@ -32,7 +32,7 @@
* @author The Apache Directory Project (mina-dev@directory.apache.org)
* @version $Rev$, $Date$
*/
-class SocketSessionConfigImpl extends BaseIoSessionConfig implements SocketSessionConfig
+class DefaultSocketSessionConfig extends BaseIoSessionConfig implements SocketSessionConfig
{
private static boolean SET_RECEIVE_BUFFER_SIZE_AVAILABLE = false;
private static boolean SET_SEND_BUFFER_SIZE_AVAILABLE = false;
@@ -151,7 +151,7 @@
/**
* Creates a new instance.
*/
- SocketSessionConfigImpl()
+ DefaultSocketSessionConfig()
{
}
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=479536&r1=479535&r2=479536
==============================================================================
--- 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 Nov 27 00:00:12 2006
@@ -56,7 +56,6 @@
*/
private static volatile int nextId = 0;
- private IoSessionConfig sessionConfig = new SocketSessionConfigImpl();
private int backlog = 50;
private boolean reuseAddress;
@@ -95,6 +94,7 @@
*/
public SocketAcceptor( int processorCount, Executor executor )
{
+ super( new DefaultSocketSessionConfig() );
if( processorCount < 1 )
{
throw new IllegalArgumentException( "Must have at least one processor" );
@@ -142,26 +142,12 @@
return InetSocketAddress.class;
}
- public IoSessionConfig getSessionConfig()
+ @Override
+ protected Class<? extends IoSessionConfig> getSessionConfigType()
{
- return sessionConfig;
+ return SocketSessionConfig.class;
}
- /**
- * Sets the {@link SocketSessionConfig} this acceptor will use for new sessions.
- *
- * @param sessionConfig the config.
- * @throws NullPointerException if the specified value is <code>null</code>.
- */
- public void setSessionConfig( SocketSessionConfig sessionConfig )
- {
- if( sessionConfig == null )
- {
- throw new NullPointerException( "sessionConfig" );
- }
- this.sessionConfig = sessionConfig;
- }
-
/**
* @see ServerSocket#getReuseAddress()
*/
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=479536&r1=479535&r2=479536
==============================================================================
--- 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 Nov 27 00:00:12 2006
@@ -56,8 +56,6 @@
*/
private static volatile int nextId = 0;
- private IoSessionConfig sessionConfig = new SocketSessionConfigImpl();
-
private final Object lock = new Object();
private final int id = nextId++;
private final String threadName = "SocketConnector-" + id;
@@ -90,6 +88,7 @@
*/
public SocketConnector( int processorCount, Executor executor )
{
+ super( new DefaultSocketSessionConfig() );
if( processorCount < 1 )
{
throw new IllegalArgumentException( "Must have at least one processor" );
@@ -110,27 +109,13 @@
return InetSocketAddress.class;
}
- public IoSessionConfig getSessionConfig()
+ @Override
+ protected Class<? extends IoSessionConfig> getSessionConfigType()
{
- return sessionConfig;
+ return SocketSessionConfig.class;
}
/**
- * Sets the {@link SocketSessionConfig} this connector will use for new sessions.
- *
- * @param sessionConfig the config.
- * @throws NullPointerException if the specified value is <code>null</code>.
- */
- public void setSessionConfig( SocketSessionConfig sessionConfig )
- {
- if( sessionConfig == null )
- {
- throw new NullPointerException( "sessionConfig" );
- }
- this.sessionConfig = sessionConfig;
- }
-
- /**
* How many seconds to keep the connection thread alive between connection requests
*
* @return Number of seconds to keep connection thread alive
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=479536&r1=479535&r2=479536
==============================================================================
--- 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 Nov 27 00:00:12 2006
@@ -326,7 +326,7 @@
public int getTrafficClass()
{
- if( SocketSessionConfigImpl.isGetTrafficClassAvailable() )
+ if( DefaultSocketSessionConfig.isGetTrafficClassAvailable() )
{
try
{
@@ -335,7 +335,7 @@
catch( SocketException e )
{
// Throw an exception only when setTrafficClass is also available.
- if( SocketSessionConfigImpl.isSetTrafficClassAvailable() )
+ if( DefaultSocketSessionConfig.isSetTrafficClassAvailable() )
{
throw new RuntimeIOException( e );
}
@@ -347,7 +347,7 @@
public void setTrafficClass( int tc )
{
- if( SocketSessionConfigImpl.isSetTrafficClassAvailable() )
+ if( DefaultSocketSessionConfig.isSetTrafficClassAvailable() )
{
try
{
@@ -374,7 +374,7 @@
public void setSendBufferSize( int size )
{
- if( SocketSessionConfigImpl.isSetSendBufferSizeAvailable() )
+ if( DefaultSocketSessionConfig.isSetSendBufferSizeAvailable() )
{
try
{
@@ -401,7 +401,7 @@
public void setReceiveBufferSize( int size )
{
- if( SocketSessionConfigImpl.isSetReceiveBufferSizeAvailable() )
+ if( DefaultSocketSessionConfig.isSetReceiveBufferSizeAvailable() )
{
try
{
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=479536&r1=479535&r2=479536
==============================================================================
--- 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 Nov 27 00:00:12 2006
@@ -42,6 +42,7 @@
import org.apache.mina.common.support.BaseIoAcceptor;
import org.apache.mina.common.support.IoServiceListenerSupport;
import org.apache.mina.transport.socket.nio.DatagramSessionConfig;
+import org.apache.mina.transport.socket.nio.DefaultDatagramSessionConfig;
import org.apache.mina.util.NamePreservingRunnable;
/**
@@ -57,7 +58,6 @@
private static volatile int nextId = 0;
private IoSessionRecycler sessionRecycler = DEFAULT_RECYCLER;
- private IoSessionConfig sessionConfig = new DatagramSessionConfigImpl();
private final IoAcceptor wrapper;
private final Executor executor;
@@ -74,6 +74,7 @@
*/
public DatagramAcceptorDelegate( IoAcceptor wrapper, Executor executor )
{
+ super( new DefaultDatagramSessionConfig() );
this.wrapper = wrapper;
this.executor = executor;
}
@@ -83,6 +84,12 @@
return InetSocketAddress.class;
}
+ @Override
+ protected Class<? extends IoSessionConfig> getSessionConfigType()
+ {
+ return DatagramSessionConfig.class;
+ }
+
protected void doBind() throws IOException
{
RegistrationRequest request = new RegistrationRequest();
@@ -238,27 +245,6 @@
}
}
-
- public IoSessionConfig getSessionConfig()
- {
- return sessionConfig;
- }
-
- /**
- * Sets the {@link DatagramSessionConfig} this acceptor will use for new sessions.
- *
- * @param sessionConfig the config.
- * @throws NullPointerException if the specified value is <code>null</code>.
- */
- public void setSessionConfig( DatagramSessionConfig sessionConfig )
- {
- if( sessionConfig == null )
- {
- throw new NullPointerException( "sessionConfig" );
- }
- this.sessionConfig = sessionConfig;
- }
-
public IoServiceListenerSupport getListeners()
{
return super.getListeners();
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=479536&r1=479535&r2=479536
==============================================================================
--- 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 Nov 27 00:00:12 2006
@@ -44,6 +44,7 @@
import org.apache.mina.common.support.BaseIoConnector;
import org.apache.mina.common.support.DefaultConnectFuture;
import org.apache.mina.transport.socket.nio.DatagramSessionConfig;
+import org.apache.mina.transport.socket.nio.DefaultDatagramSessionConfig;
import org.apache.mina.util.NamePreservingRunnable;
/**
@@ -59,7 +60,6 @@
private static volatile int nextId = 0;
private IoSessionRecycler sessionRecycler = DEFAULT_RECYCLER;
- private IoSessionConfig sessionConfig = new DatagramSessionConfigImpl();
private final IoConnector wrapper;
private final Executor executor;
@@ -76,6 +76,7 @@
*/
public DatagramConnectorDelegate( IoConnector wrapper, Executor executor )
{
+ super( new DefaultDatagramSessionConfig() );
this.wrapper = wrapper;
this.executor = executor;
}
@@ -85,6 +86,12 @@
return InetSocketAddress.class;
}
+ @Override
+ protected Class<? extends IoSessionConfig> getSessionConfigType()
+ {
+ return DatagramSessionConfig.class;
+ }
+
protected ConnectFuture doConnect( SocketAddress remoteAddress, SocketAddress localAddress )
{
DatagramChannel ch = null;
@@ -176,26 +183,6 @@
this.sessionRecycler = sessionRecycler;
}
- public IoSessionConfig getSessionConfig()
- {
- return sessionConfig;
- }
-
- /**
- * Sets the {@link DatagramSessionConfig} this connector will use for new sessions.
- *
- * @param sessionConfig the config.
- * @throws NullPointerException if the specified value is <code>null</code>.
- */
- public void setSessionConfig( DatagramSessionConfig sessionConfig )
- {
- if( sessionConfig == null )
- {
- throw new NullPointerException( "sessionConfig" );
- }
- this.sessionConfig = sessionConfig;
- }
-
private synchronized void startupWorker() throws IOException
{
if( worker == null )
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=479536&r1=479535&r2=479536
==============================================================================
--- 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 Nov 27 00:00:12 2006
@@ -41,6 +41,7 @@
import org.apache.mina.common.IoFilter.WriteRequest;
import org.apache.mina.common.support.BaseIoSession;
import org.apache.mina.transport.socket.nio.DatagramSessionConfig;
+import org.apache.mina.transport.socket.nio.DefaultDatagramSessionConfig;
/**
* An {@link IoSession} for datagram transport (UDP/IP).
@@ -236,7 +237,7 @@
return readBufferSize;
}
- private class SessionConfigImpl extends DatagramSessionConfigImpl implements DatagramSessionConfig
+ private class SessionConfigImpl extends DefaultDatagramSessionConfig implements DatagramSessionConfig
{
public int getReceiveBufferSize()
{
@@ -252,7 +253,7 @@
public void setReceiveBufferSize( int receiveBufferSize )
{
- if( DatagramSessionConfigImpl.isSetReceiveBufferSizeAvailable() )
+ if( DefaultDatagramSessionConfig.isSetReceiveBufferSizeAvailable() )
{
try
{
@@ -304,7 +305,7 @@
public void setSendBufferSize( int sendBufferSize )
{
- if( DatagramSessionConfigImpl.isSetSendBufferSizeAvailable() )
+ if( DefaultDatagramSessionConfig.isSetSendBufferSizeAvailable() )
{
try
{
@@ -343,7 +344,7 @@
public int getTrafficClass()
{
- if( DatagramSessionConfigImpl.isGetTrafficClassAvailable() )
+ if( DefaultDatagramSessionConfig.isGetTrafficClassAvailable() )
{
try
{
@@ -362,7 +363,7 @@
public void setTrafficClass( int trafficClass )
{
- if( DatagramSessionConfigImpl.isSetTrafficClassAvailable() )
+ if( DefaultDatagramSessionConfig.isSetTrafficClassAvailable() )
{
try
{
Added: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/DefaultVmPipeSessionConfig.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/DefaultVmPipeSessionConfig.java?view=auto&rev=479536
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/DefaultVmPipeSessionConfig.java (added)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/DefaultVmPipeSessionConfig.java Mon Nov 27 00:00:12 2006
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.mina.transport.vmpipe;
+
+import org.apache.mina.common.support.BaseIoSessionConfig;
+
+/**
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev$, $Date$
+ */
+public class DefaultVmPipeSessionConfig extends BaseIoSessionConfig implements VmPipeSessionConfig
+{
+}
Propchange: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/DefaultVmPipeSessionConfig.java
------------------------------------------------------------------------------
svn:keywords = Id
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=479536&r1=479535&r2=479536
==============================================================================
--- 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 Nov 27 00:00:12 2006
@@ -28,7 +28,6 @@
import org.apache.mina.common.IoSession;
import org.apache.mina.common.IoSessionConfig;
import org.apache.mina.common.support.BaseIoAcceptor;
-import org.apache.mina.common.support.BaseIoSessionConfig;
import org.apache.mina.transport.vmpipe.support.VmPipe;
/**
@@ -42,13 +41,12 @@
{
static final Map<VmPipeAddress, VmPipe> boundHandlers = new HashMap<VmPipeAddress, VmPipe>();
- private static final IoSessionConfig CONFIG = new BaseIoSessionConfig() {};
-
/**
* Creates a new instance.
*/
public VmPipeAcceptor()
{
+ super( new DefaultVmPipeSessionConfig() );
}
protected Class<? extends SocketAddress> getAddressType()
@@ -56,6 +54,12 @@
return VmPipeAddress.class;
}
+ @Override
+ protected Class<? extends IoSessionConfig> getSessionConfigType()
+ {
+ return VmPipeSessionConfig.class;
+ }
+
protected void doBind() throws IOException
{
VmPipeAddress localAddress = ( VmPipeAddress ) getLocalAddress();
@@ -95,11 +99,6 @@
}
getListeners().fireServiceDeactivated();
- }
-
- public IoSessionConfig getSessionConfig()
- {
- return CONFIG;
}
public IoSession newSession( SocketAddress remoteAddress )
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=479536&r1=479535&r2=479536
==============================================================================
--- 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 Nov 27 00:00:12 2006
@@ -29,7 +29,6 @@
import org.apache.mina.common.IoSessionConfig;
import org.apache.mina.common.support.AbstractIoFilterChain;
import org.apache.mina.common.support.BaseIoConnector;
-import org.apache.mina.common.support.BaseIoSessionConfig;
import org.apache.mina.common.support.DefaultConnectFuture;
import org.apache.mina.transport.vmpipe.support.VmPipe;
import org.apache.mina.transport.vmpipe.support.VmPipeIdleStatusChecker;
@@ -45,13 +44,13 @@
*/
public class VmPipeConnector extends BaseIoConnector
{
- private static final IoSessionConfig CONFIG = new BaseIoSessionConfig() {};
/**
* Creates a new instance.
*/
public VmPipeConnector()
{
+ super( new DefaultVmPipeSessionConfig() );
}
protected Class<? extends SocketAddress> getAddressType()
@@ -59,6 +58,12 @@
return VmPipeAddress.class;
}
+ @Override
+ protected Class<? extends IoSessionConfig> getSessionConfigType()
+ {
+ return VmPipeSessionConfig.class;
+ }
+
protected ConnectFuture doConnect( SocketAddress remoteAddress, SocketAddress localAddress )
{
VmPipe entry = VmPipeAcceptor.boundHandlers.get( remoteAddress );
@@ -114,10 +119,5 @@
}
return future;
- }
-
- public IoSessionConfig getSessionConfig()
- {
- return CONFIG;
}
}
Added: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionConfig.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionConfig.java?view=auto&rev=479536
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionConfig.java (added)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionConfig.java Mon Nov 27 00:00:12 2006
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.mina.transport.vmpipe;
+
+import org.apache.mina.common.IoSessionConfig;
+
+/**
+ * An {@link IoSessionConfig} for vmpipe transport type.
+ *
+ * @author The Apache MINA Project (dev@mina.apache.org)
+ * @version $Rev$, $Date$
+ */
+public interface VmPipeSessionConfig extends IoSessionConfig
+{
+}
Propchange: mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionConfig.java
------------------------------------------------------------------------------
svn:keywords = Id