java.lang.Object
io.helidon.webserver.SocketConfiguration.Builder
- All Implemented Interfaces:
Builder<SocketConfiguration.Builder,,SocketConfiguration> SocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>,Supplier<SocketConfiguration>
- Enclosing interface:
- SocketConfiguration
public static final class SocketConfiguration.Builder
extends Object
implements SocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>, Builder<SocketConfiguration.Builder,SocketConfiguration>
The
SocketConfiguration builder class.-
Field Summary
Fields inherited from interface io.helidon.webserver.SocketConfiguration.SocketConfigurationBuilder
REQUESTED_URI_DISCOVERY_CONFIG_KEY_PREFIX -
Method Summary
Modifier and TypeMethodDescriptionAdds a type of front-end URI discovery Helidon should use for this socket.backlog(int backlog) Configures a maximum length of the queue of incoming connections on the server socket.backpressureBufferSize(long size) Maximum length of the response data sending buffer can keep without flushing.backpressureStrategy(BackpressureStrategy backpressureStrategy) Sets a backpressure strategy for the server to apply against user provided response upstream.bindAddress(InetAddress bindAddress) Configures local address where the server listens on with the server socket.build()Build the instance from this builder.Update this socket configuration from aConfig.connectionIdleTimeout(int seconds) Sets the number of seconds after which an idle connection will be automatically closed by the server.continueImmediately(boolean continueImmediately) When true WebServer answers to expect continue with 100 continue immediately, not waiting for user to actually request the data.enableCompression(boolean value) Configure whether to enable content negotiation for compression.enabled(boolean enabled) Set this socket builder to enabled or disabled.enabledSSlProtocols(String... protocols) Deprecated.enabledSSlProtocols(List<String> protocols) Deprecated.initialBufferSize(int size) Configure initial size of the buffer used to parse HTTP line and headers.maxChunkSize(int size) Configure maximal size of a chunk to be read from incoming requests.maxHeaderSize(int size) Maximal number of bytes of all header values combined.maxInitialLineLength(int length) Maximal number of characters in the initial HTTP line.maxPayloadSize(long size) Set a maximum payload size for a client request.maxUpgradeContentLength(int size) Set a maximum length of the content of an upgrade request.Configure a socket name, to bind named routings to.port(int port) Configures a server port to listen on with the server socket.receiveBufferSize(int receiveBufferSize) Configures proposed value of the TCP receive window that is advertised to the remote peer on the server socket.requestedUriDiscoveryEnabled(boolean enabled) Sets whether requested URI discovery is enabled for the socket.Assigns the front-end URI discovery type(s) this socket should use.ssl(Supplier<? extends SSLContext> sslContextBuilder) Deprecated.since 2.0.0, please useSocketConfiguration.SocketConfigurationBuilder.tls(Supplier)insteadssl(SSLContext sslContext) Deprecated.since 2.0.0, please usetls(WebServerTls)insteadConfigures a server socket timeout.timeoutMillis(int timeoutMillis) Deprecated.since 2.0.0 please usetimeout(long, java.util.concurrent.TimeUnit)insteadtls(WebServerTls webServerTls) Configures SSL for this socket.trustedProxies(AllowList trustedProxies) Configure the trusted proxy settings.validateHeaders(boolean validate) Configure whether to validate header names.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.helidon.webserver.SocketConfiguration.SocketConfigurationBuilder
bindAddress, host, tls
-
Method Details
-
build
Description copied from interface:BuilderBuild the instance from this builder.- Specified by:
buildin interfaceBuilder<SocketConfiguration.Builder,SocketConfiguration> - Returns:
- instance of the built type
-
port
Description copied from interface:SocketConfiguration.SocketConfigurationBuilderConfigures a server port to listen on with the server socket. If port is0then any available ephemeral port will be used.- Specified by:
portin interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
port- the server port of the server socket- Returns:
- this builder
-
bindAddress
Description copied from interface:SocketConfiguration.SocketConfigurationBuilderConfigures local address where the server listens on with the server socket. If not configured, then listens an all local addresses.- Specified by:
bindAddressin interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
bindAddress- an address to bind with the server socket- Returns:
- this builder
-
backlog
Configures a maximum length of the queue of incoming connections on the server socket.Default value is
SocketConfiguration.DEFAULT_BACKLOG_SIZE.- Specified by:
backlogin interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
backlog- a maximum length of the queue of incoming connections- Returns:
- this builder
-
timeoutMillis
Deprecated.since 2.0.0 please usetimeout(long, java.util.concurrent.TimeUnit)insteadConfigures a server socket timeout in milliseconds or0for an infinite timeout.- Parameters:
timeoutMillis- a server socket timeout in milliseconds or0- Returns:
- this builder
-
receiveBufferSize
Configures proposed value of the TCP receive window that is advertised to the remote peer on the server socket.If
0then use implementation default.- Specified by:
receiveBufferSizein interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
receiveBufferSize- a buffer size in bytes of the server socket or0- Returns:
- this builder
-
ssl
Deprecated.since 2.0.0, please usetls(WebServerTls)insteadConfigures aSSLContextto use with the server socket. If notnullthen the server enforces an SSL communication.- Parameters:
sslContext- a SSL context to use- Returns:
- this builder
-
ssl
@Deprecated public SocketConfiguration.Builder ssl(Supplier<? extends SSLContext> sslContextBuilder) Deprecated.since 2.0.0, please useSocketConfiguration.SocketConfigurationBuilder.tls(Supplier)insteadConfigures aSSLContextto use with the server socket. If notnullthen the server enforces an SSL communication.- Parameters:
sslContextBuilder- a SSL context builder to use; will be built as a first step of this method execution- Returns:
- this builder
-
enabledSSlProtocols
Deprecated.since 2.0.0, please useWebServerTls.Builder.enabledProtocols(String...)insteadConfigures the SSL protocols to enable with the server socket.- Parameters:
protocols- protocols to enable, ifnullenables the default protocols- Returns:
- this builder
-
enabledSSlProtocols
Deprecated.Configures the SSL protocols to enable with the server socket.- Parameters:
protocols- protocols to enable, ifnullor empty enables the default protocols- Returns:
- this builder
-
timeout
Description copied from interface:SocketConfiguration.SocketConfigurationBuilderConfigures a server socket timeout.- Specified by:
timeoutin interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
amount- an amount of time to configure the timeout, use0for infinite timeoutunit- time unit to use with the configured amount- Returns:
- this builder
-
tls
Description copied from interface:SocketConfiguration.SocketConfigurationBuilderConfigures SSL for this socket. When configured, the server enforces SSL configuration. If this method is called, any other method except forSocketConfiguration.SocketConfigurationBuilder.tls(java.util.function.Supplier)ยจ and repeated invocation of this method would be ignored.If this method is called again, the previous configuration would be ignored.
- Specified by:
tlsin interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
webServerTls- ssl configuration to use with this socket- Returns:
- this builder
-
maxHeaderSize
Description copied from interface:SocketConfiguration.SocketConfigurationBuilderMaximal number of bytes of all header values combined. When a bigger value is received, aHttp.Status.BAD_REQUEST_400is returned.Default is
16384- Specified by:
maxHeaderSizein interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
size- maximal number of bytes of combined header values- Returns:
- this builder
-
maxInitialLineLength
Description copied from interface:SocketConfiguration.SocketConfigurationBuilderMaximal number of characters in the initial HTTP line.Default is
4096- Specified by:
maxInitialLineLengthin interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
length- maximal number of characters- Returns:
- this builder
-
maxPayloadSize
Description copied from interface:SocketConfiguration.SocketConfigurationBuilderSet a maximum payload size for a client request. Can prevent DoS attacks.- Specified by:
maxPayloadSizein interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
size- maximum payload size- Returns:
- this builder
-
backpressureBufferSize
Description copied from interface:SocketConfiguration.SocketConfigurationBuilderMaximum length of the response data sending buffer can keep without flushing. Depends on `backpressure-policy` what happens if max buffer size is reached.- Specified by:
backpressureBufferSizein interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
size- maximum non-flushed data Netty can buffer until backpressure is applied- Returns:
- this builder
-
backpressureStrategy
Description copied from interface:SocketConfiguration.SocketConfigurationBuilderSets a backpressure strategy for the server to apply against user provided response upstream.- LINEAR - Data are requested one-by-one, in case buffer reaches watermark, no other data is requested.
- AUTO_FLUSH - Data are requested one-by-one, in case buffer reaches watermark, no other data is requested.
- PREFETCH - After first data chunk arrives, probable number of chunks needed to fill the buffer up to watermark is calculated and requested.
- NONE - No backpressure is applied, Long.MAX_VALUE(unbounded) is requested from upstream.
- Specified by:
backpressureStrategyin interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
backpressureStrategy- One of NONE, PREFETCH, LINEAR or AUTO_FLUSH, default is AUTO_FLUSH- Returns:
- this builder
-
continueImmediately
Description copied from interface:SocketConfiguration.SocketConfigurationBuilderWhen true WebServer answers to expect continue with 100 continue immediately, not waiting for user to actually request the data.Default is
false- Specified by:
continueImmediatelyin interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
continueImmediately- , answer with 100 continue immediately after expect continue, default is false- Returns:
- this builder
-
maxUpgradeContentLength
Description copied from interface:SocketConfiguration.SocketConfigurationBuilderSet a maximum length of the content of an upgrade request.Default is
64*1024- Specified by:
maxUpgradeContentLengthin interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
size- Maximum length of the content of an upgrade request- Returns:
- this builder
-
name
Configure a socket name, to bind named routings to.- Parameters:
name- name of the socket- Returns:
- updated builder instance
-
enabled
Set this socket builder to enabled or disabled.- Parameters:
enabled- when set tofalse, the socket is not going to be opened by the server- Returns:
- updated builder instance
-
maxChunkSize
Configure maximal size of a chunk to be read from incoming requests. Defaults to8192.- Parameters:
size- maximal chunk size- Returns:
- updated builder instance
-
validateHeaders
Configure whether to validate header names. Defaults totrueto make sure header names are valid strings.- Parameters:
validate- set tofalseto ignore header validation- Returns:
- updated builder instance
-
initialBufferSize
Configure initial size of the buffer used to parse HTTP line and headers. Defaults to128.- Parameters:
size- initial buffer size- Returns:
- updated builder instance
-
enableCompression
Configure whether to enable content negotiation for compression.- Specified by:
enableCompressionin interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
value- compression flag- Returns:
- updated builder instance
-
trustedProxies
Configure the trusted proxy settings.- Specified by:
trustedProxiesin interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
trustedProxies- prescribing proxies to be trusted- Returns:
- updated builder instance
- See Also:
-
config
Description copied from interface:SocketConfiguration.SocketConfigurationBuilderUpdate this socket configuration from aConfig.- Specified by:
configin interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
config- configuration on the node of a socket- Returns:
- updated builder instance
-
addRequestedUriDiscoveryType
public SocketConfiguration.Builder addRequestedUriDiscoveryType(SocketConfiguration.RequestedUriDiscoveryType type) Description copied from interface:SocketConfiguration.SocketConfigurationBuilderAdds a type of front-end URI discovery Helidon should use for this socket. Adding a discovery type automatically enables discovery for the socket.- Specified by:
addRequestedUriDiscoveryTypein interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
type- type to add- Returns:
- updated builder
-
requestedUriDiscoveryTypes
public SocketConfiguration.Builder requestedUriDiscoveryTypes(List<SocketConfiguration.RequestedUriDiscoveryType> types) Description copied from interface:SocketConfiguration.SocketConfigurationBuilderAssigns the front-end URI discovery type(s) this socket should use. This setting automatically enables discovery for the socket.- Specified by:
requestedUriDiscoveryTypesin interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
types-SocketConfiguration.RequestedUriDiscoveryTypevalues to assign- Returns:
- updated builder
- See Also:
-
requestedUriDiscoveryEnabled
Description copied from interface:SocketConfiguration.SocketConfigurationBuilderSets whether requested URI discovery is enabled for the socket.- Specified by:
requestedUriDiscoveryEnabledin interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
enabled- whether to enable discovery- Returns:
- updated builder
- See Also:
-
connectionIdleTimeout
Description copied from interface:SocketConfiguration.SocketConfigurationBuilderSets the number of seconds after which an idle connection will be automatically closed by the server.- Specified by:
connectionIdleTimeoutin interfaceSocketConfiguration.SocketConfigurationBuilder<SocketConfiguration.Builder>- Parameters:
seconds- time in seconds- Returns:
- updated builder
-
WebServerTls.Builder.enabledProtocols(String...)instead