Class HttpServerBluePrint

java.lang.Object
org.apache.pekko.http.impl.engine.server.HttpServerBluePrint

public class HttpServerBluePrint extends Object
INTERNAL API

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 +-----------+

  • Constructor Details

    • HttpServerBluePrint

      public HttpServerBluePrint()
  • Method Details

    • apply

      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)
    • tlsSupport

      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()
    • websocketSupport

      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)
    • parsingRendering

      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)
    • controller

      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)
    • requestPreparation

      public static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse,ParserOutput.RequestOutput,HttpRequest,org.apache.pekko.NotUsed> requestPreparation(ServerSettings settings)
      Wraps the HTTP/1.1 request/response bidi flow.

      Opentelemetry Java Instrumentation relies on this method so avoid changing it. The agent wraps the returned BidiFlow to start and end server spans, and matches on the method name and on the BidiFlow return type. See https://github.com/apache/pekko-http/issues/1241

      Parameters:
      settings - (undocumented)
      Returns:
      (undocumented)
    • requestTimeoutSupport

      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)
    • parsing

      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)
    • rendering

      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)
    • userHandlerGuard

      public 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
      Parameters:
      pipeliningLimit - (undocumented)
      Returns:
      (undocumented)