Class QuarkusResteasyReactiveRequestContext

java.lang.Object
org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext<org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext,org.jboss.resteasy.reactive.server.spi.ServerRestHandler>
org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext
org.jboss.resteasy.reactive.server.vertx.VertxResteasyReactiveRequestContext
io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext
All Implemented Interfaces:
io.vertx.core.Handler<Void>, Closeable, AutoCloseable, Runnable, org.jboss.resteasy.reactive.common.core.ResteasyReactiveCallbackContext, org.jboss.resteasy.reactive.server.injection.ResteasyReactiveInjectionContext, org.jboss.resteasy.reactive.server.spi.ServerHttpRequest, org.jboss.resteasy.reactive.server.spi.ServerHttpResponse, org.jboss.resteasy.reactive.server.spi.ServerRequestContext, org.jboss.resteasy.reactive.server.spi.StreamingResponse<org.jboss.resteasy.reactive.server.spi.ServerHttpResponse>

public class QuarkusResteasyReactiveRequestContext extends org.jboss.resteasy.reactive.server.vertx.VertxResteasyReactiveRequestContext
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.jboss.resteasy.reactive.server.spi.ServerHttpRequest

    org.jboss.resteasy.reactive.server.spi.ServerHttpRequest.ReadCallback
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    (package private) final io.quarkus.security.identity.CurrentIdentityAssociation
     
    (package private) boolean
     

    Fields inherited from class org.jboss.resteasy.reactive.server.vertx.VertxResteasyReactiveRequestContext

    context, CONTINUE, preCommitTask, request, response

    Fields inherited from class org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext

    deployment, EMPTY_ARRAY

    Fields inherited from class org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext

    abortHandlerChain, CUSTOM_RR_PROPERTIES_PREFIX, handlers, log, logWebApplicationExceptions, position, throwable
  • Constructor Summary

    Constructors
    Constructor
    Description
    QuarkusResteasyReactiveRequestContext(org.jboss.resteasy.reactive.server.core.Deployment deployment, io.vertx.ext.web.RoutingContext context, org.jboss.resteasy.reactive.spi.ThreadSetupAction requestContext, org.jboss.resteasy.reactive.server.spi.ServerRestHandler[] handlerChain, org.jboss.resteasy.reactive.server.spi.ServerRestHandler[] abortHandlerChain, ClassLoader devModeTccl, io.quarkus.security.identity.CurrentIdentityAssociation currentIdentityAssociation)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected jakarta.ws.rs.core.SecurityContext
     
    org.jboss.resteasy.reactive.server.spi.ForwardedInfo
     
    protected void
     
    boolean
     
    void
     
    protected void
     
    protected void
    invokeHandler(int pos)
    The implementation looks like it makes no sense, but it in fact does make sense from a performance perspective.
    protected void
     
    protected void
     

    Methods inherited from class org.jboss.resteasy.reactive.server.vertx.VertxResteasyReactiveRequestContext

    addCloseHandler, addDrainHandler, addResponseHeader, closeConnection, closed, containsRequestHeader, createInputStream, createInputStream, createResponseOutputStream, end, end, end, end, getAllQueryParams, getAllRequestHeaders, getAllRequestHeaders, getAllResponseHeaders, getContext, getContextExecutor, getEventLoop, getExistingParsedForm, getQueryParam, getQueryParamsMap, getRequestAbsoluteUri, getRequestHeader, getRequestHostAndPort, getRequestMethod, getRequestNormalisedPath, getRequestPath, getRequestScheme, getResponseHeader, handle, headWritten, isOnIoThread, isRequestEnded, isWriteQueueFull, pauseRequestInput, query, queryParamNames, registerTimer, removeResponseHeader, reset, resumeExternalProcessing, resumeRequestInput, sendFile, serverRequest, serverResponse, setChunked, setPreCommitListener, setQueryParamsFrom, setReadListener, setResponseHeader, setResponseHeader, setStatusCode, unwrap, vertxServerRequest, vertxServerResponse, write, write

    Methods inherited from class org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext

    abortWith, close, endResponse, getAbsoluteURI, getAdditionalAnnotations, getAllAnnotations, getAllPathParameters, getAsyncResponse, getAuthority, getBeanParameter, getContainerRequestContext, getContainerResponseContext, getContextParameter, getCookieParameter, getDeployment, getEndpointInstance, getEntityWriter, getFormData, getFormParameter, getGenericReturnType, getHeader, getHttpHeaders, getInputStream, getMatchedURIs, getMatrixParameter, getMethod, getMethodAnnotations, getOrCreateOutputStream, getOutputStream, getParameters, getPath, getPathParam, getPathParameter, getPathSegments, getPathWithoutPrefix, getProviders, getQueryParameter, getQueryParameter, getReaderInterceptors, getRemaining, getRequest, getRequestEntity, getRequestHeaders, getResourceLocatorPathParam, getResponse, getResponseContentType, getResponseEntity, getResponseMediaType, getResteasyReactiveResourceInfo, getResult, getScheme, getSecurityContext, getSseEventSink, getTarget, getThrowable, getUriInfo, getWriterInterceptors, hasGenericReturnType, hasInputStream, initPathSegments, isProducesChecked, isSecurityContextSet, mapExceptionIfPresent, resetBuildTimeSerialization, restart, restart, restarted, restartWithNextInitialMatch, saveUriMatchState, securityContextUpdated, setAdditionalAnnotations, setAllAnnotations, setAsyncResponse, setEndpointInstance, setEntityWriter, setFormData, setGenericReturnType, setInputStream, setMaxPathParams, setMethod, setMethodAnnotations, setOutputStream, setPathParamValue, setProducesChecked, setReaderInterceptors, setRemaining, setRequestEntity, setRequestUri, setResponse, setResponseContentType, setResponseContentType, setResult, setSecurityContext, setSseEventSink, setupInitialMatchAndRestart, setUriInfo, setWriterInterceptors

    Methods inherited from class org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext

    beginAsyncProcessing, captureCDIRequestScope, getAbortHandlerChain, getHandlers, getPosition, getProperty, getPropertyNames, handleException, handleException, isRequestScopeManagementRequired, isSuspended, registerCompletionCallback, registerConnectionCallback, removeProperty, requireCDIRequestScope, restart, restart, resume, resume, resume, resume, run, setAbortHandlerChain, setAbortHandlerChainStarted, setPosition, setProperty, setSuspended, suspend, unwrapException

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.jboss.resteasy.reactive.common.core.ResteasyReactiveCallbackContext

    registerCompletionCallback, registerConnectionCallback

    Methods inherited from interface org.jboss.resteasy.reactive.server.spi.ServerHttpRequest

    getRequestHost
  • Field Details

    • association

      final io.quarkus.security.identity.CurrentIdentityAssociation association
    • userSetup

      boolean userSetup
  • Constructor Details

    • QuarkusResteasyReactiveRequestContext

      public QuarkusResteasyReactiveRequestContext(org.jboss.resteasy.reactive.server.core.Deployment deployment, io.vertx.ext.web.RoutingContext context, org.jboss.resteasy.reactive.spi.ThreadSetupAction requestContext, org.jboss.resteasy.reactive.server.spi.ServerRestHandler[] handlerChain, org.jboss.resteasy.reactive.server.spi.ServerRestHandler[] abortHandlerChain, ClassLoader devModeTccl, io.quarkus.security.identity.CurrentIdentityAssociation currentIdentityAssociation)
  • Method Details

    • handleRequestScopeActivation

      protected void handleRequestScopeActivation()
      Overrides:
      handleRequestScopeActivation in class org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext
    • onPreRequestScopeActivation

      protected void onPreRequestScopeActivation()
      Overrides:
      onPreRequestScopeActivation in class org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext<org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext,org.jboss.resteasy.reactive.server.spi.ServerRestHandler>
    • requestScopeDeactivated

      protected void requestScopeDeactivated()
      Overrides:
      requestScopeDeactivated in class org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext
    • createSecurityContext

      protected jakarta.ws.rs.core.SecurityContext createSecurityContext()
      Overrides:
      createSecurityContext in class org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext
    • handleUnrecoverableError

      protected void handleUnrecoverableError(Throwable throwable)
      Overrides:
      handleUnrecoverableError in class org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext
    • handlesUnmappedException

      public boolean handlesUnmappedException()
      Overrides:
      handlesUnmappedException in class org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext
    • handleUnmappedException

      public void handleUnmappedException(Throwable throwable)
      Overrides:
      handleUnmappedException in class org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext
    • getForwardedInfo

      public org.jboss.resteasy.reactive.server.spi.ForwardedInfo getForwardedInfo()
    • invokeHandler

      protected void invokeHandler(int pos) throws Exception
      The implementation looks like it makes no sense, but it in fact does make sense from a performance perspective. The idea is to reduce the use instances of megamorphic calls into a series of instance checks and monomorphic calls. The rationale behind this is fully explored in https://shipilev.net/blog/2015/black-magic-method-dispatch/#_cheating_the_runtime_2 and this specific instance has been verified experimentally to result in better performance.
      Overrides:
      invokeHandler in class org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext<org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext,org.jboss.resteasy.reactive.server.spi.ServerRestHandler>
      Throws:
      Exception