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>
-
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
FieldsModifier and TypeFieldDescription(package private) final io.quarkus.security.identity.CurrentIdentityAssociation(package private) booleanFields inherited from class org.jboss.resteasy.reactive.server.vertx.VertxResteasyReactiveRequestContext
context, CONTINUE, preCommitTask, request, responseFields inherited from class org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext
deployment, EMPTY_ARRAYFields inherited from class org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext
abortHandlerChain, CUSTOM_RR_PROPERTIES_PREFIX, handlers, log, logWebApplicationExceptions, position, throwable -
Constructor Summary
ConstructorsConstructorDescriptionQuarkusResteasyReactiveRequestContext(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 TypeMethodDescriptionprotected jakarta.ws.rs.core.SecurityContextprotected voidbooleanvoidhandleUnmappedException(Throwable throwable) protected voidhandleUnrecoverableError(Throwable throwable) protected voidinvokeHandler(int pos) The implementation looks like it makes no sense, but it in fact does make sense from a performance perspective.protected voidMethods inherited from class org.jboss.resteasy.reactive.server.vertx.VertxResteasyReactiveRequestContext
addCloseHandler, addDrainHandler, addResponseHeader, closeConnection, closed, containsRequestHeader, createInputStream, createInputStream, createResponseOutputStream, end, end, end, getAllQueryParams, getAllRequestHeaders, getAllRequestHeaders, getAllResponseHeaders, getContext, getContextExecutor, getEventLoop, getExistingParsedForm, getQueryParam, getRequestAbsoluteUri, getRequestHeader, getRequestHost, getRequestMethod, getRequestNormalisedPath, getRequestPath, getRequestScheme, getResponseHeader, handle, headWritten, isOnIoThread, isRequestEnded, isWriteQueueFull, pauseRequestInput, query, queryParamNames, registerTimer, removeResponseHeader, resumeExternalProcessing, resumeRequestInput, sendFile, serverRequest, serverResponse, setChunked, setPreCommitListener, setQueryParamsFrom, setReadListener, setResponseHeader, setResponseHeader, setStatusCode, unwrap, vertxServerRequest, vertxServerResponse, write, writeMethods inherited from class org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext
abortWith, close, endResponse, getAbsoluteURI, getAdditionalAnnotations, getAllAnnotations, getAsyncResponse, getAuthority, getContainerRequestContext, getContainerResponseContext, 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, 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, setUriInfo, setWriterInterceptorsMethods 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, unwrapExceptionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.jboss.resteasy.reactive.common.core.ResteasyReactiveCallbackContext
registerCompletionCallback, registerConnectionCallback
-
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:
handleRequestScopeActivationin classorg.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext
-
requestScopeDeactivated
protected void requestScopeDeactivated()- Overrides:
requestScopeDeactivatedin classorg.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext
-
createSecurityContext
protected jakarta.ws.rs.core.SecurityContext createSecurityContext()- Overrides:
createSecurityContextin classorg.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext
-
handleUnrecoverableError
- Overrides:
handleUnrecoverableErrorin classorg.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext
-
handlesUnmappedException
public boolean handlesUnmappedException()- Overrides:
handlesUnmappedExceptionin classorg.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext
-
handleUnmappedException
- Overrides:
handleUnmappedExceptionin classorg.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext
-
invokeHandler
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:
invokeHandlerin classorg.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext<org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext,org.jboss.resteasy.reactive.server.spi.ServerRestHandler> - Throws:
Exception
-