Class Flags
-
Method Summary
Modifier and TypeMethodDescriptionstatic ExceptionVerbosity
Deprecated.Returns the list of HTTP header names whose corresponding values will be cached, as specified inheaderValueCacheSpec()
.static String
static long
Returns the default client-side idle timeout of a connection for keep-alive in milliseconds.static long
Returns the default client-side timeout of a socket connection attempt in milliseconds.static int
Returns the default maximum length of each chunk in an HTTP/1 request or response content.static int
Returns the default maximum length of all HTTP/1 headers in a request or response.static int
Returns the default maximum length of an HTTP/1 initial line.static int
Returns the default value of theServerBuilder.http2InitialConnectionWindowSize(int)
andClientFactoryBuilder.http2InitialConnectionWindowSize(int)
option.static int
Returns the default value of theServerBuilder.http2InitialStreamWindowSize(int)
andClientFactoryBuilder.http2InitialStreamWindowSize(int)
option.static int
Returns the default value of theServerBuilder.http2MaxFrameSize(int)
andClientFactoryBuilder.http2MaxFrameSize(int)
option.static long
Returns the default value of theServerBuilder.http2MaxHeaderListSize(long)
andClientFactoryBuilder.http2MaxHeaderListSize(long)
option.static long
Returns the default value of theServerBuilder.http2MaxStreamsPerConnection(long)
option.static long
Returns the default client-side max age of a connection for keep-alive in milliseconds.static int
Returns the client-side maximum allowed number of requests that can be sent through one connection.static long
Returns the default server-side maximum length of a request.static long
Returns the default client-side maximum length of a response.static long
Returns the default server-side max age of a connection for keep-alive in milliseconds.static int
Returns the server-side maximum allowed number of requests that can be served through one connection.static int
Returns the default maximum number of total attempts.static long
Returns the default value for the PING interval.static long
Returns the default server-side timeout of a request in milliseconds.static long
Returns the default client-side timeout of a response in milliseconds.static long
Returns the default server-side graceful connection shutdown drain duration in microseconds.static long
Returns the default server-side idle timeout of a connection for keep-alive in milliseconds.static boolean
Returns the default value of theClientFactoryBuilder.useHttp1Pipelining(boolean)
option.static boolean
Returns the default value of theClientFactoryBuilder.useHttp2Preface(boolean)
option.static long
Returns the default client-side timeout of a socket write attempt in milliseconds.static String
Returns the Caffeine specification string of the cache that stores the domain names and their resolved addresses.static boolean
Returns whether information about the OpenSSL environment should be dumped when first starting the application, including supported ciphers.Returns the Caffeine specification string of the cache that stores the content of theHttpFile
s read by aFileService
.Returns the Caffeine specification string of the cache that stores the recent results for converting a raw HTTP ASCII header value into aString
.static int
Returns the default server-side maximum number of connections.static int
Returns the default number of blocking task executor threads.static int
Returns the default number of common worker group threads.Returns the Caffeine specification string of the cache that stores the recent results for parsing a raw HTTP path into a decoded pair of path and query string.static @Nullable Predicate<InetAddress>
Returns thePredicate
that is used to choose the non-loopback IP v4 address inSystemInfo.defaultNonLoopbackIpV4Address()
.static boolean
Returns whetherCompletableFuture
s returned by Armeria methods log a warning ifCompletableFuture.join()
orCompletableFuture.get()
are called from an event loop thread.Returns the fully qualified class name ofRequestContextStorageProvider
that is used to choose when multipleRequestContextStorageProvider
s exist.Returns the Caffeine specification string of the cache that stores the recent request routing history for allService
s.Returns the Caffeine specification string of the cache that stores the recent request routing history for all route decorators.static boolean
Returns whether to allow the bad cipher suites listed in RFC7540 for TLS handshake.static Set<TransientServiceOption>
static TransportType
Returns theTransportType
that will be used for socket I/O in Armeria.static boolean
Returns whether default socket options defined by Armeria are enabled.static boolean
useEpoll()
Deprecated.UsetransportType()
and-Dcom.linecorp.armeria.transportType=epoll
.static boolean
EnablesDefaultAddressResolverGroup
that resolves domain name using JDK's built-in domain name lookup mechanism.static boolean
Returns whether to order route decorators with legacy order that the first decorator is first applied to.static boolean
Returns whether the JNI-based TLS support with OpenSSL is enabled.static boolean
Enables validation of HTTP headers for dangerous characters like newlines - such characters can be used for injecting arbitrary content into HTTP responses.Returns theSampler
that determines whether to retain the stack trace of the exceptions that are thrown frequently by Armeria.static String
Returns the specification string of theSampler
that determines whether to retain the stack trace of the exceptions that are thrown frequently by Armeria.static boolean
Returns whether the verbose response mode is enabled.static boolean
Returns whether to log the socket exceptions which are mostly harmless.static boolean
Returns whether to log a warning message when any Netty version issues are detected, such as version inconsistencies or missing version information in Netty JARs.
-
Method Details
-
verboseExceptionSampler
Returns theSampler
that determines whether to retain the stack trace of the exceptions that are thrown frequently by Armeria.- See Also:
verboseExceptionSamplerSpec()
-
verboseExceptionSamplerSpec
Returns the specification string of theSampler
that determines whether to retain the stack trace of the exceptions that are thrown frequently by Armeria. A sampled exception will have the stack trace while the others will have an empty stack trace to eliminate the cost of capturing the stack trace.The default value of this flag is "rate-limit=10", which retains the stack trace of the exceptions at the maximum rate of 10 exceptions/sec. Specify the
-Dcom.linecorp.armeria.verboseExceptions=<specification>
JVM option to override the default. SeeSampler.of(String)
for the specification string format. -
verboseSocketExceptions
public static boolean verboseSocketExceptions()Returns whether to log the socket exceptions which are mostly harmless. If enabled, the following exceptions will be logged:ClosedChannelException
ClosedSessionException
IOException
- 'Connection reset/closed/aborted by peer'- 'Broken pipe'
Http2Exception
- 'Stream closed'SSLException
- 'SSLEngine closed already'
It is recommended to keep this flag disabled, because it increases the amount of log messages for the errors you usually do not have control over, e.g. unexpected socket disconnection due to network or remote peer issues.
This flag is disabled by default. Specify the
-Dcom.linecorp.armeria.verboseSocketExceptions=true
JVM option to enable it.- See Also:
Exceptions.isExpected(Throwable)
-
verboseResponses
public static boolean verboseResponses()Returns whether the verbose response mode is enabled. When enabled, the server responses will contain the exception type and its full stack trace, which may be useful for debugging while potentially insecure. When disabled, the server responses will not expose such server-side details to the client.This flag is disabled by default. Specify the
-Dcom.linecorp.armeria.verboseResponses=true
JVM option or useServerBuilder.verboseResponses(boolean)
to enable it. -
requestContextStorageProvider
Returns the fully qualified class name ofRequestContextStorageProvider
that is used to choose when multipleRequestContextStorageProvider
s exist.The default value of this flag is
null
, which means only oneRequestContextStorageProvider
must be found via Java SPI. If there are more than one, you must specify the-Dcom.linecorp.armeria.requestContextStorageProvider=<FQCN>
JVM option to choose theRequestContextStorageProvider
. -
warnNettyVersions
public static boolean warnNettyVersions()Returns whether to log a warning message when any Netty version issues are detected, such as version inconsistencies or missing version information in Netty JARs.The default value of this flag is
true
, which means a warning message will be logged if any Netty version issues are detected, which may lead to unexpected behavior. Specify the-Dcom.linecorp.armeria.warnNettyVersions=false
to disable this flag. -
useEpoll
Deprecated.UsetransportType()
and-Dcom.linecorp.armeria.transportType=epoll
.Returns whether the JNI-based/dev/epoll
socket I/O is enabled. When enabled on Linux, Armeria uses/dev/epoll
directly for socket I/O. When disabled,java.nio
socket API is used instead.This flag is enabled by default for supported platforms. Specify the
-Dcom.linecorp.armeria.useEpoll=false
JVM option to disable it. -
transportType
Returns theTransportType
that will be used for socket I/O in Armeria.The default value of this flag is
"epoll"
in Linux and"nio"
for other operations systems. Specify the-Dcom.linecorp.armeria.transportType=<nio|epoll|io_uring>
JVM option to override the default. -
useOpenSsl
public static boolean useOpenSsl()Returns whether the JNI-based TLS support with OpenSSL is enabled. When enabled, Armeria uses OpenSSL for processing TLS connections. When disabled, the current JVM's defaultSSLEngine
is used instead.This flag is enabled by default for supported platforms. Specify the
-Dcom.linecorp.armeria.useOpenSsl=false
JVM option to disable it. -
dumpOpenSslInfo
public static boolean dumpOpenSslInfo()Returns whether information about the OpenSSL environment should be dumped when first starting the application, including supported ciphers.This flag is disabled by default. Specify the
-Dcom.linecorp.armeria.dumpOpenSslInfo=true
JVM option to enable it.If
useOpenSsl()
returnsfalse
, this also returnsfalse
no matter you specified the JVM option. -
maxNumConnections
public static int maxNumConnections()Returns the default server-side maximum number of connections. Note that this flag has no effect if a user specified the value explicitly viaServerBuilder.maxNumConnections(int)
.The default value of this flag is 2147483647. Specify the
-Dcom.linecorp.armeria.maxNumConnections=<integer>
JVM option to override the default value. -
numCommonWorkers
public static int numCommonWorkers()Returns the default number of common worker group threads. Note that this flag has no effect if a user specified the worker group explicitly viaServerBuilder.workerGroup(EventLoopGroup, boolean)
orClientFactoryBuilder.workerGroup(EventLoopGroup, boolean)
.The default value of this flag is
2 * <numCpuCores>
. Specify the-Dcom.linecorp.armeria.numCommonWorkers=<integer>
JVM option to override the default value. -
numCommonBlockingTaskThreads
public static int numCommonBlockingTaskThreads()Returns the default number of blocking task executor threads. Note that this flag has no effect if a user specified the blocking task executor explicitly viaServerBuilder.blockingTaskExecutor(ScheduledExecutorService, boolean)
.The default value of this flag is 200. Specify the
-Dcom.linecorp.armeria.numCommonBlockingTaskThreads=<integer>
JVM option to override the default value. -
defaultMaxRequestLength
public static long defaultMaxRequestLength()Returns the default server-side maximum length of a request. Note that this flag has no effect if a user specified the value explicitly viaServerBuilder.maxRequestLength(long)
.The default value of this flag is 10485760L. Specify the
-Dcom.linecorp.armeria.defaultMaxRequestLength=<long>
to override the default value.0
disables the length limit. -
defaultMaxResponseLength
public static long defaultMaxResponseLength()Returns the default client-side maximum length of a response. Note that this flag has no effect if a user specified the value explicitly viaClientBuilder.maxResponseLength(long)
.The default value of this flag is 10485760L. Specify the
-Dcom.linecorp.armeria.defaultMaxResponseLength=<long>
to override the default value.0
disables the length limit. -
defaultRequestTimeoutMillis
public static long defaultRequestTimeoutMillis()Returns the default server-side timeout of a request in milliseconds. Note that this flag has no effect if a user specified the value explicitly viaServerBuilder.requestTimeout(Duration)
.The default value of this flag is 10000L. Specify the
-Dcom.linecorp.armeria.defaultRequestTimeoutMillis=<long>
to override the default value.0
disables the timeout. -
defaultResponseTimeoutMillis
public static long defaultResponseTimeoutMillis()Returns the default client-side timeout of a response in milliseconds. Note that this flag has no effect if a user specified the value explicitly viaClientBuilder.responseTimeout(Duration)
.The default value of this flag is 15000L. Specify the
-Dcom.linecorp.armeria.defaultResponseTimeoutMillis=<long>
to override the default value.0
disables the timeout. -
defaultConnectTimeoutMillis
public static long defaultConnectTimeoutMillis()Returns the default client-side timeout of a socket connection attempt in milliseconds. Note that this flag has no effect if a user specified the value explicitly viaClientFactoryBuilder.channelOption(ChannelOption, Object)
.The default value of this flag is 3200L. Specify the
-Dcom.linecorp.armeria.defaultConnectTimeoutMillis=<integer>
JVM option to override the default value. -
defaultWriteTimeoutMillis
public static long defaultWriteTimeoutMillis()Returns the default client-side timeout of a socket write attempt in milliseconds. Note that this flag has no effect if a user specified the value explicitly viaClientBuilder.writeTimeout(Duration)
.The default value of this flag is 1000L. Specify the
-Dcom.linecorp.armeria.defaultWriteTimeoutMillis=<integer>
JVM option to override the default value.0
disables the timeout. -
defaultServerIdleTimeoutMillis
public static long defaultServerIdleTimeoutMillis()Returns the default server-side idle timeout of a connection for keep-alive in milliseconds. Note that this flag has no effect if a user specified the value explicitly viaServerBuilder.idleTimeout(Duration)
.The default value of this flag is 15000L. Specify the
-Dcom.linecorp.armeria.defaultServerIdleTimeoutMillis=<integer>
JVM option to override the default value. -
defaultClientIdleTimeoutMillis
public static long defaultClientIdleTimeoutMillis()Returns the default client-side idle timeout of a connection for keep-alive in milliseconds. Note that this flag has no effect if a user specified the value explicitly viaClientFactoryBuilder.idleTimeout(Duration)
.This default value of this flag is 10000L. Specify the
-Dcom.linecorp.armeria.defaultClientIdleTimeoutMillis=<integer>
JVM option to override the default value. -
defaultHttp1MaxInitialLineLength
public static int defaultHttp1MaxInitialLineLength()Returns the default maximum length of an HTTP/1 initial line. Note that this flag has no effect if a user specified the value explicitly viaServerBuilder.http1MaxInitialLineLength(int)
orClientFactoryBuilder.http1MaxInitialLineLength(int)
.This default value of this flag is 4096. Specify the
-Dcom.linecorp.armeria.defaultHttp1MaxInitialLineLength=<integer>
JVM option to override the default value. -
defaultHttp1MaxHeaderSize
public static int defaultHttp1MaxHeaderSize()Returns the default maximum length of all HTTP/1 headers in a request or response. Note that this flag has no effect if a user specified the value explicitly viaServerBuilder.http1MaxHeaderSize(int)
orClientFactoryBuilder.http1MaxHeaderSize(int)
.This default value of this flag is 8192. Specify the
-Dcom.linecorp.armeria.defaultHttp1MaxHeaderSize=<integer>
JVM option to override the default value. -
defaultHttp1MaxChunkSize
public static int defaultHttp1MaxChunkSize()Returns the default maximum length of each chunk in an HTTP/1 request or response content. The content or a chunk longer than this value will be split into smaller chunks so that their lengths never exceed it. Note that this flag has no effect if a user specified the value explicitly viaServerBuilder.http1MaxChunkSize(int)
orClientFactoryBuilder.http1MaxChunkSize(int)
.The default value of this flag is 8192. Specify the
-Dcom.linecorp.armeria.defaultHttp1MaxChunkSize=<integer>
JVM option to override the default value. -
defaultUseHttp2Preface
public static boolean defaultUseHttp2Preface()Returns the default value of theClientFactoryBuilder.useHttp2Preface(boolean)
option. If enabled, the HTTP/2 connection preface is sent immediately for a cleartext HTTP/2 connection, reducing an extra round trip incurred by theOPTIONS * HTTP/1.1
upgrade request. If disabled, theOPTIONS * HTTP/1.1
request with"Upgrade: h2c"
header is sent for a cleartext HTTP/2 connection. Consider disabling this flag if your HTTP servers have issues handling or rejecting the HTTP/2 connection preface without a upgrade request. Note that this option does not affect ciphertext HTTP/2 connections, which use ALPN for protocol negotiation, and it has no effect if a user specified the value explicitly viaClientFactoryBuilder.useHttp2Preface(boolean)
.This flag is enabled by default. Specify the
-Dcom.linecorp.armeria.defaultUseHttp2Preface=false
JVM option to disable it. -
defaultUseHttp1Pipelining
public static boolean defaultUseHttp1Pipelining()Returns the default value of theClientFactoryBuilder.useHttp1Pipelining(boolean)
option. Note that this flag has no effect if a user specified the value explicitly viaClientFactoryBuilder.useHttp1Pipelining(boolean)
.This flag is disabled by default. Specify the
-Dcom.linecorp.armeria.defaultUseHttp1Pipelining=true
JVM option to enable it. -
defaultPingIntervalMillis
public static long defaultPingIntervalMillis()Returns the default value for the PING interval. A PING frame is sent for HTTP/2 server and client or an OPTIONS request with an asterisk ("*") is sent for HTTP/1 client.Note that this flag is only in effect when
defaultServerIdleTimeoutMillis()
for server anddefaultClientIdleTimeoutMillis()
for client are greater than the value of this flag.The default value of this flag is 0L milliseconds. Specify the
-Dcom.linecorp.armeria.defaultPingIntervalMillis=<integer>
JVM option to override the default value. If the specified value was smaller than 10 seconds, bumps PING interval to 10 seconds. -
defaultMaxServerNumRequestsPerConnection
public static int defaultMaxServerNumRequestsPerConnection()Returns the server-side maximum allowed number of requests that can be served through one connection.Note that this flag has no effect if a user specified the value explicitly via
ServerBuilder.maxNumRequestsPerConnection(int)
.The default value of this flag is 0. Specify the
-Dcom.linecorp.armeria.defaultMaxServerNumRequestsPerConnection=<integer>
JVM option to override the default value.0
disables the limit. -
defaultMaxClientNumRequestsPerConnection
public static int defaultMaxClientNumRequestsPerConnection()Returns the client-side maximum allowed number of requests that can be sent through one connection.Note that this flag has no effect if a user specified the value explicitly via
ClientFactoryBuilder.maxNumRequestsPerConnection(int)
.The default value of this flag is 0. Specify the
-Dcom.linecorp.armeria.defaultMaxClientNumRequestsPerConnection=<integer>
JVM option to override the default value.0
disables the limit. -
defaultMaxServerConnectionAgeMillis
public static long defaultMaxServerConnectionAgeMillis()Returns the default server-side max age of a connection for keep-alive in milliseconds. If the value of this flag is greater than0
, a connection is disconnected after the specified amount of the time since the connection was established.The default value of this flag is 0L. Specify the
-Dcom.linecorp.armeria.defaultMaxServerConnectionAgeMillis=<integer>
JVM option to override the default value. If the specified value was smaller than 1 second, bumps the max connection age to 1 second. -
defaultMaxClientConnectionAgeMillis
public static long defaultMaxClientConnectionAgeMillis()Returns the default client-side max age of a connection for keep-alive in milliseconds. If the value of this flag is greater than0
, a connection is disconnected after the specified amount of the time since the connection was established.The default value of this flag is 0L. Specify the
-Dcom.linecorp.armeria.defaultMaxClientConnectionAgeMillis=<integer>
JVM option to override the default value. If the specified value was smaller than 1 second, bumps the max connection age to 1 second. -
defaultServerConnectionDrainDurationMicros
public static long defaultServerConnectionDrainDurationMicros()Returns the default server-side graceful connection shutdown drain duration in microseconds. If the value of this flag is greater than0
, a connection shutdown will have a drain period when client will be notified about the shutdown, but in flight requests will still be accepted.The default value of this flag is 1000000L. Specify the
-Dcom.linecorp.armeria.defaultServerConnectionDrainDurationMicros=<long>
JVM option to override the default value.At the beginning of the drain period server signals the clients that the connection shutdown is imminent but still accepts in flight requests. After the drain period end server stops accepting new requests.
Note that HTTP/1 doesn't support draining as described here, so for HTTP/1 drain period microseconds is always
0
, which means the connection will be closed immediately as soon as the current in-progress request is handled. -
defaultHttp2InitialConnectionWindowSize
public static int defaultHttp2InitialConnectionWindowSize()Returns the default value of theServerBuilder.http2InitialConnectionWindowSize(int)
andClientFactoryBuilder.http2InitialConnectionWindowSize(int)
option. Note that this flag has no effect if a user specified the value explicitly viaServerBuilder.http2InitialConnectionWindowSize(int)
orClientFactoryBuilder.http2InitialConnectionWindowSize(int)
.The default value of this flag is 1048576. Specify the
-Dcom.linecorp.armeria.defaultHttp2InitialConnectionWindowSize=<integer>
JVM option to override the default value. -
defaultHttp2InitialStreamWindowSize
public static int defaultHttp2InitialStreamWindowSize()Returns the default value of theServerBuilder.http2InitialStreamWindowSize(int)
andClientFactoryBuilder.http2InitialStreamWindowSize(int)
option. Note that this flag has no effect if a user specified the value explicitly viaServerBuilder.http2InitialStreamWindowSize(int)
orClientFactoryBuilder.http2InitialStreamWindowSize(int)
.The default value of this flag is 1048576. Specify the
-Dcom.linecorp.armeria.defaultHttp2InitialStreamWindowSize=<integer>
JVM option to override the default value. -
defaultHttp2MaxFrameSize
public static int defaultHttp2MaxFrameSize()Returns the default value of theServerBuilder.http2MaxFrameSize(int)
andClientFactoryBuilder.http2MaxFrameSize(int)
option. Note that this flag has no effect if a user specified the value explicitly viaServerBuilder.http2MaxFrameSize(int)
orClientFactoryBuilder.http2MaxFrameSize(int)
.The default value of this flag is 16384. Specify the
-Dcom.linecorp.armeria.defaultHttp2MaxFrameSize=<integer>
JVM option to override the default value. -
defaultHttp2MaxStreamsPerConnection
public static long defaultHttp2MaxStreamsPerConnection()Returns the default value of theServerBuilder.http2MaxStreamsPerConnection(long)
option. Note that this flag has no effect if a user specified the value explicitly viaServerBuilder.http2MaxStreamsPerConnection(long)
.The default value of this flag is 2147483647L. Specify the
-Dcom.linecorp.armeria.defaultHttp2MaxStreamsPerConnection=<integer>
JVM option to override the default value. -
defaultHttp2MaxHeaderListSize
public static long defaultHttp2MaxHeaderListSize()Returns the default value of theServerBuilder.http2MaxHeaderListSize(long)
andClientFactoryBuilder.http2MaxHeaderListSize(long)
option. Note that this flag has no effect if a user specified the value explicitly viaServerBuilder.http2MaxHeaderListSize(long)
orClientFactoryBuilder.http2MaxHeaderListSize(long)
.The default value of this flag is 8192L. Specify the
-Dcom.linecorp.armeria.defaultHttp2MaxHeaderListSize=<integer>
JVM option to override the default value. -
defaultBackoffSpec
Returns the Backoff specification string of the defaultBackoff
returned byBackoff.ofDefault()
. Note that this flag has no effect if a user specified theBackoff
explicitly.The default value of this flag is "exponential=200:10000,jitter=0.2". Specify the
-Dcom.linecorp.armeria.defaultBackoffSpec=<spec>
JVM option to override the default value. -
defaultMaxTotalAttempts
public static int defaultMaxTotalAttempts()Returns the default maximum number of total attempts. Note that this flag has no effect if a user specified the value explicitly when creating aRetryingClient
or aRetryingRpcClient
.The default value of this flag is 10. Specify the
-Dcom.linecorp.armeria.defaultMaxTotalAttempts=<integer>
JVM option to override the default value. -
routeCacheSpec
Returns the Caffeine specification string of the cache that stores the recent request routing history for allService
s.The default value of this flag is "maximumSize=4096". Specify the
-Dcom.linecorp.armeria.routeCache=<spec>
JVM option to override the default value. For example,-Dcom.linecorp.armeria.routeCache=maximumSize=4096,expireAfterAccess=600s
. Also, specify-Dcom.linecorp.armeria.routeCache=off
JVM option to disable it. -
routeDecoratorCacheSpec
Returns the Caffeine specification string of the cache that stores the recent request routing history for all route decorators.The default value of this flag is "maximumSize=4096". Specify the
-Dcom.linecorp.armeria.routeDecoratorCache=<spec>
JVM option to override the default value. For example,-Dcom.linecorp.armeria.routeDecoratorCache=maximumSize=4096,expireAfterAccess=600s
. Also, specify-Dcom.linecorp.armeria.routeDecoratorCache=off
JVM option to disable it. -
parsedPathCacheSpec
Returns the Caffeine specification string of the cache that stores the recent results for parsing a raw HTTP path into a decoded pair of path and query string.The default value of this flag is "maximumSize=4096". Specify the
-Dcom.linecorp.armeria.parsedPathCache=<spec>
JVM option to override the default value. For example,-Dcom.linecorp.armeria.parsedPathCache=maximumSize=4096,expireAfterAccess=600s
. Also, specify-Dcom.linecorp.armeria.parsedPathCache=off
JVM option to disable it. -
headerValueCacheSpec
Returns the Caffeine specification string of the cache that stores the recent results for converting a raw HTTP ASCII header value into aString
. Only the header values whose corresponding header name is listed incachedHeaders()
will be cached.The default value of this flag is "maximumSize=4096". Specify the
-Dcom.linecorp.armeria.headerValueCache=<spec>
JVM option to override the default value. For example,-Dcom.linecorp.armeria.headerValueCache=maximumSize=4096,expireAfterAccess=600s
. Also, specify-Dcom.linecorp.armeria.headerValueCache=off
JVM option to disable it. -
cachedHeaders
Returns the list of HTTP header names whose corresponding values will be cached, as specified inheaderValueCacheSpec()
. Only the header value whose corresponding header name is listed in this flag will be cached. It is not recommended to specify a header with high cardinality, which will defeat the purpose of caching.The default value of this flag is ":authority,:scheme,:method,accept-encoding,content-type". Specify the
-Dcom.linecorp.armeria.cachedHeaders=<comma separated list>
JVM option to override the default. -
fileServiceCacheSpec
Returns the Caffeine specification string of the cache that stores the content of theHttpFile
s read by aFileService
. This value is used as the default ofFileServiceBuilder.entryCacheSpec(String)
.The default value of this flag is "maximumSize=1024". Specify the
-Dcom.linecorp.armeria.fileServiceCache=<spec>
JVM option to override the default value. For example,-Dcom.linecorp.armeria.fileServiceCache=maximumSize=1024,expireAfterAccess=600s
. Also, specify-Dcom.linecorp.armeria.fileServiceCache=off
JVM option to disable it. -
dnsCacheSpec
Returns the Caffeine specification string of the cache that stores the domain names and their resolved addresses. This value is used as the default ofDnsResolverGroupBuilder.cacheSpec(String)
.The default value of this flag is "maximumSize=4096". Specify the
-Dcom.linecorp.armeria.dnsCacheSpec=<spec>
JVM option to override the default value. For example,-Dcom.linecorp.armeria.dnsCacheSpec=maximumSize=1024,expireAfterAccess=600s
.This cache cannot be disabled with
"off"
unlike other cache specification flags. -
annotatedServiceExceptionVerbosity
Deprecated.UseLoggingService
or log exceptions usingServerBuilder.exceptionHandler(com.linecorp.armeria.server.ExceptionHandler)
.Returns the verbosity of exceptions logged by annotated HTTP services. The value of this property is one of the following:ExceptionVerbosity.ALL
- logging all exceptions raised from annotated HTTP servicesExceptionVerbosity.UNHANDLED
- logging exceptions which are not handled byExceptionHandler
s provided by a user and are not well-known exceptionsExceptionVerbosity.NONE
- no logging exceptions
WARN
level.The default value of this flag is "unhandled". Specify the
-Dcom.linecorp.armeria.annotatedServiceExceptionVerbosity=<all|unhandled|none>
JVM option to override the default value.- See Also:
ExceptionVerbosity
-
preferredIpV4Addresses
Returns thePredicate
that is used to choose the non-loopback IP v4 address inSystemInfo.defaultNonLoopbackIpV4Address()
.The default value of this flag is
null
, which means all valid IPv4 addresses are preferred. Specify the-Dcom.linecorp.armeria.preferredIpV4Addresses=<csv>
JVM option to override the default value. Thecsv
should be Classless Inter-domain Routing(CIDR)s or exact IP addresses separated by commas. For example,-Dcom.linecorp.armeria.preferredIpV4Addresses=211.111.111.111,10.0.0.0/8,192.168.1.0/24
. -
useJdkDnsResolver
public static boolean useJdkDnsResolver()EnablesDefaultAddressResolverGroup
that resolves domain name using JDK's built-in domain name lookup mechanism. Note that JDK's built-in resolver performs a blocking name lookup from the caller thread, and thus this flag should be enabled only when the default asynchronous resolver does not work as expected, for example by always throwing aDnsNameResolverTimeoutException
.This flag is disabled by default. Specify the
-Dcom.linecorp.armeria.useJdkDnsResolver=true
JVM option to enable it. -
reportBlockedEventLoop
public static boolean reportBlockedEventLoop()Returns whetherCompletableFuture
s returned by Armeria methods log a warning ifCompletableFuture.join()
orCompletableFuture.get()
are called from an event loop thread. Blocking an event loop thread in this manner reduces performance significantly, possibly causing deadlocks, so it should be avoided at all costs (e.g. usingthenApply()
type methods to execute asynchronously or running the logic usingServiceRequestContext.blockingTaskExecutor()
.This flag is enabled by default. Specify the
-Dcom.linecorp.armeria.reportBlockedEventLoop=false
JVM option to disable it. -
validateHeaders
public static boolean validateHeaders()Enables validation of HTTP headers for dangerous characters like newlines - such characters can be used for injecting arbitrary content into HTTP responses.DISCLAIMER: Do not disable this unless you know what you are doing. It is recommended to keep this validation enabled to ensure the sanity of responses. However, you may wish to disable the validation to improve performance when you are sure responses are always safe, for example when only HTTP/2 is used, or when you populate headers with known values, and have no chance of using untrusted ones.
See CWE-113 for more details on the security implications of this flag.
This flag is enabled by default. Specify the
-Dcom.linecorp.armeria.validateHeaders=false
JVM option to disable it. -
tlsAllowUnsafeCiphers
public static boolean tlsAllowUnsafeCiphers()Returns whether to allow the bad cipher suites listed in RFC7540 for TLS handshake. Note that this flag has no effect if a user specified the value explicitly viaClientFactoryBuilder.tlsAllowUnsafeCiphers(boolean)
.This flag is disabled by default. Specify the
-Dcom.linecorp.armeria.tlsAllowUnsafeCiphers=true
JVM option to enable it. -
transientServiceOptions
Returns theSet
ofTransientServiceOption
s that are enabled for aTransientService
.The default value of this flag is an empty string, which means all
TransientServiceOption
s are disabled. Specify the-Dcom.linecorp.armeria.transientServiceOptions=<csv>
JVM option to override the default value. For example,-Dcom.linecorp.armeria.transientServiceOptions=WITH_METRIC_COLLECTION,WITH_ACCESS_LOGGING
. -
useDefaultSocketOptions
public static boolean useDefaultSocketOptions()Returns whether default socket options defined by Armeria are enabled. If enabled, the following socket options are set automatically when/dev/epoll
orio_uring
is in use:- TCP_USER_TIMEOUT
- TCP_KEEPIDLE
- TCP_KEEPINTVL
This flag is enabled by default. Specify the
-Dcom.linecorp.armeria.useDefaultSocketOptions=false
JVM option to disable it. -
useLegacyRouteDecoratorOrdering
public static boolean useLegacyRouteDecoratorOrdering()Returns whether to order route decorators with legacy order that the first decorator is first applied to. For example, if a service and decorators are defined like the followings:
A request will go through the below decorators' order to reach theServer server = Server.builder() .service("/users", userService) .decoratorUnder("/", loggingDecorator) .decoratorUnder("/", authDecorator) .decoratorUnder("/", traceDecorator) .build();
userService
.request -> loggingDecorator -> authDecorator -> traceDecorator -> userService
-
LoggingService
or log exceptions usingServerBuilder.exceptionHandler(com.linecorp.armeria.server.ExceptionHandler)
.