Class WebServer.Builder

java.lang.Object
io.helidon.nima.webserver.WebServer.Builder
All Implemented Interfaces:
Builder<WebServer.Builder,WebServer>, Router.RouterBuilder<WebServer.Builder>, Supplier<WebServer>
Enclosing interface:
WebServer

public static class WebServer.Builder extends Object implements Builder<WebServer.Builder,WebServer>, Router.RouterBuilder<WebServer.Builder>
Fluent API builder for WebServer.
  • Method Details

    • build

      public WebServer build()
      Description copied from interface: Builder
      Build the instance from this builder.
      Specified by:
      build in interface Builder<WebServer.Builder,WebServer>
      Returns:
      instance of the built type
    • start

      public WebServer start()
      Build and start the server.
      Returns:
      started server instance
    • config

      public WebServer.Builder config(Config config)
      Update this builder from configuration.
      Parameters:
      config - configuration to use
      Returns:
      updated builder instance
    • socket

      public WebServer.Builder socket(String socketName, Consumer<ListenerConfiguration.Builder> socketBuilder)
      Configure additional socket with listener configuration using default routing.
      Parameters:
      socketName - socket name
      socketBuilder - consumer of listener configuration
      Returns:
      updated builder
    • socket

      Configure additional socket with listener configuration and custom routing.
      Parameters:
      socketName - socket name
      builders - consumer of listener and router builders
      Returns:
      updated builder
    • routerBuilder

      public Router.Builder routerBuilder(String socketName)
      Router builder for a named socket.
      Parameters:
      socketName - name of the socket, when WebServer.DEFAULT_SOCKET_NAME is used, the same builder as used by this instance is returned
      Returns:
      listener builder
    • socketBuilder

      public ListenerConfiguration.Builder socketBuilder(String socketName)
      Socket builder for a named socket.
      Parameters:
      socketName - name of the socket, when WebServer.DEFAULT_SOCKET_NAME is used, the same builder as used by this instance is returned
      Returns:
      listener builder
    • defaultSocket

      public WebServer.Builder defaultSocket(Consumer<ListenerConfiguration.Builder> socketBuilder)
      Configure listener for the default socket.
      Parameters:
      socketBuilder - listener builder consumer
      Returns:
      updated builder
    • port

      public WebServer.Builder port(int port)
      Port of the default socket.
      Parameters:
      port - port to bind to
      Returns:
      updated builder
    • host

      public WebServer.Builder host(String host)
      Host of the default socket.
      Parameters:
      host - host or IP address to bind to
      Returns:
      updated builder
    • directHandler

      public WebServer.Builder directHandler(DirectHandler handler, DirectHandler.EventType... eventTypes)
      Configure a simple handler.
      Parameters:
      handler - handler to use
      eventTypes - event types this handler should handle
      Returns:
      updated builder
    • routing

      public WebServer.Builder routing(Consumer<? super HttpRouting.Builder> consumer)
      Configure default HTTP routing.
      Parameters:
      consumer - routing consumer
      Returns:
      updated builder
      See Also:
    • addRouting

      public WebServer.Builder addRouting(Routing routing)
      Description copied from interface: Router.RouterBuilder
      Add a new routing to this router.
      Specified by:
      addRouting in interface Router.RouterBuilder<WebServer.Builder>
      Parameters:
      routing - routing to add, such as io.helidon.nima.webserver.http.HttpRouting
      Returns:
      updated builder
    • tls

      public WebServer.Builder tls(Tls tls)
      Configure TLS for the default socket.
      Parameters:
      tls - tls to use
      Returns:
      updated builder
    • addConnectionProvider

      public WebServer.Builder addConnectionProvider(ServerConnectionProvider connectionProvider)
      Configure a connection providers. This instance has priority over provider(s) discovered by service loader.
      Parameters:
      connectionProvider - explicit connection provider
      Returns:
      updated builder
    • hasSocket

      public boolean hasSocket(String socketName)
      A method to validate a named socket configuration exists in this builder.
      Parameters:
      socketName - name of the socket, using WebServer.DEFAULT_SOCKET_NAME will always return true
      Returns:
      true in case the named socket is configured in this builder
    • addMediaSupport

      public WebServer.Builder addMediaSupport(MediaSupport mediaSupport)
      Add an explicit media support to the list. By default, all discovered media supports will be available to the server. Use this method only when the media support is not discoverable by service loader, or when using explicit mediaContext(io.helidon.nima.http.media.MediaContext).
      Parameters:
      mediaSupport - media support to add
      Returns:
      updated builder
    • mediaContext

      public WebServer.Builder mediaContext(MediaContext mediaContext)
      Configure the MediaContext. This method discards previously registered MediaContext and all previously registered MediaSupport. If an explicit media support is configured using addMediaSupport(io.helidon.nima.http.media.MediaSupport), this context will be used as a fallback for a new one created from configured values.
      Parameters:
      mediaContext - media context
      Returns:
      updated instance of the builder
      See Also:
    • contentEncodingContext

      public WebServer.Builder contentEncodingContext(ContentEncodingContext contentEncodingContext)
      Configure the default ContentEncodingContext. This method discards all previously registered ContentEncodingContext.
      Parameters:
      contentEncodingContext - content encoding context
      Returns:
      updated instance of the builder
    • context

      public WebServer.Builder context(Context context)
      Configure the application scoped context to be used as a parent for webserver request contexts.
      Parameters:
      context - top level context
      Returns:
      an updated builder
    • shutdownHook

      public WebServer.Builder shutdownHook(boolean shutdownHook)
      When true the webserver registers a shutdown hook with the JVM Runtime.

      Defaults to true. Set this to false such that a shutdown hook is not registered.

      Parameters:
      shutdownHook - When true register a shutdown hook
      Returns:
      updated builder
    • inheritThreadLocals

      public WebServer.Builder inheritThreadLocals(boolean inheritThreadLocals)
      Configure whether server threads should inherit inheritable thread locals. Default value is false.
      Parameters:
      inheritThreadLocals - whether to inherit thread locals
      Returns:
      an updated builder