    001/*
    002 * Licensed to the Apache Software Foundation (ASF) under one or more
    003 * contributor license agreements.  See the NOTICE file distributed with
    004 * this work for additional information regarding copyright ownership.
    005 * The ASF licenses this file to You under the Apache License, Version 2.0
    006 * (the "License"); you may not use this file except in compliance with
    007 * the License.  You may obtain a copy of the License at
    008 *
    009 *      https://www.apache.org/licenses/LICENSE-2.0
    010 *
    011 * Unless required by applicable law or agreed to in writing, software
    012 * distributed under the License is distributed on an "AS IS" BASIS,
    013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    014 * See the License for the specific language governing permissions and
    015 * limitations under the License.
    016 */
    017
    018package org.apache.commons.lang3;
    019
    020import java.util.function.BooleanSupplier;
    021import java.util.function.IntSupplier;
    022import java.util.function.LongSupplier;
    023import java.util.function.Supplier;
    024
    025import org.apache.commons.lang3.function.Suppliers;
    026
    027/**
    028 * Accesses current system property names and values.
    029 *
    030 * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
    031 * @since 3.13.0
    032 */
    033public final class SystemProperties {
    034
    035    /**
    036     * The System property name {@value}.
    037     *
    038     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.desktop/java/awt/TrayIcon.html#apple.awt.enableTemplateImages">apple.awt.enableTemplateImages</a>
    039     * @since 3.15.0
    040     */
    041    public static final String APPLE_AWT_ENABLE_TEMPLATE_IMAGES = "apple.awt.enableTemplateImages";
    042
    043    /**
    044     * The System property name {@value}.
    045     * <p>
    046     * Not in Java 17 and 21 (Javadoc).
    047     * </p>
    048     *
    049     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
    050     */
    051    public static final String AWT_TOOLKIT = "awt.toolkit";
    052
    053    /**
    054     * The System property name {@value}.
    055     *
    056     * @see <a href=
    057     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.naming/module-summary.html#com.sun.jndi.ldap.object.trustSerialData">com.sun.jndi.ldap.object.trustSerialData</a>
    058     * @since 3.15.0
    059     */
    060    public static final String COM_SUN_JNDI_LDAP_OBJECT_TRUST_SERIAL_DATA = "com.sun.jndi.ldap.object.trustSerialData";
    061
    062    /**
    063     * The System property name {@value}.
    064     *
    065     * @see <a href=
    066     *      "https://docs.oracle.com/en/java/javase/22/docs/api/jdk.httpserver/com/sun/net/httpserver/spi/HttpServerProvider.html#com.sun.net.httpserver.HttpServerProvider">com.sun.net.httpserver.HttpServerProvider</a>
    067     * @since 3.15.0
    068     */
    069    public static final String COM_SUN_NET_HTTP_SERVER_HTTP_SERVER_PROVIDER = "com.sun.net.httpserver.HttpServerProvider";
    070
    071    /**
    072     * The System property name {@value}.
    073     */
    074    public static final String FILE_ENCODING = "file.encoding";
    075
    076    /**
    077     * The System property name {@value}.
    078     */
    079    public static final String FILE_SEPARATOR = "file.separator";
    080
    081    /**
    082     * The System property name {@value}.
    083     *
    084     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#ftp.nonProxyHosts">ftp.nonProxyHosts</a>
    085     * @since 3.15.0
    086     */
    087    public static final String FTP_NON_PROXY_HOST = "ftp.nonProxyHosts";
    088
    089    /**
    090     * The System property name {@value}.
    091     *
    092     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#ftp.proxyHost">ftp.proxyHost</a>
    093     * @since 3.15.0
    094     */
    095    public static final String FTP_PROXY_HOST = "ftp.proxyHost";
    096
    097    /**
    098     * The System property name {@value}.
    099     *
    100     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#ftp.proxyPort">ftp.proxyPort</a>
    101     * @since 3.15.0
    102     */
    103    public static final String FTP_PROXY_PORT = "ftp.proxyPort";
    104
    105    /**
    106     * The System property name {@value}.
    107     *
    108     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.agent">http.agent</a>
    109     * @since 3.15.0
    110     */
    111    public static final String HTTP_AGENT = "http.agent";
    112
    113    /**
    114     * The System property name {@value}.
    115     *
    116     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#auth.digest.cnonceRepeat">auth.digest.cnonceRepeat</a>
    117     * @since 3.15.0
    118     */
    119    public static final String HTTP_AUTH_DIGEST_CNONCE_REPEAT = "http.auth.digest.cnonceRepeat";
    120
    121    /**
    122     * The System property name {@value}.
    123     *
    124     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#reEnabledAlgorithms">http.auth.digest.reEnabledAlgorithms</a>
    125     * @since 3.15.0
    126     */
    127    public static final String HTTP_AUTH_DIGEST_RE_ENABLED_ALGORITHMS = "http.auth.digest.reEnabledAlgorithms";
    128
    129    /**
    130     * The System property name {@value}.
    131     *
    132     * @see <a href=
    133     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.auth.digest.validateProxy">http.auth.digest.validateProxy</a>
    134     * @since 3.15.0
    135     */
    136    public static final String HTTP_AUTH_DIGEST_VALIDATE_PROXY = "http.auth.digest.validateProxy";
    137
    138    /**
    139     * The System property name {@value}.
    140     *
    141     * @see <a href=
    142     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.auth.digest.validateServer">http.auth.digest.validateServer</a>
    143     * @since 3.15.0
    144     */
    145    public static final String HTTP_AUTH_DIGEST_VALIDATE_SERVER = "http.auth.digest.validateServer";
    146
    147    /**
    148     * The System property name {@value}.
    149     *
    150     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.auth.ntlm.domain">http.auth.ntlm.domain</a>
    151     * @since 3.15.0
    152     */
    153    public static final String HTTP_AUTH_NTLM_DOMAIN = "http.auth.ntlm.domain";
    154
    155    /**
    156     * The System property name {@value}.
    157     *
    158     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.keepAlive">http.keepAlive</a>
    159     * @since 3.15.0
    160     */
    161    public static final String HTTP_KEEP_ALIVE = "http.keepAlive";
    162
    163    /**
    164     * The System property name {@value}.
    165     *
    166     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.keepAlive.time.proxy">http.keepAlive.time.proxy</a>
    167     * @since 3.15.0
    168     */
    169    public static final String HTTP_KEEP_ALIVE_TIME_PROXY = "http.keepAlive.time.proxy";
    170
    171    /**
    172     * The System property name {@value}.
    173     *
    174     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.keepAlive.time.server">http.keepAlive.time.server</a>
    175     * @since 3.15.0
    176     */
    177    public static final String HTTP_KEEP_ALIVE_TIME_SERVER = "http.keepAlive.time.server";
    178
    179    /**
    180     * The System property name {@value}.
    181     *
    182     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.maxConnections">http.maxConnections</a>
    183     * @since 3.15.0
    184     */
    185    public static final String HTTP_MAX_CONNECTIONS = "http.maxConnections";
    186
    187    /**
    188     * The System property name {@value}.
    189     *
    190     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.maxRedirects">http.maxRedirects</a>
    191     * @since 3.15.0
    192     */
    193    public static final String HTTP_MAX_REDIRECTS = "http.maxRedirects";
    194
    195    /**
    196     * The System property name {@value}.
    197     *
    198     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.nonProxyHosts">http.nonProxyHosts</a>
    199     * @since 3.15.0
    200     */
    201    public static final String HTTP_NON_PROXY_HOSTS = "http.nonProxyHosts";
    202
    203    /**
    204     * The System property name {@value}.
    205     *
    206     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.proxyHost">http.proxyHost</a>
    207     * @since 3.15.0
    208     */
    209    public static final String HTTP_PROXY_HOST = "http.proxyHost";
    210
    211    /**
    212     * The System property name {@value}.
    213     *
    214     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#http.proxyPort">http.proxyPort</a>
    215     * @since 3.15.0
    216     */
    217    public static final String HTTP_PROXY_PORT = "http.proxyPort";
    218
    219    /**
    220     * The System property name {@value}.
    221     *
    222     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#https.proxyHost">https.proxyHost</a>
    223     * @since 3.15.0
    224     */
    225    public static final String HTTPS_PROXY_HOST = "https.proxyHost";
    226
    227    /**
    228     * The System property name {@value}.
    229     *
    230     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#https.proxyPort">https.proxyPort</a>
    231     * @since 3.15.0
    232     */
    233    public static final String HTTPS_PROXY_PORT = "https.proxyPort";
    234
    235    /**
    236     * The System property name {@value}.
    237     * <p>
    238     * Not in Java 17 and 21 (Javadoc).
    239     * </p>
    240     *
    241     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">java.awt.fonts</a>
    242     */
    243    public static final String JAVA_AWT_FONTS = "java.awt.fonts";
    244
    245    /**
    246     * The System property name {@value}.
    247     * <p>
    248     * Not in Java 17 and 21 (Javadoc).
    249     * </p>
    250     *
    251     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">java.awt.graphicsenv</a>
    252     */
    253    public static final String JAVA_AWT_GRAPHICSENV = "java.awt.graphicsenv";
    254
    255    /**
    256     * The System property name {@value}.
    257     * <p>
    258     * Not in Java 17 and 21 (Javadoc).
    259     * </p>
    260     *
    261     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">java.awt.headless</a>
    262     */
    263    public static final String JAVA_AWT_HEADLESS = "java.awt.headless";
    264
    265    /**
    266     * The System property name {@value}.
    267     * <p>
    268     * Not in Java 17 and 21 (Javadoc).
    269     * </p>
    270     *
    271     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">java.awt.printerjob</a>
    272     */
    273    public static final String JAVA_AWT_PRINTERJOB = "java.awt.printerjob";
    274
    275    /**
    276     * The System property name {@value}.
    277     */
    278    public static final String JAVA_CLASS_PATH = "java.class.path";
    279
    280    /**
    281     * The System property name {@value}.
    282     */
    283    public static final String JAVA_CLASS_VERSION = "java.class.version";
    284
    285    /**
    286     * The System property name {@value}.
    287     * <p>
    288     * Not in Java 21. Last seen in Java 17.
    289     * </p>
    290     */
    291    public static final String JAVA_COMPILER = "java.compiler";
    292
    293    /**
    294     * The System property name {@value}.
    295     *
    296     * @see <a href=
    297     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/ContentHandler.html#java.content.handler.pkgs">java.content.handler.pkgs</a>
    298     * @since 3.15.0
    299     */
    300    public static final String JAVA_CONTENT_HANDLER_PKGS = "java.content.handler.pkgs";
    301
    302    /**
    303     * The System property name {@value}.
    304     * <p>
    305     * Not in Java 17 and 21 (Javadoc).
    306     * </p>
    307     */
    308    public static final String JAVA_ENDORSED_DIRS = "java.endorsed.dirs";
    309
    310    /**
    311     * The System property name {@value}.
    312     * <p>
    313     * Not in Java 17 and 21 (Javadoc).
    314     * </p>
    315     */
    316    public static final String JAVA_EXT_DIRS = "java.ext.dirs";
    317
    318    /**
    319     * The System property name {@value}.
    320     */
    321    public static final String JAVA_HOME = "java.home";
    322
    323    /**
    324     * The System property name {@value}.
    325     */
    326    public static final String JAVA_IO_TMPDIR = "java.io.tmpdir";
    327
    328    /**
    329     * The System property name {@value}.
    330     */
    331    public static final String JAVA_LIBRARY_PATH = "java.library.path";
    332
    333    /**
    334     * The System property name {@value}.
    335     */
    336    public static final String JAVA_LOCALE_PROVIDERS = "java.locale.providers";
    337
    338    /**
    339     * The System property name {@value}.
    340     *
    341     * @see <a href=
    342     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/util/Locale.html#java.locale.useOldISOCodes">java.locale.useOldISOCodes</a>
    343     * @since 3.15.0
    344     */
    345    public static final String JAVA_LOCALE_USE_OLD_ISO_CODES = "java.locale.useOldISOCodes";
    346
    347    /**
    348     * The System property name {@value}.
    349     *
    350     * @see <a href=
    351     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#java.net.preferIPv4Stack">java.net.preferIPv4Stack</a>
    352     * @since 3.15.0
    353     */
    354    public static final String JAVA_NET_PREFER_IPV4_STACK = "java.net.preferIPv4Stack";
    355
    356    /**
    357     * The System property name {@value}.
    358     *
    359     * @see <a href=
    360     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#java.net.preferIPv6Addresses">java.net.preferIPv6Addresses</a>
    361     * @since 3.15.0
    362     */
    363    public static final String JAVA_NET_PREFER_IPV6_ADDRESSES = "java.net.preferIPv6Addresses";
    364
    365    /**
    366     * The System property name {@value}.
    367     *
    368     * @see <a href=
    369     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#java.net.socks.password">java.net.socks.password</a>
    370     * @since 3.15.0
    371     */
    372    public static final String JAVA_NET_SOCKS_PASSWORD = "java.net.socks.password";
    373
    374    /**
    375     * The System property name {@value}.
    376     *
    377     * @see <a href=
    378     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#java.net.socks.username">java.net.socks.username</a>
    379     * @since 3.15.0
    380     */
    381    public static final String JAVA_NET_SOCKS_USER_NAME = "java.net.socks.username";
    382
    383    /**
    384     * The System property name {@value}.
    385     *
    386     * @see <a href=
    387     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/doc-files/net-properties.html#java.net.useSystemProxies">java.net.useSystemProxies</a>
    388     * @since 3.15.0
    389     */
    390    public static final String JAVA_NET_USE_SYSTEM_PROXIES = "java.net.useSystemProxies";
    391
    392    /**
    393     * The System property name {@value}.
    394     *
    395     * @see <a href=
    396     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/nio/channels/AsynchronousChannelGroup.html#java.nio.channels.DefaultThreadPool.initialSize">java.nio.channels.DefaultThreadPool.initialSize</a>
    397     * @since 3.15.0
    398     */
    399    public static final String JAVA_NIO_CHANNELS_DEFAULT_THREAD_POOL_INITIAL_SIZE = "java.nio.channels.DefaultThreadPool.initialSize";
    400
    401    /**
    402     * The System property name {@value}.
    403     *
    404     * @see <a href=
    405     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/nio/channels/AsynchronousChannelGroup.html#java.nio.channels.DefaultThreadPool.threadFactory">java.nio.channels.DefaultThreadPool.threadFactory</a>
    406     * @since 3.15.0
    407     */
    408    public static final String JAVA_NIO_CHANNELS_DEFAULT_THREAD_POOL_THREAD_FACTORY = "java.nio.channels.DefaultThreadPool.threadFactory";
    409
    410    /**
    411     * The System property name {@value}.
    412     *
    413     * @see <a href=
    414     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/nio/channels/AsynchronousChannelGroup.html#java.nio.channels.DefaultThreadPool.initialSize">java.nio.channels.DefaultThreadPool.initialSize</a>
    415     * @since 3.15.0
    416     */
    417    public static final String JAVA_NIO_CHANNELS_SPI_ASYNCHRONOUS_CHANNEL_PROVIDER = "java.nio.channels.spi.AsynchronousChannelProvider";
    418
    419    /**
    420     * The System property name {@value}.
    421     *
    422     * @see <a href=
    423     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/nio/channels/spi/SelectorProvider.html#java.nio.channels.spi.SelectorProvider">java.nio.channels.spi.SelectorProvider</a>
    424     * @since 3.15.0
    425     */
    426    public static final String JAVA_NIO_CHANNELS_SPI_SELECTOR_PROVIDER = "java.nio.channels.spi.SelectorProvider";
    427
    428    /**
    429     * The System property name {@value}.
    430     *
    431     * @see <a href=
    432     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/nio/file/spi/FileSystemProvider.html#java.nio.file.spi.DefaultFileSystemProvider">java.nio.file.spi.DefaultFileSystemProvider</a>
    433     * @since 3.15.0
    434     */
    435    public static final String JAVA_NIO_FILE_SPI_DEFAULT_FILE_SYSTEM_PROVIDER = "java.nio.file.spi.DefaultFileSystemProvider";
    436
    437    /**
    438     * The System property name {@value}.
    439     *
    440     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/util/Properties.html#java.properties.date">java.properties.date</a>
    441     * @since 3.15.0
    442     */
    443    public static final String JAVA_PROPERTIES_DATE = "java.properties.date";
    444
    445    /**
    446     * The System property name {@value}.
    447     *
    448     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/net/URL.html#java.protocol.handler.pkgs">java.protocol.handler.pkgs</a>
    449     * @since 3.15.0
    450     */
    451    public static final String JAVA_PROTOCOL_HANDLER_PKGS = "java.protocol.handler.pkgs";
    452
    453    /**
    454     * The System property name {@value}.
    455     *
    456     * @see <a href=
    457     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.rmi/java/rmi/server/RMIClassLoader.html#java.rmi.server.codebase">java.rmi.server.codebase</a>
    458     * @since 3.15.0
    459     */
    460    public static final String JAVA_RMI_SERVER_CODEBASE = "java.rmi.server.codebase";
    461
    462    /**
    463     * The System property name {@value}.
    464     *
    465     * @see <a href=
    466     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.rmi/java/rmi/server/RMISocketFactory.html#java.rmi.server.hostname">java.rmi.server.hostname</a>
    467     * @since 3.15.0
    468     */
    469    public static final String JAVA_RMI_SERVER_HOST_NAME = "java.rmi.server.hostname";
    470
    471    /**
    472     * The System property name {@value}.
    473     *
    474     * @see <a href=
    475     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.rmi/java/rmi/server/ObjID.html#java.rmi.server.randomIDs">java.rmi.server.randomIDs</a>
    476     * @since 3.15.0
    477     */
    478    public static final String JAVA_RMI_SERVER_RANDOM_IDS = "java.rmi.server.randomIDs";
    479
    480    /**
    481     * The System property name {@value}.
    482     *
    483     * @see <a href=
    484     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.rmi/java/rmi/server/RMIClassLoader.html#java.rmi.server.RMIClassLoaderSpi">java.rmi.server.RMIClassLoaderSpi</a>
    485     * @since 3.15.0
    486     */
    487    public static final String JAVA_RMI_SERVER_RMI_CLASS_LOADER_SPI = "java.rmi.server.RMIClassLoaderSpi";
    488
    489    /**
    490     * The System property name {@value}.
    491     */
    492    public static final String JAVA_RUNTIME_NAME = "java.runtime.name";
    493
    494    /**
    495     * The System property name {@value}.
    496     */
    497    public static final String JAVA_RUNTIME_VERSION = "java.runtime.version";
    498
    499    /**
    500     * The System property name {@value}.
    501     *
    502     * @see <a href=
    503     *      "https://docs.oracle.com/en/java/javase/22/docs/api/jdk.security.auth/com/sun/security/auth/login/ConfigFile.html#java.security.auth.login.config">java.security.auth.login.config</a>
    504     * @since 3.15.0
    505     */
    506    public static final String JAVA_SECURITY_AUTH_LOGIN_CONFIG = "java.security.auth.login.config";
    507
    508    /**
    509     * The System property name {@value}.
    510     *
    511     * @see <a href= "https://docs.oracle.com/en/java/javase/24/docs/api/system-properties.html">java.security.krb5.conf</a>
    512     * @see <a href=
    513     *      "https://docs.oracle.com/en/java/javase/24/docs/api/java.security.jgss/javax/security/auth/kerberos/package-summary.html#java.security.krb5.conf">package
    514     *      javax.security.auth.kerberos conf</a>
    515     * @since 3.18.0
    516     */
    517    public static final String JAVA_SECURITY_KERBEROS_CONF = "java.security.krb5.conf";
    518
    519    /**
    520     * The System property name {@value}.
    521     *
    522     * @see <a href= "https://docs.oracle.com/en/java/javase/24/docs/api/system-properties.html">java.security.krb5.kdc</a>
    523     * @see <a href=
    524     *      "https://docs.oracle.com/en/java/javase/24/docs/api/java.security.jgss/javax/security/auth/kerberos/package-summary.html#java.security.krb5.kdc">package
    525     *      javax.security.auth.kerberos KDC</a>
    526     * @since 3.18.0
    527     */
    528    public static final String JAVA_SECURITY_KERBEROS_KDC = "java.security.krb5.kdc";
    529
    530    /**
    531     * The System property name {@value}.
    532     *
    533     * @see <a href= "https://docs.oracle.com/en/java/javase/24/docs/api/system-properties.html">java.security.krb5.realm</a>
    534     * @see <a href=
    535     *      "https://docs.oracle.com/en/java/javase/24/docs/api/java.security.jgss/javax/security/auth/kerberos/package-summary.html#java.security.krb5.realm">package
    536     *      javax.security.auth.kerberos realm</a>
    537     * @since 3.18.0
    538     */
    539    public static final String JAVA_SECURITY_KERBEROS_REALM = "java.security.krb5.realm";
    540
    541    /**
    542     * The System property name {@value}.
    543     *
    544     * @see <a href=
    545     *      "https://docs.oracle.com/en/java/javase/24/security/troubleshooting-security.html">java.security.debug</a>
    546     * @since 3.18.0
    547     */
    548    public static final String JAVA_SECURITY_DEBUG = "java.security.debug";
    549
    550    /**
    551     * The System property name {@value}.
    552     *
    553     * @see <a href=
    554     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/SecurityManager.html#java.security.manager">java.security.manager</a>
    555     * @since 3.15.0
    556     */
    557    public static final String JAVA_SECURITY_MANAGER = "java.security.manager";
    558
    559    /**
    560     * The System property name {@value}.
    561     *
    562     * @see <a href=
    563     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/System.html#java.specification.maintenance.version">java.specification.maintenance.version</a>
    564     * @since 3.15.0
    565     */
    566    public static final String JAVA_SPECIFICATION_MAINTENANCE_VERSION = "java.specification.maintenance.version";
    567
    568    /**
    569     * The System property name {@value}.
    570     */
    571    public static final String JAVA_SPECIFICATION_NAME = "java.specification.name";
    572
    573    /**
    574     * The System property name {@value}.
    575     */
    576    public static final String JAVA_SPECIFICATION_VENDOR = "java.specification.vendor";
    577
    578    /**
    579     * The System property name {@value}.
    580     */
    581    public static final String JAVA_SPECIFICATION_VERSION = "java.specification.version";
    582
    583    /**
    584     * The System property name {@value}.
    585     *
    586     * @see <a href=
    587     *      "https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/ClassLoader.html#java.system.class.loader">java.system.class.loader</a>
    588     * @since 3.15.0
    589     */
    590    public static final String JAVA_SYSTEM_CLASS_LOADER = "java.system.class.loader";
    591
    592    /**
    593     * The System property name {@value}.
    594     *
    595     * @see <a href=
    596     *      "https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/time/zone/ZoneRulesProvider.html#java.time.zone.DefaultZoneRulesProvider">java.time.zone.DefaultZoneRulesProvider</a>
    597     * @since 3.15.0
    598     */
    599    public static final String JAVA_TIME_ZONE_DEFAULT_ZONE_RULES_PROVIDER = "java.time.zone.DefaultZoneRulesProvider";
    600
    601    /**
    602     * The System property name {@value}.
    603     *
    604     * @see <a href=
    605     *      "https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/ForkJoinPool.html#java.util.concurrent.ForkJoinPool.common.exceptionHandler">java.util.concurrent.ForkJoinPool.common.exceptionHandler</a>
    606     * @since 3.15.0
    607     */
    608    public static final String JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_EXCEPTION_HANDLER = "java.util.concurrent.ForkJoinPool.common.exceptionHandler";
    609
    610    /**
    611     * The System property name {@value}.
    612     *
    613     * @see <a href=
    614     *      "https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/ForkJoinPool.html#java.util.concurrent.ForkJoinPool.common.maximumSpares">java.util.concurrent.ForkJoinPool.common.maximumSpares</a>
    615     * @since 3.15.0
    616     */
    617    public static final String JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_MAXIMUM_SPARES = "java.util.concurrent.ForkJoinPool.common.maximumSpares";
    618
    619    /**
    620     * The System property name {@value}.
    621     *
    622     * @see <a href=
    623     *      "https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/ForkJoinPool.html#java.util.concurrent.ForkJoinPool.common.parallelism">java.util.concurrent.ForkJoinPool.common.parallelism</a>
    624     * @since 3.15.0
    625     */
    626    public static final String JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_PARALLELISM = "java.util.concurrent.ForkJoinPool.common.parallelism";
    627
    628    /**
    629     * The System property name {@value}.
    630     *
    631     * @see <a href=
    632     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/util/concurrent/ForkJoinPool.html#java.util.concurrent.ForkJoinPool.common.threadFactory">java.util.concurrent.ForkJoinPool.common.threadFactory</a>
    633     * @since 3.15.0
    634     */
    635    public static final String JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_THREAD_FACTORY = "java.util.concurrent.ForkJoinPool.common.threadFactory";
    636
    637    /**
    638     * The System property name {@value}.
    639     *
    640     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/util/Currency.html#java.util.currency.data">java.util.currency.data</a>
    641     * @since 3.15.0
    642     */
    643    public static final String JAVA_UTIL_CURRENCY_DATA = "java.util.currency.data";
    644
    645    /**
    646     * The System property name {@value}.
    647     *
    648     * @see <a href=
    649     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.logging/java/util/logging/LogManager.html#java.util.logging.config.class">java.util.logging.config.class</a>
    650     * @since 3.15.0
    651     */
    652    public static final String JAVA_UTIL_LOGGING_CONFIG_CLASS = "java.util.logging.config.class";
    653
    654    /**
    655     * The System property name {@value}.
    656     *
    657     * @see <a href=
    658     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.logging/java/util/logging/LogManager.html#java.util.logging.config.file">java.util.logging.config.file</a>
    659     * @since 3.15.0
    660     */
    661    public static final String JAVA_UTIL_LOGGING_CONFIG_FILE = "java.util.logging.config.file";
    662
    663    /**
    664     * The System property name {@value}.
    665     *
    666     * @see <a href=
    667     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.logging/java/util/logging/SimpleFormatter.html#java.util.logging.SimpleFormatter.format">java.util.logging.SimpleFormatter.format</a>
    668     * @since 3.15.0
    669     */
    670    public static final String JAVA_UTIL_LOGGING_SIMPLE_FORMATTER_FORMAT = "java.util.logging.simpleformatter.format";
    671
    672    /**
    673     * The System property name {@value}.
    674     *
    675     * @see <a href=
    676     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.prefs/java/util/prefs/Preferences.html#java.util.prefs.PreferencesFactory">java.util.prefs.PreferencesFactory</a>
    677     */
    678    public static final String JAVA_UTIL_PREFS_PREFERENCES_FACTORY = "java.util.prefs.PreferencesFactory";
    679
    680    /**
    681     * The System property name {@value}.
    682     *
    683     * @see <a href=
    684     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/util/PropertyResourceBundle.html#java.util.PropertyResourceBundle.encoding">java.util.PropertyResourceBundle.encoding</a>
    685     * @since 3.15.0
    686     */
    687    public static final String JAVA_UTIL_PROPERTY_RESOURCE_BUNDLE_ENCODING = "java.util.PropertyResourceBundle.encoding";
    688
    689    /**
    690     * The System property name {@value}.
    691     */
    692    public static final String JAVA_VENDOR = "java.vendor";
    693
    694    /**
    695     * The System property name {@value}.
    696     */
    697    public static final String JAVA_VENDOR_URL = "java.vendor.url";
    698
    699    /**
    700     * The System property name {@value}.
    701     *
    702     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/System.html#java.vendor.version">java.vendor.version</a>
    703     * @since 3.15.0
    704     */
    705    public static final String JAVA_VENDOR_VERSION = "java.vendor.version";
    706
    707    /**
    708     * The System property name {@value}.
    709     */
    710    public static final String JAVA_VERSION = "java.version";
    711
    712    /**
    713     * The System property name {@value}.
    714     *
    715     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/System.html#java.version.date">java.version.date</a>
    716     * @since 3.15.0
    717     */
    718    public static final String JAVA_VERSION_DATE = "java.version.date";
    719
    720    /**
    721     * The System property name {@value}.
    722     */
    723    public static final String JAVA_VM_INFO = "java.vm.info";
    724
    725    /**
    726     * The System property name {@value}.
    727     */
    728    public static final String JAVA_VM_NAME = "java.vm.name";
    729
    730    /**
    731     * The System property name {@value}.
    732     */
    733    public static final String JAVA_VM_SPECIFICATION_NAME = "java.vm.specification.name";
    734
    735    /**
    736     * The System property name {@value}.
    737     */
    738    public static final String JAVA_VM_SPECIFICATION_VENDOR = "java.vm.specification.vendor";
    739
    740    /**
    741     * The System property name {@value}.
    742     */
    743    public static final String JAVA_VM_SPECIFICATION_VERSION = "java.vm.specification.version";
    744
    745    /**
    746     * The System property name {@value}.
    747     */
    748    public static final String JAVA_VM_VENDOR = "java.vm.vendor";
    749
    750    /**
    751     * The System property name {@value}.
    752     */
    753    public static final String JAVA_VM_VERSION = "java.vm.version";
    754
    755    /**
    756     * The System property name {@value}.
    757     *
    758     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.xml/module-summary.html#java.xml.config.file">java.xml</a>
    759     * @since 3.15.0
    760     */
    761    public static final String JAVA_XML_CONFIG_FILE = "java.xml.config.file";
    762
    763    /**
    764     * The System property name {@value}.
    765     *
    766     * @see <a href=
    767     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.desktop/java/awt/Toolkit.html#javax.accessibility.assistive_technologies">javax.accessibility.assistive_technologies</a>
    768     * @since 3.15.0
    769     */
    770    public static final String JAVAX_ACCESSIBILITY_ASSISTIVE_TECHNOLOGIES = "javax.accessibility.assistive_technologies";
    771
    772    /**
    773     * The System property name {@value}.
    774     *
    775     * @see <a href=
    776     *      "https://docs.oracle.com/en/java/javase/22/docs/api/java.base/javax/net/ssl/SSLSessionContext.html#javax.net.ssl.sessionCacheSize">javax.net.ssl.sessionCacheSize</a>
    777     * @since 3.15.0
    778     */
    779    public static final String JAVAX_NET_SSL_SESSION_CACHE_SIZE = "javax.net.ssl.sessionCacheSize";
    780
    781    /**
    782     * The System property name {@value}.
    783     *
    784     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.rmi/javax/rmi/ssl/SslRMIClientSocketFactory.html#javax.rmi.ssl.client.enabledCipherSuites">javax.rmi.ssl.client.enabledCipherSuites</a>
    785     * @since 3.15.0
    786     */
    787    public static final String JAVAX_RMI_SSL_CLIENT_ENABLED_CIPHER_SUITES = "javax.rmi.ssl.client.enabledCipherSuites";
    788
    789    /**
    790     * The System property name {@value}.
    791     *
    792     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.rmi/javax/rmi/ssl/SslRMIClientSocketFactory.html#javax.rmi.ssl.client.enabledProtocols">javax.rmi.ssl.client.enabledProtocols</a>
    793     * @since 3.15.0
    794     */
    795    public static final String JAVAX_RMI_SSL_CLIENT_ENABLED_PROTOCOLS = "javax.rmi.ssl.client.enabledProtocols";
    796
    797    /**
    798     * The System property name {@value}.
    799     *
    800     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.security.jgss/org/ietf/jgss/package-summary.html#javax.security.auth.useSubjectCredsOnly">javax.security.auth.useSubjectCredsOnly</a>
    801     * @since 3.15.0
    802     */
    803    public static final String JAVAX_SECURITY_AUTH_USE_SUBJECT_CREDS_ONLY = "javax.security.auth.useSubjectCredsOnly";
    804
    805    /**
    806     * The System property name {@value}.
    807     *
    808     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.smartcardio/javax/smartcardio/TerminalFactory.html#javax.smartcardio.TerminalFactory.DefaultType">javax.smartcardio.TerminalFactory.DefaultType</a>
    809     * @since 3.15.0
    810     */
    811    public static final String JAVAX_SMART_CARD_IO_TERMINAL_FACTORY_DEFAULT_TYPE = "javax.smartcardio.TerminalFactory.DefaultType";
    812
    813    /**
    814     * The System property name {@value}.
    815     *
    816     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/java.sql/java/sql/DriverManager.html#jdbc.drivers">jdbc.drivers</a>
    817     * @since 3.15.0
    818     */
    819    public static final String JDBC_DRIVERS = "jdbc.drivers";
    820
    821    /**
    822     * The System property name {@value}.
    823     *
    824     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.http.auth.proxying.disabledSchemes</a>
    825     * @since 3.15.0
    826     */
    827    public static final String JDK_HTTP_AUTH_PROXYING_DISABLED_SCHEMES = "jdk.http.auth.proxying.disabledSchemes";
    828
    829    /**
    830     * The System property name {@value}.
    831     *
    832     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.http.auth.tunneling.disabledSchemes</a>
    833     * @since 3.15.0
    834     */
    835    public static final String JDK_HTTP_AUTH_TUNNELING_DISABLED_SCHEMES = "jdk.http.auth.tunneling.disabledSchemes";
    836
    837    /**
    838     * The System property name {@value}.
    839     *
    840     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.allowRestrictedHeaders</a>
    841     * @since 3.15.0
    842     */
    843    public static final String JDK_HTTP_CLIENT_ALLOW_RESTRICTED_HEADERS = "jdk.httpclient.allowRestrictedHeaders";
    844
    845    /**
    846     * The System property name {@value}.
    847     *
    848     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.auth.retrylimit</a>
    849     * @since 3.15.0
    850     */
    851    public static final String JDK_HTTP_CLIENT_AUTH_RETRY_LIMIT = "jdk.httpclient.auth.retrylimit";
    852
    853    /**
    854     * The System property name {@value}.
    855     *
    856     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.bufsize</a>
    857     * @since 3.15.0
    858     */
    859    public static final String JDK_HTTP_CLIENT_BUF_SIZE = "jdk.httpclient.bufsize";
    860
    861    /**
    862     * The System property name {@value}.
    863     *
    864     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.connectionPoolSize</a>
    865     * @since 3.15.0
    866     */
    867    public static final String JDK_HTTP_CLIENT_CONNECTION_POOL_SIZE = "jdk.httpclient.connectionPoolSize";
    868
    869    /**
    870     * The System property name {@value}.
    871     *
    872     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.connectionWindowSize</a>
    873     * @since 3.15.0
    874     */
    875    public static final String JDK_HTTP_CLIENT_CONNECTION_WINDOW_SIZE = "jdk.httpclient.connectionWindowSize";
    876
    877    /**
    878     * The System property name {@value}.
    879     *
    880     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.disableRetryConnect</a>
    881     * @since 3.15.0
    882     */
    883    public static final String JDK_HTTP_CLIENT_DISABLE_RETRY_CONNECT = "jdk.httpclient.disableRetryConnect";
    884
    885    /**
    886     * The System property name {@value}.
    887     *
    888     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.enableAllMethodRetry</a>
    889     * @since 3.15.0
    890     */
    891    public static final String JDK_HTTP_CLIENT_ENABLE_ALL_METHOD_RETRY = "jdk.httpclient.enableAllMethodRetry";
    892
    893    /**
    894     * The System property name {@value}.
    895     *
    896     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.enablepush</a>
    897     * @since 3.15.0
    898     */
    899    public static final String JDK_HTTP_CLIENT_ENABLE_PUSH = "jdk.httpclient.enablepush";
    900
    901    /**
    902     * The System property name {@value}.
    903     *
    904     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.hpack.maxheadertablesize</a>
    905     * @since 3.15.0
    906     */
    907    public static final String JDK_HTTP_CLIENT_HPACK_MAX_HEADER_TABLE_SIZE = "jdk.httpclient.hpack.maxheadertablesize";
    908
    909    /**
    910     * The System property name {@value}.
    911     *
    912     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.HttpClient.log</a>
    913     * @since 3.15.0
    914     */
    915    public static final String JDK_HTTP_CLIENT_HTTP_CLIENT_LOG = "jdk.httpclient.HttpClient.log";
    916
    917    /**
    918     * The System property name {@value}.
    919     *
    920     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.keepalive.timeout</a>
    921     * @since 3.15.0
    922     */
    923    public static final String JDK_HTTP_CLIENT_KEEP_ALIVE_TIMEOUT = "jdk.httpclient.keepalive.timeout";
    924
    925    /**
    926     * The System property name {@value}.
    927     *
    928     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.keepalive.timeout.h2</a>
    929     * @since 3.15.0
    930     */
    931    public static final String JDK_HTTP_CLIENT_KEEP_ALIVE_TIMEOUT_H2 = "jdk.httpclient.keepalive.timeout.h2";
    932
    933    /**
    934     * The System property name {@value}.
    935     *
    936     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.maxframesize</a>
    937     * @since 3.15.0
    938     */
    939    public static final String JDK_HTTP_CLIENT_MAX_FRAME_SIZE = "jdk.httpclient.maxframesize";
    940
    941    /**
    942     * The System property name {@value}.
    943     *
    944     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.maxstreams</a>
    945     * @since 3.15.0
    946     */
    947    public static final String JDK_HTTP_CLIENT_MAX_STREAMS = "jdk.httpclient.maxstreams";
    948
    949    /**
    950     * The System property name {@value}.
    951     *
    952     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.receiveBufferSize</a>
    953     * @since 3.15.0
    954     */
    955    public static final String JDK_HTTP_CLIENT_RECEIVE_BUFFER_SIZE = "jdk.httpclient.receiveBufferSize";
    956
    957    /**
    958     * The System property name {@value}.
    959     *
    960     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.redirects.retrylimit</a>
    961     * @since 3.15.0
    962     */
    963    public static final String JDK_HTTP_CLIENT_REDIRECTS_RETRY_LIMIT = "jdk.httpclient.redirects.retrylimit";
    964
    965    /**
    966     * The System property name {@value}.
    967     *
    968     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.sendBufferSize</a>
    969     * @since 3.15.0
    970     */
    971    public static final String JDK_HTTP_CLIENT_SEND_BUFFER_SIZE = "jdk.httpclient.sendBufferSize";
    972
    973    /**
    974     * The System property name {@value}.
    975     *
    976     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.websocket.writeBufferSize</a>
    977     * @since 3.15.0
    978     */
    979    public static final String JDK_HTTP_CLIENT_WEB_SOCKET_WRITE_BUFFER_SIZE = "jdk.httpclient.websocket.writeBufferSize";
    980
    981    /**
    982     * The System property name {@value}.
    983     *
    984     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpclient.windowsize</a>
    985     * @since 3.15.0
    986     */
    987    public static final String JDK_HTTP_CLIENT_WINDOW_SIZE = "jdk.httpclient.windowsize";
    988
    989    /**
    990     * The System property name {@value}.
    991     *
    992     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.httpserver.maxConnections</a>
    993     * @since 3.15.0
    994     */
    995    public static final String JDK_HTTP_SERVER_MAX_CONNECTIONS = "jdk.httpserver.maxConnections";
    996
    997    /**
    998     * The System property name {@value}.
    999     *
    1000     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.https.negotiate.cbt</a>
    1001     * @since 3.15.0
    1002     */
    1003    public static final String JDK_HTTPS_NEGOTIATE_CBT = "jdk.https.negotiate.cbt";
    1004
    1005    /**
    1006     * The System property name {@value}.
    1007     *
    1008     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.includeInExceptions</a>
    1009     * @since 3.15.0
    1010     */
    1011    public static final String JDK_INCLUDE_IN_EXCEPTIONS = "jdk.includeInExceptions";
    1012
    1013    /**
    1014     * The System property name {@value}.
    1015     *
    1016     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.internal.httpclient.disableHostnameVerification</a>
    1017     * @since 3.15.0
    1018     */
    1019    public static final String JDK_INTERNAL_HTTP_CLIENT_DISABLE_HOST_NAME_VERIFICATION = "jdk.internal.httpclient.disableHostnameVerification";
    1020
    1021    /**
    1022     * The System property name {@value}.
    1023     *
    1024     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.io.permissionsUseCanonicalPath</a>
    1025     * @since 3.15.0
    1026     */
    1027    public static final String JDK_IO_PERMISSIONS_USE_CANONICAL_PATH = "jdk.io.permissionsUseCanonicalPath";
    1028
    1029    /**
    1030     * The System property name {@value}.
    1031     *
    1032     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.jndi.ldap.object.factoriesFilter</a>
    1033     * @since 3.15.0
    1034     */
    1035    public static final String JDK_JNDI_LDAP_OBJECT_FACTORIES_FILTER = "jdk.jndi.ldap.object.factoriesFilter";
    1036
    1037    /**
    1038     * The System property name {@value}.
    1039     *
    1040     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.jndi.object.factoriesFilter</a>
    1041     * @since 3.15.0
    1042     */
    1043    public static final String JDK_JNDI_OBJECT_FACTORIES_FILTER = "jdk.jndi.object.factoriesFilter";
    1044
    1045    /**
    1046     * The System property name {@value}.
    1047     *
    1048     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.jndi.rmi.object.factoriesFilter</a>
    1049     * @since 3.15.0
    1050     */
    1051    public static final String JDK_JNDI_RMI_OBJECT_FACTORIES_FILTER = "jdk.jndi.rmi.object.factoriesFilter";
    1052
    1053    /**
    1054     * The System property name {@value}.
    1055     *
    1056     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.module.main</a>
    1057     * @since 3.15.0
    1058     */
    1059    public static final String JDK_MODULE_MAIN = "jdk.module.main";
    1060
    1061    /**
    1062     * The System property name {@value}.
    1063     *
    1064     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.module.main.class</a>
    1065     * @since 3.15.0
    1066     */
    1067    public static final String JDK_MODULE_MAIN_CLASS = "jdk.module.main.class";
    1068
    1069    /**
    1070     * The System property name {@value}.
    1071     *
    1072     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.module.path</a>
    1073     * @since 3.15.0
    1074     */
    1075    public static final String JDK_MODULE_PATH = "jdk.module.path";
    1076
    1077    /**
    1078     * The System property name {@value}.
    1079     *
    1080     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.module.upgrade.path</a>
    1081     * @since 3.15.0
    1082     */
    1083    public static final String JDK_MODULE_UPGRADE_PATH = "jdk.module.upgrade.path";
    1084
    1085    /**
    1086     * The System property name {@value}.
    1087     *
    1088     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.net.unixdomain.tmpdir</a>
    1089     * @since 3.15.0
    1090     */
    1091    public static final String JDK_NET_UNIX_DOMAIN_TMPDIR = "jdk.net.unixdomain.tmpdir";
    1092
    1093    /**
    1094     * The System property name {@value}.
    1095     *
    1096     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
    1097     * @since 3.15.0
    1098     */
    1099    public static final String JDK_NET_URL_CLASS_PATH_SHOW_IGNORED_CLASS_PATH_ENTRIES = "jdk.net.URLClassPath.showIgnoredClassPathEntries";
    1100
    1101    /**
    1102     * The System property name {@value}.
    1103     *
    1104     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.serialFilter</a>
    1105     * @since 3.15.0
    1106     */
    1107    public static final String JDK_SERIAL_FILTER = "jdk.serialFilter";
    1108
    1109    /**
    1110     * The System property name {@value}.
    1111     *
    1112     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.serialFilterFactory</a>
    1113     * @since 3.15.0
    1114     */
    1115    public static final String JDK_SERIAL_FILTER_FACTORY = "jdk.serialFilterFactory";
    1116
    1117    /**
    1118     * The System property name {@value}.
    1119     *
    1120     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.tls.client.SignatureSchemes</a>
    1121     * @since 3.15.0
    1122     */
    1123    public static final String JDK_TLS_CLIENT_SIGNATURE_SCHEMES = "jdk.tls.client.SignatureSchemes";
    1124
    1125    /**
    1126     * The System property name {@value}.
    1127     *
    1128     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.tls.namedGroups</a>
    1129     * @since 3.15.0
    1130     */
    1131    public static final String JDK_TLS_NAMED_GROUPS = "jdk.tls.namedGroups";
    1132
    1133    /**
    1134     * The System property name {@value}.
    1135     *
    1136     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.tls.server.SignatureSchemes</a>
    1137     * @since 3.15.0
    1138     */
    1139    public static final String JDK_TLS_SERVER_SIGNATURE_SCHEMES = "jdk.tls.server.SignatureSchemes";
    1140
    1141    /**
    1142     * The System property name {@value}.
    1143     *
    1144     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.virtualThreadScheduler.maxPoolSize</a>
    1145     * @since 3.15.0
    1146     */
    1147    public static final String JDK_VIRTUAL_THREAD_SCHEDULER_MAXPOOLSIZE = "jdk.virtualThreadScheduler.maxPoolSize";
    1148
    1149    /**
    1150     * The System property name {@value}.
    1151     *
    1152     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.virtualThreadScheduler.parallelism</a>
    1153     * @since 3.15.0
    1154     */
    1155    public static final String JDK_VIRTUAL_THREAD_SCHEDULER_PARALLELISM = "jdk.virtualThreadScheduler.parallelism";
    1156
    1157    /**
    1158     * The System property name {@value}.
    1159     *
    1160     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.cdataChunkSize</a>
    1161     * @since 3.15.0
    1162     */
    1163    public static final String JDK_XML_CDATA_CHUNK_SIZE = "jdk.xml.cdataChunkSize";
    1164
    1165    /**
    1166     * The System property name {@value}.
    1167     *
    1168     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.dtd.support</a>
    1169     * @since 3.15.0
    1170     */
    1171    public static final String JDK_XML_DTD_SUPPORT = "jdk.xml.dtd.support";
    1172
    1173    /**
    1174     * The System property name {@value}.
    1175     *
    1176     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.elementAttributeLimit</a>
    1177     * @since 3.15.0
    1178     */
    1179    public static final String JDK_XML_ELEMENT_ATTRIBUTE_LIMIT = "jdk.xml.elementAttributeLimit";
    1180
    1181    /**
    1182     * The System property name {@value}.
    1183     *
    1184     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.enableExtensionFunctions</a>
    1185     * @since 3.15.0
    1186     */
    1187    public static final String JDK_XML_ENABLE_EXTENSION_FUNCTIONS = "jdk.xml.enableExtensionFunctions";
    1188
    1189    /**
    1190     * The System property name {@value}.
    1191     *
    1192     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.entityExpansionLimit</a>
    1193     * @since 3.15.0
    1194     */
    1195    public static final String JDK_XML_ENTITY_EXPANSION_LIMIT = "jdk.xml.entityExpansionLimit";
    1196
    1197    /**
    1198     * The System property name {@value}.
    1199     *
    1200     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.entityReplacementLimi_t</a>
    1201     * @since 3.15.0
    1202     */
    1203    public static final String JDK_XML_ENTITY_REPLACEMENT_LIMIT = "jdk.xml.entityReplacementLimi_t";
    1204
    1205    /**
    1206     * The System property name {@value}.
    1207     *
    1208     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.isStandalone</a>
    1209     * @since 3.15.0
    1210     */
    1211    public static final String JDK_XML_IS_STANDALONE = "jdk.xml.isStandalone";
    1212
    1213    /**
    1214     * The System property name {@value}.
    1215     *
    1216     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.jdkcatalog.resolve</a>
    1217     * @since 3.15.0
    1218     */
    1219    public static final String JDK_XML_JDK_CATALOG_RESOLVE = "jdk.xml.jdkcatalog.resolve";
    1220
    1221    /**
    1222     * The System property name {@value}.
    1223     *
    1224     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.maxElementDepth</a>
    1225     * @since 3.15.0
    1226     */
    1227    public static final String JDK_XML_MAX_ELEMENT_DEPTH = "jdk.xml.maxElementDepth";
    1228
    1229    /**
    1230     * The System property name {@value}.
    1231     *
    1232     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.maxGeneralEntitySizeLimit</a>
    1233     * @since 3.15.0
    1234     */
    1235    public static final String JDK_XML_MAX_GENERAL_ENTITY_SIZE_LIMIT = "jdk.xml.maxGeneralEntitySizeLimit";
    1236
    1237    /**
    1238     * The System property name {@value}.
    1239     *
    1240     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.maxOccurLimit</a>
    1241     * @since 3.15.0
    1242     */
    1243    public static final String JDK_XML_MAX_OCCUR_LIMIT = "jdk.xml.maxOccurLimit";
    1244
    1245    /**
    1246     * The System property name {@value}.
    1247     *
    1248     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.maxParameterEntitySizeLimit</a>
    1249     * @since 3.15.0
    1250     */
    1251    public static final String JDK_XML_MAX_PARAMETER_ENTITY_SIZE_LIMIT = "jdk.xml.maxParameterEntitySizeLimit";
    1252
    1253    /**
    1254     * The System property name {@value}.
    1255     *
    1256     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.maxXMLNameLimit</a>
    1257     * @since 3.15.0
    1258     */
    1259    public static final String JDK_XML_MAX_XML_NAME_LIMIT = "jdk.xml.maxXMLNameLimit";
    1260
    1261    /**
    1262     * The System property name {@value}.
    1263     *
    1264     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.overrideDefaultParser</a>
    1265     * @since 3.15.0
    1266     */
    1267    public static final String JDK_XML_OVERRIDE_DEFAULT_PARSER = "jdk.xml.overrideDefaultParser";
    1268
    1269    /**
    1270     * The System property name {@value}.
    1271     *
    1272     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.resetSymbolTable</a>
    1273     * @since 3.15.0
    1274     */
    1275    public static final String JDK_XML_RESET_SYMBOL_TABLE = "jdk.xml.resetSymbolTable";
    1276
    1277    /**
    1278     * The System property name {@value}.
    1279     *
    1280     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.totalEntitySizeLimit</a>
    1281     * @since 3.15.0
    1282     */
    1283    public static final String JDK_XML_TOTAL_ENTITY_SIZE_LIMIT = "jdk.xml.totalEntitySizeLimit";
    1284
    1285    /**
    1286     * The System property name {@value}.
    1287     *
    1288     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">jdk.xml.xsltcIsStandalone</a>
    1289     * @since 3.15.0
    1290     */
    1291    public static final String JDK_XML_XSLTC_IS_STANDALONE = "jdk.xml.xsltcIsStandalone";
    1292
    1293    /**
    1294     * The System property name {@value}.
    1295     */
    1296    public static final String LINE_SEPARATOR = "line.separator";
    1297
    1298    /**
    1299     * The System property name {@value}.
    1300     *
    1301     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">native.encoding</a>
    1302     * @since 3.15.0
    1303     */
    1304    public static final String NATIVE_ENCODING = "native.encoding";
    1305
    1306    /**
    1307     * The System property name {@value}.
    1308     *
    1309     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">networkaddress.cache.negative.ttl</a>
    1310     * @since 3.15.0
    1311     */
    1312    public static final String NETWORK_ADDRESS_CACHE_NEGATIVE_TTL = "networkaddress.cache.negative.ttl";
    1313
    1314    /**
    1315     * The System property name {@value}.
    1316     *
    1317     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">networkaddress.cache.stale.ttl</a>
    1318     * @since 3.15.0
    1319     */
    1320    public static final String NETWORK_ADDRESS_CACHE_STALE_TTL = "networkaddress.cache.stale.ttl";
    1321
    1322    /**
    1323     * The System property name {@value}.
    1324     *
    1325     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">networkaddress.cache.ttl</a>
    1326     * @since 3.15.0
    1327     */
    1328    public static final String NETWORK_ADDRESS_CACHE_TTL = "networkaddress.cache.ttl";
    1329
    1330    /**
    1331     * The System property name {@value}.
    1332     *
    1333     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">org.jcp.xml.dsig.securevalidation</a>
    1334     * @since 3.15.0
    1335     */
    1336    public static final String ORG_JCP_XML_DSIG_SECURE_VALIDATION = "org.jcp.xml.dsig.securevalidation";
    1337
    1338    /**
    1339     * The System property name {@value}.
    1340     *
    1341     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">org.openjdk.java.util.stream.tripwire</a>
    1342     * @since 3.15.0
    1343     */
    1344    public static final String ORG_OPENJDK_JAVA_UTIL_STREAM_TRIPWIRE = "org.openjdk.java.util.stream.tripwire";
    1345
    1346    /**
    1347     * The System property name {@value}.
    1348     */
    1349    public static final String OS_ARCH = "os.arch";
    1350
    1351    /**
    1352     * The System property name {@value}.
    1353     */
    1354    public static final String OS_NAME = "os.name";
    1355
    1356    /**
    1357     * The System property name {@value}.
    1358     */
    1359    public static final String OS_VERSION = "os.version";
    1360
    1361    /**
    1362     * The System property name {@value}.
    1363     */
    1364    public static final String PATH_SEPARATOR = "path.separator";
    1365
    1366    /**
    1367     * The System property name {@value}.
    1368     *
    1369     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
    1370     * @since 3.15.0
    1371     */
    1372    public static final String SOCKS_PROXY_HOST = "socksProxyHost";
    1373
    1374    /**
    1375     * The System property name {@value}.
    1376     *
    1377     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
    1378     * @since 3.15.0
    1379     */
    1380    public static final String SOCKS_PROXY_PORT = "socksProxyPort";
    1381
    1382    /**
    1383     * The System property name {@value}.
    1384     *
    1385     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
    1386     * @since 3.15.0
    1387     */
    1388    public static final String SOCKS_PROXY_VERSION = "socksProxyVersion";
    1389
    1390    /**
    1391     * The System property name {@value}.
    1392     *
    1393     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
    1394     * @since 3.15.0
    1395     */
    1396    public static final String STDERR_ENCODING = "stderr.encoding";
    1397
    1398    /**
    1399     * The System property name {@value}.
    1400     *
    1401     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
    1402     * @since 3.15.0
    1403     */
    1404    public static final String STDOUT_ENCODING = "stdout.encoding";
    1405
    1406    /**
    1407     * The System property name {@value}.
    1408     *
    1409     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
    1410     * @since 3.15.0
    1411     */
    1412    public static final String SUN_NET_HTTP_SERVER_DRAIN_AMOUNT = "sun.net.httpserver.drainAmount";
    1413
    1414    /**
    1415     * The System property name {@value}.
    1416     *
    1417     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
    1418     * @since 3.15.0
    1419     */
    1420    public static final String SUN_NET_HTTP_SERVER_IDLE_INTERVAL = "sun.net.httpserver.idleInterval";
    1421
    1422    /**
    1423     * The System property name {@value}.
    1424     *
    1425     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
    1426     * @since 3.15.0
    1427     */
    1428    public static final String SUN_NET_HTTP_SERVER_MAX_IDLE_CONNECTIONS = "sun.net.httpserver.maxIdleConnections";
    1429
    1430    /**
    1431     * The System property name {@value}.
    1432     *
    1433     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
    1434     * @since 3.15.0
    1435     */
    1436    public static final String SUN_NET_HTTP_SERVER_MAX_REQ_HEADERS = "sun.net.httpserver.maxReqHeaders";
    1437
    1438    /**
    1439     * The System property name {@value}.
    1440     *
    1441     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
    1442     * @since 3.15.0
    1443     */
    1444    public static final String SUN_NET_HTTP_SERVER_MAX_REQ_TIME = "sun.net.httpserver.maxReqTime";
    1445
    1446    /**
    1447     * The System property name {@value}.
    1448     *
    1449     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
    1450     * @since 3.15.0
    1451     */
    1452    public static final String SUN_NET_HTTP_SERVER_MAX_RSP_TIME = "sun.net.httpserver.maxRspTime";
    1453
    1454    /**
    1455     * The System property name {@value}.
    1456     *
    1457     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
    1458     * @since 3.15.0
    1459     */
    1460    public static final String SUN_NET_HTTP_SERVER_NO_DELAY = "sun.net.httpserver.nodelay";
    1461
    1462    /**
    1463     * The System property name {@value}.
    1464     *
    1465     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
    1466     * @since 3.15.0
    1467     */
    1468    public static final String SUN_SECURITY_KRB5_PRINCIPAL = "sun.security.krb5.principal";
    1469
    1470    /**
    1471     * The System property name {@value}.
    1472     */
    1473    public static final String USER_COUNTRY = "user.country";
    1474
    1475    /**
    1476     * The System property name {@value}.
    1477     */
    1478    public static final String USER_DIR = "user.dir";
    1479
    1480    /**
    1481     * The System property name {@value}.
    1482     *
    1483     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
    1484     * @since 3.15.0
    1485     */
    1486    public static final String USER_EXTENSIONS = "user.extensions";
    1487
    1488    /**
    1489     * The System property name {@value}.
    1490     */
    1491    public static final String USER_HOME = "user.home";
    1492
    1493    /**
    1494     * The System property name {@value}.
    1495     */
    1496    public static final String USER_LANGUAGE = "user.language";
    1497
    1498    /**
    1499     * The System property name {@value}.
    1500     */
    1501    public static final String USER_NAME = "user.name";
    1502
    1503    /**
    1504     * The System property name {@value}.
    1505     */
    1506    public static final String USER_REGION = "user.region";
    1507
    1508    /**
    1509     * The System property name {@value}.
    1510     *
    1511     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
    1512     * @since 3.15.0
    1513     */
    1514    public static final String USER_SCRIPT = "user.script";
    1515
    1516    /**
    1517     * The System property name {@value}.
    1518     */
    1519    public static final String USER_TIMEZONE = "user.timezone";
    1520
    1521    /**
    1522     * The System property name {@value}.
    1523     *
    1524     * @see <a href="https://docs.oracle.com/en/java/javase/22/docs/api/system-properties.html">System Properties</a>
    1525     * @since 3.15.0
    1526     */
    1527    public static final String USER_VARIANT = "user.variant";
    1528
    1529    /**
    1530     * Gets the current value from the system properties map.
    1531     * <p>
    1532     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1533     * </p>
    1534     *
    1535     * @return the current value from the system properties map.
    1536     * @since 3.15.0
    1537     */
    1538    public static String getAppleAwtEnableTemplateImages() {
    1539        return getProperty(APPLE_AWT_ENABLE_TEMPLATE_IMAGES);
    1540    }
    1541
    1542    /**
    1543     * Gets the current value from the system properties map.
    1544     * <p>
    1545     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1546     * </p>
    1547     *
    1548     * @return the current value from the system properties map.
    1549     */
    1550    public static String getAwtToolkit() {
    1551        return getProperty(AWT_TOOLKIT);
    1552    }
    1553
    1554    /**
    1555     * Gets the current value for the property named {@code key} as an {@code boolean}.
    1556     *
    1557     * @param key             The key
    1558     * @param defaultIfAbsent The default value
    1559     * @return an {@code boolean} or defaultIfAbsent
    1560     */
    1561    public static boolean getBoolean(final String key, final BooleanSupplier defaultIfAbsent) {
    1562        final String str = getProperty(key);
    1563        return str == null ? defaultIfAbsent != null && defaultIfAbsent.getAsBoolean() : Boolean.parseBoolean(str);
    1564    }
    1565
    1566    /**
    1567     * Gets the current value from the system properties map.
    1568     * <p>
    1569     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1570     * </p>
    1571     *
    1572     * @return the current value from the system properties map.
    1573     * @since 3.15.0
    1574     */
    1575    public static String getComSunJndiLdapObjectTrustSerialData() {
    1576        return getProperty(COM_SUN_JNDI_LDAP_OBJECT_TRUST_SERIAL_DATA);
    1577    }
    1578
    1579    /**
    1580     * Gets the current value from the system properties map.
    1581     * <p>
    1582     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1583     * </p>
    1584     *
    1585     * @return the current value from the system properties map.
    1586     * @since 3.15.0
    1587     */
    1588    public static String getComSunNetHttpServerHttpServerProvider() {
    1589        return getProperty(COM_SUN_NET_HTTP_SERVER_HTTP_SERVER_PROVIDER);
    1590    }
    1591
    1592    /**
    1593     * Gets the current value from the system properties map.
    1594     * <p>
    1595     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1596     * </p>
    1597     * <p>
    1598     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1599     * </p>
    1600     *
    1601     * @return the current value from the system properties map.
    1602     */
    1603    public static String getFileEncoding() {
    1604        return getProperty(FILE_ENCODING);
    1605    }
    1606
    1607    /**
    1608     * Gets the current value from the system properties map.
    1609     * <p>
    1610     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1611     * </p>
    1612     *
    1613     * @return the current value from the system properties map.
    1614     */
    1615    public static String getFileSeparator() {
    1616        return getProperty(FILE_SEPARATOR);
    1617    }
    1618
    1619    /**
    1620     * Gets the current value from the system properties map.
    1621     * <p>
    1622     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1623     * </p>
    1624     *
    1625     * @return the current value from the system properties map.
    1626     * @since 3.15.0
    1627     */
    1628    public static String getFtpNonProxyHost() {
    1629        return getProperty(FTP_NON_PROXY_HOST);
    1630    }
    1631
    1632    /**
    1633     * Gets the current value from the system properties map.
    1634     * <p>
    1635     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1636     * </p>
    1637     *
    1638     * @return the current value from the system properties map.
    1639     * @since 3.15.0
    1640     */
    1641    public static String getFtpProxyHost() {
    1642        return getProperty(FTP_PROXY_HOST);
    1643    }
    1644
    1645    /**
    1646     * Gets the current value from the system properties map.
    1647     * <p>
    1648     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1649     * </p>
    1650     *
    1651     * @return the current value from the system properties map.
    1652     * @since 3.15.0
    1653     */
    1654    public static String getFtpProxyPort() {
    1655        return getProperty(FTP_PROXY_PORT);
    1656    }
    1657
    1658    /**
    1659     * Gets the current value from the system properties map.
    1660     * <p>
    1661     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1662     * </p>
    1663     *
    1664     * @return the current value from the system properties map.
    1665     * @since 3.15.0
    1666     */
    1667    public static String getHttpAgent() {
    1668        return getProperty(HTTP_AGENT);
    1669    }
    1670
    1671    /**
    1672     * Gets the current value from the system properties map.
    1673     * <p>
    1674     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1675     * </p>
    1676     *
    1677     * @return the current value from the system properties map.
    1678     * @since 3.15.0
    1679     */
    1680    public static String getHttpAuthDigestCnonceRepeat() {
    1681        return getProperty(HTTP_AUTH_DIGEST_CNONCE_REPEAT);
    1682    }
    1683
    1684    /**
    1685     * Gets the current value from the system properties map.
    1686     * <p>
    1687     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1688     * </p>
    1689     *
    1690     * @return the current value from the system properties map.
    1691     * @since 3.15.0
    1692     */
    1693    public static String getHttpAuthDigestReenabledAlgorithms() {
    1694        return getProperty(HTTP_AUTH_DIGEST_RE_ENABLED_ALGORITHMS);
    1695    }
    1696
    1697    /**
    1698     * Gets the current value from the system properties map.
    1699     * <p>
    1700     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1701     * </p>
    1702     *
    1703     * @return the current value from the system properties map.
    1704     * @since 3.15.0
    1705     */
    1706    public static String getHttpAuthDigestValidateProxy() {
    1707        return getProperty(HTTP_AUTH_DIGEST_VALIDATE_PROXY);
    1708    }
    1709
    1710    /**
    1711     * Gets the current value from the system properties map.
    1712     * <p>
    1713     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1714     * </p>
    1715     *
    1716     * @return the current value from the system properties map.
    1717     * @since 3.15.0
    1718     */
    1719    public static String getHttpAuthDigestValidateServer() {
    1720        return getProperty(HTTP_AUTH_DIGEST_VALIDATE_SERVER);
    1721    }
    1722
    1723    /**
    1724     * Gets the current value from the system properties map.
    1725     * <p>
    1726     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1727     * </p>
    1728     *
    1729     * @return the current value from the system properties map.
    1730     * @since 3.15.0
    1731     */
    1732    public static String getHttpAuthNtlmDomain() {
    1733        return getProperty(HTTP_AUTH_NTLM_DOMAIN);
    1734    }
    1735
    1736    /**
    1737     * Gets the current value from the system properties map.
    1738     * <p>
    1739     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1740     * </p>
    1741     *
    1742     * @return the current value from the system properties map.
    1743     * @since 3.15.0
    1744     */
    1745    public static String getHttpKeepAlive() {
    1746        return getProperty(HTTP_KEEP_ALIVE);
    1747    }
    1748
    1749    /**
    1750     * Gets the current value from the system properties map.
    1751     * <p>
    1752     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1753     * </p>
    1754     *
    1755     * @return the current value from the system properties map.
    1756     * @since 3.15.0
    1757     */
    1758    public static String getHttpKeepAliveTimeProxy() {
    1759        return getProperty(HTTP_KEEP_ALIVE_TIME_PROXY);
    1760    }
    1761
    1762    /**
    1763     * Gets the current value from the system properties map.
    1764     * <p>
    1765     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1766     * </p>
    1767     *
    1768     * @return the current value from the system properties map.
    1769     * @since 3.15.0
    1770     */
    1771    public static String getHttpKeepAliveTimeServer() {
    1772        return getProperty(HTTP_KEEP_ALIVE_TIME_SERVER);
    1773    }
    1774
    1775    /**
    1776     * Gets the current value from the system properties map.
    1777     * <p>
    1778     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1779     * </p>
    1780     *
    1781     * @return the current value from the system properties map.
    1782     * @since 3.15.0
    1783     */
    1784    public static String getHttpMaxConnections() {
    1785        return getProperty(HTTP_MAX_CONNECTIONS);
    1786    }
    1787
    1788    /**
    1789     * Gets the current value from the system properties map.
    1790     * <p>
    1791     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1792     * </p>
    1793     *
    1794     * @return the current value from the system properties map.
    1795     * @since 3.15.0
    1796     */
    1797    public static String getHttpMaxRedirects() {
    1798        return getProperty(HTTP_MAX_REDIRECTS);
    1799    }
    1800
    1801    /**
    1802     * Gets the current value from the system properties map.
    1803     * <p>
    1804     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1805     * </p>
    1806     *
    1807     * @return the current value from the system properties map.
    1808     * @since 3.15.0
    1809     */
    1810    public static String getHttpNonProxyHosts() {
    1811        return getProperty(HTTP_NON_PROXY_HOSTS);
    1812    }
    1813
    1814    /**
    1815     * Gets the current value from the system properties map.
    1816     * <p>
    1817     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1818     * </p>
    1819     *
    1820     * @return the current value from the system properties map.
    1821     * @since 3.15.0
    1822     */
    1823    public static String getHttpProxyHost() {
    1824        return getProperty(HTTP_PROXY_HOST);
    1825    }
    1826
    1827    /**
    1828     * Gets the current value from the system properties map.
    1829     * <p>
    1830     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1831     * </p>
    1832     *
    1833     * @return the current value from the system properties map.
    1834     * @since 3.15.0
    1835     */
    1836    public static String getHttpProxyPort() {
    1837        return getProperty(HTTP_PROXY_PORT);
    1838    }
    1839
    1840    /**
    1841     * Gets the current value from the system properties map.
    1842     * <p>
    1843     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1844     * </p>
    1845     *
    1846     * @return the current value from the system properties map.
    1847     * @since 3.15.0
    1848     */
    1849    public static String getHttpsProxyHost() {
    1850        return getProperty(HTTPS_PROXY_HOST);
    1851    }
    1852
    1853    /**
    1854     * Gets the current value from the system properties map.
    1855     * <p>
    1856     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1857     * </p>
    1858     *
    1859     * @return the current value from the system properties map.
    1860     * @since 3.15.0
    1861     */
    1862    public static String getHttpsProxyPort() {
    1863        return getProperty(HTTPS_PROXY_PORT);
    1864    }
    1865
    1866    /**
    1867     * Gets the current value for the property named {@code key} as an {@code int}.
    1868     *
    1869     * @param key             The key
    1870     * @param defaultIfAbsent The default value
    1871     * @return an {@code int} or defaultIfAbsent
    1872     */
    1873    public static int getInt(final String key, final IntSupplier defaultIfAbsent) {
    1874        final String str = getProperty(key);
    1875        return str == null ? defaultIfAbsent != null ? defaultIfAbsent.getAsInt() : 0 : Integer.parseInt(str);
    1876    }
    1877
    1878    /**
    1879     * Gets the current value from the system properties map.
    1880     * <p>
    1881     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1882     * </p>
    1883     *
    1884     * @return the current value from the system properties map.
    1885     */
    1886    public static String getJavaAwtFonts() {
    1887        return getProperty(JAVA_AWT_FONTS);
    1888    }
    1889
    1890    /**
    1891     * Gets the current value from the system properties map.
    1892     * <p>
    1893     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1894     * </p>
    1895     *
    1896     * @return the current value from the system properties map.
    1897     */
    1898    public static String getJavaAwtGraphicsenv() {
    1899        return getProperty(JAVA_AWT_GRAPHICSENV);
    1900    }
    1901
    1902    /**
    1903     * Gets the current value from the system properties map.
    1904     * <p>
    1905     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1906     * </p>
    1907     *
    1908     * @return the current value from the system properties map.
    1909     */
    1910    public static String getJavaAwtHeadless() {
    1911        return getProperty(JAVA_AWT_HEADLESS);
    1912    }
    1913
    1914    /**
    1915     * Gets the current value from the system properties map.
    1916     * <p>
    1917     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1918     * </p>
    1919     *
    1920     * @return the current value from the system properties map.
    1921     */
    1922    public static String getJavaAwtPrinterjob() {
    1923        return getProperty(JAVA_AWT_PRINTERJOB);
    1924    }
    1925
    1926    /**
    1927     * Gets the current value from the system properties map.
    1928     * <p>
    1929     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1930     * </p>
    1931     *
    1932     * @return the current value from the system properties map.
    1933     */
    1934    public static String getJavaClassPath() {
    1935        return getProperty(JAVA_CLASS_PATH);
    1936    }
    1937
    1938    /**
    1939     * Gets the current value from the system properties map.
    1940     * <p>
    1941     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1942     * </p>
    1943     *
    1944     * @return the current value from the system properties map.
    1945     */
    1946    public static String getJavaClassVersion() {
    1947        return getProperty(JAVA_CLASS_VERSION);
    1948    }
    1949
    1950    /**
    1951     * Gets the current value from the system properties map.
    1952     * <p>
    1953     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1954     * </p>
    1955     *
    1956     * @return the current value from the system properties map.
    1957     */
    1958    public static String getJavaCompiler() {
    1959        return getProperty(JAVA_COMPILER);
    1960    }
    1961
    1962    /**
    1963     * Gets the current value from the system properties map.
    1964     * <p>
    1965     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1966     * </p>
    1967     *
    1968     * @return the current value from the system properties map.
    1969     * @since 3.15.0
    1970     */
    1971    public static String getJavaContentHandlerPkgs() {
    1972        return getProperty(JAVA_CONTENT_HANDLER_PKGS);
    1973    }
    1974
    1975    /**
    1976     * Gets the current value from the system properties map.
    1977     * <p>
    1978     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1979     * </p>
    1980     *
    1981     * @return the current value from the system properties map.
    1982     */
    1983    public static String getJavaEndorsedDirs() {
    1984        return getProperty(JAVA_ENDORSED_DIRS);
    1985    }
    1986
    1987    /**
    1988     * Gets the current value from the system properties map.
    1989     * <p>
    1990     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    1991     * </p>
    1992     *
    1993     * @return the current value from the system properties map.
    1994     */
    1995    public static String getJavaExtDirs() {
    1996        return getProperty(JAVA_EXT_DIRS);
    1997    }
    1998
    1999    /**
    2000     * Gets the current value from the system properties map.
    2001     * <p>
    2002     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2003     * </p>
    2004     *
    2005     * @return the current value from the system properties map.
    2006     */
    2007    public static String getJavaHome() {
    2008        return getProperty(JAVA_HOME);
    2009    }
    2010
    2011    /**
    2012     * Gets the current value from the system properties map.
    2013     * <p>
    2014     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2015     * </p>
    2016     *
    2017     * @return the current value from the system properties map.
    2018     */
    2019    public static String getJavaIoTmpdir() {
    2020        return getProperty(JAVA_IO_TMPDIR);
    2021    }
    2022
    2023    /**
    2024     * Gets the current value from the system properties map.
    2025     * <p>
    2026     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2027     * </p>
    2028     *
    2029     * @return the current value from the system properties map.
    2030     */
    2031    public static String getJavaLibraryPath() {
    2032        return getProperty(JAVA_LIBRARY_PATH);
    2033    }
    2034
    2035    /**
    2036     * Gets the current value from the system properties map.
    2037     * <p>
    2038     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2039     * </p>
    2040     * <p>
    2041     * Java 9 and above.
    2042     * </p>
    2043     *
    2044     * @return the current value from the system properties map.
    2045     */
    2046    public static String getJavaLocaleProviders() {
    2047        return getProperty(JAVA_LOCALE_PROVIDERS);
    2048    }
    2049
    2050    /**
    2051     * Gets the current value from the system properties map.
    2052     * <p>
    2053     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2054     * </p>
    2055     *
    2056     * @return the current value from the system properties map.
    2057     * @since 3.15.0
    2058     */
    2059    public static String getJavaLocaleUseOldIsoCodes() {
    2060        return getProperty(JAVA_LOCALE_USE_OLD_ISO_CODES);
    2061    }
    2062
    2063    /**
    2064     * Gets the current value from the system properties map.
    2065     * <p>
    2066     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2067     * </p>
    2068     *
    2069     * @return the current value from the system properties map.
    2070     * @since 3.15.0
    2071     */
    2072    public static String getJavaNetPreferIpv4Stack() {
    2073        return getProperty(JAVA_NET_PREFER_IPV4_STACK);
    2074    }
    2075
    2076    /**
    2077     * Gets the current value from the system properties map.
    2078     * <p>
    2079     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2080     * </p>
    2081     *
    2082     * @return the current value from the system properties map.
    2083     * @since 3.15.0
    2084     */
    2085    public static String getJavaNetPreferIpv6Addresses() {
    2086        return getProperty(JAVA_NET_PREFER_IPV6_ADDRESSES);
    2087    }
    2088
    2089    /**
    2090     * Gets the current value from the system properties map.
    2091     * <p>
    2092     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2093     * </p>
    2094     *
    2095     * @return the current value from the system properties map.
    2096     * @since 3.15.0
    2097     */
    2098    public static String getJavaNetSocksPassword() {
    2099        return getProperty(JAVA_NET_SOCKS_PASSWORD);
    2100    }
    2101
    2102    /**
    2103     * Gets the current value from the system properties map.
    2104     * <p>
    2105     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2106     * </p>
    2107     *
    2108     * @return the current value from the system properties map.
    2109     * @since 3.15.0
    2110     */
    2111    public static String getJavaNetSocksUserName() {
    2112        return getProperty(JAVA_NET_SOCKS_USER_NAME);
    2113    }
    2114
    2115    /**
    2116     * Gets the current value from the system properties map.
    2117     * <p>
    2118     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2119     * </p>
    2120     *
    2121     * @return the current value from the system properties map.
    2122     * @since 3.15.0
    2123     */
    2124    public static String getJavaNetUseSystemProxies() {
    2125        return getProperty(JAVA_NET_USE_SYSTEM_PROXIES);
    2126    }
    2127
    2128    /**
    2129     * Gets the current value from the system properties map.
    2130     * <p>
    2131     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2132     * </p>
    2133     *
    2134     * @return the current value from the system properties map.
    2135     * @since 3.15.0
    2136     */
    2137    public static String getJavaNioChannelsDefaultThreadPoolInitialSize() {
    2138        return getProperty(JAVA_NIO_CHANNELS_DEFAULT_THREAD_POOL_INITIAL_SIZE);
    2139    }
    2140
    2141    /**
    2142     * Gets the current value from the system properties map.
    2143     * <p>
    2144     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2145     * </p>
    2146     *
    2147     * @return the current value from the system properties map.
    2148     * @since 3.15.0
    2149     */
    2150    public static String getJavaNioChannelsDefaultThreadPoolThreadFactory() {
    2151        return getProperty(JAVA_NIO_CHANNELS_DEFAULT_THREAD_POOL_THREAD_FACTORY);
    2152    }
    2153
    2154    /**
    2155     * Gets the current value from the system properties map.
    2156     * <p>
    2157     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2158     * </p>
    2159     *
    2160     * @return the current value from the system properties map.
    2161     * @since 3.15.0
    2162     */
    2163    public static String getJavaNioChannelsSpiAsynchronousChannelProvider() {
    2164        return getProperty(JAVA_NIO_CHANNELS_SPI_ASYNCHRONOUS_CHANNEL_PROVIDER);
    2165    }
    2166
    2167    /**
    2168     * Gets the current value from the system properties map.
    2169     * <p>
    2170     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2171     * </p>
    2172     *
    2173     * @return the current value from the system properties map.
    2174     * @since 3.15.0
    2175     */
    2176    public static String getJavaNioChannelsSpiSelectorProvider() {
    2177        return getProperty(JAVA_NIO_CHANNELS_SPI_SELECTOR_PROVIDER);
    2178    }
    2179
    2180    /**
    2181     * Gets the current value from the system properties map.
    2182     * <p>
    2183     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2184     * </p>
    2185     *
    2186     * @return the current value from the system properties map.
    2187     * @since 3.15.0
    2188     */
    2189    public static String getJavaNioFileSpiDefaultFileSystemProvider() {
    2190        return getProperty(JAVA_NIO_FILE_SPI_DEFAULT_FILE_SYSTEM_PROVIDER);
    2191    }
    2192
    2193    /**
    2194     * Gets the current value from the system properties map.
    2195     * <p>
    2196     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2197     * </p>
    2198     *
    2199     * @return the current value from the system properties map.
    2200     * @since 3.15.0
    2201     */
    2202    public static String getJavaPropertiesDate() {
    2203        return getProperty(JAVA_PROPERTIES_DATE);
    2204    }
    2205
    2206    /**
    2207     * Gets the current value from the system properties map.
    2208     * <p>
    2209     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2210     * </p>
    2211     *
    2212     * @return the current value from the system properties map.
    2213     * @since 3.15.0
    2214     */
    2215    public static String getJavaProtocolHandlerPkgs() {
    2216        return getProperty(JAVA_PROTOCOL_HANDLER_PKGS);
    2217    }
    2218
    2219    /**
    2220     * Gets the current value from the system properties map.
    2221     * <p>
    2222     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2223     * </p>
    2224     *
    2225     * @return the current value from the system properties map.
    2226     * @since 3.15.0
    2227     */
    2228    public static String getJavaRmiServerCodebase() {
    2229        return getProperty(JAVA_RMI_SERVER_CODEBASE);
    2230    }
    2231
    2232    /**
    2233     * Gets the current value from the system properties map.
    2234     * <p>
    2235     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2236     * </p>
    2237     *
    2238     * @return the current value from the system properties map.
    2239     * @since 3.15.0
    2240     */
    2241    public static String getJavaRmiServerHostName() {
    2242        return getProperty(JAVA_RMI_SERVER_HOST_NAME);
    2243    }
    2244
    2245    /**
    2246     * Gets the current value from the system properties map.
    2247     * <p>
    2248     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2249     * </p>
    2250     *
    2251     * @return the current value from the system properties map.
    2252     * @since 3.15.0
    2253     */
    2254    public static String getJavaRmiServerRandomIds() {
    2255        return getProperty(JAVA_RMI_SERVER_RANDOM_IDS);
    2256    }
    2257
    2258    /**
    2259     * Gets the current value from the system properties map.
    2260     * <p>
    2261     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2262     * </p>
    2263     *
    2264     * @return the current value from the system properties map.
    2265     * @since 3.15.0
    2266     */
    2267    public static String getJavaRmiServerRmiClassLoaderSpi() {
    2268        return getProperty(JAVA_RMI_SERVER_RMI_CLASS_LOADER_SPI);
    2269    }
    2270
    2271    /**
    2272     * Gets the current value from the system properties map.
    2273     * <p>
    2274     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2275     * </p>
    2276     *
    2277     * @return the current value from the system properties map.
    2278     */
    2279    public static String getJavaRuntimeName() {
    2280        return getProperty(JAVA_RUNTIME_NAME);
    2281    }
    2282
    2283    /**
    2284     * Gets the current value from the system properties map.
    2285     * <p>
    2286     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2287     * </p>
    2288     *
    2289     * @return the current value from the system properties map.
    2290     */
    2291    public static String getJavaRuntimeVersion() {
    2292        return getProperty(JAVA_RUNTIME_VERSION);
    2293    }
    2294
    2295    /**
    2296     * Gets the current value from the system properties map.
    2297     * <p>
    2298     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2299     * </p>
    2300     *
    2301     * @return the current value from the system properties map.
    2302     * @since 3.15.0
    2303     */
    2304    public static String getJavaSecurityAuthLoginConfig() {
    2305        return getProperty(JAVA_SECURITY_AUTH_LOGIN_CONFIG);
    2306    }
    2307
    2308    /**
    2309     * Gets the current value from the system properties map.
    2310     * <p>
    2311     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2312     * </p>
    2313     *
    2314     * @return the current value from the system properties map.
    2315     * @since 3.15.0
    2316     */
    2317    public static String getJavaSecurityManager() {
    2318        return getProperty(JAVA_SECURITY_MANAGER);
    2319    }
    2320
    2321    /**
    2322     * Gets the current value from the system properties map.
    2323     * <p>
    2324     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2325     * </p>
    2326     *
    2327     * @return the current value from the system properties map.
    2328     * @since 3.15.0
    2329     */
    2330    public static String getJavaSpecificationMaintenanceVersion() {
    2331        return getProperty(JAVA_SPECIFICATION_MAINTENANCE_VERSION);
    2332    }
    2333
    2334    /**
    2335     * Gets the current value from the system properties map.
    2336     * <p>
    2337     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2338     * </p>
    2339     *
    2340     * @return the current value from the system properties map.
    2341     */
    2342    public static String getJavaSpecificationName() {
    2343        return getProperty(JAVA_SPECIFICATION_NAME);
    2344    }
    2345
    2346    /**
    2347     * Gets the current value from the system properties map.
    2348     * <p>
    2349     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2350     * </p>
    2351     *
    2352     * @return the current value from the system properties map.
    2353     */
    2354    public static String getJavaSpecificationVendor() {
    2355        return getProperty(JAVA_SPECIFICATION_VENDOR);
    2356    }
    2357
    2358    /**
    2359     * Gets the current value from the system properties map.
    2360     * <p>
    2361     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2362     * </p>
    2363     *
    2364     * @return the current value from the system properties map.
    2365     */
    2366    public static String getJavaSpecificationVersion() {
    2367        return getProperty(JAVA_SPECIFICATION_VERSION);
    2368    }
    2369
    2370    /**
    2371     * Gets the current value from the system properties map for {@value #JAVA_SPECIFICATION_VERSION}.
    2372     * <p>
    2373     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2374     * </p>
    2375     *
    2376     * @param defaultValue get this Supplier when the property is empty or throws SecurityException.
    2377     * @return the current value from the system properties map.
    2378     * @since 3.15.0
    2379     */
    2380    public static String getJavaSpecificationVersion(final String defaultValue) {
    2381        return getProperty(JAVA_SPECIFICATION_VERSION, defaultValue);
    2382    }
    2383
    2384    /**
    2385     * Gets the current value from the system properties map for {@value #JAVA_SYSTEM_CLASS_LOADER}.
    2386     * <p>
    2387     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2388     * </p>
    2389     *
    2390     * @return the current value from the system properties map.
    2391     * @since 3.15.0
    2392     */
    2393    public static String getJavaSystemClassLoader() {
    2394        return getProperty(JAVA_SYSTEM_CLASS_LOADER);
    2395    }
    2396
    2397    /**
    2398     * Gets the current value from the system properties map for {@value #JAVA_TIME_ZONE_DEFAULT_ZONE_RULES_PROVIDER}.
    2399     * <p>
    2400     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2401     * </p>
    2402     *
    2403     * @return the current value from the system properties map.
    2404     * @since 3.15.0
    2405     */
    2406    public static String getJavaTimeZoneDefaultZoneRulesProvider() {
    2407        return getProperty(JAVA_TIME_ZONE_DEFAULT_ZONE_RULES_PROVIDER);
    2408    }
    2409
    2410    /**
    2411     * Gets the current value from the system properties map for {@value #JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_EXCEPTION_HANDLER}.
    2412     * <p>
    2413     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2414     * </p>
    2415     *
    2416     * @return the current value from the system properties map.
    2417     * @since 3.15.0
    2418     */
    2419    public static String getJavaUtilConcurrentForkJoinPoolCommonExceptionHandler() {
    2420        return getProperty(JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_EXCEPTION_HANDLER);
    2421    }
    2422
    2423    /**
    2424     * Gets the current value from the system properties map for {@value #JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_MAXIMUM_SPARES}.
    2425     * <p>
    2426     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2427     * </p>
    2428     *
    2429     * @return the current value from the system properties map.
    2430     * @since 3.15.0
    2431     */
    2432    public static String getJavaUtilConcurrentForkJoinPoolCommonMaximumSpares() {
    2433        return getProperty(JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_MAXIMUM_SPARES);
    2434    }
    2435
    2436    /**
    2437     * Gets the current value from the system properties map for {@value #JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_PARALLELISM}.
    2438     * <p>
    2439     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2440     * </p>
    2441     *
    2442     * @return the current value from the system properties map.
    2443     * @since 3.15.0
    2444     */
    2445    public static String getJavaUtilConcurrentForkJoinPoolCommonParallelism() {
    2446        return getProperty(JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_PARALLELISM);
    2447    }
    2448
    2449    /**
    2450     * Gets the current value from the system properties map for {@value #JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_THREAD_FACTORY}.
    2451     * <p>
    2452     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2453     * </p>
    2454     *
    2455     * @return the current value from the system properties map.
    2456     * @since 3.15.0
    2457     */
    2458    public static String getJavaUtilConcurrentForkJoinPoolCommonThreadFactory() {
    2459        return getProperty(JAVA_UTIL_CONCURRENT_FORK_JOIN_POOL_COMMON_THREAD_FACTORY);
    2460    }
    2461
    2462    /**
    2463     * Gets the current value from the system properties map for {@value #JAVA_UTIL_CURRENCY_DATA}.
    2464     * <p>
    2465     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2466     * </p>
    2467     *
    2468     * @return the current value from the system properties map.
    2469     * @since 3.15.0
    2470     */
    2471    public static String getJavaUtilCurrencyData() {
    2472        return getProperty(JAVA_UTIL_CURRENCY_DATA);
    2473    }
    2474
    2475    /**
    2476     * Gets the current value from the system properties map for {@value #JAVA_UTIL_LOGGING_CONFIG_CLASS}.
    2477     * <p>
    2478     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2479     * </p>
    2480     *
    2481     * @return the current value from the system properties map.
    2482     * @since 3.15.0
    2483     */
    2484    public static String getJavaUtilLoggingConfigClass() {
    2485        return getProperty(JAVA_UTIL_LOGGING_CONFIG_CLASS);
    2486    }
    2487
    2488    /**
    2489     * Gets the current value from the system properties map for {@value #JAVA_UTIL_LOGGING_CONFIG_FILE}.
    2490     * <p>
    2491     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2492     * </p>
    2493     *
    2494     * @return the current value from the system properties map.
    2495     * @since 3.15.0
    2496     */
    2497    public static String getJavaUtilLoggingConfigFile() {
    2498        return getProperty(JAVA_UTIL_LOGGING_CONFIG_FILE);
    2499    }
    2500
    2501    /**
    2502     * Gets the current value from the system properties map for {@value #JAVA_UTIL_LOGGING_SIMPLE_FORMATTER_FORMAT}.
    2503     * <p>
    2504     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2505     * </p>
    2506     *
    2507     * @return the current value from the system properties map.
    2508     * @since 3.15.0
    2509     */
    2510    public static String getJavaUtilLoggingSimpleFormatterFormat() {
    2511        return getProperty(JAVA_UTIL_LOGGING_SIMPLE_FORMATTER_FORMAT);
    2512    }
    2513
    2514    /**
    2515     * Gets the current value from the system properties map for {@value #JAVA_UTIL_PREFS_PREFERENCES_FACTORY}.
    2516     * <p>
    2517     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2518     * </p>
    2519     *
    2520     * @return the current value from the system properties map.
    2521     */
    2522    public static String getJavaUtilPrefsPreferencesFactory() {
    2523        return getProperty(JAVA_UTIL_PREFS_PREFERENCES_FACTORY);
    2524    }
    2525
    2526    /**
    2527     * Gets the current value from the system properties map for {@value #JAVA_UTIL_PROPERTY_RESOURCE_BUNDLE_ENCODING}.
    2528     * <p>
    2529     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2530     * </p>
    2531     *
    2532     * @return the current value from the system properties map.
    2533     * @since 3.15.0
    2534     */
    2535    public static String getJavaUtilPropertyResourceBundleEncoding() {
    2536        return getProperty(JAVA_UTIL_PROPERTY_RESOURCE_BUNDLE_ENCODING);
    2537    }
    2538
    2539    /**
    2540     * Gets the current value from the system properties map for {@value #JAVA_VENDOR}.
    2541     * <p>
    2542     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2543     * </p>
    2544     *
    2545     * @return the current value from the system properties map.
    2546     */
    2547    public static String getJavaVendor() {
    2548        return getProperty(JAVA_VENDOR);
    2549    }
    2550
    2551    /**
    2552     * Gets the current value from the system properties map for {@value #JAVA_VENDOR_URL}.
    2553     * <p>
    2554     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2555     * </p>
    2556     *
    2557     * @return the current value from the system properties map.
    2558     */
    2559    public static String getJavaVendorUrl() {
    2560        return getProperty(JAVA_VENDOR_URL);
    2561    }
    2562
    2563    /**
    2564     * Gets the current value from the system properties map for {@value #JAVA_VENDOR_VERSION}.
    2565     * <p>
    2566     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2567     * </p>
    2568     *
    2569     * @return the current value from the system properties map.
    2570     * @since 3.15.0
    2571     */
    2572    public static String getJavaVendorVersion() {
    2573        return getProperty(JAVA_VENDOR_VERSION);
    2574    }
    2575
    2576    /**
    2577     * Gets the current value from the system properties map for {@value #JAVA_VERSION}.
    2578     * <p>
    2579     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2580     * </p>
    2581     *
    2582     * @return the current value from the system properties map.
    2583     */
    2584    public static String getJavaVersion() {
    2585        return getProperty(JAVA_VERSION);
    2586    }
    2587
    2588    /**
    2589     * Gets the current value from the system properties map for {@value #JAVA_VERSION_DATE}.
    2590     * <p>
    2591     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2592     * </p>
    2593     *
    2594     * @return the current value from the system properties map.
    2595     * @since 3.15.0
    2596     */
    2597    public static String getJavaVersionDate() {
    2598        return getProperty(JAVA_VERSION_DATE);
    2599    }
    2600
    2601    /**
    2602     * Gets the current value from the system properties map for {@value #JAVA_VM_INFO}.
    2603     * <p>
    2604     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2605     * </p>
    2606     *
    2607     * @return the current value from the system properties map.
    2608     */
    2609    public static String getJavaVmInfo() {
    2610        return getProperty(JAVA_VM_INFO);
    2611    }
    2612
    2613    /**
    2614     * Gets the current value from the system properties map for {@value #JAVA_VM_NAME}.
    2615     * <p>
    2616     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2617     * </p>
    2618     *
    2619     * @return the current value from the system properties map.
    2620     */
    2621    public static String getJavaVmName() {
    2622        return getProperty(JAVA_VM_NAME);
    2623    }
    2624
    2625    /**
    2626     * Gets the current value from the system properties map for {@value #JAVA_VM_SPECIFICATION_NAME}.
    2627     * <p>
    2628     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2629     * </p>
    2630     *
    2631     * @return the current value from the system properties map.
    2632     */
    2633    public static String getJavaVmSpecificationName() {
    2634        return getProperty(JAVA_VM_SPECIFICATION_NAME);
    2635    }
    2636
    2637    /**
    2638     * Gets the current value from the system properties map for {@value #JAVA_VM_SPECIFICATION_VENDOR}.
    2639     * <p>
    2640     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2641     * </p>
    2642     *
    2643     * @return the current value from the system properties map.
    2644     */
    2645    public static String getJavaVmSpecificationVendor() {
    2646        return getProperty(JAVA_VM_SPECIFICATION_VENDOR);
    2647    }
    2648
    2649    /**
    2650     * Gets the current value from the system properties map for {@value #JAVA_VM_SPECIFICATION_VERSION}.
    2651     * <p>
    2652     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2653     * </p>
    2654     *
    2655     * @return the current value from the system properties map.
    2656     */
    2657    public static String getJavaVmSpecificationVersion() {
    2658        return getProperty(JAVA_VM_SPECIFICATION_VERSION);
    2659    }
    2660
    2661    /**
    2662     * Gets the current value from the system properties map for {@value #JAVA_VM_VENDOR}.
    2663     * <p>
    2664     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2665     * </p>
    2666     *
    2667     * @return the current value from the system properties map.
    2668     */
    2669    public static String getJavaVmVendor() {
    2670        return getProperty(JAVA_VM_VENDOR);
    2671    }
    2672
    2673    /**
    2674     * Gets the current value from the system properties map for {@value #JAVA_VM_VERSION}.
    2675     * <p>
    2676     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2677     * </p>
    2678     *
    2679     * @return the current value from the system properties map.
    2680     */
    2681    public static String getJavaVmVersion() {
    2682        return getProperty(JAVA_VM_VERSION);
    2683    }
    2684
    2685    /**
    2686     * Gets the current value from the system properties map for {@value #JAVAX_ACCESSIBILITY_ASSISTIVE_TECHNOLOGIES}.
    2687     * <p>
    2688     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2689     * </p>
    2690     *
    2691     * @return the current value from the system properties map.
    2692     * @since 3.15.0
    2693     */
    2694    public static String getJavaxAccessibilityAssistiveTechnologies() {
    2695        return getProperty(JAVAX_ACCESSIBILITY_ASSISTIVE_TECHNOLOGIES);
    2696    }
    2697
    2698    /**
    2699     * Gets the current value from the system properties map for {@value #JAVA_XML_CONFIG_FILE}.
    2700     * <p>
    2701     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2702     * </p>
    2703     *
    2704     * @return the current value from the system properties map.
    2705     * @since 3.15.0
    2706     */
    2707    public static String getJavaXmlConfigFile() {
    2708        return getProperty(JAVA_XML_CONFIG_FILE);
    2709    }
    2710
    2711    /**
    2712     * Gets the current value from the system properties map for {@value #JAVAX_NET_SSL_SESSION_CACHE_SIZE}.
    2713     * <p>
    2714     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2715     * </p>
    2716     *
    2717     * @return the current value from the system properties map.
    2718     * @since 3.15.0
    2719     */
    2720    public static String getJavaxNetSslSessionCacheSize() {
    2721        return getProperty(JAVAX_NET_SSL_SESSION_CACHE_SIZE);
    2722    }
    2723
    2724    /**
    2725     * Gets the current value from the system properties map for {@value #JAVAX_RMI_SSL_CLIENT_ENABLED_CIPHER_SUITES}.
    2726     * <p>
    2727     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2728     * </p>
    2729     *
    2730     * @return the current value from the system properties map.
    2731     * @since 3.15.0
    2732     */
    2733    public static String getJavaxRmiSslClientEnabledCipherSuites() {
    2734        return getProperty(JAVAX_RMI_SSL_CLIENT_ENABLED_CIPHER_SUITES);
    2735    }
    2736
    2737    /**
    2738     * Gets the current value from the system properties map for {@value #JAVAX_RMI_SSL_CLIENT_ENABLED_PROTOCOLS}.
    2739     * <p>
    2740     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2741     * </p>
    2742     *
    2743     * @return the current value from the system properties map.
    2744     * @since 3.15.0
    2745     */
    2746    public static String getJavaxRmiSslClientEnabledProtocols() {
    2747        return getProperty(JAVAX_RMI_SSL_CLIENT_ENABLED_PROTOCOLS);
    2748    }
    2749
    2750    /**
    2751     * Gets the current value from the system properties map for {@value #JAVAX_SECURITY_AUTH_USE_SUBJECT_CREDS_ONLY}.
    2752     * <p>
    2753     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2754     * </p>
    2755     *
    2756     * @return the current value from the system properties map.
    2757     * @since 3.15.0
    2758     */
    2759    public static String getJavaxSecurityAuthUseSubjectCredsOnly() {
    2760        return getProperty(JAVAX_SECURITY_AUTH_USE_SUBJECT_CREDS_ONLY);
    2761    }
    2762
    2763    /**
    2764     * Gets the current value from the system properties map for {@value #JAVAX_SMART_CARD_IO_TERMINAL_FACTORY_DEFAULT_TYPE}.
    2765     * <p>
    2766     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2767     * </p>
    2768     *
    2769     * @return the current value from the system properties map.
    2770     * @since 3.15.0
    2771     */
    2772    public static String getJavaxSmartCardIoTerminalFactoryDefaultType() {
    2773        return getProperty(JAVAX_SMART_CARD_IO_TERMINAL_FACTORY_DEFAULT_TYPE);
    2774    }
    2775
    2776    /**
    2777     * Gets the current value from the system properties map for {@value #JDBC_DRIVERS}.
    2778     * <p>
    2779     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2780     * </p>
    2781     *
    2782     * @return the current value from the system properties map.
    2783     * @since 3.15.0
    2784     */
    2785    public static String getJdbcDrivers() {
    2786        return getProperty(JDBC_DRIVERS);
    2787    }
    2788
    2789    /**
    2790     * Gets the current value from the system properties map for {@value #JDK_HTTP_AUTH_PROXYING_DISABLED_SCHEMES}.
    2791     * <p>
    2792     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2793     * </p>
    2794     *
    2795     * @return the current value from the system properties map.
    2796     * @since 3.15.0
    2797     */
    2798    public static String getJdkHttpAuthProxyingDisabledSchemes() {
    2799        return getProperty(JDK_HTTP_AUTH_PROXYING_DISABLED_SCHEMES);
    2800    }
    2801
    2802    /**
    2803     * Gets the current value from the system properties map for {@value #JDK_HTTP_AUTH_TUNNELING_DISABLED_SCHEMES}.
    2804     * <p>
    2805     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2806     * </p>
    2807     *
    2808     * @return the current value from the system properties map.
    2809     * @since 3.15.0
    2810     */
    2811    public static String getJdkHttpAuthTunnelingDisabledSchemes() {
    2812        return getProperty(JDK_HTTP_AUTH_TUNNELING_DISABLED_SCHEMES);
    2813    }
    2814
    2815    /**
    2816     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_ALLOW_RESTRICTED_HEADERS}.
    2817     * <p>
    2818     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2819     * </p>
    2820     *
    2821     * @return the current value from the system properties map.
    2822     * @since 3.15.0
    2823     */
    2824    public static String getJdkHttpClientAllowRestrictedHeaders() {
    2825        return getProperty(JDK_HTTP_CLIENT_ALLOW_RESTRICTED_HEADERS);
    2826    }
    2827
    2828    /**
    2829     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_AUTH_RETRY_LIMIT}.
    2830     * <p>
    2831     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2832     * </p>
    2833     *
    2834     * @return the current value from the system properties map.
    2835     * @since 3.15.0
    2836     */
    2837    public static String getJdkHttpClientAuthRetryLimit() {
    2838        return getProperty(JDK_HTTP_CLIENT_AUTH_RETRY_LIMIT);
    2839    }
    2840
    2841    /**
    2842     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_BUF_SIZE}.
    2843     * <p>
    2844     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2845     * </p>
    2846     *
    2847     * @return the current value from the system properties map.
    2848     * @since 3.15.0
    2849     */
    2850    public static String getJdkHttpClientBufSize() {
    2851        return getProperty(JDK_HTTP_CLIENT_BUF_SIZE);
    2852    }
    2853
    2854    /**
    2855     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_CONNECTION_POOL_SIZE}.
    2856     * <p>
    2857     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2858     * </p>
    2859     *
    2860     * @return the current value from the system properties map.
    2861     * @since 3.15.0
    2862     */
    2863    public static String getJdkHttpClientConnectionPoolSize() {
    2864        return getProperty(JDK_HTTP_CLIENT_CONNECTION_POOL_SIZE);
    2865    }
    2866
    2867    /**
    2868     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_CONNECTION_WINDOW_SIZE}.
    2869     * <p>
    2870     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2871     * </p>
    2872     *
    2873     * @return the current value from the system properties map.
    2874     * @since 3.15.0
    2875     */
    2876    public static String getJdkHttpClientConnectionWindowSize() {
    2877        return getProperty(JDK_HTTP_CLIENT_CONNECTION_WINDOW_SIZE);
    2878    }
    2879
    2880    /**
    2881     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_DISABLE_RETRY_CONNECT}.
    2882     * <p>
    2883     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2884     * </p>
    2885     *
    2886     * @return the current value from the system properties map.
    2887     * @since 3.15.0
    2888     */
    2889    public static String getJdkHttpClientDisableRetryConnect() {
    2890        return getProperty(JDK_HTTP_CLIENT_DISABLE_RETRY_CONNECT);
    2891    }
    2892
    2893    /**
    2894     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_ENABLE_ALL_METHOD_RETRY}.
    2895     * <p>
    2896     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2897     * </p>
    2898     *
    2899     * @return the current value from the system properties map.
    2900     * @since 3.15.0
    2901     */
    2902    public static String getJdkHttpClientEnableAllMethodRetry() {
    2903        return getProperty(JDK_HTTP_CLIENT_ENABLE_ALL_METHOD_RETRY);
    2904    }
    2905
    2906    /**
    2907     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_ENABLE_PUSH}.
    2908     * <p>
    2909     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2910     * </p>
    2911     *
    2912     * @return the current value from the system properties map.
    2913     * @since 3.15.0
    2914     */
    2915    public static String getJdkHttpClientEnablePush() {
    2916        return getProperty(JDK_HTTP_CLIENT_ENABLE_PUSH);
    2917    }
    2918
    2919    /**
    2920     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_HPACK_MAX_HEADER_TABLE_SIZE}.
    2921     * <p>
    2922     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2923     * </p>
    2924     *
    2925     * @return the current value from the system properties map.
    2926     * @since 3.15.0
    2927     */
    2928    public static String getJdkHttpClientHpackMaxHeaderTableSize() {
    2929        return getProperty(JDK_HTTP_CLIENT_HPACK_MAX_HEADER_TABLE_SIZE);
    2930    }
    2931
    2932    /**
    2933     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_HTTP_CLIENT_LOG}.
    2934     * <p>
    2935     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2936     * </p>
    2937     *
    2938     * @return the current value from the system properties map.
    2939     * @since 3.15.0
    2940     */
    2941    public static String getJdkHttpClientHttpClientLog() {
    2942        return getProperty(JDK_HTTP_CLIENT_HTTP_CLIENT_LOG);
    2943    }
    2944
    2945    /**
    2946     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_KEEP_ALIVE_TIMEOUT}.
    2947     * <p>
    2948     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2949     * </p>
    2950     *
    2951     * @return the current value from the system properties map.
    2952     * @since 3.15.0
    2953     */
    2954    public static String getJdkHttpClientKeepAliveTimeout() {
    2955        return getProperty(JDK_HTTP_CLIENT_KEEP_ALIVE_TIMEOUT);
    2956    }
    2957
    2958    /**
    2959     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_KEEP_ALIVE_TIMEOUT_H2}.
    2960     * <p>
    2961     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2962     * </p>
    2963     *
    2964     * @return the current value from the system properties map.
    2965     * @since 3.15.0
    2966     */
    2967    public static String getJdkHttpClientKeepAliveTimeoutH2() {
    2968        return getProperty(JDK_HTTP_CLIENT_KEEP_ALIVE_TIMEOUT_H2);
    2969    }
    2970
    2971    /**
    2972     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_MAX_FRAME_SIZE}.
    2973     * <p>
    2974     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2975     * </p>
    2976     *
    2977     * @return the current value from the system properties map.
    2978     * @since 3.15.0
    2979     */
    2980    public static String getJdkHttpClientMaxFrameSize() {
    2981        return getProperty(JDK_HTTP_CLIENT_MAX_FRAME_SIZE);
    2982    }
    2983
    2984    /**
    2985     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_MAX_STREAMS}.
    2986     * <p>
    2987     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    2988     * </p>
    2989     *
    2990     * @return the current value from the system properties map.
    2991     * @since 3.15.0
    2992     */
    2993    public static String getJdkHttpClientMaxStreams() {
    2994        return getProperty(JDK_HTTP_CLIENT_MAX_STREAMS);
    2995    }
    2996
    2997    /**
    2998     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_RECEIVE_BUFFER_SIZE}.
    2999     * <p>
    3000     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3001     * </p>
    3002     *
    3003     * @return the current value from the system properties map.
    3004     * @since 3.15.0
    3005     */
    3006    public static String getJdkHttpClientReceiveBufferSize() {
    3007        return getProperty(JDK_HTTP_CLIENT_RECEIVE_BUFFER_SIZE);
    3008    }
    3009
    3010    /**
    3011     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_REDIRECTS_RETRY_LIMIT}.
    3012     * <p>
    3013     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3014     * </p>
    3015     *
    3016     * @return the current value from the system properties map.
    3017     * @since 3.15.0
    3018     */
    3019    public static String getJdkHttpClientRedirectsRetryLimit() {
    3020        return getProperty(JDK_HTTP_CLIENT_REDIRECTS_RETRY_LIMIT);
    3021    }
    3022
    3023    /**
    3024     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_SEND_BUFFER_SIZE}.
    3025     * <p>
    3026     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3027     * </p>
    3028     *
    3029     * @return the current value from the system properties map.
    3030     * @since 3.15.0
    3031     */
    3032    public static String getJdkHttpClientSendBufferSize() {
    3033        return getProperty(JDK_HTTP_CLIENT_SEND_BUFFER_SIZE);
    3034    }
    3035
    3036    /**
    3037     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_WEB_SOCKET_WRITE_BUFFER_SIZE}.
    3038     * <p>
    3039     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3040     * </p>
    3041     *
    3042     * @return the current value from the system properties map.
    3043     * @since 3.15.0
    3044     */
    3045    public static String getJdkHttpClientWebSocketWriteBufferSize() {
    3046        return getProperty(JDK_HTTP_CLIENT_WEB_SOCKET_WRITE_BUFFER_SIZE);
    3047    }
    3048
    3049    /**
    3050     * Gets the current value from the system properties map for {@value #JDK_HTTP_CLIENT_WINDOW_SIZE}.
    3051     * <p>
    3052     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3053     * </p>
    3054     *
    3055     * @return the current value from the system properties map.
    3056     * @since 3.15.0
    3057     */
    3058    public static String getJdkHttpClientWindowSize() {
    3059        return getProperty(JDK_HTTP_CLIENT_WINDOW_SIZE);
    3060    }
    3061
    3062    /**
    3063     * Gets the current value from the system properties map for {@value #JDK_HTTP_SERVER_MAX_CONNECTIONS}.
    3064     * <p>
    3065     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3066     * </p>
    3067     *
    3068     * @return the current value from the system properties map.
    3069     * @since 3.15.0
    3070     */
    3071    public static String getJdkHttpServerMaxConnections() {
    3072        return getProperty(JDK_HTTP_SERVER_MAX_CONNECTIONS);
    3073    }
    3074
    3075    /**
    3076     * Gets the current value from the system properties map for {@value #JDK_HTTPS_NEGOTIATE_CBT}.
    3077     * <p>
    3078     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3079     * </p>
    3080     *
    3081     * @return the current value from the system properties map.
    3082     * @since 3.15.0
    3083     */
    3084    public static String getJdkHttpsNegotiateCbt() {
    3085        return getProperty(JDK_HTTPS_NEGOTIATE_CBT);
    3086    }
    3087
    3088    /**
    3089     * Gets the current value from the system properties map for {@value #JDK_INCLUDE_IN_EXCEPTIONS}.
    3090     * <p>
    3091     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3092     * </p>
    3093     *
    3094     * @return the current value from the system properties map.
    3095     * @since 3.15.0
    3096     */
    3097    public static String getJdkIncludeInExceptions() {
    3098        return getProperty(JDK_INCLUDE_IN_EXCEPTIONS);
    3099    }
    3100
    3101    /**
    3102     * Gets the current value from the system properties map for {@value #JDK_INTERNAL_HTTP_CLIENT_DISABLE_HOST_NAME_VERIFICATION}.
    3103     * <p>
    3104     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3105     * </p>
    3106     *
    3107     * @return the current value from the system properties map.
    3108     * @since 3.15.0
    3109     */
    3110    public static String getJdkInternalHttpClientDisableHostNameVerification() {
    3111        return getProperty(JDK_INTERNAL_HTTP_CLIENT_DISABLE_HOST_NAME_VERIFICATION);
    3112    }
    3113
    3114    /**
    3115     * Gets the current value from the system properties map for {@value #JDK_IO_PERMISSIONS_USE_CANONICAL_PATH}.
    3116     * <p>
    3117     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3118     * </p>
    3119     *
    3120     * @return the current value from the system properties map.
    3121     * @since 3.15.0
    3122     */
    3123    public static String getJdkIoPermissionsUseCanonicalPath() {
    3124        return getProperty(JDK_IO_PERMISSIONS_USE_CANONICAL_PATH);
    3125    }
    3126
    3127    /**
    3128     * Gets the current value from the system properties map for {@value #JDK_JNDI_LDAP_OBJECT_FACTORIES_FILTER}.
    3129     * <p>
    3130     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3131     * </p>
    3132     *
    3133     * @return the current value from the system properties map.
    3134     * @since 3.15.0
    3135     */
    3136    public static String getJdkJndiLdapObjectFactoriesFilter() {
    3137        return getProperty(JDK_JNDI_LDAP_OBJECT_FACTORIES_FILTER);
    3138    }
    3139
    3140    /**
    3141     * Gets the current value from the system properties map for {@value #JDK_JNDI_OBJECT_FACTORIES_FILTER}.
    3142     * <p>
    3143     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3144     * </p>
    3145     *
    3146     * @return the current value from the system properties map.
    3147     * @since 3.15.0
    3148     */
    3149    public static String getJdkJndiObjectFactoriesFilter() {
    3150        return getProperty(JDK_JNDI_OBJECT_FACTORIES_FILTER);
    3151    }
    3152
    3153    /**
    3154     * Gets the current value from the system properties map for {@value #JDK_JNDI_RMI_OBJECT_FACTORIES_FILTER}.
    3155     * <p>
    3156     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3157     * </p>
    3158     *
    3159     * @return the current value from the system properties map.
    3160     * @since 3.15.0
    3161     */
    3162    public static String getJdkJndiRmiObjectFactoriesFilter() {
    3163        return getProperty(JDK_JNDI_RMI_OBJECT_FACTORIES_FILTER);
    3164    }
    3165
    3166    /**
    3167     * Gets the current value from the system properties map for {@value #JDK_MODULE_MAIN}.
    3168     * <p>
    3169     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3170     * </p>
    3171     *
    3172     * @return the current value from the system properties map.
    3173     * @since 3.15.0
    3174     */
    3175    public static String getJdkModuleMain() {
    3176        return getProperty(JDK_MODULE_MAIN);
    3177    }
    3178
    3179    /**
    3180     * Gets the current value from the system properties map for {@value #JDK_MODULE_MAIN_CLASS}.
    3181     * <p>
    3182     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3183     * </p>
    3184     *
    3185     * @return the current value from the system properties map.
    3186     * @since 3.15.0
    3187     */
    3188    public static String getJdkModuleMainClass() {
    3189        return getProperty(JDK_MODULE_MAIN_CLASS);
    3190    }
    3191
    3192    /**
    3193     * Gets the current value from the system properties map for {@value #JDK_MODULE_PATH}.
    3194     * <p>
    3195     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3196     * </p>
    3197     *
    3198     * @return the current value from the system properties map.
    3199     * @since 3.15.0
    3200     */
    3201    public static String getJdkModulePath() {
    3202        return getProperty(JDK_MODULE_PATH);
    3203    }
    3204
    3205    /**
    3206     * Gets the current value from the system properties map for {@value #JDK_MODULE_UPGRADE_PATH}.
    3207     * <p>
    3208     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3209     * </p>
    3210     *
    3211     * @return the current value from the system properties map.
    3212     * @since 3.15.0
    3213     */
    3214    public static String getJdkModuleUpgradePath() {
    3215        return getProperty(JDK_MODULE_UPGRADE_PATH);
    3216    }
    3217
    3218    /**
    3219     * Gets the current value from the system properties map for {@value #JDK_NET_UNIX_DOMAIN_TMPDIR}.
    3220     * <p>
    3221     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3222     * </p>
    3223     *
    3224     * @return the current value from the system properties map.
    3225     * @since 3.15.0
    3226     */
    3227    public static String getJdkNetUnixDomainTmpDir() {
    3228        return getProperty(JDK_NET_UNIX_DOMAIN_TMPDIR);
    3229    }
    3230
    3231    /**
    3232     * Gets the current value from the system properties map for {@value #JDK_NET_URL_CLASS_PATH_SHOW_IGNORED_CLASS_PATH_ENTRIES}.
    3233     * <p>
    3234     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3235     * </p>
    3236     *
    3237     * @return the current value from the system properties map.
    3238     * @since 3.15.0
    3239     */
    3240    public static String getJdkNetUrlClassPathShowIgnoredClassPathEntries() {
    3241        return getProperty(JDK_NET_URL_CLASS_PATH_SHOW_IGNORED_CLASS_PATH_ENTRIES);
    3242    }
    3243
    3244    /**
    3245     * Gets the current value from the system properties map for {@value #JDK_SERIAL_FILTER}.
    3246     * <p>
    3247     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3248     * </p>
    3249     *
    3250     * @return the current value from the system properties map.
    3251     * @since 3.15.0
    3252     */
    3253    public static String getJdkSerialFilter() {
    3254        return getProperty(JDK_SERIAL_FILTER);
    3255    }
    3256
    3257    /**
    3258     * Gets the current value from the system properties map for {@value #JDK_SERIAL_FILTER_FACTORY}.
    3259     * <p>
    3260     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3261     * </p>
    3262     *
    3263     * @return the current value from the system properties map.
    3264     * @since 3.15.0
    3265     */
    3266    public static String getJdkSerialFilterFactory() {
    3267        return getProperty(JDK_SERIAL_FILTER_FACTORY);
    3268    }
    3269
    3270    /**
    3271     * Gets the current value from the system properties map for {@value #JDK_TLS_CLIENT_SIGNATURE_SCHEMES}.
    3272     * <p>
    3273     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3274     * </p>
    3275     *
    3276     * @return the current value from the system properties map.
    3277     * @since 3.15.0
    3278     */
    3279    public static String getJdkTlsClientSignatureSchemes() {
    3280        return getProperty(JDK_TLS_CLIENT_SIGNATURE_SCHEMES);
    3281    }
    3282
    3283    /**
    3284     * Gets the current value from the system properties map for {@value #JDK_TLS_NAMED_GROUPS}.
    3285     * <p>
    3286     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3287     * </p>
    3288     *
    3289     * @return the current value from the system properties map.
    3290     * @since 3.15.0
    3291     */
    3292    public static String getJdkTlsNamedGroups() {
    3293        return getProperty(JDK_TLS_NAMED_GROUPS);
    3294    }
    3295
    3296    /**
    3297     * Gets the current value from the system properties map for {@value #JDK_TLS_SERVER_SIGNATURE_SCHEMES}.
    3298     * <p>
    3299     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3300     * </p>
    3301     *
    3302     * @return the current value from the system properties map.
    3303     * @since 3.15.0
    3304     */
    3305    public static String getJdkTlsServerSignatureSchemes() {
    3306        return getProperty(JDK_TLS_SERVER_SIGNATURE_SCHEMES);
    3307    }
    3308
    3309    /**
    3310     * Gets the current value from the system properties map for {@value #JDK_VIRTUAL_THREAD_SCHEDULER_MAXPOOLSIZE}.
    3311     * <p>
    3312     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3313     * </p>
    3314     *
    3315     * @return the current value from the system properties map.
    3316     * @since 3.15.0
    3317     */
    3318    public static String getJdkVirtualThreadSchedulerMaxPoolSize() {
    3319        return getProperty(JDK_VIRTUAL_THREAD_SCHEDULER_MAXPOOLSIZE);
    3320    }
    3321
    3322    /**
    3323     * Gets the current value from the system properties map for {@value #JDK_VIRTUAL_THREAD_SCHEDULER_PARALLELISM}.
    3324     * <p>
    3325     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3326     * </p>
    3327     *
    3328     * @return the current value from the system properties map.
    3329     * @since 3.15.0
    3330     */
    3331    public static String getJdkVirtualThreadSchedulerParallelism() {
    3332        return getProperty(JDK_VIRTUAL_THREAD_SCHEDULER_PARALLELISM);
    3333    }
    3334
    3335    /**
    3336     * Gets the current value from the system properties map for {@value #JDK_XML_CDATA_CHUNK_SIZE}.
    3337     * <p>
    3338     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3339     * </p>
    3340     *
    3341     * @return the current value from the system properties map.
    3342     * @since 3.15.0
    3343     */
    3344    public static String getJdkXmlCdataChunkSize() {
    3345        return getProperty(JDK_XML_CDATA_CHUNK_SIZE);
    3346    }
    3347
    3348    /**
    3349     * Gets the current value from the system properties map for {@value #JDK_XML_DTD_SUPPORT}.
    3350     * <p>
    3351     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3352     * </p>
    3353     *
    3354     * @return the current value from the system properties map.
    3355     * @since 3.15.0
    3356     */
    3357    public static String getJdkXmlDtdSupport() {
    3358        return getProperty(JDK_XML_DTD_SUPPORT);
    3359    }
    3360
    3361    /**
    3362     * Gets the current value from the system properties map for {@value #JDK_XML_ELEMENT_ATTRIBUTE_LIMIT}.
    3363     * <p>
    3364     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3365     * </p>
    3366     *
    3367     * @return the current value from the system properties map.
    3368     * @since 3.15.0
    3369     */
    3370    public static String getJdkXmlElementAttributeLimit() {
    3371        return getProperty(JDK_XML_ELEMENT_ATTRIBUTE_LIMIT);
    3372    }
    3373
    3374    /**
    3375     * Gets the current value from the system properties map for {@value #JDK_XML_ENABLE_EXTENSION_FUNCTIONS}.
    3376     * <p>
    3377     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3378     * </p>
    3379     *
    3380     * @return the current value from the system properties map.
    3381     * @since 3.15.0
    3382     */
    3383    public static String getJdkXmlEnableExtensionFunctions() {
    3384        return getProperty(JDK_XML_ENABLE_EXTENSION_FUNCTIONS);
    3385    }
    3386
    3387    /**
    3388     * Gets the current value from the system properties map for {@value #JDK_XML_ENTITY_EXPANSION_LIMIT}.
    3389     * <p>
    3390     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3391     * </p>
    3392     *
    3393     * @return the current value from the system properties map.
    3394     * @since 3.15.0
    3395     */
    3396    public static String getJdkXmlEntityExpansionLimit() {
    3397        return getProperty(JDK_XML_ENTITY_EXPANSION_LIMIT);
    3398    }
    3399
    3400    /**
    3401     * Gets the current value from the system properties map for {@value #JDK_XML_ENTITY_REPLACEMENT_LIMIT}.
    3402     * <p>
    3403     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3404     * </p>
    3405     *
    3406     * @return the current value from the system properties map.
    3407     * @since 3.15.0
    3408     */
    3409    public static String getJdkXmlEntityReplacementLimit() {
    3410        return getProperty(JDK_XML_ENTITY_REPLACEMENT_LIMIT);
    3411    }
    3412
    3413    /**
    3414     * Gets the current value from the system properties map for {@value #JDK_XML_IS_STANDALONE}.
    3415     * <p>
    3416     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3417     * </p>
    3418     *
    3419     * @return the current value from the system properties map.
    3420     * @since 3.15.0
    3421     */
    3422    public static String getJdkXmlIsStandalone() {
    3423        return getProperty(JDK_XML_IS_STANDALONE);
    3424    }
    3425
    3426    /**
    3427     * Gets the current value from the system properties map for {@value #JDK_XML_JDK_CATALOG_RESOLVE}.
    3428     * <p>
    3429     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3430     * </p>
    3431     *
    3432     * @return the current value from the system properties map.
    3433     * @since 3.15.0
    3434     */
    3435    public static String getJdkXmlJdkCatalogResolve() {
    3436        return getProperty(JDK_XML_JDK_CATALOG_RESOLVE);
    3437    }
    3438
    3439    /**
    3440     * Gets the current value from the system properties map for {@value #JDK_XML_MAX_ELEMENT_DEPTH}.
    3441     * <p>
    3442     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3443     * </p>
    3444     *
    3445     * @return the current value from the system properties map.
    3446     * @since 3.15.0
    3447     */
    3448    public static String getJdkXmlMaxElementDepth() {
    3449        return getProperty(JDK_XML_MAX_ELEMENT_DEPTH);
    3450    }
    3451
    3452    /**
    3453     * Gets the current value from the system properties map for {@value #JDK_XML_MAX_GENERAL_ENTITY_SIZE_LIMIT}.
    3454     * <p>
    3455     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3456     * </p>
    3457     *
    3458     * @return the current value from the system properties map.
    3459     * @since 3.15.0
    3460     */
    3461    public static String getJdkXmlMaxGeneralEntitySizeLimit() {
    3462        return getProperty(JDK_XML_MAX_GENERAL_ENTITY_SIZE_LIMIT);
    3463    }
    3464
    3465    /**
    3466     * Gets the current value from the system properties map for {@value #JDK_XML_MAX_OCCUR_LIMIT}.
    3467     * <p>
    3468     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3469     * </p>
    3470     *
    3471     * @return the current value from the system properties map.
    3472     * @since 3.15.0
    3473     */
    3474    public static String getJdkXmlMaxOccurLimit() {
    3475        return getProperty(JDK_XML_MAX_OCCUR_LIMIT);
    3476    }
    3477
    3478    /**
    3479     * Gets the current value from the system properties map for {@value #JDK_XML_MAX_PARAMETER_ENTITY_SIZE_LIMIT}.
    3480     * <p>
    3481     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3482     * </p>
    3483     *
    3484     * @return the current value from the system properties map.
    3485     * @since 3.15.0
    3486     */
    3487    public static String getJdkXmlMaxParameterEntitySizeLimit() {
    3488        return getProperty(JDK_XML_MAX_PARAMETER_ENTITY_SIZE_LIMIT);
    3489    }
    3490
    3491    /**
    3492     * Gets the current value from the system properties map for {@value #JDK_XML_MAX_XML_NAME_LIMIT}.
    3493     * <p>
    3494     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3495     * </p>
    3496     *
    3497     * @return the current value from the system properties map.
    3498     * @since 3.15.0
    3499     */
    3500    public static String getJdkXmlMaxXmlNameLimit() {
    3501        return getProperty(JDK_XML_MAX_XML_NAME_LIMIT);
    3502    }
    3503
    3504    /**
    3505     * Gets the current value from the system properties map for {@value #JDK_XML_OVERRIDE_DEFAULT_PARSER}.
    3506     * <p>
    3507     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3508     * </p>
    3509     *
    3510     * @return the current value from the system properties map.
    3511     * @since 3.15.0
    3512     */
    3513    public static String getJdkXmlOverrideDefaultParser() {
    3514        return getProperty(JDK_XML_OVERRIDE_DEFAULT_PARSER);
    3515    }
    3516
    3517    /**
    3518     * Gets the current value from the system properties map for {@value #JDK_XML_RESET_SYMBOL_TABLE}.
    3519     * <p>
    3520     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3521     * </p>
    3522     *
    3523     * @return the current value from the system properties map.
    3524     * @since 3.15.0
    3525     */
    3526    public static String getJdkXmlResetSymbolTable() {
    3527        return getProperty(JDK_XML_RESET_SYMBOL_TABLE);
    3528    }
    3529
    3530    /**
    3531     * Gets the current value from the system properties map for {@value #JDK_XML_TOTAL_ENTITY_SIZE_LIMIT}.
    3532     * <p>
    3533     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3534     * </p>
    3535     *
    3536     * @return the current value from the system properties map.
    3537     * @since 3.15.0
    3538     */
    3539    public static String getJdkXmlTotalEntitySizeLimit() {
    3540        return getProperty(JDK_XML_TOTAL_ENTITY_SIZE_LIMIT);
    3541    }
    3542
    3543    /**
    3544     * Gets the current value from the system properties map for {@value #JDK_XML_XSLTC_IS_STANDALONE}.
    3545     * <p>
    3546     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3547     * </p>
    3548     *
    3549     * @return the current value from the system properties map.
    3550     * @since 3.15.0
    3551     */
    3552    public static String getJdkXmlXsltcIsStandalone() {
    3553        return getProperty(JDK_XML_XSLTC_IS_STANDALONE);
    3554    }
    3555
    3556    /**
    3557     * Gets the current value from the system properties map for {@value #LINE_SEPARATOR}.
    3558     * <p>
    3559     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3560     * </p>
    3561     *
    3562     * @return the current value from the system properties map.
    3563     */
    3564    public static String getLineSeparator() {
    3565        return getProperty(LINE_SEPARATOR);
    3566    }
    3567
    3568    /**
    3569     * Gets the current value from the system properties map for {@value #LINE_SEPARATOR}.
    3570     * <p>
    3571     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3572     * </p>
    3573     *
    3574     * @param defaultIfAbsent get this Supplier when the property is empty or throws SecurityException.
    3575     * @return the current value from the system properties map.
    3576     * @since 3.15.0
    3577     */
    3578    public static String getLineSeparator(final Supplier<String> defaultIfAbsent) {
    3579        return getProperty(LINE_SEPARATOR, defaultIfAbsent);
    3580    }
    3581
    3582    /**
    3583     * Gets the current value for the property named {@code key} as a {@code long}.
    3584     *
    3585     * @param key             The key
    3586     * @param defaultIfAbsent The default value
    3587     * @return a {@code long} or defaultIfAbsent
    3588     */
    3589    public static long getLong(final String key, final LongSupplier defaultIfAbsent) {
    3590        final String str = getProperty(key);
    3591        return str == null ? defaultIfAbsent != null ? defaultIfAbsent.getAsLong() : 0 : Long.parseLong(str);
    3592    }
    3593
    3594    /**
    3595     * Gets the current value from the system properties map for {@value #NATIVE_ENCODING}.
    3596     * <p>
    3597     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3598     * </p>
    3599     *
    3600     * @return the current value from the system properties map.
    3601     * @since 3.15.0
    3602     */
    3603    public static String getNativeEncoding() {
    3604        return getProperty(NATIVE_ENCODING);
    3605    }
    3606
    3607    /**
    3608     * Gets the current value from the system properties map for {@value #NETWORK_ADDRESS_CACHE_NEGATIVE_TTL}.
    3609     * <p>
    3610     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3611     * </p>
    3612     *
    3613     * @return the current value from the system properties map.
    3614     * @since 3.15.0
    3615     */
    3616    public static String getNetworkAddressCacheNegativeTtl() {
    3617        return getProperty(NETWORK_ADDRESS_CACHE_NEGATIVE_TTL);
    3618    }
    3619
    3620    /**
    3621     * Gets the current value from the system properties map for {@value #NETWORK_ADDRESS_CACHE_STALE_TTL}.
    3622     * <p>
    3623     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3624     * </p>
    3625     *
    3626     * @return the current value from the system properties map.
    3627     * @since 3.15.0
    3628     */
    3629    public static String getNetworkAddressCacheStaleTtl() {
    3630        return getProperty(NETWORK_ADDRESS_CACHE_STALE_TTL);
    3631    }
    3632
    3633    /**
    3634     * Gets the current value from the system properties map for {@value #NETWORK_ADDRESS_CACHE_TTL}.
    3635     * <p>
    3636     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3637     * </p>
    3638     *
    3639     * @return the current value from the system properties map.
    3640     * @since 3.15.0
    3641     */
    3642    public static String getNetworkAddressCacheTtl() {
    3643        return getProperty(NETWORK_ADDRESS_CACHE_TTL);
    3644    }
    3645
    3646    /**
    3647     * Gets the current value from the system properties map for {@value #ORG_JCP_XML_DSIG_SECURE_VALIDATION}.
    3648     * <p>
    3649     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3650     * </p>
    3651     *
    3652     * @return the current value from the system properties map.
    3653     * @since 3.15.0
    3654     */
    3655    public static String getOrgJcpXmlDsigSecureValidation() {
    3656        return getProperty(ORG_JCP_XML_DSIG_SECURE_VALIDATION);
    3657    }
    3658
    3659    /**
    3660     * Gets the current value from the system properties map for {@value #ORG_OPENJDK_JAVA_UTIL_STREAM_TRIPWIRE}.
    3661     * <p>
    3662     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3663     * </p>
    3664     *
    3665     * @return the current value from the system properties map.
    3666     * @since 3.15.0
    3667     */
    3668    public static String getOrgOpenJdkJavaUtilStreamTripwire() {
    3669        return getProperty(ORG_OPENJDK_JAVA_UTIL_STREAM_TRIPWIRE);
    3670    }
    3671
    3672    /**
    3673     * Gets the current value from the system properties map for {@value #OS_ARCH}.
    3674     * <p>
    3675     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3676     * </p>
    3677     *
    3678     * @return the current value from the system properties map.
    3679     */
    3680    public static String getOsArch() {
    3681        return getProperty(OS_ARCH);
    3682    }
    3683
    3684    /**
    3685     * Gets the current value from the system properties map for {@value #OS_NAME}.
    3686     * <p>
    3687     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3688     * </p>
    3689     *
    3690     * @return the current value from the system properties map.
    3691     */
    3692    public static String getOsName() {
    3693        return getProperty(OS_NAME);
    3694    }
    3695
    3696    /**
    3697     * Gets the current value from the system properties map for {@value #OS_VERSION}.
    3698     * <p>
    3699     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3700     * </p>
    3701     *
    3702     * @return the current value from the system properties map.
    3703     */
    3704    public static String getOsVersion() {
    3705        return getProperty(OS_VERSION);
    3706    }
    3707
    3708    /**
    3709     * Gets the current value from the system properties map for {@value #PATH_SEPARATOR}.
    3710     * <p>
    3711     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3712     * </p>
    3713     *
    3714     * @return the current value from the system properties map.
    3715     */
    3716    public static String getPathSeparator() {
    3717        return getProperty(PATH_SEPARATOR);
    3718    }
    3719
    3720    /**
    3721     * Gets a System property, defaulting to {@code null} if the property cannot be read.
    3722     * <p>
    3723     * If a {@link SecurityException} is caught, the return value is {@code null}.
    3724     * </p>
    3725     *
    3726     * @param property the system property name
    3727     * @return the system property value or {@code null} if a security problem occurs
    3728     */
    3729    public static String getProperty(final String property) {
    3730        return getProperty(property, Suppliers.nul());
    3731    }
    3732
    3733    /**
    3734     * Gets a System property, defaulting to {@code null} if the property cannot be read.
    3735     * <p>
    3736     * If a {@link SecurityException} is caught, the return value is {@code null}.
    3737     * </p>
    3738     *
    3739     * @param property        the system property name.
    3740     * @param defaultIfAbsent use this value when the property is empty or throws SecurityException.
    3741     * @return the system property value or {@code null} if a security problem occurs
    3742     */
    3743    static String getProperty(final String property, final String defaultIfAbsent) {
    3744        return getProperty(property, () -> defaultIfAbsent);
    3745    }
    3746
    3747    /**
    3748     * Gets a System property, defaulting to {@code null} if the property cannot be read.
    3749     * <p>
    3750     * If a {@link SecurityException} is caught, the return value is {@code null}.
    3751     * </p>
    3752     *
    3753     * @param property        the system property name.
    3754     * @param defaultIfAbsent get this Supplier when the property is empty or throws SecurityException.
    3755     * @return the system property value or {@code null} if a security problem occurs
    3756     */
    3757    static String getProperty(final String property, final Supplier<String> defaultIfAbsent) {
    3758        try {
    3759            if (StringUtils.isEmpty(property)) {
    3760                return Suppliers.get(defaultIfAbsent);
    3761            }
    3762            return StringUtils.getIfEmpty(System.getProperty(property), defaultIfAbsent);
    3763        } catch (final SecurityException ignore) {
    3764            // We are not allowed to look at this property.
    3765            //
    3766            // System.err.println("Caught a SecurityException reading the system property '" + property
    3767            // + "'; the SystemUtils property value will default to null.");
    3768            return defaultIfAbsent.get();
    3769        }
    3770    }
    3771
    3772    /**
    3773     * Gets the current value from the system properties map for {@value #SOCKS_PROXY_HOST}.
    3774     * <p>
    3775     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3776     * </p>
    3777     *
    3778     * @return the current value from the system properties map.
    3779     * @since 3.15.0
    3780     */
    3781    public static String getSocksProxyHost() {
    3782        return getProperty(SOCKS_PROXY_HOST);
    3783    }
    3784
    3785    /**
    3786     * Gets the current value from the system properties map for {@value #SOCKS_PROXY_PORT}.
    3787     * <p>
    3788     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3789     * </p>
    3790     *
    3791     * @return the current value from the system properties map.
    3792     * @since 3.15.0
    3793     */
    3794    public static String getSocksProxyPort() {
    3795        return getProperty(SOCKS_PROXY_PORT);
    3796    }
    3797
    3798    /**
    3799     * Gets the current value from the system properties map for {@value #SOCKS_PROXY_VERSION}.
    3800     * <p>
    3801     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3802     * </p>
    3803     *
    3804     * @return the current value from the system properties map.
    3805     * @since 3.15.0
    3806     */
    3807    public static String getSocksProxyVersion() {
    3808        return getProperty(SOCKS_PROXY_VERSION);
    3809    }
    3810
    3811    /**
    3812     * Gets the current value from the system properties map for {@value #STDERR_ENCODING}.
    3813     * <p>
    3814     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3815     * </p>
    3816     *
    3817     * @return the current value from the system properties map.
    3818     * @since 3.15.0
    3819     */
    3820    public static String getStdErrEncoding() {
    3821        return getProperty(STDERR_ENCODING);
    3822    }
    3823
    3824    /**
    3825     * Gets the current value from the system properties map for {@value #STDOUT_ENCODING}.
    3826     * <p>
    3827     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3828     * </p>
    3829     *
    3830     * @return the current value from the system properties map.
    3831     * @since 3.15.0
    3832     */
    3833    public static String getStdOutEncoding() {
    3834        return getProperty(STDOUT_ENCODING);
    3835    }
    3836
    3837    /**
    3838     * Gets the current value from the system properties map for {@value #SUN_NET_HTTP_SERVER_DRAIN_AMOUNT}.
    3839     * <p>
    3840     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3841     * </p>
    3842     *
    3843     * @return the current value from the system properties map.
    3844     * @since 3.15.0
    3845     */
    3846    public static String getSunNetHttpServerDrainAmount() {
    3847        return getProperty(SUN_NET_HTTP_SERVER_DRAIN_AMOUNT);
    3848    }
    3849
    3850    /**
    3851     * Gets the current value from the system properties map for {@value #SUN_NET_HTTP_SERVER_IDLE_INTERVAL}.
    3852     * <p>
    3853     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3854     * </p>
    3855     *
    3856     * @return the current value from the system properties map.
    3857     * @since 3.15.0
    3858     */
    3859    public static String getSunNetHttpServerIdleInterval() {
    3860        return getProperty(SUN_NET_HTTP_SERVER_IDLE_INTERVAL);
    3861    }
    3862
    3863    /**
    3864     * Gets the current value from the system properties map for {@value #SUN_NET_HTTP_SERVER_MAX_IDLE_CONNECTIONS}.
    3865     * <p>
    3866     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3867     * </p>
    3868     *
    3869     * @return the current value from the system properties map.
    3870     * @since 3.15.0
    3871     */
    3872    public static String getSunNetHttpServerMaxIdleConnections() {
    3873        return getProperty(SUN_NET_HTTP_SERVER_MAX_IDLE_CONNECTIONS);
    3874    }
    3875
    3876    /**
    3877     * Gets the current value from the system properties map for {@value #SUN_NET_HTTP_SERVER_MAX_REQ_HEADERS}.
    3878     * <p>
    3879     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3880     * </p>
    3881     *
    3882     * @return the current value from the system properties map.
    3883     * @since 3.15.0
    3884     */
    3885    public static String getSunNetHttpServerMaxReqHeaders() {
    3886        return getProperty(SUN_NET_HTTP_SERVER_MAX_REQ_HEADERS);
    3887    }
    3888
    3889    /**
    3890     * Gets the current value from the system properties map for {@value #SUN_NET_HTTP_SERVER_MAX_REQ_TIME}.
    3891     * <p>
    3892     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3893     * </p>
    3894     *
    3895     * @return the current value from the system properties map.
    3896     * @since 3.15.0
    3897     */
    3898    public static String getSunNetHttpServerMaxReqTime() {
    3899        return getProperty(SUN_NET_HTTP_SERVER_MAX_REQ_TIME);
    3900    }
    3901
    3902    /**
    3903     * Gets the current value from the system properties map for {@value #SUN_NET_HTTP_SERVER_MAX_RSP_TIME}.
    3904     * <p>
    3905     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3906     * </p>
    3907     *
    3908     * @return the current value from the system properties map.
    3909     * @since 3.15.0
    3910     */
    3911    public static String getSunNetHttpServerMaxRspTime() {
    3912        return getProperty(SUN_NET_HTTP_SERVER_MAX_RSP_TIME);
    3913    }
    3914
    3915    /**
    3916     * Gets the current value from the system properties map for {@value #SUN_NET_HTTP_SERVER_NO_DELAY}.
    3917     * <p>
    3918     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3919     * </p>
    3920     *
    3921     * @return the current value from the system properties map.
    3922     * @since 3.15.0
    3923     */
    3924    public static String getSunNetHttpServerNoDelay() {
    3925        return getProperty(SUN_NET_HTTP_SERVER_NO_DELAY);
    3926    }
    3927
    3928    /**
    3929     * Gets the current value from the system properties map for {@value #SUN_SECURITY_KRB5_PRINCIPAL}.
    3930     * <p>
    3931     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3932     * </p>
    3933     *
    3934     * @return the current value from the system properties map.
    3935     * @since 3.15.0
    3936     */
    3937    public static String getSunSecurityKrb5Principal() {
    3938        return getProperty(SUN_SECURITY_KRB5_PRINCIPAL);
    3939    }
    3940
    3941    /**
    3942     * Gets the current value from the system properties map for {@value #USER_COUNTRY}.
    3943     * <p>
    3944     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3945     * </p>
    3946     *
    3947     * @return the current value from the system properties map.
    3948     */
    3949    public static String getUserCountry() {
    3950        return getProperty(USER_COUNTRY);
    3951    }
    3952
    3953    /**
    3954     * Gets the current value from the system properties map for {@value #USER_DIR}.
    3955     * <p>
    3956     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3957     * </p>
    3958     *
    3959     * @return the current value from the system properties map.
    3960     */
    3961    public static String getUserDir() {
    3962        return getProperty(USER_DIR);
    3963    }
    3964
    3965    /**
    3966     * Gets the current value from the system properties map for {@value #USER_EXTENSIONS}.
    3967     * <p>
    3968     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3969     * </p>
    3970     *
    3971     * @return the current value from the system properties map.
    3972     * @since 3.15.0
    3973     */
    3974    public static String getUserExtensions() {
    3975        return getProperty(USER_EXTENSIONS);
    3976    }
    3977
    3978    /**
    3979     * Gets the current value from the system properties map for {@value #USER_HOME}.
    3980     * <p>
    3981     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3982     * </p>
    3983     *
    3984     * @return the current value from the system properties map.
    3985     */
    3986    public static String getUserHome() {
    3987        return getProperty(USER_HOME);
    3988    }
    3989
    3990    /**
    3991     * Gets the current value from the system properties map for {@value #USER_LANGUAGE}.
    3992     * <p>
    3993     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    3994     * </p>
    3995     *
    3996     * @return the current value from the system properties map.
    3997     */
    3998    public static String getUserLanguage() {
    3999        return getProperty(USER_LANGUAGE);
    4000    }
    4001
    4002    /**
    4003     * Gets the current value from the system properties map for {@value #USER_NAME}.
    4004     * <p>
    4005     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4006     * </p>
    4007     *
    4008     * @return the current value from the system properties map.
    4009     */
    4010    public static String getUserName() {
    4011        return getProperty(USER_NAME);
    4012    }
    4013
    4014    /**
    4015     * Gets the current value from the system properties map for {@value #USER_NAME}.
    4016     * <p>
    4017     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4018     * </p>
    4019     *
    4020     * @param defaultValue get this Supplier when the property is empty or throws SecurityException.
    4021     * @return the current value from the system properties map.
    4022     * @since 3.15.0
    4023     */
    4024    public static String getUserName(final String defaultValue) {
    4025        return getProperty(USER_NAME, defaultValue);
    4026    }
    4027
    4028    /**
    4029     * Gets the current value from the system properties map for {@value #USER_REGION}.
    4030     * <p>
    4031     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4032     * </p>
    4033     *
    4034     * @return the current value from the system properties map.
    4035     * @since 3.15.0
    4036     */
    4037    public static String getUserRegion() {
    4038        return getProperty(USER_REGION);
    4039    }
    4040
    4041    /**
    4042     * Gets the current value from the system properties map for {@value #USER_SCRIPT}.
    4043     * <p>
    4044     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4045     * </p>
    4046     *
    4047     * @return the current value from the system properties map.
    4048     * @since 3.15.0
    4049     */
    4050    public static String getUserScript() {
    4051        return getProperty(USER_SCRIPT);
    4052    }
    4053
    4054    /**
    4055     * Gets the current value from the system properties map for {@value #USER_TIMEZONE}.
    4056     * <p>
    4057     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4058     * </p>
    4059     *
    4060     * @return the current value from the system properties map.
    4061     */
    4062    public static String getUserTimezone() {
    4063        return getProperty(USER_TIMEZONE);
    4064    }
    4065
    4066    /**
    4067     * Gets the current value from the system properties map for {@value #USER_VARIANT}.
    4068     * <p>
    4069     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
    4070     * </p>
    4071     *
    4072     * @return the current value from the system properties map.
    4073     * @since 3.15.0
    4074     */
    4075    public static String getUserVariant() {
    4076        return getProperty(USER_VARIANT);
    4077    }
    4078
    4079    /**
    4080     * Tests whether the given property is set.
    4081     * <p>
    4082     * Short-hand for {@code getProperty(property) != null}.
    4083     * </p>
    4084     * <p>
    4085     * If a {@link SecurityException} is caught, the return value is {@code false}.
    4086     * </p>
    4087     *
    4088     * @param property the system property name.
    4089     * @return whether the given property is set.
    4090     * @since 3.18.0
    4091     */
    4092    public static boolean isPropertySet(final String property) {
    4093        return getProperty(property) != null;
    4094    }
    4095
    4096    /**
    4097     * Make private in 4.0.
    4098     *
    4099     * @deprecated TODO Make private in 4.0.
    4100     */
    4101    @Deprecated
    4102    public SystemProperties() {
    4103        // empty
    4104    }
    4105}