You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2008/04/30 14:11:24 UTC
svn commit: r652354 - in
/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener:
Listener.java mina/MinaListener.java
Author: ngn
Date: Wed Apr 30 05:11:24 2008
New Revision: 652354
URL: http://svn.apache.org/viewvc?rev=652354&view=rev
Log:
Adding support for retriving the active sessions for a Listener
Modified:
mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/Listener.java
mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/mina/MinaListener.java
Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/Listener.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/Listener.java?rev=652354&r1=652353&r2=652354&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/Listener.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/Listener.java Wed Apr 30 05:11:24 2008
@@ -19,14 +19,17 @@
package org.apache.ftpserver.listener;
+import java.util.Set;
+
import org.apache.ftpserver.interfaces.DataConnectionConfig;
+import org.apache.ftpserver.interfaces.FtpIoSession;
import org.apache.ftpserver.interfaces.FtpServerContext;
import org.apache.ftpserver.ssl.SslConfiguration;
/**
* Interface for the component responsible for waiting for incoming
- * socket requests and kicking off {@link Connection}s
+ * socket requests and kicking off {@link FtpIoSession}s
*
*/
public interface Listener {
@@ -79,4 +82,11 @@
* @return True if the listener is suspended
*/
boolean isSuspended();
+
+ /**
+ * Returns the currently active sessions for this listener.
+ * If no sessions are active, an empty {@link Set} would be returned.
+ * @return The currently active sessions
+ */
+ Set<FtpIoSession> getActiveSessions();
}
\ No newline at end of file
Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/mina/MinaListener.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/mina/MinaListener.java?rev=652354&r1=652353&r2=652354&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/mina/MinaListener.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/listener/mina/MinaListener.java Wed Apr 30 05:11:24 2008
@@ -23,19 +23,23 @@
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.TimeUnit;
import org.apache.ftpserver.DefaultFtpHandler;
import org.apache.ftpserver.FtpHandler;
import org.apache.ftpserver.filter.FtpLoggingFilter;
+import org.apache.ftpserver.interfaces.FtpIoSession;
import org.apache.ftpserver.interfaces.FtpServerContext;
import org.apache.ftpserver.listener.AbstractListener;
import org.apache.ftpserver.listener.Listener;
import org.apache.ftpserver.ssl.ClientAuth;
import org.apache.ftpserver.ssl.SslConfiguration;
import org.apache.mina.common.IdleStatus;
+import org.apache.mina.common.IoSession;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.executor.ExecutorFilter;
import org.apache.mina.filter.executor.OrderedThreadPoolExecutor;
@@ -72,6 +76,8 @@
private List<InetAddress> blockedAddresses;
private List<Subnet> blockedSubnets;
+ private FtpServerContext context;
+
public int getIdleTimeout() {
return idleTimeout;
@@ -103,6 +109,8 @@
* @see Listener#start(FtpServerContext)
*/
public void start(FtpServerContext context) throws Exception {
+ this.context = context;
+
acceptor = new NioSocketAcceptor(Runtime.getRuntime().availableProcessors());
@@ -281,4 +289,17 @@
this.blockedSubnets = blockedSubnets;
updateBlacklistFilter();
}
+
+ /**
+ * @see Listener#getActiveSessions()
+ */
+ public Set<FtpIoSession> getActiveSessions() {
+ Set<IoSession> sessions = acceptor.getManagedSessions();
+
+ Set<FtpIoSession> ftpSessions = new HashSet<FtpIoSession>();
+ for(IoSession session : sessions) {
+ ftpSessions.add(new FtpIoSession(session, context));
+ }
+ return ftpSessions;
+ }
}
\ No newline at end of file