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