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