Class HttpServerBluePrint
- java.lang.Object
-
- akka.http.impl.engine.server.HttpServerBluePrint
-
public class HttpServerBluePrint extends java.lang.Object
INTERNAL APIHTTP 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 +-----------+
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 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 Summary
Constructors Constructor Description HttpServerBluePrint()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static akka.stream.scaladsl.BidiFlow<HttpResponse,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,HttpRequest,akka.NotUsed>
apply(ServerSettings settings, akka.event.LoggingAdapter log, boolean isSecureConnection, DateHeaderRendering dateHeaderRendering)
static akka.stream.scaladsl.BidiFlow<HttpResponse,ResponseRenderingContext,ParserOutput.RequestOutput,ParserOutput.RequestOutput,akka.NotUsed>
controller(ServerSettings settings, akka.event.LoggingAdapter log)
static akka.stream.scaladsl.Flow<akka.stream.TLSProtocol.SessionBytes,ParserOutput.RequestOutput,akka.NotUsed>
parsing(ServerSettings settings, akka.event.LoggingAdapter log, boolean isSecureConnection)
static akka.stream.scaladsl.BidiFlow<ResponseRenderingContext,ResponseRenderingOutput,akka.stream.TLSProtocol.SessionBytes,ParserOutput.RequestOutput,akka.NotUsed>
parsingRendering(ServerSettings settings, akka.event.LoggingAdapter log, boolean isSecureConnection, DateHeaderRendering dateHeaderRendering)
static akka.stream.scaladsl.Flow<ResponseRenderingContext,ResponseRenderingOutput,akka.NotUsed>
rendering(ServerSettings settings, akka.event.LoggingAdapter log, DateHeaderRendering dateHeaderRendering)
static akka.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse,ParserOutput.RequestOutput,HttpRequest,akka.NotUsed>
requestPreparation(ServerSettings settings)
static akka.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse,HttpRequest,HttpRequest,akka.NotUsed>
requestTimeoutSupport(scala.concurrent.duration.Duration timeout, akka.event.LoggingAdapter log)
static akka.stream.scaladsl.BidiFlow<akka.util.ByteString,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,akka.stream.TLSProtocol.SessionBytes,akka.NotUsed>
tlsSupport()
static akka.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse,HttpRequest,HttpRequest,akka.NotUsed>
userHandlerGuard(int pipeliningLimit)
Ensures that the user handler - produces exactly one response per request - has not more thanpipeliningLimit
responses outstandingstatic akka.stream.scaladsl.BidiFlow<ResponseRenderingOutput,akka.util.ByteString,akka.stream.TLSProtocol.SessionBytes,akka.stream.TLSProtocol.SessionBytes,akka.NotUsed>
websocketSupport(ServerSettings settings, akka.event.LoggingAdapter log)
-
-
-
Method Detail
-
apply
public static akka.stream.scaladsl.BidiFlow<HttpResponse,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,HttpRequest,akka.NotUsed> apply(ServerSettings settings, akka.event.LoggingAdapter log, boolean isSecureConnection, DateHeaderRendering dateHeaderRendering)
-
tlsSupport
public static akka.stream.scaladsl.BidiFlow<akka.util.ByteString,akka.stream.TLSProtocol.SslTlsOutbound,akka.stream.TLSProtocol.SslTlsInbound,akka.stream.TLSProtocol.SessionBytes,akka.NotUsed> tlsSupport()
-
websocketSupport
public static akka.stream.scaladsl.BidiFlow<ResponseRenderingOutput,akka.util.ByteString,akka.stream.TLSProtocol.SessionBytes,akka.stream.TLSProtocol.SessionBytes,akka.NotUsed> websocketSupport(ServerSettings settings, akka.event.LoggingAdapter log)
-
parsingRendering
public static akka.stream.scaladsl.BidiFlow<ResponseRenderingContext,ResponseRenderingOutput,akka.stream.TLSProtocol.SessionBytes,ParserOutput.RequestOutput,akka.NotUsed> parsingRendering(ServerSettings settings, akka.event.LoggingAdapter log, boolean isSecureConnection, DateHeaderRendering dateHeaderRendering)
-
controller
public static akka.stream.scaladsl.BidiFlow<HttpResponse,ResponseRenderingContext,ParserOutput.RequestOutput,ParserOutput.RequestOutput,akka.NotUsed> controller(ServerSettings settings, akka.event.LoggingAdapter log)
-
requestPreparation
public static akka.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse,ParserOutput.RequestOutput,HttpRequest,akka.NotUsed> requestPreparation(ServerSettings settings)
-
requestTimeoutSupport
public static akka.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse,HttpRequest,HttpRequest,akka.NotUsed> requestTimeoutSupport(scala.concurrent.duration.Duration timeout, akka.event.LoggingAdapter log)
-
parsing
public static akka.stream.scaladsl.Flow<akka.stream.TLSProtocol.SessionBytes,ParserOutput.RequestOutput,akka.NotUsed> parsing(ServerSettings settings, akka.event.LoggingAdapter log, boolean isSecureConnection)
-
rendering
public static akka.stream.scaladsl.Flow<ResponseRenderingContext,ResponseRenderingOutput,akka.NotUsed> rendering(ServerSettings settings, akka.event.LoggingAdapter log, DateHeaderRendering dateHeaderRendering)
-
userHandlerGuard
public static akka.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse,HttpRequest,HttpRequest,akka.NotUsed> userHandlerGuard(int pipeliningLimit)
Ensures that the user handler - produces exactly one response per request - has not more thanpipeliningLimit
responses outstanding- Parameters:
pipeliningLimit
- (undocumented)- Returns:
- (undocumented)
-
-