public interface WebServer
Represents a immutably configured WEB server.
Provides basic lifecycle and monitoring API.
Instance can be created from Routing
and optionally from Config
using
create(Routing)
, create(Routing, io.helidon.config.Config)
or builder(Routing)
methods and
their builder enabled overloads.
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic final class
WebServer builder class provides a convenient way to set up WebServer with multiple server sockets and optional multiple routings. -
Field Summary
Modifier and TypeFieldDescriptionstatic final String
The default server socket configuration name. -
Method Summary
Modifier and TypeMethodDescriptionstatic WebServer.Builder
builder()
Creates a fluent API builder of theWebServer
.static WebServer.Builder
Creates a builder of theWebServer
.static WebServer.Builder
Creates a builder of theWebServer
.Gets effective server configuration.context()
Gets aWebServer
context.static WebServer
Creates new instance from provided routing and default configuration.static WebServer
Creates new instance from provided configuration and routing.static WebServer
Creates new instance from provided routing and default configuration.static WebServer
Creates new instance from provided configuration and routing.default boolean
hasTls()
Returnstrue
if TLS is configured for the default socket.boolean
Returnstrue
if TLS is configured for the named socket.boolean
Returnstrue
if the server is currently running.default int
port()
Returns a port number the default server socket is bound to and is listening on; or-1
if unknown or not active.int
Returns a port number an additional named server socket is bound to and is listening on; or-1
if unknown or not active.Get the parentMessageBodyReaderContext
context.shutdown()
Attempt to gracefully shutdown server.start()
Starts the server.void
updateTls
(WebServerTls tls) Update the TLS configuration of the default socketDEFAULT_SOCKET_NAME
.void
updateTls
(WebServerTls tls, String socketName) Update the TLS configuration of the named socket.Completion stage is completed when server is shut down.Get the parentMessageBodyWriterContext
context.
-
Field Details
-
DEFAULT_SOCKET_NAME
The default server socket configuration name. All the default server socket configuration such asWebServer.Builder.hasSocket(String)
orport(String)
is accessible using this name.- See Also:
-
-
Method Details
-
configuration
ServerConfiguration configuration()Gets effective server configuration.- Returns:
- Server configuration
-
start
Starts the server. Has no effect if server is running. The start will fail on a server that is shut down, or that failed to start. In such cases, create a new instance of Web Server.- Returns:
- a single to react on startup process
-
whenShutdown
Completion stage is completed when server is shut down.- Returns:
- a completion stage of the server
-
shutdown
Attempt to gracefully shutdown server. It is possible to use returnedSingle
to react.RequestMethod can be called periodically.
- Returns:
- a single to react on finished shutdown process
- See Also:
-
isRunning
boolean isRunning()Returnstrue
if the server is currently running. Running server in stopping phase returnstrue
until it is not fully stopped.- Returns:
true
if server is running
-
context
Context context()Gets aWebServer
context.- Returns:
- a server context
-
readerContext
MessageBodyReaderContext readerContext()Get the parentMessageBodyReaderContext
context.- Returns:
- media body reader context
-
writerContext
MessageBodyWriterContext writerContext()Get the parentMessageBodyWriterContext
context.- Returns:
- media body writer context
-
port
default int port()Returns a port number the default server socket is bound to and is listening on; or-1
if unknown or not active.It is supported only when server is running.
- Returns:
- a listen port; or
-1
if unknown or the default server socket is not active
-
port
Returns a port number an additional named server socket is bound to and is listening on; or-1
if unknown or not active.- Parameters:
socketName
- the name of an additional named server socket- Returns:
- a listen port; or
-1
if socket name is unknown or the server socket is not active
-
hasTls
default boolean hasTls()Returnstrue
if TLS is configured for the default socket.- Returns:
- whether TLS is enabled for the default socket
-
hasTls
Returnstrue
if TLS is configured for the named socket.- Parameters:
socketName
- the name of a socket- Returns:
- whether TLS is enabled for the socket, returns
false
if the socket does not exists
-
updateTls
Update the TLS configuration of the default socketDEFAULT_SOCKET_NAME
.- Parameters:
tls
- new TLS configuration- Throws:
IllegalStateException
- ifWebServerTls.enabled()
returnsfalse
or ifSocketConfiguration.tls().sslContext()
returnsnull
-
updateTls
Update the TLS configuration of the named socket.- Parameters:
tls
- new TLS configurationsocketName
- specific named socket name- Throws:
IllegalStateException
- ifWebServerTls.enabled()
returnsfalse
or ifSocketConfiguration.tls().sslContext()
returnsnull
-
create
Creates new instance from provided routing and default configuration.- Parameters:
routing
- a routing instance- Returns:
- a new web server instance
- Throws:
IllegalStateException
- if none SPI implementation foundNullPointerException
- if 'routing' parameter isnull
-
create
Creates new instance from provided configuration and routing.- Parameters:
routing
- a routing instanceconfig
- configuration located on server configuration node- Returns:
- a new web server instance
- Throws:
NullPointerException
- if 'routing' parameter isnull
- Since:
- 2.0.0
-
create
Creates new instance from provided configuration and routing.- Parameters:
routingBuilder
- a supplier of routing (such asRouting.Builder
config
- configuration located on server configuration node- Returns:
- a new web server instance
- Throws:
NullPointerException
- if 'routing' parameter isnull
- Since:
- 2.0.0
-
create
Creates new instance from provided routing and default configuration.- Parameters:
routingBuilder
- a routing builder instance that will be built as a first step of this method execution- Returns:
- a new web server instance
- Throws:
IllegalStateException
- if none SPI implementation foundNullPointerException
- if 'routing' parameter isnull
-
builder
Creates a builder of theWebServer
.- Parameters:
routingBuilder
- the routing builder; must not benull
- Returns:
- the builder
-
builder
Creates a fluent API builder of theWebServer
. Before calling theWebServer.Builder.build()
method, you should configure the default routing. If none is configured, all requests will end in404
.- Returns:
- a new builder
-
builder
Creates a builder of theWebServer
.- Parameters:
routing
- the routing to use for the default port; must not benull
- Returns:
- the builder
- See Also:
-