Description
Motivation
Java 8 is the current baseline of JUnit 5. It was released over 10 years ago and recent versions of Java have introduced many enhancements that make moving to a more recent JDK as the baseline for JUnit alluring. Moreover, there is movement in the ecosystem regarding this issue. For example, Spring has changed their baseline to JDK 17+ with 6.x and free support for 5.x will end in 2024. Similarly, AssertJ will move to Java 17. Therefore, we should consider making a similar move. Doing so would mean bumping the major version number and would allow us to clean up and simplify a number of things. This issue serves as a starting point for collecting those topics and tasks. For users stuck on Java 8 we will extend support for the last 5.x release for at least a year and backport security and important bug fixes to 5.x.
Todos
- Bump JDK baseline to 17 #4249
- Remove deprecated code
- Clean up
ConsoleLauncher
CLI (remove single-dash long options and mode without subcommand) - Look for issues labeled with
type: breaking change
and decide whether they can be addressed in 6.0 - Remove some if not all multi-release JAR code
- Remove support for legacy semantics for field/method search #4575
- Support
AutoCloseable
instead ofCloseableResource
inStore
? - Remove
@TempDir
per context mode -
Change default behavior forToo early for thatTestInstancePostProcessor
and similar extensions wrt. method-levelExtensionContext
? - Decide for and adopt new project logo #4576
- Rename repository #4577
- Bump Kotlin language version to latest stable
- Discontinue junit-platform-jfr and register listeners programmatically in junit-platform-launcher #4579
- Remove
ReflectionUtils.isRecord*
methods and replace with calls toClass.isRecord()
- Use
List.of
etc. instead ofCollections.emptyList
etc. - Deprecate assertions that do not produce helpful error messages #4578
- Add nullability annotations to public API (use jspecify)
- Replace reflection in
JRE.determineCurrentVersion()
- Resolve
TODO [#4246]
comments within the code base