Class AsyncDelayHandler

  • All Implemented Interfaces:
    Handler, HandlerContainer, org.eclipse.jetty.util.component.Container, org.eclipse.jetty.util.component.Destroyable, org.eclipse.jetty.util.component.Dumpable, org.eclipse.jetty.util.component.LifeCycle

    public class AsyncDelayHandler
    extends HandlerWrapper
    A handler wrapper that provides the framework to asynchronously delay the handling of a request. While it uses standard servlet API for asynchronous servlets, it adjusts the dispatch type of the request so that it does not appear to be asynchronous during the delayed dispatch.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener, org.eclipse.jetty.util.component.AbstractLifeCycle.StopException
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container

        org.eclipse.jetty.util.component.Container.InheritedListener, org.eclipse.jetty.util.component.Container.Listener
      • Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle

        org.eclipse.jetty.util.component.LifeCycle.Listener
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String AHW_ATTR  
      • Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        FAILED, STARTED, STARTING, STOPPED, STOPPING
      • Fields inherited from interface org.eclipse.jetty.util.component.Dumpable

        KEY
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void delayHandling​(Request request, jakarta.servlet.AsyncContext context)
      Called to indicate that a requests handling is being delayed/ The implementation should arrange for context.dispatch() to be called when the request should be handled.
      protected void endHandling​(Request request)
      Called to indicated the handling of the request is ending.
      void handle​(java.lang.String target, Request baseRequest, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response)
      Handle a request.
      protected boolean startHandling​(Request request, boolean restart)
      Called to indicate that a request has been presented for handling
      • Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle

        addBean, addBean, addEventListener, addManaged, contains, dump, dump, dump, dumpObjects, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, start, stop, unmanage, updateBean, updateBean, updateBeans
      • Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle

        getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stop, toString
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface org.eclipse.jetty.util.component.Container

        getCachedBeans, getEventListeners
      • Methods inherited from interface org.eclipse.jetty.util.component.Dumpable

        dumpSelf
      • Methods inherited from interface org.eclipse.jetty.util.component.LifeCycle

        addEventListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeEventListener, start, stop
    • Constructor Detail

      • AsyncDelayHandler

        public AsyncDelayHandler()
    • Method Detail

      • handle

        public void handle​(java.lang.String target,
                           Request baseRequest,
                           jakarta.servlet.http.HttpServletRequest request,
                           jakarta.servlet.http.HttpServletResponse response)
                    throws java.io.IOException,
                           jakarta.servlet.ServletException
        Description copied from interface: Handler
        Handle a request.
        Specified by:
        handle in interface Handler
        Overrides:
        handle in class HandlerWrapper
        Parameters:
        target - The target of the request - either a URI or a name.
        baseRequest - The original unwrapped request object.
        request - The request either as the Request object or a wrapper of that request. The HttpConnection.getCurrentConnection().getHttpChannel().getRequest() method can be used access the Request object if required.
        response - The response as the Response object or a wrapper of that request. The HttpConnection.getCurrentConnection().getHttpChannel().getResponse() method can be used access the Response object if required.
        Throws:
        java.io.IOException - if unable to handle the request or response processing
        jakarta.servlet.ServletException - if unable to handle the request or response due to underlying servlet issue
      • startHandling

        protected boolean startHandling​(Request request,
                                        boolean restart)
        Called to indicate that a request has been presented for handling
        Parameters:
        request - The request to handle
        restart - True if this request is being restarted after a delay
        Returns:
        True if the request should be handled now
      • delayHandling

        protected void delayHandling​(Request request,
                                     jakarta.servlet.AsyncContext context)
        Called to indicate that a requests handling is being delayed/ The implementation should arrange for context.dispatch() to be called when the request should be handled. It may also set timeouts on the context.
        Parameters:
        request - The request to be delayed
        context - The AsyncContext of the delayed request
      • endHandling

        protected void endHandling​(Request request)
        Called to indicated the handling of the request is ending. This is only the end of the current dispatch of the request and if the request is asynchronous, it may be handled again.
        Parameters:
        request - The request