public class HttpServerBluePrint
extends java.lang.Object
HTTP pipeline setup (without the underlying SSL/TLS (un)wrapping and the websocket switch):
+----------+ +-------------+ +-------------+ +-----------+ HttpRequest | | Http- | request- | Request- | | Request- | request- | ByteString | <------------+ <----------+ Preparation <----------+ <-------------+ Parsing <----------- | | | Request | | Output | | Output | | | | | +-------------+ | | +-----------+ | | | | | | Application- | One2One- | | controller- | | Flow | Bidi | | Stage | | | | | | | | | | | +-----------+ | HttpResponse | | HttpResponse | | Response- | renderer- | ByteString v -------------> +-----------------------------------> +-------------> Pipeline +----------> | | | | Rendering- | | +----------+ +-------------+ Context +-----------+
Modifier and Type | Class and Description |
---|---|
static class |
HttpServerBluePrint.ControllerStage |
static class |
HttpServerBluePrint.PrepareRequests
Two state stage, either transforms an incoming RequestOutput into a HttpRequest with strict entity and then pushes
that (the "idle" inHandler) or creates a HttpRequest with a streamed entity and switch to a state which will push
incoming chunks into the streaming entity until end of request is reached (the StreamedEntityCreator case in create
entity).
|
static class |
HttpServerBluePrint.RequestTimeoutSupport |
Constructor and Description |
---|
HttpServerBluePrint() |
Modifier and Type | Method and Description |
---|---|
static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,org.apache.pekko.stream.TLSProtocol.SslTlsOutbound,org.apache.pekko.stream.TLSProtocol.SslTlsInbound,HttpRequest,org.apache.pekko.NotUsed> |
apply(ServerSettings settings,
org.apache.pekko.event.LoggingAdapter log,
boolean isSecureConnection,
DateHeaderRendering dateHeaderRendering) |
static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,ResponseRenderingContext,ParserOutput.RequestOutput,ParserOutput.RequestOutput,org.apache.pekko.NotUsed> |
controller(ServerSettings settings,
org.apache.pekko.event.LoggingAdapter log) |
static org.apache.pekko.stream.scaladsl.Flow<org.apache.pekko.stream.TLSProtocol.SessionBytes,ParserOutput.RequestOutput,org.apache.pekko.NotUsed> |
parsing(ServerSettings settings,
org.apache.pekko.event.LoggingAdapter log,
boolean isSecureConnection) |
static org.apache.pekko.stream.scaladsl.BidiFlow<ResponseRenderingContext,ResponseRenderingOutput,org.apache.pekko.stream.TLSProtocol.SessionBytes,ParserOutput.RequestOutput,org.apache.pekko.NotUsed> |
parsingRendering(ServerSettings settings,
org.apache.pekko.event.LoggingAdapter log,
boolean isSecureConnection,
DateHeaderRendering dateHeaderRendering) |
static org.apache.pekko.stream.scaladsl.Flow<ResponseRenderingContext,ResponseRenderingOutput,org.apache.pekko.NotUsed> |
rendering(ServerSettings settings,
org.apache.pekko.event.LoggingAdapter log,
DateHeaderRendering dateHeaderRendering) |
static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse,ParserOutput.RequestOutput,HttpRequest,org.apache.pekko.NotUsed> |
requestPreparation(ServerSettings settings) |
static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse,HttpRequest,HttpRequest,org.apache.pekko.NotUsed> |
requestTimeoutSupport(scala.concurrent.duration.Duration timeout,
org.apache.pekko.event.LoggingAdapter log) |
static org.apache.pekko.stream.scaladsl.BidiFlow<org.apache.pekko.util.ByteString,org.apache.pekko.stream.TLSProtocol.SslTlsOutbound,org.apache.pekko.stream.TLSProtocol.SslTlsInbound,org.apache.pekko.stream.TLSProtocol.SessionBytes,org.apache.pekko.NotUsed> |
tlsSupport() |
static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse,HttpRequest,HttpRequest,org.apache.pekko.NotUsed> |
userHandlerGuard(int pipeliningLimit)
Ensures that the user handler
- produces exactly one response per request
- has not more than
pipeliningLimit responses outstanding |
static org.apache.pekko.stream.scaladsl.BidiFlow<ResponseRenderingOutput,org.apache.pekko.util.ByteString,org.apache.pekko.stream.TLSProtocol.SessionBytes,org.apache.pekko.stream.TLSProtocol.SessionBytes,org.apache.pekko.NotUsed> |
websocketSupport(ServerSettings settings,
org.apache.pekko.event.LoggingAdapter log) |
public static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,org.apache.pekko.stream.TLSProtocol.SslTlsOutbound,org.apache.pekko.stream.TLSProtocol.SslTlsInbound,HttpRequest,org.apache.pekko.NotUsed> apply(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, boolean isSecureConnection, DateHeaderRendering dateHeaderRendering)
public static org.apache.pekko.stream.scaladsl.BidiFlow<org.apache.pekko.util.ByteString,org.apache.pekko.stream.TLSProtocol.SslTlsOutbound,org.apache.pekko.stream.TLSProtocol.SslTlsInbound,org.apache.pekko.stream.TLSProtocol.SessionBytes,org.apache.pekko.NotUsed> tlsSupport()
public static org.apache.pekko.stream.scaladsl.BidiFlow<ResponseRenderingOutput,org.apache.pekko.util.ByteString,org.apache.pekko.stream.TLSProtocol.SessionBytes,org.apache.pekko.stream.TLSProtocol.SessionBytes,org.apache.pekko.NotUsed> websocketSupport(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log)
public static org.apache.pekko.stream.scaladsl.BidiFlow<ResponseRenderingContext,ResponseRenderingOutput,org.apache.pekko.stream.TLSProtocol.SessionBytes,ParserOutput.RequestOutput,org.apache.pekko.NotUsed> parsingRendering(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, boolean isSecureConnection, DateHeaderRendering dateHeaderRendering)
public static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,ResponseRenderingContext,ParserOutput.RequestOutput,ParserOutput.RequestOutput,org.apache.pekko.NotUsed> controller(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log)
public static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse,ParserOutput.RequestOutput,HttpRequest,org.apache.pekko.NotUsed> requestPreparation(ServerSettings settings)
public static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse,HttpRequest,HttpRequest,org.apache.pekko.NotUsed> requestTimeoutSupport(scala.concurrent.duration.Duration timeout, org.apache.pekko.event.LoggingAdapter log)
public static org.apache.pekko.stream.scaladsl.Flow<org.apache.pekko.stream.TLSProtocol.SessionBytes,ParserOutput.RequestOutput,org.apache.pekko.NotUsed> parsing(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, boolean isSecureConnection)
public static org.apache.pekko.stream.scaladsl.Flow<ResponseRenderingContext,ResponseRenderingOutput,org.apache.pekko.NotUsed> rendering(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, DateHeaderRendering dateHeaderRendering)
public static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse,HttpRequest,HttpRequest,org.apache.pekko.NotUsed> userHandlerGuard(int pipeliningLimit)
pipeliningLimit
responses outstandingpipeliningLimit
- (undocumented)