View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   * http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  
20  package org.apache.commons.lang3;
21  
22  import static org.junit.jupiter.api.Assertions.assertEquals;
23  import static org.junit.jupiter.api.Assertions.assertFalse;
24  import static org.junit.jupiter.api.Assertions.assertNotNull;
25  import static org.junit.jupiter.api.Assertions.assertNull;
26  import static org.junit.jupiter.api.Assertions.assertTrue;
27  
28  import java.io.File;
29  import java.lang.reflect.Constructor;
30  import java.lang.reflect.Field;
31  import java.lang.reflect.Modifier;
32  import java.util.Locale;
33  
34  import org.junit.jupiter.api.Test;
35  
36  /**
37   * Unit tests {@link SystemUtils}.
38   *
39   * Only limited testing can be performed.
40   */
41  public class SystemUtilsTest extends AbstractLangTest {
42  
43      /**
44       * Returns the value of the SystemUtils.IS_JAVA_X field for the versions >= 9.
45       */
46      private boolean getIS_JAVA(final int version) throws Exception {
47          return SystemUtils.class.getField("IS_JAVA_" + version).getBoolean(null);
48      }
49  
50      /**
51       * Returns the last supported version with the SystemUtils.IS_JAVA_X fields.
52       */
53      public int getLastSupportedJavaVersion() {
54          int lastSupportedVersion = 0;
55  
56          for (final Field field : SystemUtils.class.getFields()) {
57              if (field.getName().matches("IS_JAVA_\\d+")) {
58                  lastSupportedVersion = Math.max(lastSupportedVersion, Integer.parseInt(field.getName().substring(8)));
59              }
60          }
61  
62          return lastSupportedVersion;
63      }
64  
65      @Test
66      @SuppressWarnings("deprecation")
67      public void test_IS_JAVA() throws Exception {
68          final String javaVersion = SystemUtils.JAVA_VERSION;
69          final int lastSupportedVersion = getLastSupportedJavaVersion();
70          if (javaVersion == null) {
71              assertFalse(SystemUtils.IS_JAVA_1_1);
72              assertFalse(SystemUtils.IS_JAVA_1_2);
73              assertFalse(SystemUtils.IS_JAVA_1_3);
74              assertFalse(SystemUtils.IS_JAVA_1_4);
75              assertFalse(SystemUtils.IS_JAVA_1_5);
76              assertFalse(SystemUtils.IS_JAVA_1_6);
77              assertFalse(SystemUtils.IS_JAVA_1_7);
78              assertFalse(SystemUtils.IS_JAVA_1_8);
79              assertFalse(SystemUtils.IS_JAVA_1_9);
80              assertFalse(SystemUtils.IS_JAVA_10);
81              assertFalse(SystemUtils.IS_JAVA_11);
82              assertFalse(SystemUtils.IS_JAVA_12);
83              assertFalse(SystemUtils.IS_JAVA_13);
84              assertFalse(SystemUtils.IS_JAVA_14);
85              assertFalse(SystemUtils.IS_JAVA_15);
86              assertFalse(SystemUtils.IS_JAVA_16);
87              assertFalse(SystemUtils.IS_JAVA_17);
88              assertFalse(SystemUtils.IS_JAVA_18);
89              assertFalse(SystemUtils.IS_JAVA_19);
90              assertFalse(SystemUtils.IS_JAVA_20);
91              assertFalse(SystemUtils.IS_JAVA_21);
92              assertFalse(SystemUtils.IS_JAVA_22);
93              for (int version = 9; version <= lastSupportedVersion; version++) {
94                  assertFalse(getIS_JAVA(version));
95              }
96          } else if (javaVersion.startsWith("1.8")) {
97              assertFalse(SystemUtils.IS_JAVA_1_1);
98              assertFalse(SystemUtils.IS_JAVA_1_2);
99              assertFalse(SystemUtils.IS_JAVA_1_3);
100             assertFalse(SystemUtils.IS_JAVA_1_4);
101             assertFalse(SystemUtils.IS_JAVA_1_5);
102             assertFalse(SystemUtils.IS_JAVA_1_6);
103             assertFalse(SystemUtils.IS_JAVA_1_7);
104             assertTrue(SystemUtils.IS_JAVA_1_8);
105             assertFalse(SystemUtils.IS_JAVA_1_9);
106             assertFalse(SystemUtils.IS_JAVA_10);
107             assertFalse(SystemUtils.IS_JAVA_11);
108             assertFalse(SystemUtils.IS_JAVA_12);
109             assertFalse(SystemUtils.IS_JAVA_13);
110             assertFalse(SystemUtils.IS_JAVA_14);
111             assertFalse(SystemUtils.IS_JAVA_15);
112             assertFalse(SystemUtils.IS_JAVA_16);
113             assertFalse(SystemUtils.IS_JAVA_17);
114             assertFalse(SystemUtils.IS_JAVA_18);
115             assertFalse(SystemUtils.IS_JAVA_19);
116             assertFalse(SystemUtils.IS_JAVA_20);
117             assertFalse(SystemUtils.IS_JAVA_21);
118             assertFalse(SystemUtils.IS_JAVA_22);
119 
120             for (int version = 9; version <= lastSupportedVersion; version++) {
121                 assertFalse(getIS_JAVA(version));
122             }
123 
124         } else if (!javaVersion.startsWith("1.")) {
125             assertFalse(SystemUtils.IS_JAVA_1_1);
126             assertFalse(SystemUtils.IS_JAVA_1_2);
127             assertFalse(SystemUtils.IS_JAVA_1_3);
128             assertFalse(SystemUtils.IS_JAVA_1_4);
129             assertFalse(SystemUtils.IS_JAVA_1_5);
130             assertFalse(SystemUtils.IS_JAVA_1_6);
131             assertFalse(SystemUtils.IS_JAVA_1_7);
132             assertFalse(SystemUtils.IS_JAVA_1_8);
133             assertEquals(javaVersion.startsWith("9"), SystemUtils.IS_JAVA_1_9);
134 
135             for (int version = 9; version <= lastSupportedVersion; version++) {
136                 assertEquals(javaVersion.startsWith("" + version), getIS_JAVA(version));
137             }
138 
139         } else {
140             System.out.println("Can't test IS_JAVA value: " + javaVersion);
141         }
142     }
143 
144     @Test
145     public void test_IS_OS() {
146         final String osName = System.getProperty("os.name");
147         if (osName == null) {
148             assertFalse(SystemUtils.IS_OS_WINDOWS);
149             assertFalse(SystemUtils.IS_OS_UNIX);
150             assertFalse(SystemUtils.IS_OS_SOLARIS);
151             assertFalse(SystemUtils.IS_OS_LINUX);
152             assertFalse(SystemUtils.IS_OS_MAC_OSX);
153         } else if (osName.startsWith("Windows")) {
154             assertTrue(SystemUtils.IS_OS_WINDOWS);
155             assertFalse(SystemUtils.IS_OS_ANDROID);
156             assertFalse(SystemUtils.IS_OS_UNIX);
157         } else if (osName.startsWith("Solaris")) {
158             assertTrue(SystemUtils.IS_OS_SOLARIS);
159             assertTrue(SystemUtils.IS_OS_UNIX);
160             assertFalse(SystemUtils.IS_OS_ANDROID);
161             assertFalse(SystemUtils.IS_OS_WINDOWS);
162         } else if (osName.toLowerCase(Locale.ENGLISH).startsWith("linux")) {
163             assertTrue(SystemUtils.IS_OS_LINUX);
164             assertTrue(SystemUtils.IS_OS_UNIX);
165             assertFalse(SystemUtils.IS_OS_WINDOWS);
166         } else if (osName.startsWith("Mac OS X")) {
167             assertTrue(SystemUtils.IS_OS_MAC_OSX);
168             assertTrue(SystemUtils.IS_OS_UNIX);
169             assertFalse(SystemUtils.IS_OS_ANDROID);
170             assertFalse(SystemUtils.IS_OS_WINDOWS);
171             final boolean macOsValues[] = { SystemUtils.IS_OS_MAC_OSX_BIG_SUR, SystemUtils.IS_OS_MAC_OSX_CATALINA, SystemUtils.IS_OS_MAC_OSX_CHEETAH,
172                     SystemUtils.IS_OS_MAC_OSX_EL_CAPITAN, SystemUtils.IS_OS_MAC_OSX_HIGH_SIERRA, SystemUtils.IS_OS_MAC_OSX_JAGUAR,
173                     SystemUtils.IS_OS_MAC_OSX_LEOPARD, SystemUtils.IS_OS_MAC_OSX_LION, SystemUtils.IS_OS_MAC_OSX_MAVERICKS, SystemUtils.IS_OS_MAC_OSX_MOJAVE,
174                     SystemUtils.IS_OS_MAC_OSX_MONTEREY, SystemUtils.IS_OS_MAC_OSX_MOUNTAIN_LION, SystemUtils.IS_OS_MAC_OSX_PANTHER,
175                     SystemUtils.IS_OS_MAC_OSX_PUMA, SystemUtils.IS_OS_MAC_OSX_SIERRA, SystemUtils.IS_OS_MAC_OSX_SNOW_LEOPARD, SystemUtils.IS_OS_MAC_OSX_SONOMA,
176                     SystemUtils.IS_OS_MAC_OSX_TIGER, SystemUtils.IS_OS_MAC_OSX_VENTURA, SystemUtils.IS_OS_MAC_OSX_YOSEMITE };
177             if (BooleanUtils.or(macOsValues)) {
178                 // If one is true, then only one should be true.
179                 assertTrue(BooleanUtils.xor(macOsValues));
180             }
181         } else if (osName.startsWith("OS/2")) {
182             assertTrue(SystemUtils.IS_OS_OS2);
183             assertFalse(SystemUtils.IS_OS_UNIX);
184             assertFalse(SystemUtils.IS_OS_ANDROID);
185             assertFalse(SystemUtils.IS_OS_WINDOWS);
186         } else if (osName.startsWith("SunOS")) {
187             assertTrue(SystemUtils.IS_OS_SUN_OS);
188             assertTrue(SystemUtils.IS_OS_UNIX);
189             assertFalse(SystemUtils.IS_OS_ANDROID);
190             assertFalse(SystemUtils.IS_OS_WINDOWS);
191         } else if (osName.startsWith("FreeBSD")) {
192             assertTrue(SystemUtils.IS_OS_FREE_BSD);
193             assertTrue(SystemUtils.IS_OS_UNIX);
194             assertFalse(SystemUtils.IS_OS_ANDROID);
195             assertFalse(SystemUtils.IS_OS_WINDOWS);
196         } else {
197             System.err.println("Can't test IS_OS_ value: " + osName);
198         }
199     }
200 
201     @Test
202     public void test_IS_zOS() {
203         final String osName = System.getProperty("os.name");
204         if (osName == null) {
205             assertFalse(SystemUtils.IS_OS_ZOS);
206         } else if (osName.contains("z/OS")) {
207             assertFalse(SystemUtils.IS_OS_WINDOWS);
208             assertTrue(SystemUtils.IS_OS_ZOS);
209         }
210     }
211 
212     /**
213      * Assumes no security manager exists.
214      */
215     @Test
216     public void test_USER_NAME() {
217         assertEquals(System.getProperty("user.name"), SystemUtils.USER_NAME);
218     }
219 
220     @Test
221     public void testConstructor() {
222         assertNotNull(new SystemUtils());
223         final Constructor<?>[] cons = SystemUtils.class.getDeclaredConstructors();
224         assertEquals(1, cons.length);
225         assertTrue(Modifier.isPublic(cons[0].getModifiers()));
226         assertTrue(Modifier.isPublic(SystemUtils.class.getModifiers()));
227         assertFalse(Modifier.isFinal(SystemUtils.class.getModifiers()));
228     }
229 
230     @Test
231     public void testGetEnvironmentVariableAbsent() {
232         final String name = "THIS_ENV_VAR_SHOULD_NOT_EXIST_FOR_THIS_TEST_TO_PASS";
233         final String expected = System.getenv(name);
234         assertNull(expected);
235         final String value = SystemUtils.getEnvironmentVariable(name, "DEFAULT");
236         assertEquals("DEFAULT", value);
237     }
238 
239     @Test
240     public void testGetEnvironmentVariablePresent() {
241         final String name = "PATH";
242         final String expected = System.getenv(name);
243         final String value = SystemUtils.getEnvironmentVariable(name, null);
244         assertEquals(expected, value);
245     }
246 
247     @Test
248     public void testGetHostName() {
249         final String hostName = SystemUtils.getHostName();
250         final String expected = SystemUtils.IS_OS_WINDOWS ? System.getenv("COMPUTERNAME") : System.getenv("HOSTNAME");
251         assertEquals(expected, hostName);
252     }
253 
254     /**
255      * Assumes no security manager exists.
256      */
257     @Test
258     public void testGetJavaHome() {
259         final File dir = SystemUtils.getJavaHome();
260         assertNotNull(dir);
261         assertTrue(dir.exists());
262     }
263 
264     /**
265      * Assumes no security manager exists.
266      */
267     @Test
268     public void testGetJavaIoTmpDir() {
269         final File dir = SystemUtils.getJavaIoTmpDir();
270         assertNotNull(dir);
271         assertTrue(dir.exists());
272     }
273 
274     /**
275      * Assumes no security manager exists.
276      */
277     @Test
278     public void testGetUserDir() {
279         final File dir = SystemUtils.getUserDir();
280         assertNotNull(dir);
281         assertTrue(dir.exists());
282     }
283 
284     /**
285      * Assumes no security manager exists.
286      */
287     @Test
288     public void testGetUserHome() {
289         final File dir = SystemUtils.getUserHome();
290         assertNotNull(dir);
291         assertTrue(dir.exists());
292     }
293 
294     /**
295      * Assumes no security manager exists.
296      */
297     @Test
298     public void testGetUserName() {
299         assertEquals(System.getProperty("user.name"), SystemUtils.getUserName());
300         // Don't overwrite the system property in this test in case something goes awfully wrong.
301         assertEquals(System.getProperty("user.name", "foo"), SystemUtils.getUserName("foo"));
302     }
303 
304     @Test
305     public void testIsJavaVersionAtLeast() {
306         if (SystemUtils.IS_JAVA_1_8) {
307             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_1));
308             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_2));
309             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_3));
310             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_4));
311             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_5));
312             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_6));
313             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_7));
314             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_8));
315             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_9));
316             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_10));
317             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_11));
318             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_12));
319             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_13));
320             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_14));
321             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_15));
322             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_16));
323             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_17));
324             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_18));
325             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_19));
326             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_20));
327             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_21));
328             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_22));
329         } else if (SystemUtils.IS_JAVA_9) {
330             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_1));
331             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_2));
332             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_3));
333             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_4));
334             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_5));
335             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_6));
336             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_7));
337             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_8));
338             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_9));
339             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_10));
340             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_11));
341             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_12));
342             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_13));
343             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_14));
344             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_15));
345             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_16));
346             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_17));
347             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_18));
348             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_19));
349             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_20));
350             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_21));
351             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_22));
352         } else if (SystemUtils.IS_JAVA_10) {
353             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_1));
354             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_2));
355             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_3));
356             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_4));
357             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_5));
358             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_6));
359             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_7));
360             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_8));
361             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_9));
362             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_10));
363             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_11));
364             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_12));
365             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_13));
366             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_14));
367             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_15));
368             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_16));
369             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_17));
370             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_18));
371             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_19));
372             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_20));
373             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_21));
374             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_22));
375         } else if (SystemUtils.IS_JAVA_11) {
376             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_1));
377             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_2));
378             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_3));
379             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_4));
380             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_5));
381             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_6));
382             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_7));
383             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_8));
384             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_9));
385             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_10));
386             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_11));
387             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_12));
388             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_13));
389             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_14));
390             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_15));
391             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_16));
392             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_17));
393             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_18));
394             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_19));
395             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_20));
396             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_21));
397             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_22));
398         } else if (SystemUtils.IS_JAVA_12) {
399             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_1));
400             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_2));
401             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_3));
402             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_4));
403             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_5));
404             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_6));
405             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_7));
406             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_8));
407             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_9));
408             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_10));
409             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_11));
410             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_12));
411             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_13));
412             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_14));
413             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_15));
414             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_16));
415             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_17));
416             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_18));
417             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_19));
418             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_20));
419             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_21));
420             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_22));
421         } else if (SystemUtils.IS_JAVA_13) {
422             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_1));
423             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_2));
424             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_3));
425             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_4));
426             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_5));
427             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_6));
428             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_7));
429             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_8));
430             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_9));
431             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_10));
432             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_11));
433             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_12));
434             assertTrue(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_13));
435             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_14));
436             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_15));
437             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_16));
438             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_17));
439             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_18));
440             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_19));
441             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_20));
442             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_21));
443             assertFalse(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_22));
444         }
445     }
446 
447     @Test
448     public void testIsJavaVersionAtMost() {
449         if (SystemUtils.IS_JAVA_1_8) {
450             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_1));
451             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_2));
452             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_3));
453             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_4));
454             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_5));
455             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_6));
456             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_7));
457             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_8));
458             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_9));
459             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_10));
460             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_11));
461             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_12));
462             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_13));
463             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_14));
464             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_15));
465             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_16));
466             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_17));
467             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_18));
468             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_19));
469             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_20));
470             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_21));
471             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_22));
472         } else if (SystemUtils.IS_JAVA_9) {
473             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_1));
474             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_2));
475             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_3));
476             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_4));
477             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_5));
478             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_6));
479             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_7));
480             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_8));
481             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_9));
482             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_10));
483             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_11));
484             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_12));
485             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_13));
486             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_14));
487             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_15));
488             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_16));
489             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_17));
490             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_18));
491             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_19));
492             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_20));
493             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_21));
494             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_22));
495         } else if (SystemUtils.IS_JAVA_10) {
496             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_1));
497             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_2));
498             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_3));
499             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_4));
500             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_5));
501             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_6));
502             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_7));
503             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_8));
504             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_9));
505             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_10));
506             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_11));
507             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_12));
508             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_13));
509             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_14));
510             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_15));
511             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_16));
512             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_17));
513             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_18));
514             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_19));
515             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_20));
516             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_21));
517             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_22));
518         } else if (SystemUtils.IS_JAVA_11) {
519             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_1));
520             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_2));
521             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_3));
522             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_4));
523             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_5));
524             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_6));
525             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_7));
526             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_8));
527             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_9));
528             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_10));
529             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_11));
530             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_12));
531             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_13));
532             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_14));
533             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_15));
534             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_16));
535             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_17));
536             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_18));
537             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_19));
538             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_20));
539             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_21));
540             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_22));
541         } else if (SystemUtils.IS_JAVA_12) {
542             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_1));
543             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_2));
544             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_3));
545             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_4));
546             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_5));
547             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_6));
548             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_7));
549             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_8));
550             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_9));
551             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_10));
552             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_11));
553             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_12));
554             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_13));
555             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_14));
556             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_15));
557             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_16));
558             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_17));
559             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_18));
560             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_19));
561             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_20));
562             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_21));
563             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_22));
564         } else if (SystemUtils.IS_JAVA_13) {
565             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_1));
566             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_2));
567             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_3));
568             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_4));
569             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_5));
570             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_6));
571             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_7));
572             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_8));
573             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_9));
574             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_10));
575             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_11));
576             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_12));
577             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_13));
578             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_14));
579             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_15));
580             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_16));
581             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_17));
582             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_18));
583             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_19));
584             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_20));
585             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_21));
586             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_22));
587         } else if (SystemUtils.IS_JAVA_14) {
588             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_1));
589             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_2));
590             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_3));
591             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_4));
592             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_5));
593             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_6));
594             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_7));
595             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_8));
596             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_9));
597             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_10));
598             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_11));
599             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_12));
600             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_13));
601             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_14));
602             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_15));
603             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_16));
604             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_17));
605             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_18));
606             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_19));
607             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_20));
608             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_21));
609             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_22));
610         } else if (SystemUtils.IS_JAVA_15) {
611             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_1));
612             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_2));
613             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_3));
614             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_4));
615             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_5));
616             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_6));
617             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_7));
618             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_8));
619             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_9));
620             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_10));
621             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_11));
622             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_12));
623             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_13));
624             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_14));
625             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_15));
626             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_16));
627             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_17));
628             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_18));
629             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_19));
630             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_20));
631             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_21));
632             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_22));
633         } else if (SystemUtils.IS_JAVA_16) {
634             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_1));
635             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_2));
636             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_3));
637             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_4));
638             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_5));
639             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_6));
640             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_7));
641             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_8));
642             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_9));
643             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_10));
644             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_11));
645             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_12));
646             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_13));
647             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_14));
648             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_15));
649             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_16));
650             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_17));
651             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_18));
652             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_19));
653             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_20));
654             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_21));
655             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_22));
656         } else if (SystemUtils.IS_JAVA_17) {
657             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_1));
658             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_2));
659             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_3));
660             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_4));
661             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_5));
662             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_6));
663             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_7));
664             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_8));
665             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_9));
666             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_10));
667             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_11));
668             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_12));
669             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_13));
670             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_14));
671             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_15));
672             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_16));
673             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_17));
674             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_18));
675             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_19));
676             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_20));
677             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_21));
678             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_22));
679         } else if (SystemUtils.IS_JAVA_18) {
680             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_1));
681             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_2));
682             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_3));
683             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_4));
684             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_5));
685             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_6));
686             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_7));
687             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_8));
688             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_9));
689             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_10));
690             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_11));
691             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_12));
692             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_13));
693             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_14));
694             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_15));
695             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_16));
696             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_17));
697             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_18));
698             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_19));
699             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_20));
700             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_21));
701             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_22));
702         } else if (SystemUtils.IS_JAVA_19) {
703             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_1));
704             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_2));
705             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_3));
706             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_4));
707             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_5));
708             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_6));
709             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_7));
710             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_8));
711             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_9));
712             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_10));
713             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_11));
714             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_12));
715             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_13));
716             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_14));
717             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_15));
718             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_16));
719             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_17));
720             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_18));
721             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_19));
722             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_20));
723             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_21));
724             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_22));
725         } else if (SystemUtils.IS_JAVA_20) {
726             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_1));
727             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_2));
728             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_3));
729             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_4));
730             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_5));
731             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_6));
732             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_7));
733             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_8));
734             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_9));
735             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_10));
736             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_11));
737             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_12));
738             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_13));
739             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_14));
740             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_15));
741             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_16));
742             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_17));
743             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_18));
744             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_19));
745             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_20));
746             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_21));
747             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_22));
748         } else if (SystemUtils.IS_JAVA_21) {
749             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_1));
750             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_2));
751             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_3));
752             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_4));
753             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_5));
754             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_6));
755             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_7));
756             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_8));
757             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_9));
758             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_10));
759             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_11));
760             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_12));
761             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_13));
762             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_14));
763             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_15));
764             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_16));
765             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_17));
766             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_18));
767             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_19));
768             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_20));
769             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_21));
770             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_22));
771         } else if (SystemUtils.IS_JAVA_22) {
772             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_1));
773             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_2));
774             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_3));
775             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_4));
776             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_5));
777             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_6));
778             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_7));
779             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_8));
780             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_9));
781             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_10));
782             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_11));
783             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_12));
784             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_13));
785             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_14));
786             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_15));
787             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_16));
788             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_17));
789             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_18));
790             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_19));
791             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_20));
792             assertFalse(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_21));
793             assertTrue(SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_22));
794         }
795     }
796 
797     @Test
798     public void testJavaAwtHeadless() {
799         final String expectedStringValue = System.getProperty("java.awt.headless");
800         final String expectedStringValueWithDefault = System.getProperty("java.awt.headless", "false");
801         assertNotNull(expectedStringValueWithDefault);
802         final boolean expectedValue = Boolean.parseBoolean(expectedStringValue);
803         if (expectedStringValue != null) {
804             assertEquals(expectedStringValue, SystemUtils.JAVA_AWT_HEADLESS);
805         }
806         assertEquals(expectedValue, SystemUtils.isJavaAwtHeadless());
807         assertEquals(expectedStringValueWithDefault, "" + SystemUtils.isJavaAwtHeadless());
808     }
809 
810     @Test
811     public void testJavaVersionMatches() {
812         String javaVersion = null;
813         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
814         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
815         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
816         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
817         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
818         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
819         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
820         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
821         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
822         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
823         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
824         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
825         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
826         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
827         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
828         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
829         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
830         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
831         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
832         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
833         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
834         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
835         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
836         javaVersion = "";
837         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
838         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
839         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
840         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
841         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
842         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
843         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
844         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
845         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
846         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
847         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
848         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
849         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
850         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
851         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
852         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
853         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
854         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
855         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
856         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
857         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
858         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
859         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
860         javaVersion = "1.0";
861         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
862         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
863         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
864         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
865         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
866         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
867         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
868         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
869         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
870         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
871         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
872         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
873         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
874         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
875         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
876         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
877         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
878         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
879         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
880         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
881         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
882         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
883         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
884         javaVersion = "1.1";
885         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
886         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
887         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
888         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
889         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
890         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
891         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
892         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
893         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
894         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
895         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
896         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
897         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
898         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
899         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
900         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
901         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
902         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
903         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
904         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
905         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
906         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
907         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
908         javaVersion = "1.2";
909         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
910         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
911         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
912         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
913         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
914         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
915         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
916         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
917         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
918         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
919         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
920         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
921         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
922         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
923         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
924         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
925         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
926         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
927         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
928         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
929         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
930         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
931         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
932         javaVersion = "1.3.0";
933         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
934         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
935         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
936         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
937         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
938         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
939         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
940         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
941         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
942         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
943         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
944         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
945         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
946         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
947         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
948         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
949         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
950         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
951         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
952         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
953         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
954         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
955         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
956         javaVersion = "1.3.1";
957         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
958         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
959         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
960         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
961         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
962         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
963         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
964         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
965         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
966         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
967         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
968         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
969         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
970         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
971         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
972         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
973         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
974         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
975         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
976         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
977         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
978         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
979         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
980         javaVersion = "1.4.0";
981         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
982         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
983         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
984         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
985         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
986         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
987         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
988         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
989         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
990         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
991         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
992         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
993         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
994         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
995         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
996         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
997         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
998         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
999         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
1000         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
1001         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
1002         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
1003         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
1004         javaVersion = "1.4.1";
1005         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
1006         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
1007         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
1008         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
1009         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
1010         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
1011         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
1012         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
1013         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
1014         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
1015         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
1016         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
1017         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
1018         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
1019         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
1020         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
1021         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
1022         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
1023         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
1024         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
1025         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
1026         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
1027         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
1028         javaVersion = "1.4.2";
1029         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
1030         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
1031         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
1032         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
1033         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
1034         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
1035         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
1036         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
1037         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
1038         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
1039         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
1040         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
1041         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
1042         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
1043         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
1044         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
1045         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
1046         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
1047         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
1048         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
1049         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
1050         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
1051         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
1052         javaVersion = "1.5.0";
1053         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
1054         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
1055         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
1056         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
1057         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
1058         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
1059         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
1060         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
1061         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
1062         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
1063         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
1064         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
1065         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
1066         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
1067         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
1068         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
1069         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
1070         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
1071         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
1072         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
1073         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
1074         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
1075         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
1076         javaVersion = "1.6.0";
1077         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
1078         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
1079         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
1080         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
1081         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
1082         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
1083         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
1084         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
1085         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
1086         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
1087         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
1088         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
1089         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
1090         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
1091         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
1092         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
1093         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
1094         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
1095         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
1096         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
1097         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
1098         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
1099         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
1100         javaVersion = "1.7.0";
1101         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
1102         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
1103         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
1104         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
1105         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
1106         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
1107         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
1108         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
1109         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
1110         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
1111         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
1112         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
1113         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
1114         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
1115         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
1116         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
1117         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
1118         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
1119         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
1120         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
1121         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
1122         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
1123         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
1124         javaVersion = "1.8.0";
1125         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
1126         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
1127         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
1128         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
1129         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
1130         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
1131         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
1132         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
1133         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
1134         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
1135         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
1136         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
1137         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
1138         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
1139         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
1140         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
1141         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
1142         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
1143         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
1144         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
1145         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
1146         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
1147         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
1148         javaVersion = "9";
1149         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
1150         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
1151         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
1152         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
1153         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
1154         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
1155         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
1156         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
1157         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
1158         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
1159         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
1160         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
1161         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
1162         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
1163         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
1164         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
1165         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
1166         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
1167         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
1168         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
1169         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
1170         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
1171         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
1172         javaVersion = "10";
1173         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
1174         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
1175         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
1176         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
1177         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
1178         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
1179         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
1180         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
1181         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
1182         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
1183         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
1184         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
1185         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
1186         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
1187         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
1188         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
1189         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
1190         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
1191         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
1192         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
1193         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
1194         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
1195         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
1196         javaVersion = "11"; // LTS
1197         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
1198         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
1199         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
1200         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
1201         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
1202         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
1203         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
1204         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
1205         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
1206         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
1207         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
1208         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
1209         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
1210         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
1211         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
1212         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
1213         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
1214         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
1215         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
1216         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
1217         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
1218         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
1219         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
1220         javaVersion = "17"; // LTS
1221         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
1222         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
1223         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
1224         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
1225         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
1226         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
1227         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
1228         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
1229         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
1230         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
1231         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
1232         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
1233         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
1234         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
1235         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
1236         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
1237         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
1238         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
1239         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
1240         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
1241         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
1242         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
1243         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
1244         javaVersion = "21"; // LTS
1245         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
1246         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
1247         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
1248         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
1249         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
1250         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
1251         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
1252         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
1253         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
1254         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
1255         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
1256         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
1257         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
1258         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
1259         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
1260         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
1261         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
1262         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
1263         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
1264         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
1265         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
1266         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
1267         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
1268         javaVersion = "22"; // Current
1269         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.0"));
1270         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.1"));
1271         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.2"));
1272         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.3"));
1273         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.4"));
1274         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.5"));
1275         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.6"));
1276         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.7"));
1277         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "1.8"));
1278         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "9"));
1279         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "10"));
1280         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "11"));
1281         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "12"));
1282         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "13"));
1283         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "14"));
1284         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "15"));
1285         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "16"));
1286         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "17"));
1287         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "18"));
1288         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "19"));
1289         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "20"));
1290         assertFalse(SystemUtils.isJavaVersionMatch(javaVersion, "21"));
1291         assertTrue(SystemUtils.isJavaVersionMatch(javaVersion, "22"));
1292     }
1293 
1294     @Test
1295     public void testOSMatchesName() {
1296         String osName = null;
1297         assertFalse(SystemUtils.isOsNameMatch(osName, "Windows"));
1298         osName = "";
1299         assertFalse(SystemUtils.isOsNameMatch(osName, "Windows"));
1300         osName = "Windows 95";
1301         assertTrue(SystemUtils.isOsNameMatch(osName, "Windows"));
1302         osName = "Windows NT";
1303         assertTrue(SystemUtils.isOsNameMatch(osName, "Windows"));
1304         osName = "OS/2";
1305         assertFalse(SystemUtils.isOsNameMatch(osName, "Windows"));
1306     }
1307 
1308     @Test
1309     public void testOSMatchesNameAndVersion() {
1310         String osName = null;
1311         String osVersion = null;
1312         assertFalse(SystemUtils.isOsMatch(osName, osVersion, "Windows 9", "4.1"));
1313         osName = "";
1314         osVersion = "";
1315         assertFalse(SystemUtils.isOsMatch(osName, osVersion, "Windows 9", "4.1"));
1316         osName = "Windows 95";
1317         osVersion = "4.0";
1318         assertFalse(SystemUtils.isOsMatch(osName, osVersion, "Windows 9", "4.1"));
1319         osName = "Windows 95";
1320         osVersion = "4.1";
1321         assertTrue(SystemUtils.isOsMatch(osName, osVersion, "Windows 9", "4.1"));
1322         osName = "Windows 98";
1323         osVersion = "4.1";
1324         assertTrue(SystemUtils.isOsMatch(osName, osVersion, "Windows 9", "4.1"));
1325         osName = "Windows NT";
1326         osVersion = "4.0";
1327         assertFalse(SystemUtils.isOsMatch(osName, osVersion, "Windows 9", "4.1"));
1328         osName = "OS/2";
1329         osVersion = "4.0";
1330         assertFalse(SystemUtils.isOsMatch(osName, osVersion, "Windows 9", "4.1"));
1331     }
1332 
1333     @Test
1334     public void testOsVersionMatches() {
1335         String osVersion = null;
1336         assertFalse(SystemUtils.isOsVersionMatch(osVersion, "10.1"));
1337 
1338         osVersion = "";
1339         assertFalse(SystemUtils.isOsVersionMatch(osVersion, "10.1"));
1340 
1341         osVersion = "10";
1342         assertTrue(SystemUtils.isOsVersionMatch(osVersion, "10.1"));
1343         assertTrue(SystemUtils.isOsVersionMatch(osVersion, "10.1.1"));
1344         assertTrue(SystemUtils.isOsVersionMatch(osVersion, "10.10"));
1345         assertTrue(SystemUtils.isOsVersionMatch(osVersion, "10.10.1"));
1346 
1347         osVersion = "10.1";
1348         assertTrue(SystemUtils.isOsVersionMatch(osVersion, "10.1"));
1349         assertTrue(SystemUtils.isOsVersionMatch(osVersion, "10.1.1"));
1350         assertFalse(SystemUtils.isOsVersionMatch(osVersion, "10.10"));
1351         assertFalse(SystemUtils.isOsVersionMatch(osVersion, "10.10.1"));
1352 
1353         osVersion = "10.1.1";
1354         assertTrue(SystemUtils.isOsVersionMatch(osVersion, "10.1"));
1355         assertTrue(SystemUtils.isOsVersionMatch(osVersion, "10.1.1"));
1356         assertFalse(SystemUtils.isOsVersionMatch(osVersion, "10.10"));
1357         assertFalse(SystemUtils.isOsVersionMatch(osVersion, "10.10.1"));
1358 
1359         osVersion = "10.10";
1360         assertFalse(SystemUtils.isOsVersionMatch(osVersion, "10.1"));
1361         assertFalse(SystemUtils.isOsVersionMatch(osVersion, "10.1.1"));
1362         assertTrue(SystemUtils.isOsVersionMatch(osVersion, "10.10"));
1363         assertTrue(SystemUtils.isOsVersionMatch(osVersion, "10.10.1"));
1364 
1365         osVersion = "10.10.1";
1366         assertFalse(SystemUtils.isOsVersionMatch(osVersion, "10.1"));
1367         assertFalse(SystemUtils.isOsVersionMatch(osVersion, "10.1.1"));
1368         assertTrue(SystemUtils.isOsVersionMatch(osVersion, "10.10"));
1369         assertTrue(SystemUtils.isOsVersionMatch(osVersion, "10.10.1"));
1370     }
1371 }