changeset 935:aa7dc1802d29

remove ContinuationListener
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 09 Oct 2016 21:15:24 -0600
parents fe461f7cfc8e
children 237ace6e8bc2
files src/org/eclipse/jetty/continuation/Continuation.java src/org/eclipse/jetty/continuation/ContinuationListener.java src/org/eclipse/jetty/server/AsyncContinuation.java src/org/eclipse/jetty/server/Request.java src/org/eclipse/jetty/server/handler/GzipHandler.java
diffstat 5 files changed, 18 insertions(+), 170 deletions(-) [+]
line wrap: on
line diff
--- a/src/org/eclipse/jetty/continuation/Continuation.java	Sun Oct 09 21:03:00 2016 -0600
+++ b/src/org/eclipse/jetty/continuation/Continuation.java	Sun Oct 09 21:15:24 2016 -0600
@@ -368,7 +368,7 @@
 	 * 
 	 * @param listener
 	 */
-	void addContinuationListener(ContinuationListener listener);
+//	void addContinuationListener(ContinuationListener listener);
 	
 	/* ------------------------------------------------------------ */
 	/** Set a request attribute.
--- a/src/org/eclipse/jetty/continuation/ContinuationListener.java	Sun Oct 09 21:03:00 2016 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-//
-//  ========================================================================
-//  Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd.
-//  ------------------------------------------------------------------------
-//  All rights reserved. This program and the accompanying materials
-//  are made available under the terms of the Eclipse Public License v1.0
-//  and Apache License v2.0 which accompanies this distribution.
-//
-//      The Eclipse Public License is available at
-//      http://www.eclipse.org/legal/epl-v10.html
-//
-//      The Apache License v2.0 is available at
-//      http://www.opensource.org/licenses/apache2.0.php
-//
-//  You may elect to redistribute this code under either of these licenses.
-//  ========================================================================
-//
-
-package org.eclipse.jetty.continuation;
-
-import java.util.EventListener;
-
-import javax.servlet.ServletRequestListener;
-
-
-/* ------------------------------------------------------------ */
-/** A Continuation Listener
- * <p>
- * A ContinuationListener may be registered with a call to
- * {@link Continuation#addContinuationListener(ContinuationListener)}.
- * 
- */
-public interface ContinuationListener extends EventListener 
-{    
-    /* ------------------------------------------------------------ */
-    /**
-     * Called when a continuation life cycle is complete and after
-     * any calls to {@link ServletRequestListener#requestDestroyed(javax.servlet.ServletRequestEvent)}
-     * The response may still be written to during the call.
-     * 
-     * @param continuation
-     */
-    public void onComplete(Continuation continuation);
-    
-    /* ------------------------------------------------------------ */
-    /**
-     * Called when a suspended continuation has timed out.
-     * The response may be written to and the methods 
-     * {@link Continuation#resume()} or {@link Continuation#complete()} 
-     * may be called by a onTimeout implementation,
-     * @param continuation
-     */
-    public void onTimeout(Continuation continuation);
-
-}
--- a/src/org/eclipse/jetty/server/AsyncContinuation.java	Sun Oct 09 21:03:00 2016 -0600
+++ b/src/org/eclipse/jetty/server/AsyncContinuation.java	Sun Oct 09 21:15:24 2016 -0600
@@ -18,7 +18,6 @@
 
 package org.eclipse.jetty.server;
 
-import javax.servlet.AsyncListener;
 import javax.servlet.RequestDispatcher;
 import javax.servlet.ServletException;
 
@@ -31,7 +30,6 @@
 import javax.servlet.http.HttpServletRequest;
 
 import org.eclipse.jetty.continuation.Continuation;
-import org.eclipse.jetty.continuation.ContinuationListener;
 import org.eclipse.jetty.io.AsyncEndPoint;
 import org.eclipse.jetty.io.EndPoint;
 import org.eclipse.jetty.server.handler.ContextHandler;
@@ -44,7 +42,7 @@
 /** Implementation of Continuation interfaces
  * 
  */
-public class AsyncContinuation implements Continuation
+public final class AsyncContinuation implements Continuation
 {
 	private static final Logger LOG = LoggerFactory.getLogger(AsyncContinuation.class);
 
@@ -70,14 +68,12 @@
 	
 	/* ------------------------------------------------------------ */
 	protected AbstractHttpConnection _connection;
-	private List<AsyncListener> _asyncListeners;
-	private List<ContinuationListener> _continuationListeners;
 
 	/* ------------------------------------------------------------ */
 	private int _state;
 	private volatile long _expireAt;    
 	
-	protected AsyncContinuation()
+	AsyncContinuation()
 	{
 		_state=__IDLE;
 	}
@@ -87,41 +83,6 @@
 		_connection=connection;
 	}
 
-	/* ------------------------------------------------------------ */
-	public void addListener(AsyncListener listener)
-	{
-		synchronized(this)
-		{
-			if (_asyncListeners==null)
-				_asyncListeners=new ArrayList<AsyncListener>();
-			_asyncListeners.add(listener);
-		}
-	}
-
-	/* ------------------------------------------------------------ */
-	public void addListener(AsyncListener listener,ServletRequest request, ServletResponse response)
-	{
-		synchronized(this)
-		{
-			// TODO handle the request/response ???
-			if (_asyncListeners==null)
-				_asyncListeners=new ArrayList<AsyncListener>();
-			_asyncListeners.add(listener);
-		}
-	}
-
-	/* ------------------------------------------------------------ */
-	public void addContinuationListener(ContinuationListener listener)
-	{
-		synchronized(this)
-		{
-			if (_continuationListeners==null)
-				_continuationListeners=new ArrayList<ContinuationListener>();
-			_continuationListeners.add(listener);
-		}
-	}
-
-
 	
 	@Override
 	public String toString()
@@ -151,8 +112,6 @@
 		{
 			case __IDLE:
 				_state=__DISPATCHED;
-				if (_asyncListeners!=null)
-					_asyncListeners.clear();
 				return;
 				
 			default:
@@ -182,81 +141,29 @@
 	}
 
 		
-	/* ------------------------------------------------------------ */
-	/* (non-Javadoc)
-	 * @see javax.servlet.ServletRequest#complete()
-	 */
-	protected void doComplete(Throwable ex)
+	protected synchronized void doComplete(Throwable ex)
 	{
-		final List<ContinuationListener> cListeners;
-		final List<AsyncListener> aListeners;
-		synchronized (this)
-		{
-			switch(_state)
-			{
-				case __UNCOMPLETED:
-					_state = __COMPLETED;
-					cListeners=_continuationListeners;
-					aListeners=_asyncListeners;
-					break;
-					
-				default:
-					cListeners=null;
-					aListeners=null;
-					throw new IllegalStateException(this.getStatusString());
-			}
-		}
-		
-		if (aListeners!=null)
+		switch(_state)
 		{
-			for (AsyncListener listener : aListeners)
-			{
-				try
-				{
-					if (ex!=null)
-					{
-						throw new UnsupportedOperationException();
-					}
-					else
-						listener.onComplete(null);
-				}
-				catch(Exception e)
-				{
-					LOG.warn("",e);
-				}
-			}
-		}
-		if (cListeners!=null)
-		{
-			for (ContinuationListener listener : cListeners)
-			{
-				try
-				{
-					listener.onComplete(this);
-				}
-				catch(Exception e)
-				{
-					LOG.warn("",e);
-				}
-			}
+			case __UNCOMPLETED:
+				_state = __COMPLETED;
+				break;
+				
+			default:
+				throw new IllegalStateException(this.getStatusString());
 		}
 	}
 
-	/* ------------------------------------------------------------ */
-	protected void recycle()
+	protected synchronized void recycle()
 	{
-		synchronized (this)
+		switch(_state)
 		{
-			switch(_state)
-			{
-				case __DISPATCHED:
-					throw new IllegalStateException(getStatusString());
-				default:
-					_state=__IDLE;
-			}
-			cancelTimeout();
-			_continuationListeners=null;
+			case __DISPATCHED:
+				throw new IllegalStateException(getStatusString());
+			default:
+				_state=__IDLE;
 		}
+		cancelTimeout();
 	}    
 	
 	/* ------------------------------------------------------------ */
--- a/src/org/eclipse/jetty/server/Request.java	Sun Oct 09 21:03:00 2016 -0600
+++ b/src/org/eclipse/jetty/server/Request.java	Sun Oct 09 21:15:24 2016 -0600
@@ -63,7 +63,6 @@
 import javax.servlet.http.Part;
 
 import org.eclipse.jetty.continuation.Continuation;
-import org.eclipse.jetty.continuation.ContinuationListener;
 import org.eclipse.jetty.http.HttpCookie;
 import org.eclipse.jetty.http.HttpFields;
 import org.eclipse.jetty.http.HttpHeaders;
@@ -197,8 +196,6 @@
 	{
 		if (listener instanceof ServletRequestAttributeListener)
 			_requestAttributeListeners = LazyList.add(_requestAttributeListeners,listener);
-		if (listener instanceof ContinuationListener)
-			throw new IllegalArgumentException(listener.getClass().toString());
 		if (listener instanceof AsyncListener)
 			throw new IllegalArgumentException(listener.getClass().toString());
 	}
--- a/src/org/eclipse/jetty/server/handler/GzipHandler.java	Sun Oct 09 21:03:00 2016 -0600
+++ b/src/org/eclipse/jetty/server/handler/GzipHandler.java	Sun Oct 09 21:15:24 2016 -0600
@@ -34,7 +34,6 @@
 import javax.servlet.http.HttpServletResponse;
 
 import org.eclipse.jetty.continuation.Continuation;
-import org.eclipse.jetty.continuation.ContinuationListener;
 import org.eclipse.jetty.http.HttpMethods;
 import org.eclipse.jetty.http.gzip.CompressedResponseWrapper;
 import org.eclipse.jetty.http.gzip.AbstractCompressedStream;