1 # Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. 2 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 # 4 # This code is free software; you can redistribute it and/or modify it 5 # under the terms of the GNU General Public License version 2 only, as 6 # published by the Free Software Foundation. 7 # 8 # This code is distributed in the hope that it will be useful, but WITHOUT 9 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 10 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 11 # version 2 for more details (a copy is included in the LICENSE file that 12 # accompanied this code). 13 # 14 # You should have received a copy of the GNU General Public License version 15 # 2 along with this work; if not, write to the Free Software Foundation, 16 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 17 # 18 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 19 # or visit www.oracle.com if you need additional information or have any 20 # questions. 21 # 22 23 # java.lang package and VM runtime support 24 jdk_lang = \ 25 java/lang \ 26 -java/lang/management \ 27 -java/lang/instrument \ 28 sun/invoke \ 29 sun/misc \ 30 sun/reflect \ 31 jdk/lambda \ 32 vm 33 34 # All of the java.util package 35 jdk_util = \ 36 :jdk_util_other \ 37 :jdk_collections \ 38 :jdk_concurrent \ 39 :jdk_stream 40 41 # All util components not part of some other util category 42 jdk_util_other = \ 43 java/util \ 44 sun/util \ 45 -:jdk_collections \ 46 -:jdk_concurrent \ 47 -:jdk_stream 48 49 # java.util.concurrent (JSR-166) 50 # Maintained by JSR-166 EG (Doug Lea et al) 51 # Deque and PriorityQueue are also generally maintained by JSR-166 52 jdk_concurrent = \ 53 java/util/concurrent \ 54 java/util/Deque \ 55 java/util/PriorityQueue 56 57 # Java Collections Framework 58 jdk_collections = \ 59 java/util/AbstractCollection \ 60 java/util/AbstractList \ 61 java/util/AbstractMap \ 62 java/util/AbstractSequentialList \ 63 java/util/ArrayList \ 64 java/util/Arrays \ 65 java/util/BitSet \ 66 java/util/Collection \ 67 java/util/Collections \ 68 java/util/EnumMap \ 69 java/util/EnumSet \ 70 java/util/Comparator \ 71 java/util/Iterator \ 72 java/util/HashMap \ 73 java/util/Hashtable \ 74 java/util/IdentityHashMap \ 75 java/util/List \ 76 java/util/LinkedHashMap \ 77 java/util/LinkedHashSet \ 78 java/util/LinkedList \ 79 java/util/Map \ 80 java/util/NavigableMap \ 81 java/util/TimSort \ 82 java/util/TreeMap \ 83 java/util/Vector \ 84 java/util/WeakHashMap 85 86 # java.util.stream (JSR-335) 87 jdk_stream = \ 88 java/util/Optional \ 89 java/util/function \ 90 java/util/stream 91 92 jdk_math = \ 93 java/math 94 95 jdk_io = \ 96 java/io 97 98 jdk_nio = \ 99 java/nio \ 100 sun/nio \ 101 jdk/nio 102 103 jdk_net = \ 104 java/net \ 105 com/sun/net/httpserver \ 106 sun/net \ 107 jdk/net 108 109 jdk_time = \ 110 java/time 111 112 jdk_rmi = \ 113 java/rmi \ 114 javax/rmi/ssl \ 115 sun/rmi 116 117 jdk_security1 = \ 118 java/security 119 120 jdk_security2 = \ 121 javax/crypto \ 122 javax/xml/crypto \ 123 com/sun/crypto 124 125 jdk_security3 = \ 126 javax/security \ 127 -javax/security/auth/kerberos \ 128 com/sun/security \ 129 -com/sun/security/jgss \ 130 com/sun/org/apache/xml/internal/security \ 131 sun/security \ 132 -sun/security/krb5 \ 133 -sun/security/jgss \ 134 javax/net \ 135 sun/net/www/protocol/https \ 136 com/sun/net/ssl \ 137 lib/security 138 139 jdk_security4 = \ 140 com/sun/security/jgss \ 141 javax/security/auth/kerberos \ 142 sun/security/krb5 \ 143 sun/security/jgss 144 145 jdk_security = \ 146 :jdk_security1 \ 147 :jdk_security2 \ 148 :jdk_security3 \ 149 :jdk_security4 150 151 jdk_text = \ 152 java/text \ 153 sun/text 154 155 jdk_management = \ 156 java/lang/management \ 157 com/sun/management \ 158 sun/management 159 160 jdk_instrument = \ 161 java/lang/instrument 162 163 jdk_jmx = \ 164 javax/management \ 165 com/sun/jmx 166 167 jdk_jdi = \ 168 com/sun/jdi 169 170 # java launcher specific tests, Note: do not include this group into any groups 171 # that potentially could be included into a jprt test rule, as the complementary 172 # closed group includes awt SplashScreen and these tests may not run 173 # satisfacotorily on all platforms and profiles thus this group must always 174 # be a stand-alone group 175 jdk_launcher = \ 176 tools/launcher \ 177 sun/tools 178 179 # 180 # Tool (and tool API) tests are split into core and svc groups 181 # 182 core_tools = \ 183 tools \ 184 sun/tools/java \ 185 sun/tools/native2ascii \ 186 sun/tools/jrunscript 187 188 svc_tools = \ 189 com/sun/tools/attach \ 190 com/sun/tracing \ 191 sun/tools \ 192 -sun/tools/java \ 193 -sun/tools/native2ascii \ 194 -sun/tools/jrunscript \ 195 sun/jvmstat \ 196 demo/jvmti 197 198 jdk_tools = \ 199 :core_tools \ 200 :svc_tools 201 202 # 203 # Catch-all for other areas with a small number of tests 204 # 205 jdk_other = \ 206 java/sql \ 207 javax/sql \ 208 javax/naming \ 209 javax/script \ 210 javax/smartcardio \ 211 javax/xml \ 212 -javax/xml/crypto \ 213 jdk/asm \ 214 com/sun/jndi \ 215 com/sun/corba \ 216 lib/testlibrary \ 217 sample 218 219 # 220 # SCTP is its own group as it is highly sensitive to kernel/network config 221 # 222 jdk_sctp = \ 223 com/sun/nio/sctp 224 225 226 # 227 # core group to run all core area tests 228 # 229 jdk_core = \ 230 :jdk_lang \ 231 :jdk_util \ 232 :jdk_math \ 233 :jdk_io \ 234 :jdk_nio \ 235 :jdk_net \ 236 :jdk_rmi \ 237 :jdk_time \ 238 :jdk_security \ 239 :jdk_text \ 240 :core_tools \ 241 :jdk_other 242 243 # 244 # svc group to run all serviceability area tests 245 # 246 jdk_svc = \ 247 :jdk_management \ 248 :jdk_instrument \ 249 :jdk_jmx \ 250 :jdk_jdi \ 251 :svc_tools 252 253 ############################# 254 255 # 256 # Client area groups 257 # 258 259 jdk_awt = \ 260 java/awt \ 261 com/sun/awt \ 262 com/apple/eawt \ 263 sun/awt 264 265 jdk_2d = \ 266 javax/print \ 267 sun/pisces \ 268 sun/java2d 269 270 jdk_beans = \ 271 java/beans 272 273 jdk_swing = \ 274 javax/accessibility \ 275 javax/swing \ 276 com/sun/java/swing 277 278 jdk_sound = \ 279 javax/sound 280 281 jdk_imageio = \ 282 javax/imageio 283 284 jdk_desktop = \ 285 :jdk_awt \ 286 :jdk_2d \ 287 :jdk_beans \ 288 :jdk_swing \ 289 :jdk_sound \ 290 :jdk_imageio 291 292 ############################# 293 # 294 # Stable test groups 295 # 296 297 jdk_stable = \ 298 :jdk_core \ 299 :jdk_svc \ 300 :jdk_beans \ 301 :jdk_imageio \ 302 :jdk_sound \ 303 :jdk_sctp \ 304 javax/accessibility \ 305 com/sun/java/swing \ 306 sun/pisces \ 307 com/sun/awt 308 309 310 ############################################################################### 311 # Profile-based Test Group Definitions 312 # 313 # These groups define the tests that cover the different possible runtimes: 314 # - compact1, compact2, compact3, full JRE, JDK 315 # 316 # In addition they support testing of the minimal VM on compact1 and compact2. 317 # Essentially this defines groups based around the specified API's and VM 318 # services available in the runtime. 319 # 320 # The groups are defined hierarchically in two forms: 321 # - The need_xxx groups list all the tests that have a dependency on 322 # a specific profile. This is either because it tests a feature in 323 # that profile, or the test infrastructure uses a feature in that 324 # profile. 325 # - The primary groups are defined in terms of the other primary groups 326 # combined with the needs_xxx groups (including and excluding them as 327 # appropriate). For example the jre can run all tests from compact3, plus 328 # those from needs_jre, but excluding those from need_jdk. 329 # 330 # The bottom group defines all the actual tests to be considered, simply 331 # by listing the top-level test directories. 332 333 # Full JDK can run all tests 334 # 335 jdk = \ 336 :jre \ 337 :needs_jdk 338 339 # Tests that require a full JDK to execute. Either they test a feature 340 # only in the JDK or they use tools that are only in the JDK. The latter 341 # can be resolved in some cases by using tools from the compile-jdk. 342 # 343 needs_jdk = \ 344 :jdk_jdi \ 345 com/sun/tools \ 346 demo \ 347 sun/security/tools/jarsigner \ 348 sun/rmi/rmic \ 349 sun/tools \ 350 sun/jvmstat \ 351 tools \ 352 com/sun/jmx/remote/NotificationMarshalVersions/TestSerializationMismatch.java \ 353 java/io/Serializable/serialver \ 354 java/lang/invoke/lambda/LambdaAccessControlDoPrivilegedTest.java \ 355 java/lang/invoke/lambda/LambdaAccessControlTest.java \ 356 java/lang/invoke/lambda/LambdaAsm.java \ 357 java/lang/System/MacEncoding/TestFileEncoding.java \ 358 java/net/URLClassLoader/closetest/GetResourceAsStream.java \ 359 java/util/Collections/EmptyIterator.java \ 360 java/util/concurrent/locks/Lock/TimedAcquireLeak.java \ 361 java/util/jar/JarInputStream/ExtraFileInMetaInf.java \ 362 java/util/logging/AnonLoggerWeakRefLeak.sh \ 363 java/util/logging/LoggerWeakRefLeak.sh \ 364 java/util/zip/3GBZipFiles.sh \ 365 jdk/lambda/FDTest.java \ 366 jdk/lambda/separate/Compiler.java \ 367 sun/management/jmxremote/bootstrap/JvmstatCountersTest.java \ 368 sun/management/jmxremote/bootstrap/LocalManagementTest.java \ 369 sun/management/jmxremote/bootstrap/CustomLauncherTest.java \ 370 sun/misc/JarIndex/metaInfFilenames/Basic.java \ 371 sun/misc/JarIndex/JarIndexMergeForClassLoaderTest.java \ 372 sun/reflect/CallerSensitive/CallerSensitiveFinder.java \ 373 sun/reflect/CallerSensitive/MissingCallerSensitive.java \ 374 sun/security/util/Resources/NewNamesFormat.java \ 375 vm/verifier/defaultMethods/DefaultMethodRegressionTestsRun.java \ 376 javax/xml/ws/clientjar/TestWsImport.java 377 378 # JRE adds further tests to compact3 379 # 380 jre = \ 381 :compact3 \ 382 :needs_jre \ 383 -:needs_jdk 384 385 # Tests that require the full JRE 386 # 387 needs_jre = \ 388 :needs_charsets \ 389 :jdk_desktop \ 390 com/sun/corba \ 391 com/sun/jndi/cosnaming \ 392 sun/net/ftp \ 393 sun/net/www/protocol/ftp \ 394 sun/security/tools/policytool \ 395 java/net/URI/URItoURLTest.java \ 396 java/net/URL/URIToURLTest.java \ 397 java/net/URLConnection/HandleContentTypeWithAttrs.java \ 398 java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh \ 399 java/security/Security/ClassLoaderDeadlock/Deadlock.sh \ 400 java/util/jar/Manifest/CreateManifest.java \ 401 java/util/logging/TestMainAppContext.java \ 402 java/util/logging/TestLoggingWithMainAppContext.java \ 403 java/util/ResourceBundle/Control/Bug6530694.java \ 404 java/text/Bidi/BidiConformance.java \ 405 java/text/Bidi/BidiEmbeddingTest.java \ 406 java/text/Bidi/Bug7042148.java \ 407 java/text/Bidi/Bug7051769.java \ 408 javax/crypto/Cipher/CipherStreamClose.java \ 409 javax/management/monitor/AttributeArbitraryDataTypeTest.java \ 410 javax/management/mxbean/AmbiguousConstructorTest.java \ 411 javax/management/mxbean/ExceptionDiagnosisTest.java \ 412 javax/management/mxbean/LeakTest.java \ 413 javax/management/mxbean/MXBeanTest.java \ 414 javax/management/mxbean/PropertyNamesTest.java \ 415 jdk/lambda/vm/InterfaceAccessFlagsTest.java \ 416 sun/misc/URLClassPath/ClassnameCharTest.java 417 418 # Tests dependent on the optional charsets.jar 419 # These are isolated for easy exclusions 420 # 421 needs_charsets = \ 422 java/io/OutputStreamWriter/TestWrite.java \ 423 java/nio/charset/RemovingSunIO/SunioAlias.java \ 424 java/nio/charset/coders/Check.java \ 425 java/nio/charset/Charset/CharsetContainmentTest.java \ 426 java/nio/charset/Charset/Contains.java \ 427 java/nio/charset/Charset/NIOCharsetAvailabilityTest.java \ 428 java/nio/charset/Charset/RegisteredCharsets.java \ 429 java/nio/charset/CharsetEncoder/Flush.java \ 430 java/nio/charset/coders/CheckSJISMappingProp.sh \ 431 java/nio/charset/coders/ResetISO2022JP.java \ 432 java/util/Locale/InternationalBAT.java \ 433 java/util/Locale/LocaleProviders.sh \ 434 java/util/Calendar/CldrFormatNamesTest.java \ 435 java/util/TimeZone/CLDRDisplayNamesTest.java \ 436 java/util/zip/ZipCoding.java \ 437 sun/nio/cs/EucJpLinux0212.java \ 438 sun/nio/cs/EUCJPUnderflowDecodeTest.java \ 439 sun/nio/cs/EuroConverter.java \ 440 sun/nio/cs/JISAutoDetectTest.java \ 441 sun/nio/cs/OLD/TestIBMDB.java \ 442 sun/nio/cs/SJISCanEncode.java \ 443 sun/nio/cs/Test6254467.java \ 444 sun/nio/cs/TestCompoundTest.java \ 445 sun/nio/cs/TestCp834_SBCS.java \ 446 sun/nio/cs/TestEUC_TW.java \ 447 sun/nio/cs/TestISO2022CNDecoder.java \ 448 sun/nio/cs/TestISO2022JPEncoder.java \ 449 sun/nio/cs/TestISO2022JPSubBytes.java \ 450 sun/nio/cs/TestIllegalSJIS.java \ 451 sun/nio/cs/TestJIS0208Decoder.java \ 452 sun/nio/cs/TestJIS0212Decoder.java \ 453 sun/nio/cs/TestMiscEUC_JP.java \ 454 sun/nio/cs/TestSJIS0213_SM.java \ 455 sun/nio/cs/BufferUnderflowEUCTWTest.java \ 456 sun/nio/cs/CheckCaseInsensitiveEncAliases.java \ 457 sun/nio/cs/CheckHistoricalNames.java \ 458 sun/nio/cs/EucJpLinuxDecoderRecoveryTest.java \ 459 sun/nio/cs/HWKatakanaMS932EncodeTest.java \ 460 sun/nio/cs/ISCIITest.java \ 461 sun/nio/cs/LatinCharReplacementTWTest.java \ 462 sun/nio/cs/NIOJISAutoDetectTest.java \ 463 sun/nio/cs/StreamEncoderClose.java \ 464 sun/nio/cs/SurrogateGB18030Test.java \ 465 sun/nio/cs/SurrogateTestEUCTW.java \ 466 sun/nio/cs/SurrogateTestHKSCS.java \ 467 sun/nio/cs/TestConverterDroppedCharacters.java \ 468 sun/nio/cs/TestCp93xSISO.java \ 469 sun/nio/cs/TestIBM1364.java \ 470 sun/nio/cs/TestIBMBugs.java \ 471 sun/nio/cs/TestIllegalISO2022Esc.java \ 472 sun/nio/cs/TestISO2022JP.java \ 473 sun/nio/cs/TestMS5022X.java \ 474 sun/nio/cs/TestSJIS0213.java \ 475 sun/nio/cs/TestTrailingEscapesISO2022JP.java \ 476 sun/nio/cs/TestUni2HKSCS.java \ 477 sun/nio/cs/ZeroedByteArrayEUCTWTest.java 478 479 # Compact 3 adds further tests to compact2 480 # 481 compact3 = \ 482 :compact2 \ 483 :needs_compact3 \ 484 -:needs_jre \ 485 -:needs_jdk 486 487 488 # Tests that require compact3 API's 489 # 490 needs_compact3 = \ 491 :jdk_instrument \ 492 :jdk_jmx \ 493 :jdk_management \ 494 :jdk_sctp \ 495 com/sun/jndi \ 496 com/sun/org/apache/xml/internal/security \ 497 com/sun/security/auth \ 498 com/sun/security/sasl \ 499 com/sun/security/jgss \ 500 com/sun/tracing \ 501 java/util/prefs \ 502 javax/naming \ 503 javax/security \ 504 javax/smartcardio \ 505 javax/sql/rowset \ 506 javax/xml/crypto \ 507 sun/security/acl \ 508 sun/security/jgss \ 509 sun/security/krb5 \ 510 java/lang/annotation/AnnotationType/AnnotationTypeDeadlockTest.java \ 511 java/lang/System/MacEncoding/TestFileEncoding.java \ 512 java/nio/channels/AsynchronousSocketChannel/Leaky.java \ 513 java/security/PermissionCollection/Concurrent.java \ 514 java/security/Principal/Implies.java \ 515 java/security/cert/GetInstance.java \ 516 java/util/logging/DrainFindDeadlockTest.java \ 517 java/util/logging/LoggingMXBeanTest.java \ 518 java/util/logging/TestLogConfigurationDeadLock.java \ 519 java/util/logging/TestLoggerBundleSync.java \ 520 sun/net/www/http/KeepAliveCache/B5045306.java \ 521 sun/security/provider/PolicyFile/Alias.java \ 522 sun/security/provider/PolicyFile/Comparator.java \ 523 sun/security/provider/PolicyFile/SelfWildcard.java \ 524 sun/security/ssl/SSLEngineImpl/SSLEngineDeadlock.java \ 525 sun/security/util/Oid/OidFormat.java \ 526 sun/security/util/Resources/Format.java \ 527 sun/security/util/Resources/NewNamesFormat.java 528 529 # Compact 2 adds full VM tests 530 compact2 = \ 531 :compact2_minimal \ 532 :compact1 \ 533 :needs_full_vm_compact2 \ 534 -:needs_compact3 \ 535 -:needs_jre \ 536 -:needs_jdk 537 538 # Tests that require compact2 API's and a full VM 539 # 540 needs_full_vm_compact2 = 541 542 # Minimal VM on Compact 2 adds in some compact2 tests 543 # 544 compact2_minimal = \ 545 :compact1_minimal \ 546 :needs_compact2 \ 547 -:needs_compact3 \ 548 -:needs_jre \ 549 -:needs_jdk 550 551 # Tests that require compact2 API's 552 # 553 needs_compact2 = \ 554 :jdk_rmi \ 555 :jdk_time \ 556 com/sun/org/apache \ 557 com/sun/net/httpserver \ 558 java/sql \ 559 javax/sql \ 560 javax/xml \ 561 jdk/lambda \ 562 sun/net/www/http \ 563 sun/net/www/protocol/http \ 564 java/io/BufferedReader/Lines.java \ 565 java/lang/reflect/DefaultStaticTest/DefaultStaticInvokeTest.java \ 566 java/lang/CharSequence/DefaultTest.java \ 567 java/lang/IntegralPrimitiveToString.java \ 568 java/lang/PrimitiveSumMinMaxTest.java \ 569 java/lang/String/StringJoinTest.java \ 570 java/lang/Thread/StopThrowable.java \ 571 java/net/Authenticator/B4769350.java \ 572 java/net/Authenticator/Deadlock.java \ 573 java/net/CookieHandler/LocalHostCookie.java \ 574 java/net/CookieHandler/CookieManagerTest.java \ 575 java/net/CookieHandler/EmptyCookieHeader.java \ 576 java/net/HttpCookie/IllegalCookieNameTest.java \ 577 java/net/HttpURLConnection/UnmodifiableMaps.java \ 578 java/net/ResponseCache/Test.java \ 579 java/net/URLClassLoader/ClassLoad.java \ 580 java/net/URLClassLoader/closetest/CloseTest.java \ 581 java/net/URLPermission/URLTest.java \ 582 java/nio/Buffer/Chars.java \ 583 java/nio/file/Files/StreamTest.java \ 584 java/security/BasicPermission/Wildcard.java \ 585 java/util/Arrays/ParallelPrefix.java \ 586 java/util/Arrays/SetAllTest.java \ 587 java/util/BitSet/BitSetStreamTest.java \ 588 java/util/Collection/CollectionDefaults.java \ 589 java/util/Collections/CheckedIdentityMap.java \ 590 java/util/Collections/CheckedMapBash.java \ 591 java/util/Collections/CheckedSetBash.java \ 592 java/util/Collections/EmptyCollectionSerialization.java \ 593 java/util/Collections/EmptyNavigableMap.java \ 594 java/util/Collections/EmptyNavigableSet.java \ 595 java/util/Collections/UnmodifiableMapEntrySet.java \ 596 java/util/Comparator/BasicTest.java \ 597 java/util/Comparator/TypeTest.java \ 598 java/util/Iterator/IteratorDefaults.java \ 599 java/util/Iterator/PrimitiveIteratorDefaults.java \ 600 java/util/List/ListDefaults.java \ 601 java/util/Map/BasicSerialization.java \ 602 java/util/Map/Defaults.java \ 603 java/util/Map/EntryComparators.java \ 604 java/util/Optional/Basic.java \ 605 java/util/Optional/BasicDouble.java \ 606 java/util/Optional/BasicInt.java \ 607 java/util/Optional/BasicLong.java \ 608 java/util/Random/RandomStreamTest.java \ 609 java/util/ResourceBundle/Bug6359330.java \ 610 java/util/Spliterator/SpliteratorCharacteristics.java \ 611 java/util/Spliterator/SpliteratorCollisions.java \ 612 java/util/Spliterator/SpliteratorLateBindingFailFastTest.java \ 613 java/util/Spliterator/SpliteratorTraversingAndSplittingTest.java \ 614 java/util/StringJoiner/MergeTest.java \ 615 java/util/StringJoiner/StringJoinerTest.java \ 616 java/util/concurrent/atomic/AtomicReferenceTest.java \ 617 java/util/function/BinaryOperator/BasicTest.java \ 618 java/util/logging/LoggerSupplierAPIsTest.java \ 619 java/util/zip/ZipFile/StreamZipEntriesTest.java \ 620 java/util/zip/ZipFile/DeleteTempJar.java \ 621 javax/crypto/Cipher/CipherStreamClose.java \ 622 sun/net/www/protocol/https/HttpsURLConnection/HttpsCreateSockTest.java \ 623 sun/net/www/protocol/https/HttpsURLConnection/HttpsSocketFacTest.java 624 625 # Compact 1 adds full VM tests 626 # 627 compact1 = \ 628 :compact1_minimal \ 629 :needs_full_vm_compact1 \ 630 -:needs_compact2 \ 631 -:needs_full_vm_compact2 \ 632 -:needs_compact3 \ 633 -:needs_jre \ 634 -:needs_jdk 635 636 # Tests that require compact1 API's and a full VM 637 # 638 needs_full_vm_compact1 = 639 640 # All tests that run on the most minimal configuration: Minimal VM on Compact 1 641 compact1_minimal = \ 642 com \ 643 java \ 644 javax \ 645 jdk \ 646 lib \ 647 sample \ 648 sun \ 649 vm \ 650 -:needs_full_vm_compact1 \ 651 -:needs_full_vm_compact2 \ 652 -:needs_compact2 \ 653 -:needs_compact3 \ 654 -:needs_jre \ 655 -:needs_jdk