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}
      */