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 Summary
Modifier and TypeMethodDescriptionaddConnectionProvider(ServerConnectionProvider connectionProvider) Configure a connection providers.addMediaSupport(MediaSupport mediaSupport) Add an explicit media support to the list.addRouting(Routing routing) Add a new routing to this router.build()Build the instance from this builder.Update this builder from configuration.contentEncodingContext(ContentEncodingContext contentEncodingContext) Configure the defaultContentEncodingContext.Configure the application scoped context to be used as a parent for webserver request contexts.defaultSocket(Consumer<ListenerConfiguration.Builder> socketBuilder) Configure listener for the default socket.directHandler(DirectHandler handler, DirectHandler.EventType... eventTypes) Configure a simple handler.booleanA method to validate a named socket configuration exists in this builder.Host of the default socket.inheritThreadLocals(boolean inheritThreadLocals) Configure whether server threads should inherit inheritable thread locals.mediaContext(MediaContext mediaContext) Configure theMediaContext.port(int port) Port of the default socket.routerBuilder(String socketName) Router builder for a named socket.routing(Consumer<? super HttpRouting.Builder> consumer) Configure default HTTP routing.shutdownHook(boolean shutdownHook) When true the webserver registers a shutdown hook with the JVM Runtime.socket(String socketName, BiConsumer<ListenerConfiguration.Builder, Router.RouterBuilder<?>> builders) Configure additional socket with listener configuration and custom routing.socket(String socketName, Consumer<ListenerConfiguration.Builder> socketBuilder) Configure additional socket with listener configuration using default routing.socketBuilder(String socketName) Socket builder for a named socket.start()Build and start the server.Configure TLS for the default socket.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.helidon.nima.webserver.Router.RouterBuilder
addRouting
-
Method Details
-
build
Description copied from interface:BuilderBuild the instance from this builder.- Specified by:
buildin interfaceBuilder<WebServer.Builder,WebServer> - Returns:
- instance of the built type
-
start
Build and start the server.- Returns:
- started server instance
-
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 namesocketBuilder- consumer of listener configuration- Returns:
- updated builder
-
socket
public WebServer.Builder socket(String socketName, BiConsumer<ListenerConfiguration.Builder, Router.RouterBuilder<?>> builders) Configure additional socket with listener configuration and custom routing.- Parameters:
socketName- socket namebuilders- consumer of listener and router builders- Returns:
- updated builder
-
routerBuilder
Router builder for a named socket.- Parameters:
socketName- name of the socket, whenWebServer.DEFAULT_SOCKET_NAMEis used, the same builder as used by this instance is returned- Returns:
- listener builder
-
socketBuilder
Socket builder for a named socket.- Parameters:
socketName- name of the socket, whenWebServer.DEFAULT_SOCKET_NAMEis used, the same builder as used by this instance is returned- Returns:
- listener builder
-
defaultSocket
Configure listener for the default socket.- Parameters:
socketBuilder- listener builder consumer- Returns:
- updated builder
-
port
Port of the default socket.- Parameters:
port- port to bind to- Returns:
- updated builder
-
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 useeventTypes- event types this handler should handle- Returns:
- updated builder
-
routing
Configure default HTTP routing.- Parameters:
consumer- routing consumer- Returns:
- updated builder
- See Also:
-
addRouting
Description copied from interface:Router.RouterBuilderAdd a new routing to this router.- Specified by:
addRoutingin interfaceRouter.RouterBuilder<WebServer.Builder>- Parameters:
routing- routing to add, such asio.helidon.nima.webserver.http.HttpRouting- Returns:
- updated builder
-
tls
Configure TLS for the default socket.- Parameters:
tls- tls to use- Returns:
- updated builder
-
addConnectionProvider
Configure a connection providers. This instance has priority over provider(s) discovered by service loader.- Parameters:
connectionProvider- explicit connection provider- Returns:
- updated builder
-
hasSocket
A method to validate a named socket configuration exists in this builder.- Parameters:
socketName- name of the socket, usingWebServer.DEFAULT_SOCKET_NAMEwill always returntrue- Returns:
truein case the named socket is configured in this builder
-
addMediaSupport
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 explicitmediaContext(io.helidon.nima.http.media.MediaContext).- Parameters:
mediaSupport- media support to add- Returns:
- updated builder
-
mediaContext
Configure theMediaContext. This method discards previously registeredMediaContextand all previously registeredMediaSupport. If an explicit media support is configured usingaddMediaSupport(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
Configure the defaultContentEncodingContext. This method discards all previously registered ContentEncodingContext.- Parameters:
contentEncodingContext- content encoding context- Returns:
- updated instance of the builder
-
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
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
Configure whether server threads should inherit inheritable thread locals. Default value isfalse.- Parameters:
inheritThreadLocals- whether to inherit thread locals- Returns:
- an updated builder
-