Package io.micronaut.http.server
Class ResponseLifecycle
java.lang.Object
io.micronaut.http.server.ResponseLifecycle
This class handles encoding of the HTTP response in a server-agnostic way. Note that while this
class is internal, it is used from servlet and must not be broken.
- Since:
- 4.8.0
-
Constructor Summary
ConstructorsConstructorDescriptionResponseLifecycle(RouteExecutor routeExecutor, io.micronaut.http.body.MessageBodyHandlerRegistry messageBodyHandlerRegistry, io.micronaut.core.convert.ConversionService conversionService, io.micronaut.http.body.ByteBodyFactory byteBodyFactory) -
Method Summary
Modifier and TypeMethodDescriptionprotected @NonNull io.micronaut.http.body.CloseableByteBodyconcatenate(@NonNull org.reactivestreams.Publisher<io.micronaut.http.body.ByteBody> items) protected @NonNull io.micronaut.http.body.CloseableByteBodyconcatenateJson(@NonNull org.reactivestreams.Publisher<io.micronaut.http.body.ByteBody> items) final @NonNull io.micronaut.core.execution.ExecutionFlow<? extends io.micronaut.http.ByteBodyHttpResponse<?>>encodeHttpResponseSafe(@NonNull io.micronaut.http.HttpRequest<?> httpRequest, @NonNull io.micronaut.http.HttpResponse<?> response) Encode the response.protected io.micronaut.core.execution.ExecutionFlow<? extends io.micronaut.http.ByteBodyHttpResponse<?>>encodeNoBody(io.micronaut.http.HttpResponse<?> response) Encode the given response without body, either because it has none or because this is a HEAD response.protected final @NonNull io.micronaut.core.execution.ExecutionFlow<? extends io.micronaut.http.ByteBodyHttpResponse<?>>handleStreamingError(@NonNull io.micronaut.http.HttpRequest<?> request, @NonNull Throwable t) Handle an error that happened before the first item of a streaming response.protected abstract @NonNull ExecutorThe IO executor for blocking writers.protected <T> @NonNull io.micronaut.http.body.ResponseBodyWriter<T>wrap(@NonNull io.micronaut.http.body.MessageBodyWriter<T> messageBodyWriter) Transform the given writer into aResponseBodyWriter.
-
Constructor Details
-
ResponseLifecycle
public ResponseLifecycle(RouteExecutor routeExecutor, io.micronaut.http.body.MessageBodyHandlerRegistry messageBodyHandlerRegistry, io.micronaut.core.convert.ConversionService conversionService, io.micronaut.http.body.ByteBodyFactory byteBodyFactory)
-
-
Method Details
-
ioExecutor
The IO executor for blocking writers.- Returns:
- The blocking executor
-
wrap
@NonNull protected <T> @NonNull io.micronaut.http.body.ResponseBodyWriter<T> wrap(@NonNull @NonNull io.micronaut.http.body.MessageBodyWriter<T> messageBodyWriter) Transform the given writer into aResponseBodyWriter.- Type Parameters:
T- The writer type- Parameters:
messageBodyWriter- The writer- Returns:
- The response writer
-
encodeHttpResponseSafe
@NonNull public final @NonNull io.micronaut.core.execution.ExecutionFlow<? extends io.micronaut.http.ByteBodyHttpResponse<?>> encodeHttpResponseSafe(@NonNull @NonNull io.micronaut.http.HttpRequest<?> httpRequest, @NonNull @NonNull io.micronaut.http.HttpResponse<?> response) Encode the response.- Parameters:
httpRequest- The request that triggered this responseresponse- The unencoded response- Returns:
- The encoded response
-
encodeNoBody
protected io.micronaut.core.execution.ExecutionFlow<? extends io.micronaut.http.ByteBodyHttpResponse<?>> encodeNoBody(io.micronaut.http.HttpResponse<?> response) Encode the given response without body, either because it has none or because this is a HEAD response.- Parameters:
response- The response- Returns:
- The encoded response
-
concatenate
@NonNull protected @NonNull io.micronaut.http.body.CloseableByteBody concatenate(@NonNull @NonNull org.reactivestreams.Publisher<io.micronaut.http.body.ByteBody> items) - Parameters:
items- The items- Returns:
- The concatenated body
- See Also:
-
ConcatenatingSubscriber.concatenate(io.micronaut.http.body.ByteBodyFactory, org.reactivestreams.Publisher<io.micronaut.http.body.ByteBody>, io.micronaut.http.body.ConcatenatingSubscriber.Separators)
-
concatenateJson
@NonNull protected @NonNull io.micronaut.http.body.CloseableByteBody concatenateJson(@NonNull @NonNull org.reactivestreams.Publisher<io.micronaut.http.body.ByteBody> items) - Parameters:
items- The items- Returns:
- The concatenated body
- See Also:
-
ConcatenatingSubscriber.concatenate(io.micronaut.http.body.ByteBodyFactory, org.reactivestreams.Publisher<io.micronaut.http.body.ByteBody>, io.micronaut.http.body.ConcatenatingSubscriber.Separators)
-
handleStreamingError
@NonNull protected final @NonNull io.micronaut.core.execution.ExecutionFlow<? extends io.micronaut.http.ByteBodyHttpResponse<?>> handleStreamingError(@NonNull @NonNull io.micronaut.http.HttpRequest<?> request, @NonNull @NonNull Throwable t) Handle an error that happened before the first item of a streaming response.- Parameters:
request- The requestt- The error- Returns:
- The encoded error response
-