Author: apaliwal
Date: Thu Aug 19 12:45:23 2010
New Revision: 987151
URL: http://svn.apache.org/viewvc?rev=987151&view=rev
Log:
Completed the listener add/remove code, moving to appropriate classes
Modified:
mina/branches/3.0/core/src/main/java/org/apache/mina/service/AbstractIoService.java
mina/branches/3.0/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java
mina/branches/3.0/core/src/test/java/org/apache/mina/transport/socket/nio/NioAcceptorTest.java
Modified:
mina/branches/3.0/core/src/main/java/org/apache/mina/service/AbstractIoService.java
URL:
http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/service/AbstractIoService.java?rev=987151&r1=987150&r2=987151&view=diff
==============================================================================
---
mina/branches/3.0/core/src/main/java/org/apache/mina/service/AbstractIoService.java
(original)
+++
mina/branches/3.0/core/src/main/java/org/apache/mina/service/AbstractIoService.java
Thu Aug 19 12:45:23 2010
@@ -19,23 +19,60 @@
*/
package org.apache.mina.service;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
import org.apache.mina.IoService;
+import org.apache.mina.IoServiceListener;
import org.apache.mina.IoSession;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CopyOnWriteArrayList;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
/**
* Base implementation for {...@link IoService}s.
*
* @author <a href="http://mina.apache.org">Apache MINA Project</a>
*/
public abstract class AbstractIoService implements IoService {
+
+ static final Logger LOG = LoggerFactory.getLogger(AbstractIoService.class);
- private final Map<Long, IoSession> managedSessions = new
ConcurrentHashMap<Long, IoSession>();
+ private final Map<Long, IoSession> managedSessions = new
ConcurrentHashMap<Long, IoSession>();
+
+ /**
+ * Placeholder for storing all the listeners added
+ */
+ private final List<IoServiceListener> listeners = new
CopyOnWriteArrayList<IoServiceListener>();
@Override
public Map<Long, IoSession> getManagedSessions() {
return managedSessions;
}
-}
+
+ /**
+ *
+ * {...@inheritdoc}
+ */
+ @Override
+ public void addListener(IoServiceListener listener) {
+ if(listener != null) {
+ listeners.add(listener);
+ return;
+ }
+
+ LOG.warn("Trying to add Null Listener");
+ }
+
+ /**
+ *
+ * {...@inheritdoc}
+ */
+ @Override
+ public void removeListener(IoServiceListener listener) {
+ if(listener != null) {
+ listeners.remove(listener);
+ }
+ }
+}
\ No newline at end of file
Modified:
mina/branches/3.0/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java
URL:
http://svn.apache.org/viewvc/mina/branches/3.0/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java?rev=987151&r1=987150&r2=987151&view=diff
==============================================================================
---
mina/branches/3.0/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java
(original)
+++
mina/branches/3.0/core/src/main/java/org/apache/mina/transport/socket/nio/NioSocketAcceptor.java
Thu Aug 19 12:45:23 2010
@@ -25,6 +25,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
+import org.apache.mina.IoServiceListener;
import org.apache.mina.service.AbstractIoAcceptor;
import org.apache.mina.service.SelectorStrategy;
import org.slf4j.Logger;
@@ -92,4 +93,6 @@ public class NioSocketAcceptor extends A
unbind(socketAddress);
}
}
+
+
}
\ No newline at end of file
Modified:
mina/branches/3.0/core/src/test/java/org/apache/mina/transport/socket/nio/NioAcceptorTest.java
URL:
http://svn.apache.org/viewvc/mina/branches/3.0/core/src/test/java/org/apache/mina/transport/socket/nio/NioAcceptorTest.java?rev=987151&r1=987150&r2=987151&view=diff
==============================================================================
---
mina/branches/3.0/core/src/test/java/org/apache/mina/transport/socket/nio/NioAcceptorTest.java
(original)
+++
mina/branches/3.0/core/src/test/java/org/apache/mina/transport/socket/nio/NioAcceptorTest.java
Thu Aug 19 12:45:23 2010
@@ -54,6 +54,7 @@ public class NioAcceptorTest {
LOG.debug("Unbinding");
acceptor.unbind(new InetSocketAddress(9999));
+
LOG.debug("Trying to rebind the freed port");
acceptor.bind(new InetSocketAddress(9999));
LOG.debug("Bound");