You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ad...@apache.org on 2011/08/26 02:23:13 UTC

svn commit: r1161946 - in /mina/sandbox/adc/ahc/mina3/src: main/java/org/apache/ahc/mina3/ main/java/org/apache/mina/core/ main/java/org/apache/mina/core/state/ main/java/org/apache/mina/link/ main/java/org/apache/mina/nio/ main/java/org/apache/mina/ss...

Author: adc
Date: Fri Aug 26 00:23:12 2011
New Revision: 1161946

URL: http://svn.apache.org/viewvc?rev=1161946&view=rev
Log:
Maybe we don't need the FSM state object

Removed:
    mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/state/Context.java
Modified:
    mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/ahc/mina3/AsyncHttpConnection.java
    mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/EquipmentStack.java
    mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/IoChannelState.java
    mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/IoFilter.java
    mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/state/Event.java
    mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/state/EventListener.java
    mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/state/StateMachineFilter.java
    mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/DownState.java
    mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/Link.java
    mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/Token.java
    mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/UpState.java
    mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/nio/NioSocketConnector.java
    mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/ClosedChannelState.java
    mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/ClosingChannelState.java
    mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/FinishedChannelState.java
    mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/HandshakeChannelState.java
    mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/SSLEngine.java
    mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/SslListener.java
    mina/sandbox/adc/ahc/mina3/src/test/java/com/acme/chain/CountFilter.java
    mina/sandbox/adc/ahc/mina3/src/test/java/com/acme/chain/CountFilterTest.java
    mina/sandbox/adc/ahc/mina3/src/test/java/com/acme/chain/EchoFilterTest.java
    mina/sandbox/adc/ahc/mina3/src/test/java/org/apache/ahc/mina3/EquipmentStackTest.java

Modified: mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/ahc/mina3/AsyncHttpConnection.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/ahc/mina3/AsyncHttpConnection.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/ahc/mina3/AsyncHttpConnection.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/ahc/mina3/AsyncHttpConnection.java Fri Aug 26 00:23:12 2011
@@ -22,8 +22,8 @@ import java.net.InetSocketAddress;
 import java.net.URL;
 
 import org.apache.mina.core.IoConnector;
-import org.apache.mina.core.api.IoFuture;
 import org.apache.mina.core.IoSession;
+import org.apache.mina.core.api.IoFuture;
 
 import org.apache.ahc.api.HttpClient;
 import org.apache.ahc.api.HttpClientFuture;

Modified: mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/EquipmentStack.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/EquipmentStack.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/EquipmentStack.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/EquipmentStack.java Fri Aug 26 00:23:12 2011
@@ -18,10 +18,6 @@
  */
 package org.apache.mina.core;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
 /**
  * @author <a href="http://mina.apache.org">Apache MINA Project</a>
  */

Modified: mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/IoChannelState.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/IoChannelState.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/IoChannelState.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/IoChannelState.java Fri Aug 26 00:23:12 2011
@@ -18,7 +18,6 @@
  */
 package org.apache.mina.core;
 
-import org.apache.mina.core.state.Context;
 import org.apache.mina.core.state.Event;
 
 
@@ -31,7 +30,7 @@ public interface IoChannelState<U, D, S 
 
     void destroy();
 
-    void send(Context<S> context, D message) throws Exception;
+    S send(D message) throws Exception;
 
-    void receive(Context<S> context, U message) throws Exception;
+    S receive(U message) throws Exception;
 }

Modified: mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/IoFilter.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/IoFilter.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/IoFilter.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/IoFilter.java Fri Aug 26 00:23:12 2011
@@ -18,11 +18,6 @@
  */
 package org.apache.mina.core;
 
-import org.apache.mina.core.api.IoDown;
-import org.apache.mina.core.api.IoListener;
-import org.apache.mina.core.api.IoUp;
-
-
 /**
  * @author <a href="http://mina.apache.org">Apache MINA Project</a>
  */

Modified: mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/state/Event.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/state/Event.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/state/Event.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/state/Event.java Fri Aug 26 00:23:12 2011
@@ -18,10 +18,6 @@
  */
 package org.apache.mina.core.state;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
 /**
  * @author <a href="http://mina.apache.org">Apache MINA Project</a>
  */

Modified: mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/state/EventListener.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/state/EventListener.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/state/EventListener.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/state/EventListener.java Fri Aug 26 00:23:12 2011
@@ -18,10 +18,6 @@
  */
 package org.apache.mina.core.state;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
 /**
  * @author <a href="http://mina.apache.org">Apache MINA Project</a>
  */

Modified: mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/state/StateMachineFilter.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/state/StateMachineFilter.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/state/StateMachineFilter.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/core/state/StateMachineFilter.java Fri Aug 26 00:23:12 2011
@@ -97,7 +97,7 @@ public abstract class StateMachineFilter
         IoChannelState<U, D, S, E> channelState = states.get(state);
 
         equipmentStack.inject(channelState);
-        channelState.send(new StateMachineContext(), message);
+        state = channelState.send(message);
         equipmentStack.collect(channelState);
     }
 
@@ -108,7 +108,7 @@ public abstract class StateMachineFilter
         IoChannelState<U, D, S, E> channelState = states.get(state);
 
         equipmentStack.inject(channelState);
-        channelState.receive(new StateMachineContext(), message);
+        state = channelState.receive(message);
         equipmentStack.collect(channelState);
     }
 
@@ -119,7 +119,7 @@ public abstract class StateMachineFilter
         IoChannelState<U, D, S, E> channelState = states.get(state);
 
         equipmentStack.inject(channelState);
-        fireEvent(channelState, new StateMachineContext(), event);
+        fireEvent(channelState, event);
         equipmentStack.collect(channelState);
     }
 
@@ -129,10 +129,9 @@ public abstract class StateMachineFilter
         events.offer(event);
     }
 
-    private void fireEvent(IoChannelState<U, D, S, E> state, StateMachineContext context, E event) throws HandlerException
+    private void fireEvent(IoChannelState<U, D, S, E> channelState, E event) throws HandlerException
     {
         assert state != null;
-        assert context != null;
         assert event != null;
 
         for (Method method : state.getClass().getMethods())
@@ -146,7 +145,7 @@ public abstract class StateMachineFilter
                     {
                         try
                         {
-                            method.invoke(state, context, event);
+                            state = (S)method.invoke(state, event);
                             return;
                         }
                         catch (IllegalAccessException iae)
@@ -163,17 +162,4 @@ public abstract class StateMachineFilter
         }
         throw new HandlerMissingException();
     }
-
-    private class StateMachineContext implements Context<S>
-    {
-        public S getState()
-        {
-            return StateMachineFilter.this.getState();
-        }
-
-        public void setState(S state)
-        {
-            StateMachineFilter.this.setState(state);
-        }
-    }
 }

Modified: mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/DownState.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/DownState.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/DownState.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/DownState.java Fri Aug 26 00:23:12 2011
@@ -27,7 +27,6 @@ import org.apache.mina.core.BaseChannelS
 import org.apache.mina.core.api.IoDown;
 import org.apache.mina.core.api.IoProperty;
 import org.apache.mina.core.api.IoPropertyScope;
-import org.apache.mina.core.state.Context;
 
 
 /**
@@ -42,14 +41,14 @@ public class DownState extends BaseChann
 
 
     @Override
-    public void send(Context<State> stateContext, Token message) throws Exception
+    public State send(Token message) throws Exception
     {
         LOG.error("Should not have been sent a token");
         throw new UnsupportedOperationException("Link state channel does not support message sending");
     }
 
     @Override
-    public void receive(Context<State> stateContext, Token message) throws Exception
+    public State receive(Token message) throws Exception
     {
         LOG.debug("Received token, tokens={}", numTokens);
 
@@ -57,19 +56,23 @@ public class DownState extends BaseChann
         {
             for (LinkListener listener : listeners) listener.up();
 
-            stateContext.setState(State.UP);
             child.send(new Token());
+
+            return State.UP;
         }
         else if (numTokens == 1)
         {
             for (LinkListener listener : listeners) listener.up();
 
-            stateContext.setState(State.UP);
             child.send(new Token());
+
+            return State.UP;
         }
         else if (numTokens == 0)
         {
             numTokens++;
         }
+
+        return State.DOWN;
     }
 }

Modified: mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/Link.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/Link.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/Link.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/Link.java Fri Aug 26 00:23:12 2011
@@ -49,7 +49,7 @@ public class Link extends StateMachineFi
     public Link()
     {
         register(State.UP, new UpState());
-        register(State.UP, new DownState());
+        register(State.DOWN, new DownState());
     }
 
     public IoDown<Token> getChild()

Modified: mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/Token.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/Token.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/Token.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/Token.java Fri Aug 26 00:23:12 2011
@@ -18,10 +18,6 @@
  */
 package org.apache.mina.link;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
 /**
  * @author <a href="http://mina.apache.org">Apache MINA Project</a>
  */

Modified: mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/UpState.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/UpState.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/UpState.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/link/UpState.java Fri Aug 26 00:23:12 2011
@@ -28,7 +28,6 @@ import org.apache.mina.core.api.IoDown;
 import org.apache.mina.core.api.IoEvent;
 import org.apache.mina.core.api.IoProperty;
 import org.apache.mina.core.api.IoPropertyScope;
-import org.apache.mina.core.state.Context;
 
 
 /**
@@ -42,14 +41,14 @@ public class UpState extends BaseChannel
     @IoProperty protected IoDown<Token> child;
 
     @Override
-    public void send(Context<State> stateContext, Token message) throws Exception
+    public State send(Token message) throws Exception
     {
         LOG.error("Should not have been sent a token");
         throw new UnsupportedOperationException("Link state channel does not support message sending");
     }
 
     @Override
-    public void receive(Context<State> stateContext, Token message) throws Exception
+    public State receive(Token message) throws Exception
     {
         LOG.debug("Received token, tokens={}", numTokens);
 
@@ -57,17 +56,20 @@ public class UpState extends BaseChannel
         {
             for (LinkListener listener : listeners) listener.down();
 
-            stateContext.setState(State.DOWN);
             child.send(new Token());
+
+            return State.DOWN;
         }
         else if (numTokens == 1)
         {
             numTokens++;
         }
+
+        return State.UP;
     }
 
     @IoEvent(name = "timeout", type = TimeoutEvent.class)
-    public void handle(Context<State> stateContext, TimeoutEvent event) throws Exception
+    public State handle(TimeoutEvent event) throws Exception
     {
         LOG.debug("Received timeout event, tokens={}", numTokens);
 
@@ -76,16 +78,20 @@ public class UpState extends BaseChannel
             for (LinkListener listener : listeners) listener.down();
 
             numTokens--;
-            stateContext.setState(State.DOWN);
             child.send(new Token());
+
+            return State.DOWN;
         }
         else if (numTokens == 1)
         {
             for (LinkListener listener : listeners) listener.down();
 
             numTokens--;
-            stateContext.setState(State.DOWN);
             child.send(new Token());
+
+            return State.DOWN;
         }
+
+        return State.UP;
     }
 }

Modified: mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/nio/NioSocketConnector.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/nio/NioSocketConnector.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/nio/NioSocketConnector.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/nio/NioSocketConnector.java Fri Aug 26 00:23:12 2011
@@ -23,9 +23,9 @@ import java.net.SocketAddress;
 
 import org.apache.mina.core.IoConfig;
 import org.apache.mina.core.IoConnector;
+import org.apache.mina.core.IoSession;
 import org.apache.mina.core.api.IoFuture;
 import org.apache.mina.core.api.IoListener;
-import org.apache.mina.core.IoSession;
 
 
 /**

Modified: mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/ClosedChannelState.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/ClosedChannelState.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/ClosedChannelState.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/ClosedChannelState.java Fri Aug 26 00:23:12 2011
@@ -19,7 +19,6 @@
 package org.apache.mina.ssl;
 
 import org.apache.mina.core.IoChannelState;
-import org.apache.mina.core.state.Context;
 import org.apache.mina.nio.IoByteBuffer;
 
 
@@ -39,14 +38,16 @@ public class ClosedChannelState implemen
     }
 
     @Override
-    public void send(Context<SslStates> sslStatesPContext, IoByteBuffer message) throws Exception
+    public SslStates send(IoByteBuffer message) throws Exception
     {
         //Todo change body of implemented methods use File | Settings | File Templates.
+        return null;
     }
 
     @Override
-    public void receive(Context<SslStates> sslStatesContext, IoByteBuffer message) throws Exception
+    public SslStates receive(IoByteBuffer message) throws Exception
     {
         //Todo change body of implemented methods use File | Settings | File Templates.
+        return null;
     }
 }

Modified: mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/ClosingChannelState.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/ClosingChannelState.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/ClosingChannelState.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/ClosingChannelState.java Fri Aug 26 00:23:12 2011
@@ -19,7 +19,6 @@
 package org.apache.mina.ssl;
 
 import org.apache.mina.core.IoChannelState;
-import org.apache.mina.core.state.Context;
 import org.apache.mina.nio.IoByteBuffer;
 
 
@@ -39,14 +38,16 @@ public class ClosingChannelState impleme
     }
 
     @Override
-    public void send(Context<SslStates> sslStatesPContext, IoByteBuffer message) throws Exception
+    public SslStates send(IoByteBuffer message) throws Exception
     {
         //Todo change body of implemented methods use File | Settings | File Templates.
+        return null;
     }
 
     @Override
-    public void receive(Context<SslStates> sslStatesPContext, IoByteBuffer message) throws Exception
+    public SslStates receive(IoByteBuffer message) throws Exception
     {
         //Todo change body of implemented methods use File | Settings | File Templates.
+        return null;
     }
 }

Modified: mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/FinishedChannelState.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/FinishedChannelState.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/FinishedChannelState.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/FinishedChannelState.java Fri Aug 26 00:23:12 2011
@@ -27,7 +27,6 @@ import org.slf4j.LoggerFactory;
 import org.apache.mina.core.BaseChannelState;
 import org.apache.mina.core.api.IoProperty;
 import org.apache.mina.core.api.IoPropertyScope;
-import org.apache.mina.core.state.Context;
 import org.apache.mina.nio.IoByteBuffer;
 
 
@@ -53,14 +52,16 @@ public class FinishedChannelState extend
     }
 
     @Override
-    public void send(Context<SslStates> context, IoByteBuffer message) throws Exception
+    public SslStates send(IoByteBuffer message) throws Exception
     {
         //Todo change body of implemented methods use File | Settings | File Templates.
+        return null;
     }
 
     @Override
-    public void receive(Context<SslStates> context, IoByteBuffer message) throws Exception
+    public SslStates receive(IoByteBuffer message) throws Exception
     {
         //Todo change body of implemented methods use File | Settings | File Templates.
+        return null;
     }
 }

Modified: mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/HandshakeChannelState.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/HandshakeChannelState.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/HandshakeChannelState.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/HandshakeChannelState.java Fri Aug 26 00:23:12 2011
@@ -31,7 +31,6 @@ import org.apache.mina.core.api.IoEvent;
 import org.apache.mina.core.api.IoProperty;
 import org.apache.mina.core.api.IoPropertyScope;
 import org.apache.mina.core.api.IoUp;
-import org.apache.mina.core.state.Context;
 import org.apache.mina.nio.IoByteBuffer;
 
 
@@ -49,7 +48,7 @@ public class HandshakeChannelState exten
     @IoProperty private IoUp<IoByteBuffer> parent;
 
     @Override
-    public void send(Context<SslStates> context, IoByteBuffer message) throws Exception
+    public SslStates send(IoByteBuffer message) throws Exception
     {
         IoByteBuffer ioByteBuffer = (IoByteBuffer)message;
 
@@ -81,10 +80,12 @@ public class HandshakeChannelState exten
 
         child.send(byteBuffer);
         message.recycle();
+
+        return SslStates.HANDSHAKE;
     }
 
     @Override
-    public void receive(Context<SslStates> context, IoByteBuffer message) throws Exception
+    public SslStates receive(IoByteBuffer message) throws Exception
     {
         IoByteBuffer byteBuffer = factory.allocate(engine.getSession().getPacketBufferSize()).get();
 
@@ -94,43 +95,51 @@ public class HandshakeChannelState exten
             handshakeStarted = false;
         }
 
-        SSLEngineResult result = engine.unwrap(message, byteBuffer);
-        if (result.getHandshakeStatus() == SSLEngineResult.HandshakeStatus.NEED_TASK)
+        try
         {
-            Runnable runnable;
-            while ((runnable = engine.getDelegatedTask()) != null)
+            SSLEngineResult result = engine.unwrap(message, byteBuffer);
+            if (result.getHandshakeStatus() == SSLEngineResult.HandshakeStatus.NEED_TASK)
             {
-                LOGGER.trace("delegated task started");
-                runnable.run();
-                LOGGER.trace("delegated task completed");
-            }
+                Runnable runnable;
+                while ((runnable = engine.getDelegatedTask()) != null)
+                {
+                    LOGGER.trace("delegated task started");
+                    runnable.run();
+                    LOGGER.trace("delegated task completed");
+                }
+
+                SSLEngineResult.HandshakeStatus status = engine.getHandshakeStatus();
+                if (status == SSLEngineResult.HandshakeStatus.NEED_TASK)
+                {
+                    throw new Exception("handshake shouldn't need additional tasks");
+                }
 
-            SSLEngineResult.HandshakeStatus status = engine.getHandshakeStatus();
-            if (status == SSLEngineResult.HandshakeStatus.NEED_TASK)
+                LOGGER.trace("handshake status: " + status);
+
+                parent.receive(byteBuffer);
+            }
+            else if (result.getHandshakeStatus() == SSLEngineResult.HandshakeStatus.NEED_WRAP)
             {
-                throw new Exception("handshake shouldn't need additional tasks");
+                child.send(IoByteBuffer.EMPTY);
             }
+            else if (result.getHandshakeStatus() == SSLEngineResult.HandshakeStatus.FINISHED)
+            {
+                for (SslListener listener : listeners) listener.handshakeCompleted();
 
-            LOGGER.trace("handshake status: " + status);
+                return SslStates.FINISHED;
+            }
         }
-        else if (result.getHandshakeStatus() == SSLEngineResult.HandshakeStatus.NEED_WRAP)
+        finally
         {
-            child.send(IoByteBuffer.EMPTY);
+            message.recycle();
         }
-        else if (result.getHandshakeStatus() == SSLEngineResult.HandshakeStatus.FINISHED)
-        {
-            context.setState(SslStates.FINISHED);
 
-            for (SslListener listener : listeners) listener.handshakeCompleted();
-        }
-
-        parent.receive(byteBuffer);
-        message.recycle();
+        return SslStates.HANDSHAKE;
     }
 
     @IoEvent(name = "initiateHandshake", type = InitiateHandshakeEvent.class)
-    public void handle(Context<SslStates> context, InitiateHandshakeEvent event) throws Exception
+    public SslStates handle(InitiateHandshakeEvent event) throws Exception
     {
-        send(context, IoByteBuffer.EMPTY);
+        return send(IoByteBuffer.EMPTY);
     }
 }

Modified: mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/SSLEngine.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/SSLEngine.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/SSLEngine.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/SSLEngine.java Fri Aug 26 00:23:12 2011
@@ -471,8 +471,8 @@ public class SSLEngine
      * Returns a new SSLParameters based on this SSLSocket's current
      * cipher suites, protocols, and client authentication settings.
      *
-     * @since 1.6
      * @return new SSLParameters
+     * @since 1.6
      */
     public SSLParameters getSSLParameters()
     {

Modified: mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/SslListener.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/SslListener.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/SslListener.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/main/java/org/apache/mina/ssl/SslListener.java Fri Aug 26 00:23:12 2011
@@ -18,10 +18,6 @@
  */
 package org.apache.mina.ssl;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
 /**
  * @author <a href="http://mina.apache.org">Apache MINA Project</a>
  */

Modified: mina/sandbox/adc/ahc/mina3/src/test/java/com/acme/chain/CountFilter.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/test/java/com/acme/chain/CountFilter.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/test/java/com/acme/chain/CountFilter.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/test/java/com/acme/chain/CountFilter.java Fri Aug 26 00:23:12 2011
@@ -70,6 +70,7 @@ public class CountFilter implements IoFi
 
     /**
      * Delay between calls to count listeners in milliseconds.
+     *
      * @return the delay between calls to count listeners in milliseconds
      */
     public int getDelay()
@@ -79,6 +80,7 @@ public class CountFilter implements IoFi
 
     /**
      * Set delay between calls to count listeners in milliseconds.
+     *
      * @param delay the delay between calls to count listeners in milliseconds
      */
     public void setDelay(int delay)

Modified: mina/sandbox/adc/ahc/mina3/src/test/java/com/acme/chain/CountFilterTest.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/test/java/com/acme/chain/CountFilterTest.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/test/java/com/acme/chain/CountFilterTest.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/test/java/com/acme/chain/CountFilterTest.java Fri Aug 26 00:23:12 2011
@@ -18,7 +18,6 @@
  */
 package com.acme.chain;
 
-import javax.annotation.processing.Filer;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
@@ -41,8 +40,6 @@ import org.junit.Test;
 import static org.mockito.Mockito.mock;
 
 import org.apache.mina.core.api.IoDown;
-import org.apache.mina.core.api.IoProperty;
-import org.apache.mina.core.api.IoPropertyScope;
 import org.apache.mina.core.api.IoUp;
 
 
@@ -54,7 +51,7 @@ public class CountFilterTest
     protected static volatile int COUNT;
     protected static volatile int MAX;
     protected final static Set<CountListener> LISTENERS = new HashSet<CountListener>();
-    protected static final CountDownLatch         LATCH = new CountDownLatch(1);
+    protected static final CountDownLatch LATCH = new CountDownLatch(1);
 
     @Test
     public void test() throws Exception

Modified: mina/sandbox/adc/ahc/mina3/src/test/java/com/acme/chain/EchoFilterTest.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/test/java/com/acme/chain/EchoFilterTest.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/test/java/com/acme/chain/EchoFilterTest.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/test/java/com/acme/chain/EchoFilterTest.java Fri Aug 26 00:23:12 2011
@@ -21,14 +21,10 @@ package com.acme.chain;
 import static org.apache.ahc.test.Utils.inject;
 import org.junit.Test;
 import org.mockito.InOrder;
-import org.mockito.Matchers;
 import static org.mockito.Mockito.inOrder;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
 
 import org.apache.mina.core.api.IoDown;
-import org.apache.mina.core.api.IoUp;
 
 
 /**

Modified: mina/sandbox/adc/ahc/mina3/src/test/java/org/apache/ahc/mina3/EquipmentStackTest.java
URL: http://svn.apache.org/viewvc/mina/sandbox/adc/ahc/mina3/src/test/java/org/apache/ahc/mina3/EquipmentStackTest.java?rev=1161946&r1=1161945&r2=1161946&view=diff
==============================================================================
--- mina/sandbox/adc/ahc/mina3/src/test/java/org/apache/ahc/mina3/EquipmentStackTest.java (original)
+++ mina/sandbox/adc/ahc/mina3/src/test/java/org/apache/ahc/mina3/EquipmentStackTest.java Fri Aug 26 00:23:12 2011
@@ -30,7 +30,6 @@ import org.junit.Test;
 
 import org.apache.ahc.api.HttpConfig;
 import org.apache.ahc.api.HttpListener;
-import org.apache.ahc.mina3.EquipmentStack;
 
 
 /**