access request/response from async
git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk@202 7e9141cc-0065-0410-87d8-b60c137991c4
This commit is contained in:
parent
3dd595c123
commit
b35e984317
|
@ -203,5 +203,23 @@ public interface Continuation
|
|||
* @param listener
|
||||
*/
|
||||
void addContinuationListener(ContinuationListener listener);
|
||||
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/** Get the associated servlet request.
|
||||
* <p>
|
||||
* Not all request methods are valid to be called outside of the
|
||||
* scope of a filter/servlet. Specifically servletPath methods will
|
||||
* not return correct values. The request attribute methods are suitable
|
||||
* to be called from an asynchronous scope.
|
||||
* @return The associated servlet request
|
||||
*/
|
||||
ServletRequest getServletRequest();
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/**
|
||||
* @return The associated servlet response.
|
||||
*/
|
||||
ServletResponse getServletResponse();
|
||||
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ public class ContinuationFilter implements Filter
|
|||
{
|
||||
if (_faux)
|
||||
{
|
||||
final FauxContinuation fc = new FauxContinuation();
|
||||
final FauxContinuation fc = new FauxContinuation(request,response);
|
||||
request.setAttribute(Continuation.ATTRIBUTE,fc);
|
||||
boolean complete=false;
|
||||
|
||||
|
@ -69,17 +69,24 @@ public class ContinuationFilter implements Filter
|
|||
private static final int __SUSPENDED=5; // Suspended and parked
|
||||
private static final int __UNSUSPENDING=6;
|
||||
private static final int __COMPLETE=7;
|
||||
|
||||
private final ServletRequest _request;
|
||||
private final ServletResponse _response;
|
||||
|
||||
private int _state=__HANDLING;
|
||||
private boolean _initial=true;
|
||||
private boolean _resumed=false;
|
||||
private boolean _timeout=false;
|
||||
private boolean _keepWrappers=false;
|
||||
|
||||
private long _timeoutMs=30000; // TODO configure
|
||||
|
||||
private ArrayList<ContinuationListener> _listeners;
|
||||
|
||||
FauxContinuation(final ServletRequest request,final ServletResponse response)
|
||||
{
|
||||
_request=request;
|
||||
_response=response;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/**
|
||||
|
@ -255,6 +262,24 @@ public class ContinuationFilter implements Filter
|
|||
}
|
||||
|
||||
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/**
|
||||
* @see org.eclipse.jetty.continuation.Continuation#getServletRequest()
|
||||
*/
|
||||
public ServletRequest getServletRequest()
|
||||
{
|
||||
return _request;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/**
|
||||
* @see org.eclipse.jetty.continuation.Continuation#getServletResponse()
|
||||
*/
|
||||
public ServletResponse getServletResponse()
|
||||
{
|
||||
return _response;
|
||||
}
|
||||
|
||||
|
||||
void handling()
|
||||
|
|
|
@ -744,6 +744,24 @@ public class AsyncRequest implements AsyncContext, Continuation
|
|||
AsyncRequest.this.suspend(_connection.getRequest().getServletContext(),_connection.getRequest(),_connection.getResponse());
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/**
|
||||
* @see org.eclipse.jetty.continuation.Continuation#getServletRequest()
|
||||
*/
|
||||
public ServletRequest getServletRequest()
|
||||
{
|
||||
return _connection.getRequest();
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/**
|
||||
* @see org.eclipse.jetty.continuation.Continuation#getServletResponse()
|
||||
*/
|
||||
public ServletResponse getServletResponse()
|
||||
{
|
||||
return _connection.getResponse();
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/* ------------------------------------------------------------ */
|
||||
public class AsyncEventState implements ContinuationEvent
|
||||
|
|
Loading…
Reference in New Issue