Packages

sealed class JettyBuilder[F[_]] extends ServletContainer[F] with ServerBuilder[F]

Source
JettyBuilder.scala
Linear Supertypes
ServletContainer[F], ServerBuilder[F], BackendBuilder[F, Server], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. JettyBuilder
  2. ServletContainer
  3. ServerBuilder
  4. BackendBuilder
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. type Self = JettyBuilder[F]
    Definition Classes
    JettyBuilderServletContainerServerBuilder

Value Members

  1. def allocated: F[(Server, F[Unit])]

    Returns an effect that allocates a backend and an F[Unit] to release it.

    Returns an effect that allocates a backend and an F[Unit] to release it. The returned F waits until the backend is ready to process requests. The second element of the tuple shuts down the backend when run.

    Unlike resource and stream, there is no automatic release of the backend. This function is intended for REPL sessions, tests, and other situations where composing a cats.effect.Resource or fs2.Stream is not tenable. resource or stream is recommended wherever possible.

    Definition Classes
    BackendBuilder
  2. final def bindAny(host: String = defaults.IPv4Host): Self
    Definition Classes
    ServerBuilder
  3. final def bindHttp(port: Int = defaults.HttpPort, host: String = defaults.IPv4Host): Self
    Definition Classes
    ServerBuilder
  4. final def bindLocal(port: Int): Self
    Definition Classes
    ServerBuilder
  5. def bindSocketAddress(socketAddress: InetSocketAddress): Self
    Definition Classes
    JettyBuilderServerBuilder
  6. def mountFilter(filter: Filter, urlMapping: String, name: Option[String], dispatches: EnumSet[DispatcherType]): Self

    Mounts a filter to the server.

    Mounts a filter to the server.

    The http4s way is to create a middleware around an HttpRoutes, which runs not just on servlet containers, but all supported backends. This method is good for legacy scenarios, or for reusing parts of the servlet ecosystem for an app that is committed to running on a servlet container.

    Definition Classes
    JettyBuilderServletContainer
  7. def mountHttpApp(service: HttpApp[F], prefix: String): Self
  8. def mountService(service: HttpRoutes[F], prefix: String): Self
  9. def mountServlet(servlet: HttpServlet, urlMapping: String, name: Option[String] = None): Self

    Mounts a servlet to the server.

    Mounts a servlet to the server.

    The http4s way is to create HttpRoutes, which runs not just on servlet containers, but all supported backends. This method is good for legacy scenarios, or for reusing parts of the servlet ecosystem for an app that is committed to running on a servlet container.

    Definition Classes
    JettyBuilderServletContainer
  10. def resource: Resource[F, Server]

    Returns a Server resource.

    Returns a Server resource. The resource is not acquired until the server is started and ready to accept requests.

    Definition Classes
    JettyBuilderServerBuilder → BackendBuilder
  11. final def serve: Stream[F, ExitCode]

    Runs the server as a process that never emits.

    Runs the server as a process that never emits. Useful for a server that runs for the rest of the JVM's life.

    Definition Classes
    ServerBuilder
  12. final def serveWhile(terminateWhenTrue: Signal[F, Boolean], exitWith: Ref[F, ExitCode]): Stream[F, ExitCode]

    Runs the server as a Stream that emits only when the terminated signal becomes true.

    Runs the server as a Stream that emits only when the terminated signal becomes true. Useful for servers with associated lifetime behaviors.

    Definition Classes
    ServerBuilder
  13. def stream: Stream[F, Server]

    Returns the backend as a single-element stream.

    Returns the backend as a single-element stream. The stream does not emit until the backend is ready to process requests. The backend is shut down when the stream is finalized.

    Definition Classes
    BackendBuilder
  14. def withAsyncTimeout(asyncTimeout: Duration): Self
  15. def withBanner(banner: Seq[String]): Self

    Set the banner to display when the server starts up

    Set the banner to display when the server starts up

    Definition Classes
    JettyBuilderServerBuilder
  16. def withHttp2c: Self

    Enables HTTP/2 connection upgrade over plain text (no TLS).

    Enables HTTP/2 connection upgrade over plain text (no TLS). See https://webtide.com/introduction-to-http2-in-jetty

  17. def withIdleTimeout(idleTimeout: Duration): Self
  18. def withJettyHttpConfiguration(value: HttpConfiguration): Self

    Provide a specific org.eclipse.jetty.server.HttpConfiguration.

    Provide a specific org.eclipse.jetty.server.HttpConfiguration.

    This can be used for direct low level control over many HTTP related configuration settings which http4s may not directly expose.

  19. def withServiceErrorHandler(serviceErrorHandler: ServiceErrorHandler[F]): Self

    Sets the handler for errors thrown invoking the service.

    Sets the handler for errors thrown invoking the service. Is not guaranteed to be invoked on errors on the server backend, such as parsing a request or handling a context timeout.

    Definition Classes
    JettyBuilderServerBuilder
  20. def withServletIo(servletIo: ServletIo[F]): Self

    Sets the servlet I/O mode for reads and writes within the servlet.

    Sets the servlet I/O mode for reads and writes within the servlet. Not to be confused with the server connectors.

    Definition Classes
    JettyBuilderServletContainer
    See also

    org.http4s.servlet.ServletIo

  21. def withShutdownTimeout(shutdownTimeout: Duration): Self

    Sets the graceful shutdown timeout for Jetty.

    Sets the graceful shutdown timeout for Jetty. Closing the resource will wait this long before a forcible stop.

  22. def withSslContext(sslContext: SSLContext): Self

    Configures the server with TLS, using the provided SSLContext and its default SSLParameters

  23. def withSslContextAndParameters(sslContext: SSLContext, sslParameters: SSLParameters): Self

    Configures the server with TLS, using the provided SSLContext and its default SSLParameters

  24. def withThreadPoolResource(threadPoolResource: Resource[F, ThreadPool]): JettyBuilder[F]

    Set the org.eclipse.jetty.util.thread.ThreadPool that Jetty will use.

    Set the org.eclipse.jetty.util.thread.ThreadPool that Jetty will use.

    It is recommended you use JettyThreadPools#resource to build this so that it will be gracefully shutdown when/if the Jetty server is shutdown.

  25. final def withoutBanner: Self

    Disable the banner when the server starts up

    Disable the banner when the server starts up

    Definition Classes
    ServerBuilder
  26. def withoutHttp2c: Self
  27. def withoutSsl: Self

    Disables SSL.

Deprecated Value Members

  1. def withSSL(keyStore: StoreInfo, keyManagerPassword: String, protocol: String = "TLS", trustStore: Option[StoreInfo] = None, clientAuth: SSLClientAuthMode = SSLClientAuthMode.NotRequested): Self
    Annotations
    @deprecated
    Deprecated

    (Since version 0.21.0-RC3) Build an SSLContext from the first four parameters and use withSslContext (note lowercase). To also request client certificates, use withSslContextAndParameters, calling either .setWantClientAuth(true) or setNeedClientAuth(true) on the SSLParameters.

  2. def withSSLContext(sslContext: SSLContext, clientAuth: SSLClientAuthMode = SSLClientAuthMode.NotRequested): Self
    Annotations
    @deprecated
    Deprecated

    (Since version 0.21.0-RC3) Use withSslContext (note lowercase). To request client certificates, use withSslContextAndParameters, calling either .setWantClientAuth(true) or setNeedClientAuth(true) on the SSLParameters.

  3. def withThreadPool(threadPool: ThreadPool): JettyBuilder[F]

    Set the org.eclipse.jetty.util.thread.ThreadPool that Jetty will use.

    Set the org.eclipse.jetty.util.thread.ThreadPool that Jetty will use.

    Annotations
    @deprecated
    Deprecated

    (Since version 0.21.23) Please use withThreadPoolResource instead and see JettyThreadPools.

    Note

    You should prefer #withThreadPoolResource instead of this method. If you invoke this method the provided org.eclipse.jetty.util.thread.ThreadPool will not be joined, stopped, or destroyed when/if the Jetty server stops. This is to preserve the <= 0.21.23 semantics.