Java 类javax.servlet.AsyncListener 实例源码

项目:wingtips    文件:ServletRuntimeTest.java   
@Test
public void setupTracingCompletionWhenAsyncRequestCompletes_should_add_WingtipsRequestSpanCompletionAsyncListener(
) throws ServletException, IOException {
    // given
    AsyncContext asyncContextMock = mock(AsyncContext.class);
    doReturn(asyncContextMock).when(requestMock).getAsyncContext();
    TracingState tracingStateMock = mock(TracingState.class);

    ArgumentCaptor<AsyncListener> listenerCaptor = ArgumentCaptor.forClass(AsyncListener.class);

    // when
    servlet3Runtime.setupTracingCompletionWhenAsyncRequestCompletes(requestMock, tracingStateMock);

    // then
    verify(asyncContextMock).addListener(listenerCaptor.capture());
    List<AsyncListener> addedListeners = listenerCaptor.getAllValues();
    assertThat(addedListeners).hasSize(1);
    assertThat(addedListeners.get(0)).isInstanceOf(WingtipsRequestSpanCompletionAsyncListener.class);
    WingtipsRequestSpanCompletionAsyncListener listener =
        (WingtipsRequestSpanCompletionAsyncListener)addedListeners.get(0);
    assertThat(listener.originalRequestTracingState).isSameAs(tracingStateMock);
}
项目:tomee    文件:OpenEJBAsyncContext.java   
public static void destroy() {
    if (es == null) {
        return;
    }
    es.shutdownNow();
    for (final OpenEJBAsyncContext ctx : new ArrayList<>(INITIALIZED)) {
        if (ctx.lastTouch + ctx.getTimeout() < System.currentTimeMillis()) {
            for (final AsyncListener listener : ctx.listeners) {
                try {
                    listener.onTimeout(ctx.event);
                } catch (final IOException t) {
                    throw new OpenEJBRuntimeException(t);
                }
            }
            ctx.complete();
        }
    }
    INITIALIZED.clear();
}
项目:tomee    文件:OpenEJBAsyncContext.java   
public static void init() {
    if (!"true".equalsIgnoreCase(SystemInstance.get().getProperty("openejb.http.async.eviction", "true"))) {
        return;
    }
    es = Executors.newScheduledThreadPool(1, new DaemonThreadFactory(OpenEJBAsyncContext.class));
    es.scheduleWithFixedDelay(new Runnable() {
        @Override
        public void run() {
            for (final OpenEJBAsyncContext ctx : new ArrayList<>(INITIALIZED)) {
                if (ctx.lastTouch + ctx.getTimeout() < System.currentTimeMillis()) {
                    INITIALIZED.remove(ctx);
                    for (final AsyncListener listener : ctx.listeners) {
                        try {
                            listener.onTimeout(ctx.event);
                        } catch (final IOException t) {
                            throw new OpenEJBRuntimeException(t);
                        }
                    }
                    ctx.complete();
                }
            }
        }
    }, 1, 1, TimeUnit.MINUTES);
}
项目:tomee    文件:OpenEJBAsyncContext.java   
@Override
public void complete() {
    for (final AsyncListener listener : listeners) {
        try {
            listener.onComplete(event);
        } catch (final IOException t) {
            throw new OpenEJBRuntimeException(t);
        }
    }

    try {
        commit();
    } finally {
        INITIALIZED.remove(this);
    }
}
项目:tomcat7    文件:AsyncContextImpl.java   
@Override
public void addListener(AsyncListener listener) {
    check();
    AsyncListenerWrapper wrapper = new AsyncListenerWrapper();
    wrapper.setListener(listener);
    listeners.add(wrapper);
}
项目:tomcat7    文件:AsyncContextImpl.java   
@Override
public void addListener(AsyncListener listener, ServletRequest servletRequest,
        ServletResponse servletResponse) {
    check();
    AsyncListenerWrapper wrapper = new AsyncListenerWrapper();
    wrapper.setListener(listener);
    wrapper.setServletRequest(servletRequest);
    wrapper.setServletResponse(servletResponse);
    listeners.add(wrapper);
}
项目:tasfe-framework    文件:AsyncContextImpl.java   
@Override
public void complete() {
    for (AsyncListener listener : this.listeners) {
        try {
            listener.onComplete(new AsyncEvent(this, this.request, this.response));
        } catch (IOException e) {
            throw new IllegalStateException("AsyncListener failure", e);
        }
    }
}
项目:tasfe-framework    文件:NettyAsyncContext1.java   
@Override
public void complete() {
    try {
        servletResponse.flushBuffer();
    } catch (IOException e1) {
        e1.printStackTrace();
    }
    for (AsyncListener asyncListener : getAsyncListeners()) {
        try {
            asyncListener.onComplete(new AsyncEvent(this));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
项目:apache-tomcat-7.0.73-with-comment    文件:AsyncContextImpl.java   
@Override
public void addListener(AsyncListener listener) {
    check();
    AsyncListenerWrapper wrapper = new AsyncListenerWrapper();
    wrapper.setListener(listener);
    listeners.add(wrapper);
}
项目:apache-tomcat-7.0.73-with-comment    文件:AsyncContextImpl.java   
@Override
public void addListener(AsyncListener listener, ServletRequest servletRequest,
        ServletResponse servletResponse) {
    check();
    AsyncListenerWrapper wrapper = new AsyncListenerWrapper();
    wrapper.setListener(listener);
    wrapper.setServletRequest(servletRequest);
    wrapper.setServletResponse(servletResponse);
    listeners.add(wrapper);
}
项目:lazycat    文件:AsyncContextImpl.java   
@Override
public void addListener(AsyncListener listener) {
    check();
    AsyncListenerWrapper wrapper = new AsyncListenerWrapper();
    wrapper.setListener(listener);
    listeners.add(wrapper);
}
项目:lazycat    文件:AsyncContextImpl.java   
@Override
public void addListener(AsyncListener listener, ServletRequest servletRequest, ServletResponse servletResponse) {
    check();
    AsyncListenerWrapper wrapper = new AsyncListenerWrapper();
    wrapper.setListener(listener);
    wrapper.setServletRequest(servletRequest);
    wrapper.setServletResponse(servletResponse);
    listeners.add(wrapper);
}
项目:spring4-understanding    文件:MockAsyncContext.java   
@Override
public void complete() {
    MockHttpServletRequest mockRequest = WebUtils.getNativeRequest(request, MockHttpServletRequest.class);
    if (mockRequest != null) {
        mockRequest.setAsyncStarted(false);
    }
    for (AsyncListener listener : this.listeners) {
        try {
            listener.onComplete(new AsyncEvent(this, this.request, this.response));
        }
        catch (IOException e) {
            throw new IllegalStateException("AsyncListener failure", e);
        }
    }
}
项目:spring4-understanding    文件:MockAsyncContext.java   
@Override
public void complete() {
    MockHttpServletRequest mockRequest = WebUtils.getNativeRequest(request, MockHttpServletRequest.class);
    if (mockRequest != null) {
        mockRequest.setAsyncStarted(false);
    }
    for (AsyncListener listener : this.listeners) {
        try {
            listener.onComplete(new AsyncEvent(this, this.request, this.response));
        }
        catch (IOException e) {
            throw new IllegalStateException("AsyncListener failure", e);
        }
    }
}
项目:wingtips    文件:ServletRuntimeTest.java   
@DataProvider(value = {
    "true   |   true    |   true",
    "true   |   false   |   false",
    "false  |   true    |   false",
    "false  |   false   |   false"
}, splitBy = "\\|")
@Test
public void determineServletRuntime_returns_ServletRuntime_based_on_arguments(
    boolean classHasServlet3Method, boolean useAsyncListenerClassThatExists, boolean expectServlet3Runtime
) {
    // given
    Class<?> servletRequestClass = (classHasServlet3Method)
                                   ? GoodFakeServletRequest.class
                                   : BadFakeServletRequest.class;

    String asyncListenerClassname = (useAsyncListenerClassThatExists)
                                    ? AsyncListener.class.getName()
                                    : "does.not.exist.AsyncListener" + UUID.randomUUID().toString();

    // when
    ServletRuntime result = ServletRuntime.determineServletRuntime(servletRequestClass, asyncListenerClassname);

    // then
    if (expectServlet3Runtime) {
        assertThat(result).isInstanceOf(Servlet3Runtime.class);
    }
    else {
        assertThat(result).isInstanceOf(Servlet2Runtime.class);
    }
}
项目:wingtips    文件:RequestTracingFilterTest.java   
private void setupAsyncContextWorkflow() {
    listenerCapturingAsyncContext = mock(AsyncContext.class);
    capturedAsyncListeners = new ArrayList<>();

    doReturn(listenerCapturingAsyncContext).when(requestMock).getAsyncContext();
    doReturn(true).when(requestMock).isAsyncStarted();

    doAnswer(invocation -> {
        capturedAsyncListeners.add((AsyncListener) invocation.getArguments()[0]);
        return null;
    }).when(listenerCapturingAsyncContext).addListener(any(AsyncListener.class));
}
项目:nbone    文件:MockAsyncContext.java   
@Override
public void complete() {
    MockHttpServletRequest mockRequest = WebUtils.getNativeRequest(request, MockHttpServletRequest.class);
    if (mockRequest != null) {
        mockRequest.setAsyncStarted(false);
    }
    for (AsyncListener listener : this.listeners) {
        try {
            listener.onComplete(new AsyncEvent(this, this.request, this.response));
        }
        catch (IOException e) {
            throw new IllegalStateException("AsyncListener failure", e);
        }
    }
}
项目:class-guard    文件:MockAsyncContext.java   
public void complete() {
    Servlet3MockHttpServletRequest mockRequest = WebUtils.getNativeRequest(request, Servlet3MockHttpServletRequest.class);
    if (mockRequest != null) {
        mockRequest.setAsyncStarted(false);
    }
    for (AsyncListener listener : this.listeners) {
        try {
            listener.onComplete(new AsyncEvent(this, this.request, this.response));
        }
        catch (IOException e) {
            throw new IllegalStateException("AsyncListener failure", e);
        }
    }
}
项目:class-guard    文件:MockAsyncContext.java   
@Override
public void complete() {
    MockHttpServletRequest mockRequest = WebUtils.getNativeRequest(request, MockHttpServletRequest.class);
    if (mockRequest != null) {
        mockRequest.setAsyncStarted(false);
    }
    for (AsyncListener listener : this.listeners) {
        try {
            listener.onComplete(new AsyncEvent(this, this.request, this.response));
        }
        catch (IOException e) {
            throw new IllegalStateException("AsyncListener failure", e);
        }
    }
}
项目:class-guard    文件:AsyncContextImpl.java   
@Override
public void addListener(AsyncListener listener) {
    check();
    AsyncListenerWrapper wrapper = new AsyncListenerWrapper();
    wrapper.setListener(listener);
    listeners.add(wrapper);
}
项目:class-guard    文件:AsyncContextImpl.java   
@Override
public void addListener(AsyncListener listener, ServletRequest servletRequest,
        ServletResponse servletResponse) {
    check();
    AsyncListenerWrapper wrapper = new AsyncListenerWrapper();
    wrapper.setListener(listener);
    listeners.add(wrapper);
}
项目:apache-tomcat-7.0.57    文件:AsyncContextImpl.java   
@Override
public void addListener(AsyncListener listener) {
    check();
    AsyncListenerWrapper wrapper = new AsyncListenerWrapper();
    wrapper.setListener(listener);
    listeners.add(wrapper);
}
项目:apache-tomcat-7.0.57    文件:AsyncContextImpl.java   
@Override
public void addListener(AsyncListener listener, ServletRequest servletRequest,
        ServletResponse servletResponse) {
    check();
    AsyncListenerWrapper wrapper = new AsyncListenerWrapper();
    wrapper.setListener(listener);
    listeners.add(wrapper);
}
项目:apache-tomcat-7.0.57    文件:AsyncContextImpl.java   
@Override
public void addListener(AsyncListener listener) {
    check();
    AsyncListenerWrapper wrapper = new AsyncListenerWrapper();
    wrapper.setListener(listener);
    listeners.add(wrapper);
}
项目:apache-tomcat-7.0.57    文件:AsyncContextImpl.java   
@Override
public void addListener(AsyncListener listener, ServletRequest servletRequest,
        ServletResponse servletResponse) {
    check();
    AsyncListenerWrapper wrapper = new AsyncListenerWrapper();
    wrapper.setListener(listener);
    listeners.add(wrapper);
}
项目:portals-pluto    文件:PortletAsyncContextImpl.java   
@Override
public void addListener(AsyncListener l) {
   if (!isContextActive) {
      throw new IllegalStateException("Listener can only be added when the asynchronous context is active.");
   }
   pal.addListener(l);
}
项目:portals-pluto    文件:PortletAsyncContextImpl.java   
@Override
public void addListener(AsyncListener l, ServletRequest req, ServletResponse resp) {
   if (!isContextActive) {
      throw new IllegalStateException("Listener can only be added when the asynchronous context is active.");
   }
   pal.addListener(l, req, resp);
}
项目:portals-pluto    文件:PortletAsyncContextImpl.java   
@SuppressWarnings("unchecked")
@Override
public <T extends AsyncListener> T createListener(Class<T> cls) throws ServletException {
   T obj = null;
   try {
      obj = (T) createInstance(cls);
   } catch (Throwable t) {
      throw new ServletException(t);
   }
   return obj;
}
项目:WBSAirback    文件:AsyncContextImpl.java   
@Override
public void addListener(AsyncListener listener) {
    check();
    AsyncListenerWrapper wrapper = new AsyncListenerWrapper();
    wrapper.setListener(listener);
    listeners.add(wrapper);
}
项目:WBSAirback    文件:AsyncContextImpl.java   
@Override
public void addListener(AsyncListener listener, ServletRequest servletRequest,
        ServletResponse servletResponse) {
    check();
    AsyncListenerWrapper wrapper = new AsyncListenerWrapper();
    wrapper.setListener(listener);
    listeners.add(wrapper);
}
项目:tomee    文件:OpenEJBAsyncContext.java   
private void onError(final Throwable ignored) {
    for (final AsyncListener listener : listeners) {
        try {
            listener.onError(event);
        } catch (final IOException t) {
            throw new OpenEJBRuntimeException(t);
        }
    }
    try {
        HttpServletResponse.class.cast(response).sendError(HttpURLConnection.HTTP_INTERNAL_ERROR);
        commit();
    } catch (final IOException e) {
        // no-op
    }
}
项目:tomee    文件:OpenEJBAsyncContext.java   
public void internalStartAsync() {
    started = true;
    for (final AsyncListener listener : listeners) {
        try {
            listener.onStartAsync(event);
        } catch (final IOException t) {
            throw new OpenEJBRuntimeException(t);
        }
    }
}
项目:tomee    文件:OpenEJBAsyncContext.java   
@Override
public void addListener(final AsyncListener listener) {
    listeners.add(listener);
    if (started) {
        try {
            listener.onStartAsync(event);
        } catch (final IOException e) {
            throw new OpenEJBRuntimeException(e);
        }
    }
}
项目:tomee    文件:OpenEJBAsyncContext.java   
@Override
public <T extends AsyncListener> T createListener(final Class<T> clazz)
        throws ServletException {
    try {
        return (T) context.inject(clazz.newInstance());
    } catch (final Exception e) {
        throw new ServletException(e);
    }
}
项目:incubator-servicecomb-java-chassis    文件:EmptyAsyncContext.java   
@Override
public <T extends AsyncListener> T createListener(Class<T> clazz) throws ServletException {
  return null;
}
项目:tomcat7    文件:AsyncListenerWrapper.java   
public AsyncListener getListener() {
    return listener;
}
项目:tomcat7    文件:AsyncListenerWrapper.java   
public void setListener(AsyncListener listener) {
    this.listener = listener;
}
项目:tasfe-framework    文件:AsyncContextImpl.java   
@Override
public void addListener(AsyncListener listener) {
    this.listeners.add(listener);
}
项目:tasfe-framework    文件:AsyncContextImpl.java   
@Override
public void addListener(AsyncListener listener, ServletRequest servletRequest, ServletResponse servletResponse) {
    this.listeners.add(listener);
}
项目:tasfe-framework    文件:AsyncContextImpl.java   
@Override
public <T extends AsyncListener> T createListener(Class<T> clazz) throws ServletException {
    return BeanUtils.instantiateClass(clazz);
}