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