jtreg: versions, dependencies, and build issues.
Jonathan Gibbons
jonathan.gibbons at oracle.com
Thu Apr 28 22:03:36 UTC 2016
This message is about jtreg, running it, and building it.
First, running jtreg.
It is time to raise the baseline JDK used to run jtreg. SInce forever,
JDK 5 has been sufficient, but that is blocking the adoption of new
libraries and new features. And so, coming soon, JDK 7 or 8 will be
required to run jtreg. This is just about the version of JDK used to
run jtreg; for those that need to do so, jtreg will continue to support
being able to run tests on older versions of JDK, including all releases
on OpenJDK.
The rest of this message is about building jtreg. I am aware that
building jtreg can initially be daunting, because of the trouble finding
some of the dependencies that are required. My "head in the sand"
answer has generally been to say that once you have found copies of the
dependencies you can use, the actual build step is relatively easy, but
yes, finding easily available copies of some of the dependencies is
hard, and getting harder. This needs to be addressed.
-----------------
Currently, jtreg requires the following:
JDK:
If you want to run tests on very old releases (back to 1.2), you
need a JDK that can compile code for the that release.
If you want to run tests on medium old releases (back to 1.5), you
need a JDK that can compile code for the that release.
Otherwise, you need a recent release of JDK.
JavaHelp:
I am looking into removing this dependency from jtreg. JavaHelp is
currently on java.net and its future is uncertain. It is not core
functionality for jtreg and I doubt anyone would miss it. There are
better ways to provide documentation these days.
JavaTest/jtharness:
Available on OpenJDK CodeTools.
This component has its own long list of dependencies, and I am
engaging with that team to see how many of those dependencies could be
made optional. Most are not of interest to jtreg.
JCov:
Available on OpenJDK CodeTools.
This is not strictly required for jtreg. (Need to verify it is
truly optional)
AsmTools:
Available on OpenJDK CodeTools. (Not to be confused with ObjectWeb
ASM)
This is not strictly required for jtreg itself, but is required to
run some of the JDK tests.
JUnit:
We are looking to move forward to JUnit 4.10
TestNG:
We are looking to move forward to TestNG 4.9.5.
Ant:
Currently, this is required to build jtreg. (jtreg provides an Ant
task)
Although it would be a breaking change, I think we should change
the Java part of the Ant task to be a top level class instead of a
nested class, such that the dependence on Ant can be made optional.
HTMLCheck:
Optional tool for use when building jtreg
LinkLint:
Optional tool for use when building jtreg
Xalan:
Currently required, to help build JavaHelp data files. If we drop
support for JavaHelp, this dependence will go away.
-------------
Looking at the list, I think we should be able to make it much
easier/simpler to build jtreg. We should be able to reduce the
dependencies to recent versions of JDK, JT Harness and other code from
OpenJDK Code Tools, JUnit and TestNG.
-- Jon
More information about the jtreg-dev
mailing list