Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8123668

Need to remove compile and runtime dependency on BINARY_STUB

    XMLWordPrintable

Details

    Description

      We need to remove the compile and runtime dependency on BINARY_STUB, and also stop getting the native libraries from the JRE when running tests. This means that either all tests need to depend on jfxrt.jar rather than trying to run against the class files (systemTests and web already do this) or else the java.library.path needs to be set.

      While we were in the process of open-sourcing the various pieces of JavaFX, it made sense to use the "BINARY_STUB" to compile and run (test) against to pick up those pieces that were not available in the "rt" repo. Now that everything in the runtime is open-source, this is no longer needed.

      More importantly, the way it is implemented in the build.gradle script is causing the following problems:

      1) If you remove a class, it will still be there in the binary stub, which means that if you missed a reference to it, your local build will compile, but a full clean build without a stub will fail. See RT-31928.

      2) The way tests are built, we can compile against the class definitions in the binary stub and then run against the built jfxrt.jar causing a NoSuchMethodError at runtime (this just happened recently).

      3) When running test in the graphics or media modules, for example, native libraries are loaded from the JDK and not from the just-built FX runtime.

      4) Our internal Hudson builds still need to set the BINARY_STUB to the built jfxrt.jar when running tests. See RT-30866.

      Attachments

        Issue Links

          Activity

            People

              kcr Kevin Rushforth
              kcr Kevin Rushforth
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                Imported: