You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2011/04/08 18:17:09 UTC
svn commit: r1090321 - in /mina/branches/2.0.3:
mina-core/src/main/java/org/apache/mina/core/polling/
mina-core/src/main/java/org/apache/mina/transport/socket/nio/
mina-transport-apr/src/main/java/org/apache/mina/transport/socket/apr/
Author: elecharny
Date: Fri Apr 8 16:17:09 2011
New Revision: 1090321
URL: http://svn.apache.org/viewvc?rev=1090321&view=rev
Log:
o Moved the common backlog and reuseAddress fields in the parent class
o Changed the name of the generic for session (S instead of T)
Modified:
mina/branches/2.0.3/mina-core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoAcceptor.java
mina/branches/2.0.3/mina-core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java
mina/branches/2.0.3/mina-transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java
Modified: mina/branches/2.0.3/mina-core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoAcceptor.java
URL: http://svn.apache.org/viewvc/mina/branches/2.0.3/mina-core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoAcceptor.java?rev=1090321&r1=1090320&r2=1090321&view=diff
==============================================================================
--- mina/branches/2.0.3/mina-core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoAcceptor.java (original)
+++ mina/branches/2.0.3/mina-core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoAcceptor.java Fri Apr 8 16:17:09 2011
@@ -64,10 +64,10 @@ import org.apache.mina.util.ExceptionMon
*
* @author <a href="http://mina.apache.org">Apache MINA Project</a>
*/
-public abstract class AbstractPollingIoAcceptor<T extends AbstractIoSession, H>
+public abstract class AbstractPollingIoAcceptor<S extends AbstractIoSession, H>
extends AbstractIoAcceptor {
- private final IoProcessor<T> processor;
+ private final IoProcessor<S> processor;
private final boolean createdProcessor;
@@ -86,6 +86,14 @@ public abstract class AbstractPollingIoA
/** The thread responsible of accepting incoming requests */
private AtomicReference<Acceptor> acceptorRef = new AtomicReference<Acceptor>();
+ protected boolean reuseAddress = false;
+
+ /**
+ * Define the number of socket that can wait to be accepted. Default
+ * to 50 (as in the SocketServer default).
+ */
+ protected int backlog = 50;
+
/**
* Constructor for {@link AbstractPollingIoAcceptor}. You need to provide a default
* session configuration, a class of {@link IoProcessor} which will be instantiated in a
@@ -100,8 +108,8 @@ public abstract class AbstractPollingIoA
* type.
*/
protected AbstractPollingIoAcceptor(IoSessionConfig sessionConfig,
- Class<? extends IoProcessor<T>> processorClass) {
- this(sessionConfig, null, new SimpleIoProcessorPool<T>(processorClass),
+ Class<? extends IoProcessor<S>> processorClass) {
+ this(sessionConfig, null, new SimpleIoProcessorPool<S>(processorClass),
true);
}
@@ -120,8 +128,8 @@ public abstract class AbstractPollingIoA
* @param processorCount the amount of processor to instantiate for the pool
*/
protected AbstractPollingIoAcceptor(IoSessionConfig sessionConfig,
- Class<? extends IoProcessor<T>> processorClass, int processorCount) {
- this(sessionConfig, null, new SimpleIoProcessorPool<T>(processorClass,
+ Class<? extends IoProcessor<S>> processorClass, int processorCount) {
+ this(sessionConfig, null, new SimpleIoProcessorPool<S>(processorClass,
processorCount), true);
}
@@ -138,7 +146,7 @@ public abstract class AbstractPollingIoA
* events to the bound {@link IoHandler} and processing the chains of {@link IoFilter}
*/
protected AbstractPollingIoAcceptor(IoSessionConfig sessionConfig,
- IoProcessor<T> processor) {
+ IoProcessor<S> processor) {
this(sessionConfig, null, processor, false);
}
@@ -159,7 +167,7 @@ public abstract class AbstractPollingIoA
* events to the bound {@link IoHandler} and processing the chains of {@link IoFilter}
*/
protected AbstractPollingIoAcceptor(IoSessionConfig sessionConfig,
- Executor executor, IoProcessor<T> processor) {
+ Executor executor, IoProcessor<S> processor) {
this(sessionConfig, executor, processor, false);
}
@@ -183,7 +191,7 @@ public abstract class AbstractPollingIoA
* will be automatically disposed
*/
private AbstractPollingIoAcceptor(IoSessionConfig sessionConfig,
- Executor executor, IoProcessor<T> processor,
+ Executor executor, IoProcessor<S> processor,
boolean createdProcessor) {
super(sessionConfig, executor);
@@ -273,7 +281,7 @@ public abstract class AbstractPollingIoA
* @return the created {@link IoSession}
* @throws Exception any exception thrown by the underlying systems calls
*/
- protected abstract T accept(IoProcessor<T> processor, H handle)
+ protected abstract S accept(IoProcessor<S> processor, H handle)
throws Exception;
/**
@@ -490,7 +498,7 @@ public abstract class AbstractPollingIoA
// Associates a new created connection to a processor,
// and get back a session
- T session = accept(processor, handle);
+ S session = accept(processor, handle);
if (session == null) {
break;
@@ -609,4 +617,46 @@ public abstract class AbstractPollingIoA
SocketAddress localAddress) {
throw new UnsupportedOperationException();
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public int getBacklog() {
+ return backlog;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void setBacklog(int backlog) {
+ synchronized (bindLock) {
+ if (isActive()) {
+ throw new IllegalStateException(
+ "backlog can't be set while the acceptor is bound.");
+ }
+
+ this.backlog = backlog;
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean isReuseAddress() {
+ return reuseAddress;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void setReuseAddress(boolean reuseAddress) {
+ synchronized (bindLock) {
+ if (isActive()) {
+ throw new IllegalStateException(
+ "backlog can't be set while the acceptor is bound.");
+ }
+
+ this.reuseAddress = reuseAddress;
+ }
+ }
}
Modified: mina/branches/2.0.3/mina-core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java
URL: http://svn.apache.org/viewvc/mina/branches/2.0.3/mina-core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java?rev=1090321&r1=1090320&r2=1090321&view=diff
==============================================================================
--- mina/branches/2.0.3/mina-core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java (original)
+++ mina/branches/2.0.3/mina-core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java Fri Apr 8 16:17:09 2011
@@ -19,9 +19,11 @@
*/
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.ClosedSelectorException;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
@@ -33,6 +35,7 @@ import java.util.concurrent.Executor;
import org.apache.mina.core.polling.AbstractPollingIoAcceptor;
import org.apache.mina.core.service.IoAcceptor;
import org.apache.mina.core.service.IoProcessor;
+import org.apache.mina.core.service.IoService;
import org.apache.mina.core.service.SimpleIoProcessorPool;
import org.apache.mina.core.service.TransportMetadata;
import org.apache.mina.transport.socket.DefaultSocketSessionConfig;
@@ -49,14 +52,6 @@ public final class NioSocketAcceptor
extends AbstractPollingIoAcceptor<NioSession, ServerSocketChannel>
implements SocketAcceptor {
- /**
- * Define the number of socket that can wait to be accepted. Default
- * to 50 (as in the SocketServer default).
- */
- private int backlog = 50;
-
- private boolean reuseAddress = false;
-
private volatile Selector selector;
/**
@@ -161,48 +156,6 @@ public final class NioSocketAcceptor
/**
* {@inheritDoc}
*/
- public boolean isReuseAddress() {
- return reuseAddress;
- }
-
- /**
- * {@inheritDoc}
- */
- public void setReuseAddress(boolean reuseAddress) {
- synchronized (bindLock) {
- if (isActive()) {
- throw new IllegalStateException(
- "reuseAddress can't be set while the acceptor is bound.");
- }
-
- this.reuseAddress = reuseAddress;
- }
- }
-
- /**
- * {@inheritDoc}
- */
- public int getBacklog() {
- return backlog;
- }
-
- /**
- * {@inheritDoc}
- */
- public void setBacklog(int backlog) {
- synchronized (bindLock) {
- if (isActive()) {
- throw new IllegalStateException(
- "backlog can't be set while the acceptor is bound.");
- }
-
- this.backlog = backlog;
- }
- }
-
- /**
- * {@inheritDoc}
- */
@Override
protected NioSession accept(IoProcessor<NioSession> processor,
ServerSocketChannel handle) throws Exception {
Modified: mina/branches/2.0.3/mina-transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java
URL: http://svn.apache.org/viewvc/mina/branches/2.0.3/mina-transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java?rev=1090321&r1=1090320&r2=1090321&view=diff
==============================================================================
--- mina/branches/2.0.3/mina-transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java (original)
+++ mina/branches/2.0.3/mina-transport-apr/src/main/java/org/apache/mina/transport/socket/apr/AprSocketAcceptor.java Fri Apr 8 16:17:09 2011
@@ -61,9 +61,6 @@ public final class AprSocketAcceptor ext
private volatile long wakeupSocket;
private volatile boolean toBeWakenUp;
- private int backlog = 50;
- private boolean reuseAddress = false;
-
private volatile long pool;
private volatile long pollset; // socket poller
private final long[] polledSockets = new long[POLLSET_SIZE << 1];
@@ -342,34 +339,6 @@ public final class AprSocketAcceptor ext
/**
* {@inheritDoc}
*/
- public int getBacklog() {
- return backlog;
- }
-
- /**
- * {@inheritDoc}
- */
- public boolean isReuseAddress() {
- return reuseAddress;
- }
-
- /**
- * {@inheritDoc}
- */
- public void setBacklog(int backlog) {
- synchronized (bindLock) {
- if (isActive()) {
- throw new IllegalStateException(
- "backlog can't be set while the acceptor is bound.");
- }
-
- this.backlog = backlog;
- }
- }
-
- /**
- * {@inheritDoc}
- */
@Override
public InetSocketAddress getLocalAddress() {
return (InetSocketAddress) super.getLocalAddress();
@@ -390,17 +359,6 @@ public final class AprSocketAcceptor ext
super.setDefaultLocalAddress(localAddress);
}
- public void setReuseAddress(boolean reuseAddress) {
- synchronized (bindLock) {
- if (isActive()) {
- throw new IllegalStateException(
- "backlog can't be set while the acceptor is bound.");
- }
-
- this.reuseAddress = reuseAddress;
- }
- }
-
/**
* {@inheritDoc}
*/