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