Class ServerEndpointIndexer
java.lang.Object
org.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter,org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
org.jboss.resteasy.reactive.server.processor.ServerEndpointIndexer
public class ServerEndpointIndexer
extends org.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter,org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classServerEndpointIndexer.AbstractBuilder<B extends org.jboss.resteasy.reactive.common.processor.EndpointIndexer.Builder<ServerEndpointIndexer,B, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>> static classstatic interfacestatic interfaceNested classes/interfaces inherited from class org.jboss.resteasy.reactive.common.processor.EndpointIndexer
org.jboss.resteasy.reactive.common.processor.EndpointIndexer.BasicResourceClassInfo, org.jboss.resteasy.reactive.common.processor.EndpointIndexer.DeclaredTypes, org.jboss.resteasy.reactive.common.processor.EndpointIndexer.MultipartParameterIndexerExtension, org.jboss.resteasy.reactive.common.processor.EndpointIndexer.MultipartReturnTypeIndexerExtension, org.jboss.resteasy.reactive.common.processor.EndpointIndexer.ResourceMethodCallbackEntry -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final ServerEndpointIndexer.ConverterSupplierIndexerExtensionprotected final EndpointInvokerFactoryprotected final ServerEndpointIndexer.FieldInjectionIndexerExtensionprotected final List<MethodScanner> protected final booleanFields inherited from class org.jboss.resteasy.reactive.common.processor.EndpointIndexer
additionalReaders, alreadyHandledRequestScopedResources, applicationIndex, applicationScanningResult, CDI_WRAPPER_SUFFIX, config, EMPTY_STRING_ARRAY, existingConverters, hasRuntimeConverters, index, injectableBeans, log, METHOD_CONTEXT_ANNOTATION_STORE, METHOD_CONTEXT_CUSTOM_RETURN_TYPE_KEY, METHOD_PRODUCES, primitiveTypes, SUPPORT_TEMPORAL_PARAMS -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddReaderForType(org.jboss.resteasy.reactive.common.processor.AdditionalReaders additionalReaders, org.jboss.jandex.Type paramType) protected voidaddWriterForType(org.jboss.resteasy.reactive.common.processor.AdditionalWriters additionalWriters, org.jboss.jandex.Type paramType) protected ServerIndexedParameterprotected org.jboss.resteasy.reactive.common.model.MethodParametercreateMethodParameter(org.jboss.jandex.ClassInfo currentClassInfo, org.jboss.jandex.ClassInfo actualEndpointInfo, boolean encoded, org.jboss.jandex.Type paramType, ServerIndexedParameter parameterResult, String name, String defaultValue, org.jboss.resteasy.reactive.common.model.ParameterType type, String elementType, boolean single, String signature, Set<String> fileFormNames) protected org.jboss.resteasy.reactive.server.model.ServerResourceMethodcreateResourceMethod(org.jboss.jandex.MethodInfo methodInfo, org.jboss.jandex.ClassInfo actualEndpointClass, Map<String, Object> methodContext) protected booleandoesMethodHaveBlockingSignature(org.jboss.jandex.MethodInfo info) static org.jboss.jandex.MethodInfofindEndpointImplementation(org.jboss.jandex.MethodInfo methodInfo, org.jboss.jandex.ClassInfo actualEndpointClass, org.jboss.jandex.IndexView index) Aim here is to find a method that actually returns endpoint response.protected voidhandleAdditionalMethodProcessing(org.jboss.resteasy.reactive.server.model.ServerResourceMethod method, org.jboss.jandex.ClassInfo currentClassInfo, org.jboss.jandex.MethodInfo info, org.jboss.resteasy.reactive.common.processor.transformation.AnnotationStore annotationStore) protected voidhandleArrayParam(Map<String, String> existingConverters, String errorLocation, boolean hasRuntimeConverters, ServerIndexedParameter builder, String elementType, org.jboss.jandex.MethodInfo currentMethodInfo) protected booleanhandleBeanParam(org.jboss.jandex.ClassInfo actualEndpointInfo, org.jboss.jandex.Type paramType, org.jboss.resteasy.reactive.common.model.MethodParameter[] methodParameters, int i, Set<String> fileFormNames) protected booleanhandleCustomParameter(Map<org.jboss.jandex.DotName, org.jboss.jandex.AnnotationInstance> anns, ServerIndexedParameter builder, org.jboss.jandex.Type paramType, boolean field, Map<String, Object> methodContext) protected voidhandleListParam(Map<String, String> existingConverters, String errorLocation, boolean hasRuntimeConverters, ServerIndexedParameter builder, String elementType, org.jboss.jandex.MethodInfo currentMethodInfo) protected voidhandleOptionalParam(Map<String, String> existingConverters, Map<org.jboss.jandex.DotName, org.jboss.jandex.AnnotationInstance> parameterAnnotations, String errorLocation, boolean hasRuntimeConverters, ServerIndexedParameter builder, String elementType, String genericElementType, org.jboss.jandex.MethodInfo currentMethodInfo) protected voidhandleOtherParam(Map<String, String> existingConverters, String errorLocation, boolean hasRuntimeConverters, ServerIndexedParameter builder, String elementType, org.jboss.jandex.MethodInfo currentMethodInfo) protected voidprotected voidhandleSetParam(Map<String, String> existingConverters, String errorLocation, boolean hasRuntimeConverters, ServerIndexedParameter builder, String elementType, org.jboss.jandex.MethodInfo currentMethodInfo) protected voidhandleSortedSetParam(Map<String, String> existingConverters, String errorLocation, boolean hasRuntimeConverters, ServerIndexedParameter builder, String elementType, org.jboss.jandex.MethodInfo currentMethodInfo) protected voidhandleTemporalParam(ServerIndexedParameter builder, org.jboss.jandex.DotName paramType, Map<org.jboss.jandex.DotName, org.jboss.jandex.AnnotationInstance> parameterAnnotations, org.jboss.jandex.MethodInfo currentMethodInfo) protected StringhandleTrailingSlash(String path) For the server side, by default, we are removing the trailing slash unless is not configured otherwise.protected org.jboss.resteasy.reactive.common.model.InjectableBeanscanInjectableBean(org.jboss.jandex.ClassInfo currentClassInfo, org.jboss.jandex.ClassInfo actualEndpointInfo, Map<String, String> existingConverters, org.jboss.resteasy.reactive.common.processor.AdditionalReaders additionalReaders, Map<String, org.jboss.resteasy.reactive.common.model.InjectableBean> injectableBeans, boolean hasRuntimeConverters) Methods inherited from class org.jboss.resteasy.reactive.common.processor.EndpointIndexer
additionalRegisterClassForReflectionCheck, applyAdditionalDefaults, createEndpoints, createEndpoints, extractParameterInfo, extractProducesConsumesValues, getAnnotationStore, getDeclaredTypes, getPartMime, getSeparator, getSerializerScanningResult, handleClientSubResource, hasJson, hasJson, hasNoTypesDefined, isDefaultJson, isJson, logMissingJsonWarning, nameBindingNames, nameBindingNames, setupApplyDefaults, skipParameter, toClassName, verifyClassThatRequiresFieldInjection, warnAboutMissingJsonProviderIfNeeded, warnAboutMissUsedBodyParameter
-
Field Details
-
endpointInvokerFactory
-
methodScanners
-
fieldInjectionHandler
-
converterSupplierIndexerExtension
protected final ServerEndpointIndexer.ConverterSupplierIndexerExtension converterSupplierIndexerExtension -
removesTrailingSlash
protected final boolean removesTrailingSlash
-
-
Constructor Details
-
ServerEndpointIndexer
-
-
Method Details
-
addWriterForType
protected void addWriterForType(org.jboss.resteasy.reactive.common.processor.AdditionalWriters additionalWriters, org.jboss.jandex.Type paramType) - Specified by:
addWriterForTypein classorg.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-
addReaderForType
protected void addReaderForType(org.jboss.resteasy.reactive.common.processor.AdditionalReaders additionalReaders, org.jboss.jandex.Type paramType) - Specified by:
addReaderForTypein classorg.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-
createIndexedParam
- Specified by:
createIndexedParamin classorg.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-
handleCustomParameter
protected boolean handleCustomParameter(Map<org.jboss.jandex.DotName, org.jboss.jandex.AnnotationInstance> anns, ServerIndexedParameter builder, org.jboss.jandex.Type paramType, boolean field, Map<String, Object> methodContext) - Overrides:
handleCustomParameterin classorg.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-
createResourceMethod
protected org.jboss.resteasy.reactive.server.model.ServerResourceMethod createResourceMethod(org.jboss.jandex.MethodInfo methodInfo, org.jboss.jandex.ClassInfo actualEndpointClass, Map<String, Object> methodContext) - Specified by:
createResourceMethodin classorg.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-
findEndpointImplementation
public static org.jboss.jandex.MethodInfo findEndpointImplementation(org.jboss.jandex.MethodInfo methodInfo, org.jboss.jandex.ClassInfo actualEndpointClass, org.jboss.jandex.IndexView index) Aim here is to find a method that actually returns endpoint response. We can receive method with similar signature several times here, only differing in the modifiers (abstract etc.). However,actualEndpointClasswill change. For example once from the interface with JAX-RS endpoint defining annotations and also from implementors.- Returns:
- method that returns endpoint response
-
handleBeanParam
protected boolean handleBeanParam(org.jboss.jandex.ClassInfo actualEndpointInfo, org.jboss.jandex.Type paramType, org.jboss.resteasy.reactive.common.model.MethodParameter[] methodParameters, int i, Set<String> fileFormNames) - Specified by:
handleBeanParamin classorg.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-
doesMethodHaveBlockingSignature
protected boolean doesMethodHaveBlockingSignature(org.jboss.jandex.MethodInfo info) - Overrides:
doesMethodHaveBlockingSignaturein classorg.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-
handleAdditionalMethodProcessing
protected void handleAdditionalMethodProcessing(org.jboss.resteasy.reactive.server.model.ServerResourceMethod method, org.jboss.jandex.ClassInfo currentClassInfo, org.jboss.jandex.MethodInfo info, org.jboss.resteasy.reactive.common.processor.transformation.AnnotationStore annotationStore) - Overrides:
handleAdditionalMethodProcessingin classorg.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-
scanInjectableBean
protected org.jboss.resteasy.reactive.common.model.InjectableBean scanInjectableBean(org.jboss.jandex.ClassInfo currentClassInfo, org.jboss.jandex.ClassInfo actualEndpointInfo, Map<String, String> existingConverters, org.jboss.resteasy.reactive.common.processor.AdditionalReaders additionalReaders, Map<String, org.jboss.resteasy.reactive.common.model.InjectableBean> injectableBeans, boolean hasRuntimeConverters) - Specified by:
scanInjectableBeanin classorg.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-
createMethodParameter
protected org.jboss.resteasy.reactive.common.model.MethodParameter createMethodParameter(org.jboss.jandex.ClassInfo currentClassInfo, org.jboss.jandex.ClassInfo actualEndpointInfo, boolean encoded, org.jboss.jandex.Type paramType, ServerIndexedParameter parameterResult, String name, String defaultValue, org.jboss.resteasy.reactive.common.model.ParameterType type, String elementType, boolean single, String signature, Set<String> fileFormNames) - Specified by:
createMethodParameterin classorg.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-
handleOtherParam
protected void handleOtherParam(Map<String, String> existingConverters, String errorLocation, boolean hasRuntimeConverters, ServerIndexedParameter builder, String elementType, org.jboss.jandex.MethodInfo currentMethodInfo) - Overrides:
handleOtherParamin classorg.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-
handleSortedSetParam
protected void handleSortedSetParam(Map<String, String> existingConverters, String errorLocation, boolean hasRuntimeConverters, ServerIndexedParameter builder, String elementType, org.jboss.jandex.MethodInfo currentMethodInfo) - Overrides:
handleSortedSetParamin classorg.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-
handleOptionalParam
protected void handleOptionalParam(Map<String, String> existingConverters, Map<org.jboss.jandex.DotName, org.jboss.jandex.AnnotationInstance> parameterAnnotations, String errorLocation, boolean hasRuntimeConverters, ServerIndexedParameter builder, String elementType, String genericElementType, org.jboss.jandex.MethodInfo currentMethodInfo) - Overrides:
handleOptionalParamin classorg.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-
handleSetParam
protected void handleSetParam(Map<String, String> existingConverters, String errorLocation, boolean hasRuntimeConverters, ServerIndexedParameter builder, String elementType, org.jboss.jandex.MethodInfo currentMethodInfo) - Overrides:
handleSetParamin classorg.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-
handleListParam
protected void handleListParam(Map<String, String> existingConverters, String errorLocation, boolean hasRuntimeConverters, ServerIndexedParameter builder, String elementType, org.jboss.jandex.MethodInfo currentMethodInfo) - Overrides:
handleListParamin classorg.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-
handleArrayParam
protected void handleArrayParam(Map<String, String> existingConverters, String errorLocation, boolean hasRuntimeConverters, ServerIndexedParameter builder, String elementType, org.jboss.jandex.MethodInfo currentMethodInfo) - Overrides:
handleArrayParamin classorg.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-
handlePathSegmentParam
- Overrides:
handlePathSegmentParamin classorg.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-
handleTrailingSlash
For the server side, by default, we are removing the trailing slash unless is not configured otherwise.- Overrides:
handleTrailingSlashin classorg.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-
handleTemporalParam
protected void handleTemporalParam(ServerIndexedParameter builder, org.jboss.jandex.DotName paramType, Map<org.jboss.jandex.DotName, org.jboss.jandex.AnnotationInstance> parameterAnnotations, org.jboss.jandex.MethodInfo currentMethodInfo) - Overrides:
handleTemporalParamin classorg.jboss.resteasy.reactive.common.processor.EndpointIndexer<ServerEndpointIndexer,ServerIndexedParameter, org.jboss.resteasy.reactive.server.model.ServerResourceMethod>
-