Author: norman
Date: Thu Jun 23 09:04:00 2011
New Revision: 1138778
URL: http://svn.apache.org/viewvc?rev=1138778&view=rev
Log:
Add DisconnectHandler. See PROTOCOLS-25
Added:
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/DisconnectHandler.java
Modified:
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelUpstreamHandler.java
Added:
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/DisconnectHandler.java
URL:
http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/DisconnectHandler.java?rev=1138778&view=auto
==============================================================================
---
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/DisconnectHandler.java
(added)
+++
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/DisconnectHandler.java
Thu Jun 23 09:04:00 2011
@@ -0,0 +1,33 @@
+/****************************************************************
+ * 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.james.protocols.api;
+
+
+public interface DisconnectHandler<Session extends ProtocolSession> extends
ProtocolHandler{
+ /**
+ * Get called on disconnect
+ *
+ * @param session
+ **/
+ void onDisconnect(Session session);
+
+}
Modified:
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelUpstreamHandler.java
URL:
http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelUpstreamHandler.java?rev=1138778&r1=1138777&r2=1138778&view=diff
==============================================================================
---
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelUpstreamHandler.java
(original)
+++
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/AbstractChannelUpstreamHandler.java
Thu Jun 23 09:04:00 2011
@@ -24,6 +24,7 @@ import java.util.List;
import org.apache.james.protocols.api.ConnectHandler;
import org.apache.james.protocols.api.ConnectHandlerResultHandler;
+import org.apache.james.protocols.api.DisconnectHandler;
import org.apache.james.protocols.api.LineHandler;
import org.apache.james.protocols.api.LineHandlerResultHandler;
import org.apache.james.protocols.api.ProtocolHandlerChain;
@@ -93,6 +94,22 @@ public abstract class AbstractChannelUps
+ @Override
+ public void channelDisconnected(ChannelHandlerContext ctx,
ChannelStateEvent e) throws Exception {
+ List<DisconnectHandler> connectHandlers =
chain.getHandlers(DisconnectHandler.class);
+ ProtocolSession session = (ProtocolSession)
attributes.get(ctx.getChannel());
+ if (connectHandlers != null) {
+ for (int i = 0; i < connectHandlers.size(); i++) {
+ DisconnectHandler cHandler = connectHandlers.get(i);
+
+ connectHandlers.get(i).onDisconnect(session);
+
+ }
+ }
+ super.channelDisconnected(ctx, e);
+ }
+
+
/**
* Call the {@link LineHandler}
*/
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]