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
2469    /**
2470     * Gets the current value from the system properties map.
2471     * <p>
2472     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2473     * </p>
2474     *
2475     * @return the current value from the system properties map.
2476     * @since 3.15.0
2477     */
2478
2479    /**
2480     * Gets the current value from the system properties map.
2481     * <p>
2482     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2483     * </p>
2484     *
2485     * @return the current value from the system properties map.
2486     * @since 3.15.0
2487     */
2488    public static String getJavaUtilLoggingSimpleFormatterFormat() {
2489        return getProperty(JAVA_UTIL_LOGGING_SIMPLE_FORMATTER_FORMAT);
2490    }
2491
2492    /**
2493     * Gets the current value from the system properties map.
2494     * <p>
2495     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2496     * </p>
2497     *
2498     * @return the current value from the system properties map.
2499     */
2500    public static String getJavaUtilPrefsPreferencesFactory() {
2501        return getProperty(JAVA_UTIL_PREFS_PREFERENCES_FACTORY);
2502    }
2503
2504    /**
2505     * Gets the current value from the system properties map.
2506     * <p>
2507     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2508     * </p>
2509     *
2510     * @return the current value from the system properties map.
2511     * @since 3.15.0
2512     */
2513    public static String getJavaUtilPropertyResourceBundleEncoding() {
2514        return getProperty(JAVA_UTIL_PROPERTY_RESOURCE_BUNDLE_ENCODING);
2515    }
2516
2517    /**
2518     * Gets the current value from the system properties map.
2519     * <p>
2520     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2521     * </p>
2522     *
2523     * @return the current value from the system properties map.
2524     */
2525    public static String getJavaVendor() {
2526        return getProperty(JAVA_VENDOR);
2527    }
2528
2529    /**
2530     * Gets the current value from the system properties map.
2531     * <p>
2532     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2533     * </p>
2534     *
2535     * @return the current value from the system properties map.
2536     */
2537    public static String getJavaVendorUrl() {
2538        return getProperty(JAVA_VENDOR_URL);
2539    }
2540
2541    /**
2542     * Gets the current value from the system properties map.
2543     * <p>
2544     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2545     * </p>
2546     *
2547     * @return the current value from the system properties map.
2548     * @since 3.15.0
2549     */
2550    public static String getJavaVendorVersion() {
2551        return getProperty(JAVA_VENDOR_VERSION);
2552    }
2553
2554    /**
2555     * Gets the current value from the system properties map.
2556     * <p>
2557     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2558     * </p>
2559     *
2560     * @return the current value from the system properties map.
2561     */
2562    public static String getJavaVersion() {
2563        return getProperty(JAVA_VERSION);
2564    }
2565
2566    /**
2567     * Gets the current value from the system properties map.
2568     * <p>
2569     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2570     * </p>
2571     *
2572     * @return the current value from the system properties map.
2573     * @since 3.15.0
2574     */
2575    public static String getJavaVersionDate() {
2576        return getProperty(JAVA_VERSION_DATE);
2577    }
2578
2579    /**
2580     * Gets the current value from the system properties map.
2581     * <p>
2582     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2583     * </p>
2584     *
2585     * @return the current value from the system properties map.
2586     */
2587    public static String getJavaVmInfo() {
2588        return getProperty(JAVA_VM_INFO);
2589    }
2590
2591    /**
2592     * Gets the current value from the system properties map.
2593     * <p>
2594     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2595     * </p>
2596     *
2597     * @return the current value from the system properties map.
2598     */
2599    public static String getJavaVmName() {
2600        return getProperty(JAVA_VM_NAME);
2601    }
2602
2603    /**
2604     * Gets the current value from the system properties map.
2605     * <p>
2606     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2607     * </p>
2608     *
2609     * @return the current value from the system properties map.
2610     */
2611    public static String getJavaVmSpecificationName() {
2612        return getProperty(JAVA_VM_SPECIFICATION_NAME);
2613    }
2614
2615    /**
2616     * Gets the current value from the system properties map.
2617     * <p>
2618     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2619     * </p>
2620     *
2621     * @return the current value from the system properties map.
2622     */
2623    public static String getJavaVmSpecificationVendor() {
2624        return getProperty(JAVA_VM_SPECIFICATION_VENDOR);
2625    }
2626
2627    /**
2628     * Gets the current value from the system properties map.
2629     * <p>
2630     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2631     * </p>
2632     *
2633     * @return the current value from the system properties map.
2634     */
2635    public static String getJavaVmSpecificationVersion() {
2636        return getProperty(JAVA_VM_SPECIFICATION_VERSION);
2637    }
2638
2639    /**
2640     * Gets the current value from the system properties map.
2641     * <p>
2642     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2643     * </p>
2644     *
2645     * @return the current value from the system properties map.
2646     */
2647    public static String getJavaVmVendor() {
2648        return getProperty(JAVA_VM_VENDOR);
2649    }
2650
2651    /**
2652     * Gets the current value from the system properties map.
2653     * <p>
2654     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2655     * </p>
2656     *
2657     * @return the current value from the system properties map.
2658     */
2659    public static String getJavaVmVersion() {
2660        return getProperty(JAVA_VM_VERSION);
2661    }
2662
2663    /**
2664     * Gets the current value from the system properties map.
2665     * <p>
2666     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2667     * </p>
2668     *
2669     * @return the current value from the system properties map.
2670     * @since 3.15.0
2671     */
2672    public static String getJavaxAccessibilityAssistiveTechnologies() {
2673        return getProperty(JAVAX_ACCESSIBILITY_ASSISTIVE_TECHNOLOGIES);
2674    }
2675
2676    /**
2677     * Gets the current value from the system properties map.
2678     * <p>
2679     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2680     * </p>
2681     *
2682     * @return the current value from the system properties map.
2683     * @since 3.15.0
2684     */
2685    public static String getJavaXmlConfigFile() {
2686        return getProperty(JAVA_XML_CONFIG_FILE);
2687    }
2688
2689    /**
2690     * Gets the current value from the system properties map.
2691     * <p>
2692     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2693     * </p>
2694     *
2695     * @return the current value from the system properties map.
2696     * @since 3.15.0
2697     */
2698    public static String getJavaxNetSslSessionCacheSize() {
2699        return getProperty(JAVAX_NET_SSL_SESSION_CACHE_SIZE);
2700    }
2701
2702    /**
2703     * Gets the current value from the system properties map.
2704     * <p>
2705     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2706     * </p>
2707     *
2708     * @return the current value from the system properties map.
2709     * @since 3.15.0
2710     */
2711    public static String getJavaxRmiSslClientEnabledCipherSuites() {
2712        return getProperty(JAVAX_RMI_SSL_CLIENT_ENABLED_CIPHER_SUITES);
2713    }
2714
2715    /**
2716     * Gets the current value from the system properties map.
2717     * <p>
2718     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2719     * </p>
2720     *
2721     * @return the current value from the system properties map.
2722     * @since 3.15.0
2723     */
2724    public static String getJavaxRmiSslClientEnabledProtocols() {
2725        return getProperty(JAVAX_RMI_SSL_CLIENT_ENABLED_PROTOCOLS);
2726    }
2727
2728    /**
2729     * Gets the current value from the system properties map.
2730     * <p>
2731     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2732     * </p>
2733     *
2734     * @return the current value from the system properties map.
2735     * @since 3.15.0
2736     */
2737    public static String getJavaxSecurityAuthUseSubjectCredsOnly() {
2738        return getProperty(JAVAX_SECURITY_AUTH_USE_SUBJECT_CREDS_ONLY);
2739    }
2740
2741    /**
2742     * Gets the current value from the system properties map.
2743     * <p>
2744     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2745     * </p>
2746     *
2747     * @return the current value from the system properties map.
2748     * @since 3.15.0
2749     */
2750    public static String getJavaxSmartCardIoTerminalFactoryDefaultType() {
2751        return getProperty(JAVAX_SMART_CARD_IO_TERMINAL_FACTORY_DEFAULT_TYPE);
2752    }
2753
2754    /**
2755     * Gets the current value from the system properties map.
2756     * <p>
2757     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2758     * </p>
2759     *
2760     * @return the current value from the system properties map.
2761     * @since 3.15.0
2762     */
2763    public static String getJdbcDrivers() {
2764        return getProperty(JDBC_DRIVERS);
2765    }
2766
2767    /**
2768     * Gets the current value from the system properties map.
2769     * <p>
2770     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2771     * </p>
2772     *
2773     * @return the current value from the system properties map.
2774     * @since 3.15.0
2775     */
2776    public static String getJdkHttpAuthProxyingDisabledSchemes() {
2777        return getProperty(JDK_HTTP_AUTH_PROXYING_DISABLED_SCHEMES);
2778    }
2779
2780    /**
2781     * Gets the current value from the system properties map.
2782     * <p>
2783     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2784     * </p>
2785     *
2786     * @return the current value from the system properties map.
2787     * @since 3.15.0
2788     */
2789    public static String getJdkHttpAuthTunnelingDisabledSchemes() {
2790        return getProperty(JDK_HTTP_AUTH_TUNNELING_DISABLED_SCHEMES);
2791    }
2792
2793    /**
2794     * Gets the current value from the system properties map.
2795     * <p>
2796     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2797     * </p>
2798     *
2799     * @return the current value from the system properties map.
2800     * @since 3.15.0
2801     */
2802    public static String getJdkHttpClientAllowRestrictedHeaders() {
2803        return getProperty(JDK_HTTP_CLIENT_ALLOW_RESTRICTED_HEADERS);
2804    }
2805
2806    /**
2807     * Gets the current value from the system properties map.
2808     * <p>
2809     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2810     * </p>
2811     *
2812     * @return the current value from the system properties map.
2813     * @since 3.15.0
2814     */
2815    public static String getJdkHttpClientAuthRetryLimit() {
2816        return getProperty(JDK_HTTP_CLIENT_AUTH_RETRY_LIMIT);
2817    }
2818
2819    /**
2820     * Gets the current value from the system properties map.
2821     * <p>
2822     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2823     * </p>
2824     *
2825     * @return the current value from the system properties map.
2826     * @since 3.15.0
2827     */
2828    public static String getJdkHttpClientBufSize() {
2829        return getProperty(JDK_HTTP_CLIENT_BUF_SIZE);
2830    }
2831
2832    /**
2833     * Gets the current value from the system properties map.
2834     * <p>
2835     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2836     * </p>
2837     *
2838     * @return the current value from the system properties map.
2839     * @since 3.15.0
2840     */
2841    public static String getJdkHttpClientConnectionPoolSize() {
2842        return getProperty(JDK_HTTP_CLIENT_CONNECTION_POOL_SIZE);
2843    }
2844
2845    /**
2846     * Gets the current value from the system properties map.
2847     * <p>
2848     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2849     * </p>
2850     *
2851     * @return the current value from the system properties map.
2852     * @since 3.15.0
2853     */
2854    public static String getJdkHttpClientConnectionWindowSize() {
2855        return getProperty(JDK_HTTP_CLIENT_CONNECTION_WINDOW_SIZE);
2856    }
2857
2858    /**
2859     * Gets the current value from the system properties map.
2860     * <p>
2861     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2862     * </p>
2863     *
2864     * @return the current value from the system properties map.
2865     * @since 3.15.0
2866     */
2867    public static String getJdkHttpClientDisableRetryConnect() {
2868        return getProperty(JDK_HTTP_CLIENT_DISABLE_RETRY_CONNECT);
2869    }
2870
2871    /**
2872     * Gets the current value from the system properties map.
2873     * <p>
2874     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2875     * </p>
2876     *
2877     * @return the current value from the system properties map.
2878     * @since 3.15.0
2879     */
2880    public static String getJdkHttpClientEnableAllMethodRetry() {
2881        return getProperty(JDK_HTTP_CLIENT_ENABLE_ALL_METHOD_RETRY);
2882    }
2883
2884    /**
2885     * Gets the current value from the system properties map.
2886     * <p>
2887     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2888     * </p>
2889     *
2890     * @return the current value from the system properties map.
2891     * @since 3.15.0
2892     */
2893    public static String getJdkHttpClientEnablePush() {
2894        return getProperty(JDK_HTTP_CLIENT_ENABLE_PUSH);
2895    }
2896
2897    /**
2898     * Gets the current value from the system properties map.
2899     * <p>
2900     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2901     * </p>
2902     *
2903     * @return the current value from the system properties map.
2904     * @since 3.15.0
2905     */
2906    public static String getJdkHttpClientHpackMaxHeaderTableSize() {
2907        return getProperty(JDK_HTTP_CLIENT_HPACK_MAX_HEADER_TABLE_SIZE);
2908    }
2909
2910    /**
2911     * Gets the current value from the system properties map.
2912     * <p>
2913     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2914     * </p>
2915     *
2916     * @return the current value from the system properties map.
2917     * @since 3.15.0
2918     */
2919    public static String getJdkHttpClientHttpClientLog() {
2920        return getProperty(JDK_HTTP_CLIENT_HTTP_CLIENT_LOG);
2921    }
2922
2923    /**
2924     * Gets the current value from the system properties map.
2925     * <p>
2926     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2927     * </p>
2928     *
2929     * @return the current value from the system properties map.
2930     * @since 3.15.0
2931     */
2932    public static String getJdkHttpClientKeepAliveTimeout() {
2933        return getProperty(JDK_HTTP_CLIENT_KEEP_ALIVE_TIMEOUT);
2934    }
2935
2936    /**
2937     * Gets the current value from the system properties map.
2938     * <p>
2939     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2940     * </p>
2941     *
2942     * @return the current value from the system properties map.
2943     * @since 3.15.0
2944     */
2945    public static String getJdkHttpClientKeepAliveTimeoutH2() {
2946        return getProperty(JDK_HTTP_CLIENT_KEEP_ALIVE_TIMEOUT_H2);
2947    }
2948
2949    /**
2950     * Gets the current value from the system properties map.
2951     * <p>
2952     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2953     * </p>
2954     *
2955     * @return the current value from the system properties map.
2956     * @since 3.15.0
2957     */
2958    public static String getJdkHttpClientMaxFrameSize() {
2959        return getProperty(JDK_HTTP_CLIENT_MAX_FRAME_SIZE);
2960    }
2961
2962    /**
2963     * Gets the current value from the system properties map.
2964     * <p>
2965     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2966     * </p>
2967     *
2968     * @return the current value from the system properties map.
2969     * @since 3.15.0
2970     */
2971    public static String getJdkHttpClientMaxStreams() {
2972        return getProperty(JDK_HTTP_CLIENT_MAX_STREAMS);
2973    }
2974
2975    /**
2976     * Gets the current value from the system properties map.
2977     * <p>
2978     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2979     * </p>
2980     *
2981     * @return the current value from the system properties map.
2982     * @since 3.15.0
2983     */
2984    public static String getJdkHttpClientReceiveBufferSize() {
2985        return getProperty(JDK_HTTP_CLIENT_RECEIVE_BUFFER_SIZE);
2986    }
2987
2988    /**
2989     * Gets the current value from the system properties map.
2990     * <p>
2991     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
2992     * </p>
2993     *
2994     * @return the current value from the system properties map.
2995     * @since 3.15.0
2996     */
2997    public static String getJdkHttpClientRedirectsRetryLimit() {
2998        return getProperty(JDK_HTTP_CLIENT_REDIRECTS_RETRY_LIMIT);
2999    }
3000
3001    /**
3002     * Gets the current value from the system properties map.
3003     * <p>
3004     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3005     * </p>
3006     *
3007     * @return the current value from the system properties map.
3008     * @since 3.15.0
3009     */
3010    public static String getJdkHttpClientSendBufferSize() {
3011        return getProperty(JDK_HTTP_CLIENT_SEND_BUFFER_SIZE);
3012    }
3013
3014    /**
3015     * Gets the current value from the system properties map.
3016     * <p>
3017     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3018     * </p>
3019     *
3020     * @return the current value from the system properties map.
3021     * @since 3.15.0
3022     */
3023    public static String getJdkHttpClientWebSocketWriteBufferSize() {
3024        return getProperty(JDK_HTTP_CLIENT_WEB_SOCKET_WRITE_BUFFER_SIZE);
3025    }
3026
3027    /**
3028     * Gets the current value from the system properties map.
3029     * <p>
3030     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3031     * </p>
3032     *
3033     * @return the current value from the system properties map.
3034     * @since 3.15.0
3035     */
3036    public static String getJdkHttpClientWindowSize() {
3037        return getProperty(JDK_HTTP_CLIENT_WINDOW_SIZE);
3038    }
3039
3040    /**
3041     * Gets the current value from the system properties map.
3042     * <p>
3043     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3044     * </p>
3045     *
3046     * @return the current value from the system properties map.
3047     * @since 3.15.0
3048     */
3049    public static String getJdkHttpServerMaxConnections() {
3050        return getProperty(JDK_HTTP_SERVER_MAX_CONNECTIONS);
3051    }
3052
3053    /**
3054     * Gets the current value from the system properties map.
3055     * <p>
3056     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3057     * </p>
3058     *
3059     * @return the current value from the system properties map.
3060     * @since 3.15.0
3061     */
3062    public static String getJdkHttpsNegotiateCbt() {
3063        return getProperty(JDK_HTTPS_NEGOTIATE_CBT);
3064    }
3065
3066    /**
3067     * Gets the current value from the system properties map.
3068     * <p>
3069     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3070     * </p>
3071     *
3072     * @return the current value from the system properties map.
3073     * @since 3.15.0
3074     */
3075    public static String getJdkIncludeInExceptions() {
3076        return getProperty(JDK_INCLUDE_IN_EXCEPTIONS);
3077    }
3078
3079    /**
3080     * Gets the current value from the system properties map.
3081     * <p>
3082     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3083     * </p>
3084     *
3085     * @return the current value from the system properties map.
3086     * @since 3.15.0
3087     */
3088    public static String getJdkInternalHttpClientDisableHostNameVerification() {
3089        return getProperty(JDK_INTERNAL_HTTP_CLIENT_DISABLE_HOST_NAME_VERIFICATION);
3090    }
3091
3092    /**
3093     * Gets the current value from the system properties map.
3094     * <p>
3095     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3096     * </p>
3097     *
3098     * @return the current value from the system properties map.
3099     * @since 3.15.0
3100     */
3101    public static String getJdkIoPermissionsUseCanonicalPath() {
3102        return getProperty(JDK_IO_PERMISSIONS_USE_CANONICAL_PATH);
3103    }
3104
3105    /**
3106     * Gets the current value from the system properties map.
3107     * <p>
3108     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3109     * </p>
3110     *
3111     * @return the current value from the system properties map.
3112     * @since 3.15.0
3113     */
3114    public static String getJdkJndiLdapObjectFactoriesFilter() {
3115        return getProperty(JDK_JNDI_LDAP_OBJECT_FACTORIES_FILTER);
3116    }
3117
3118    /**
3119     * Gets the current value from the system properties map.
3120     * <p>
3121     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3122     * </p>
3123     *
3124     * @return the current value from the system properties map.
3125     * @since 3.15.0
3126     */
3127    public static String getJdkJndiObjectFactoriesFilter() {
3128        return getProperty(JDK_JNDI_OBJECT_FACTORIES_FILTER);
3129    }
3130
3131    /**
3132     * Gets the current value from the system properties map.
3133     * <p>
3134     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3135     * </p>
3136     *
3137     * @return the current value from the system properties map.
3138     * @since 3.15.0
3139     */
3140    public static String getJdkJndiRmiObjectFactoriesFilter() {
3141        return getProperty(JDK_JNDI_RMI_OBJECT_FACTORIES_FILTER);
3142    }
3143
3144    /**
3145     * Gets the current value from the system properties map.
3146     * <p>
3147     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3148     * </p>
3149     *
3150     * @return the current value from the system properties map.
3151     * @since 3.15.0
3152     */
3153    public static String getJdkModuleMain() {
3154        return getProperty(JDK_MODULE_MAIN);
3155    }
3156
3157    /**
3158     * Gets the current value from the system properties map.
3159     * <p>
3160     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3161     * </p>
3162     *
3163     * @return the current value from the system properties map.
3164     * @since 3.15.0
3165     */
3166    public static String getJdkModuleMainClass() {
3167        return getProperty(JDK_MODULE_MAIN_CLASS);
3168    }
3169
3170    /**
3171     * Gets the current value from the system properties map.
3172     * <p>
3173     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3174     * </p>
3175     *
3176     * @return the current value from the system properties map.
3177     * @since 3.15.0
3178     */
3179    public static String getJdkModulePath() {
3180        return getProperty(JDK_MODULE_PATH);
3181    }
3182
3183    /**
3184     * Gets the current value from the system properties map.
3185     * <p>
3186     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3187     * </p>
3188     *
3189     * @return the current value from the system properties map.
3190     * @since 3.15.0
3191     */
3192    public static String getJdkModuleUpgradePath() {
3193        return getProperty(JDK_MODULE_UPGRADE_PATH);
3194    }
3195
3196    /**
3197     * Gets the current value from the system properties map.
3198     * <p>
3199     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3200     * </p>
3201     *
3202     * @return the current value from the system properties map.
3203     * @since 3.15.0
3204     */
3205    public static String getJdkNetUnixDomainTmpDir() {
3206        return getProperty(JDK_NET_UNIX_DOMAIN_TMPDIR);
3207    }
3208
3209    /**
3210     * Gets the current value from the system properties map.
3211     * <p>
3212     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3213     * </p>
3214     *
3215     * @return the current value from the system properties map.
3216     * @since 3.15.0
3217     */
3218    public static String getJdkNetUrlClassPathShowIgnoredClassPathEntries() {
3219        return getProperty(JDK_NET_URL_CLASS_PATH_SHOW_IGNORED_CLASS_PATH_ENTRIES);
3220    }
3221
3222    /**
3223     * Gets the current value from the system properties map.
3224     * <p>
3225     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3226     * </p>
3227     *
3228     * @return the current value from the system properties map.
3229     * @since 3.15.0
3230     */
3231    public static String getJdkSerialFilter() {
3232        return getProperty(JDK_SERIAL_FILTER);
3233    }
3234
3235    /**
3236     * Gets the current value from the system properties map.
3237     * <p>
3238     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3239     * </p>
3240     *
3241     * @return the current value from the system properties map.
3242     * @since 3.15.0
3243     */
3244    public static String getJdkSerialFilterFactory() {
3245        return getProperty(JDK_SERIAL_FILTER_FACTORY);
3246    }
3247
3248    /**
3249     * Gets the current value from the system properties map.
3250     * <p>
3251     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3252     * </p>
3253     *
3254     * @return the current value from the system properties map.
3255     * @since 3.15.0
3256     */
3257    public static String getJdkTlsClientSignatureSchemes() {
3258        return getProperty(JDK_TLS_CLIENT_SIGNATURE_SCHEMES);
3259    }
3260
3261    /**
3262     * Gets the current value from the system properties map.
3263     * <p>
3264     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3265     * </p>
3266     *
3267     * @return the current value from the system properties map.
3268     * @since 3.15.0
3269     */
3270    public static String getJdkTlsNamedGroups() {
3271        return getProperty(JDK_TLS_NAMED_GROUPS);
3272    }
3273
3274    /**
3275     * Gets the current value from the system properties map.
3276     * <p>
3277     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3278     * </p>
3279     *
3280     * @return the current value from the system properties map.
3281     * @since 3.15.0
3282     */
3283    public static String getJdkTlsServerSignatureSchemes() {
3284        return getProperty(JDK_TLS_SERVER_SIGNATURE_SCHEMES);
3285    }
3286
3287    /**
3288     * Gets the current value from the system properties map.
3289     * <p>
3290     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3291     * </p>
3292     *
3293     * @return the current value from the system properties map.
3294     * @since 3.15.0
3295     */
3296    public static String getJdkVirtualThreadSchedulerMaxPoolSize() {
3297        return getProperty(JDK_VIRTUAL_THREAD_SCHEDULER_MAXPOOLSIZE);
3298    }
3299
3300    /**
3301     * Gets the current value from the system properties map.
3302     * <p>
3303     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3304     * </p>
3305     *
3306     * @return the current value from the system properties map.
3307     * @since 3.15.0
3308     */
3309    public static String getJdkVirtualThreadSchedulerParallelism() {
3310        return getProperty(JDK_VIRTUAL_THREAD_SCHEDULER_PARALLELISM);
3311    }
3312
3313    /**
3314     * Gets the current value from the system properties map.
3315     * <p>
3316     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3317     * </p>
3318     *
3319     * @return the current value from the system properties map.
3320     * @since 3.15.0
3321     */
3322    public static String getJdkXmlCdataChunkSize() {
3323        return getProperty(JDK_XML_CDATA_CHUNK_SIZE);
3324    }
3325
3326    /**
3327     * Gets the current value from the system properties map.
3328     * <p>
3329     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3330     * </p>
3331     *
3332     * @return the current value from the system properties map.
3333     * @since 3.15.0
3334     */
3335    public static String getJdkXmlDtdSupport() {
3336        return getProperty(JDK_XML_DTD_SUPPORT);
3337    }
3338
3339    /**
3340     * Gets the current value from the system properties map.
3341     * <p>
3342     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3343     * </p>
3344     *
3345     * @return the current value from the system properties map.
3346     * @since 3.15.0
3347     */
3348    public static String getJdkXmlElementAttributeLimit() {
3349        return getProperty(JDK_XML_ELEMENT_ATTRIBUTE_LIMIT);
3350    }
3351
3352    /**
3353     * Gets the current value from the system properties map.
3354     * <p>
3355     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3356     * </p>
3357     *
3358     * @return the current value from the system properties map.
3359     * @since 3.15.0
3360     */
3361    public static String getJdkXmlEnableExtensionFunctions() {
3362        return getProperty(JDK_XML_ENABLE_EXTENSION_FUNCTIONS);
3363    }
3364
3365    /**
3366     * Gets the current value from the system properties map.
3367     * <p>
3368     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3369     * </p>
3370     *
3371     * @return the current value from the system properties map.
3372     * @since 3.15.0
3373     */
3374    public static String getJdkXmlEntityExpansionLimit() {
3375        return getProperty(JDK_XML_ENTITY_EXPANSION_LIMIT);
3376    }
3377
3378    /**
3379     * Gets the current value from the system properties map.
3380     * <p>
3381     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3382     * </p>
3383     *
3384     * @return the current value from the system properties map.
3385     * @since 3.15.0
3386     */
3387    public static String getJdkXmlEntityReplacementLimit() {
3388        return getProperty(JDK_XML_ENTITY_REPLACEMENT_LIMIT);
3389    }
3390
3391    /**
3392     * Gets the current value from the system properties map.
3393     * <p>
3394     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3395     * </p>
3396     *
3397     * @return the current value from the system properties map.
3398     * @since 3.15.0
3399     */
3400    public static String getJdkXmlIsStandalone() {
3401        return getProperty(JDK_XML_IS_STANDALONE);
3402    }
3403
3404    /**
3405     * Gets the current value from the system properties map.
3406     * <p>
3407     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3408     * </p>
3409     *
3410     * @return the current value from the system properties map.
3411     * @since 3.15.0
3412     */
3413    public static String getJdkXmlJdkCatalogResolve() {
3414        return getProperty(JDK_XML_JDK_CATALOG_RESOLVE);
3415    }
3416
3417    /**
3418     * Gets the current value from the system properties map.
3419     * <p>
3420     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3421     * </p>
3422     *
3423     * @return the current value from the system properties map.
3424     * @since 3.15.0
3425     */
3426    public static String getJdkXmlMaxElementDepth() {
3427        return getProperty(JDK_XML_MAX_ELEMENT_DEPTH);
3428    }
3429
3430    /**
3431     * Gets the current value from the system properties map.
3432     * <p>
3433     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3434     * </p>
3435     *
3436     * @return the current value from the system properties map.
3437     * @since 3.15.0
3438     */
3439    public static String getJdkXmlMaxGeneralEntitySizeLimit() {
3440        return getProperty(JDK_XML_MAX_GENERAL_ENTITY_SIZE_LIMIT);
3441    }
3442
3443    /**
3444     * Gets the current value from the system properties map.
3445     * <p>
3446     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3447     * </p>
3448     *
3449     * @return the current value from the system properties map.
3450     * @since 3.15.0
3451     */
3452    public static String getJdkXmlMaxOccurLimit() {
3453        return getProperty(JDK_XML_MAX_OCCUR_LIMIT);
3454    }
3455
3456    /**
3457     * Gets the current value from the system properties map.
3458     * <p>
3459     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3460     * </p>
3461     *
3462     * @return the current value from the system properties map.
3463     * @since 3.15.0
3464     */
3465    public static String getJdkXmlMaxParameterEntitySizeLimit() {
3466        return getProperty(JDK_XML_MAX_PARAMETER_ENTITY_SIZE_LIMIT);
3467    }
3468
3469    /**
3470     * Gets the current value from the system properties map.
3471     * <p>
3472     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3473     * </p>
3474     *
3475     * @return the current value from the system properties map.
3476     * @since 3.15.0
3477     */
3478    public static String getJdkXmlMaxXmlNameLimit() {
3479        return getProperty(JDK_XML_MAX_XML_NAME_LIMIT);
3480    }
3481
3482    /**
3483     * Gets the current value from the system properties map.
3484     * <p>
3485     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3486     * </p>
3487     *
3488     * @return the current value from the system properties map.
3489     * @since 3.15.0
3490     */
3491    public static String getJdkXmlOverrideDefaultParser() {
3492        return getProperty(JDK_XML_OVERRIDE_DEFAULT_PARSER);
3493    }
3494
3495    /**
3496     * Gets the current value from the system properties map.
3497     * <p>
3498     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3499     * </p>
3500     *
3501     * @return the current value from the system properties map.
3502     * @since 3.15.0
3503     */
3504    public static String getJdkXmlResetSymbolTable() {
3505        return getProperty(JDK_XML_RESET_SYMBOL_TABLE);
3506    }
3507
3508    /**
3509     * Gets the current value from the system properties map.
3510     * <p>
3511     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3512     * </p>
3513     *
3514     * @return the current value from the system properties map.
3515     * @since 3.15.0
3516     */
3517    public static String getJdkXmlTotalEntitySizeLimit() {
3518        return getProperty(JDK_XML_TOTAL_ENTITY_SIZE_LIMIT);
3519    }
3520
3521    /**
3522     * Gets the current value from the system properties map.
3523     * <p>
3524     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3525     * </p>
3526     *
3527     * @return the current value from the system properties map.
3528     * @since 3.15.0
3529     */
3530    public static String getJdkXmlXsltcIsStandalone() {
3531        return getProperty(JDK_XML_XSLTC_IS_STANDALONE);
3532    }
3533
3534    /**
3535     * Gets the current value from the system properties map.
3536     * <p>
3537     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3538     * </p>
3539     *
3540     * @return the current value from the system properties map.
3541     */
3542    public static String getLineSeparator() {
3543        return getProperty(LINE_SEPARATOR);
3544    }
3545
3546    /**
3547     * Gets the current value from the system properties map.
3548     * <p>
3549     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3550     * </p>
3551     *
3552     * @param defaultIfAbsent get this Supplier when the property is empty or throws SecurityException.
3553     * @return the current value from the system properties map.
3554     * @since 3.15.0
3555     */
3556    public static String getLineSeparator(final Supplier<String> defaultIfAbsent) {
3557        return getProperty(LINE_SEPARATOR, defaultIfAbsent);
3558    }
3559
3560    /**
3561     * Gets the current value for the property named {@code key} as a {@code long}.
3562     *
3563     * @param key             The key
3564     * @param defaultIfAbsent The default value
3565     * @return a {@code long} or defaultIfAbsent
3566     */
3567    public static long getLong(final String key, final LongSupplier defaultIfAbsent) {
3568        final String str = getProperty(key);
3569        return str == null ? defaultIfAbsent != null ? defaultIfAbsent.getAsLong() : 0 : Long.parseLong(str);
3570    }
3571
3572    /**
3573     * Gets the current value from the system properties map.
3574     * <p>
3575     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3576     * </p>
3577     *
3578     * @return the current value from the system properties map.
3579     * @since 3.15.0
3580     */
3581    public static String getNativeEncoding() {
3582        return getProperty(NATIVE_ENCODING);
3583    }
3584
3585    /**
3586     * Gets the current value from the system properties map.
3587     * <p>
3588     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3589     * </p>
3590     *
3591     * @return the current value from the system properties map.
3592     * @since 3.15.0
3593     */
3594    public static String getNetworkAddressCacheNegativeTtl() {
3595        return getProperty(NETWORK_ADDRESS_CACHE_NEGATIVE_TTL);
3596    }
3597
3598    /**
3599     * Gets the current value from the system properties map.
3600     * <p>
3601     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3602     * </p>
3603     *
3604     * @return the current value from the system properties map.
3605     * @since 3.15.0
3606     */
3607    public static String getNetworkAddressCacheStaleTtl() {
3608        return getProperty(NETWORK_ADDRESS_CACHE_STALE_TTL);
3609    }
3610
3611    /**
3612     * Gets the current value from the system properties map.
3613     * <p>
3614     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3615     * </p>
3616     *
3617     * @return the current value from the system properties map.
3618     * @since 3.15.0
3619     */
3620    public static String getNetworkAddressCacheTtl() {
3621        return getProperty(NETWORK_ADDRESS_CACHE_TTL);
3622    }
3623
3624    /**
3625     * Gets the current value from the system properties map.
3626     * <p>
3627     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3628     * </p>
3629     *
3630     * @return the current value from the system properties map.
3631     * @since 3.15.0
3632     */
3633    public static String getOrgJcpXmlDsigSecureValidation() {
3634        return getProperty(ORG_JCP_XML_DSIG_SECURE_VALIDATION);
3635    }
3636
3637    /**
3638     * Gets the current value from the system properties map.
3639     * <p>
3640     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3641     * </p>
3642     *
3643     * @return the current value from the system properties map.
3644     * @since 3.15.0
3645     */
3646    public static String getOrgOpenJdkJavaUtilStreamTripwire() {
3647        return getProperty(ORG_OPENJDK_JAVA_UTIL_STREAM_TRIPWIRE);
3648    }
3649
3650    /**
3651     * Gets the current value from the system properties map.
3652     * <p>
3653     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3654     * </p>
3655     *
3656     * @return the current value from the system properties map.
3657     */
3658    public static String getOsArch() {
3659        return getProperty(OS_ARCH);
3660    }
3661
3662    /**
3663     * Gets the current value from the system properties map.
3664     * <p>
3665     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3666     * </p>
3667     *
3668     * @return the current value from the system properties map.
3669     */
3670    public static String getOsName() {
3671        return getProperty(OS_NAME);
3672    }
3673
3674    /**
3675     * Gets the current value from the system properties map.
3676     * <p>
3677     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3678     * </p>
3679     *
3680     * @return the current value from the system properties map.
3681     */
3682    public static String getOsVersion() {
3683        return getProperty(OS_VERSION);
3684    }
3685
3686    /**
3687     * Gets the current value from the system properties map.
3688     * <p>
3689     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3690     * </p>
3691     *
3692     * @return the current value from the system properties map.
3693     */
3694    public static String getPathSeparator() {
3695        return getProperty(PATH_SEPARATOR);
3696    }
3697
3698    /**
3699     * Gets a System property, defaulting to {@code null} if the property cannot be read.
3700     * <p>
3701     * If a {@link SecurityException} is caught, the return value is {@code null}.
3702     * </p>
3703     *
3704     * @param property the system property name
3705     * @return the system property value or {@code null} if a security problem occurs
3706     */
3707    public static String getProperty(final String property) {
3708        return getProperty(property, Suppliers.nul());
3709    }
3710
3711    /**
3712     * Gets a System property, defaulting to {@code null} if the property cannot be read.
3713     * <p>
3714     * If a {@link SecurityException} is caught, the return value is {@code null}.
3715     * </p>
3716     *
3717     * @param property        the system property name.
3718     * @param defaultIfAbsent use this value when the property is empty or throws SecurityException.
3719     * @return the system property value or {@code null} if a security problem occurs
3720     */
3721    static String getProperty(final String property, final String defaultIfAbsent) {
3722        return getProperty(property, () -> defaultIfAbsent);
3723    }
3724
3725    /**
3726     * Gets a System property, defaulting to {@code null} if the property cannot be read.
3727     * <p>
3728     * If a {@link SecurityException} is caught, the return value is {@code null}.
3729     * </p>
3730     *
3731     * @param property        the system property name.
3732     * @param defaultIfAbsent get this Supplier when the property is empty or throws SecurityException.
3733     * @return the system property value or {@code null} if a security problem occurs
3734     */
3735    static String getProperty(final String property, final Supplier<String> defaultIfAbsent) {
3736        try {
3737            if (StringUtils.isEmpty(property)) {
3738                return Suppliers.get(defaultIfAbsent);
3739            }
3740            final String value = System.getProperty(property);
3741            return StringUtils.getIfEmpty(value, defaultIfAbsent);
3742        } catch (final SecurityException ignore) {
3743            // We are not allowed to look at this property.
3744            //
3745            // System.err.println("Caught a SecurityException reading the system property '" + property
3746            // + "'; the SystemUtils property value will default to null.");
3747            return defaultIfAbsent.get();
3748        }
3749    }
3750
3751    /**
3752     * Gets the current value from the system properties map.
3753     * <p>
3754     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3755     * </p>
3756     *
3757     * @return the current value from the system properties map.
3758     * @since 3.15.0
3759     */
3760    public static String getSocksProxyHost() {
3761        return getProperty(SOCKS_PROXY_HOST);
3762    }
3763
3764    /**
3765     * Gets the current value from the system properties map.
3766     * <p>
3767     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3768     * </p>
3769     *
3770     * @return the current value from the system properties map.
3771     * @since 3.15.0
3772     */
3773    public static String getSocksProxyPort() {
3774        return getProperty(SOCKS_PROXY_PORT);
3775    }
3776
3777    /**
3778     * Gets the current value from the system properties map.
3779     * <p>
3780     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3781     * </p>
3782     *
3783     * @return the current value from the system properties map.
3784     * @since 3.15.0
3785     */
3786    public static String getSocksProxyVersion() {
3787        return getProperty(SOCKS_PROXY_VERSION);
3788    }
3789
3790    /**
3791     * Gets the current value from the system properties map.
3792     * <p>
3793     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3794     * </p>
3795     *
3796     * @return the current value from the system properties map.
3797     * @since 3.15.0
3798     */
3799    public static String getStdErrEncoding() {
3800        return getProperty(STDERR_ENCODING);
3801    }
3802
3803    /**
3804     * Gets the current value from the system properties map.
3805     * <p>
3806     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3807     * </p>
3808     *
3809     * @return the current value from the system properties map.
3810     * @since 3.15.0
3811     */
3812    public static String getStdOutEncoding() {
3813        return getProperty(STDOUT_ENCODING);
3814    }
3815
3816    /**
3817     * Gets the current value from the system properties map.
3818     * <p>
3819     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3820     * </p>
3821     *
3822     * @return the current value from the system properties map.
3823     * @since 3.15.0
3824     */
3825    public static String getSunNetHttpServerDrainAmount() {
3826        return getProperty(SUN_NET_HTTP_SERVER_DRAIN_AMOUNT);
3827    }
3828
3829    /**
3830     * Gets the current value from the system properties map.
3831     * <p>
3832     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3833     * </p>
3834     *
3835     * @return the current value from the system properties map.
3836     * @since 3.15.0
3837     */
3838    public static String getSunNetHttpServerIdleInterval() {
3839        return getProperty(SUN_NET_HTTP_SERVER_IDLE_INTERVAL);
3840    }
3841
3842    /**
3843     * Gets the current value from the system properties map.
3844     * <p>
3845     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3846     * </p>
3847     *
3848     * @return the current value from the system properties map.
3849     * @since 3.15.0
3850     */
3851    public static String getSunNetHttpServerMaxIdleConnections() {
3852        return getProperty(SUN_NET_HTTP_SERVER_MAX_IDLE_CONNECTIONS);
3853    }
3854
3855    /**
3856     * Gets the current value from the system properties map.
3857     * <p>
3858     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3859     * </p>
3860     *
3861     * @return the current value from the system properties map.
3862     * @since 3.15.0
3863     */
3864    public static String getSunNetHttpServerMaxReqHeaders() {
3865        return getProperty(SUN_NET_HTTP_SERVER_MAX_REQ_HEADERS);
3866    }
3867
3868    /**
3869     * Gets the current value from the system properties map.
3870     * <p>
3871     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3872     * </p>
3873     *
3874     * @return the current value from the system properties map.
3875     * @since 3.15.0
3876     */
3877    public static String getSunNetHttpServerMaxReqTime() {
3878        return getProperty(SUN_NET_HTTP_SERVER_MAX_REQ_TIME);
3879    }
3880
3881    /**
3882     * Gets the current value from the system properties map.
3883     * <p>
3884     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3885     * </p>
3886     *
3887     * @return the current value from the system properties map.
3888     * @since 3.15.0
3889     */
3890    public static String getSunNetHttpServerMaxRspTime() {
3891        return getProperty(SUN_NET_HTTP_SERVER_MAX_RSP_TIME);
3892    }
3893
3894    /**
3895     * Gets the current value from the system properties map.
3896     * <p>
3897     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3898     * </p>
3899     *
3900     * @return the current value from the system properties map.
3901     * @since 3.15.0
3902     */
3903    public static String getSunNetHttpServerNoDelay() {
3904        return getProperty(SUN_NET_HTTP_SERVER_NO_DELAY);
3905    }
3906
3907    /**
3908     * Gets the current value from the system properties map.
3909     * <p>
3910     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3911     * </p>
3912     *
3913     * @return the current value from the system properties map.
3914     * @since 3.15.0
3915     */
3916    public static String getSunSecurityKrb5Principal() {
3917        return getProperty(SUN_SECURITY_KRB5_PRINCIPAL);
3918    }
3919
3920    /**
3921     * Gets the current value from the system properties map.
3922     * <p>
3923     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3924     * </p>
3925     *
3926     * @return the current value from the system properties map.
3927     */
3928    public static String getUserCountry() {
3929        return getProperty(USER_COUNTRY);
3930    }
3931
3932    /**
3933     * Gets the current value from the system properties map.
3934     * <p>
3935     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3936     * </p>
3937     *
3938     * @return the current value from the system properties map.
3939     */
3940    public static String getUserDir() {
3941        return getProperty(USER_DIR);
3942    }
3943
3944    /**
3945     * Gets the current value from the system properties map.
3946     * <p>
3947     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3948     * </p>
3949     *
3950     * @return the current value from the system properties map.
3951     * @since 3.15.0
3952     */
3953    public static String getUserExtensions() {
3954        return getProperty(USER_EXTENSIONS);
3955    }
3956
3957    /**
3958     * Gets the current value from the system properties map.
3959     * <p>
3960     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3961     * </p>
3962     *
3963     * @return the current value from the system properties map.
3964     */
3965    public static String getUserHome() {
3966        return getProperty(USER_HOME);
3967    }
3968
3969    /**
3970     * Gets the current value from the system properties map.
3971     * <p>
3972     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3973     * </p>
3974     *
3975     * @return the current value from the system properties map.
3976     */
3977    public static String getUserLanguage() {
3978        return getProperty(USER_LANGUAGE);
3979    }
3980
3981    /**
3982     * Gets the current value from the system properties map.
3983     * <p>
3984     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3985     * </p>
3986     *
3987     * @return the current value from the system properties map.
3988     */
3989    public static String getUserName() {
3990        return getProperty(USER_NAME);
3991    }
3992
3993    /**
3994     * Gets the current value from the system properties map.
3995     * <p>
3996     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
3997     * </p>
3998     *
3999     * @param defaultValue get this Supplier when the property is empty or throws SecurityException.
4000     * @return the current value from the system properties map.
4001     * @since 3.15.0
4002     */
4003    public static String getUserName(final String defaultValue) {
4004        return getProperty(USER_NAME, defaultValue);
4005    }
4006
4007    /**
4008     * Gets the current value from the system properties map.
4009     * <p>
4010     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
4011     * </p>
4012     *
4013     * @return the current value from the system properties map.
4014     * @since 3.15.0
4015     */
4016    public static String getUserRegion() {
4017        return getProperty(USER_REGION);
4018    }
4019
4020    /**
4021     * Gets the current value from the system properties map.
4022     * <p>
4023     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
4024     * </p>
4025     *
4026     * @return the current value from the system properties map.
4027     * @since 3.15.0
4028     */
4029    public static String getUserScript() {
4030        return getProperty(USER_SCRIPT);
4031    }
4032
4033    /**
4034     * Gets the current value from the system properties map.
4035     * <p>
4036     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
4037     * </p>
4038     *
4039     * @return the current value from the system properties map.
4040     */
4041    public static String getUserTimezone() {
4042        return getProperty(USER_TIMEZONE);
4043    }
4044
4045    /**
4046     * Gets the current value from the system properties map.
4047     * <p>
4048     * Returns {@code null} if the property cannot be read due to a {@link SecurityException}.
4049     * </p>
4050     *
4051     * @return the current value from the system properties map.
4052     * @since 3.15.0
4053     */
4054    public static String getUserVariant() {
4055        return getProperty(USER_VARIANT);
4056    }
4057
4058    /**
4059     * Make private in 4.0.
4060     *
4061     * @deprecated TODO Make private in 4.0.
4062     */
4063    @Deprecated
4064    public SystemProperties() {
4065        // empty
4066    }
4067}