OpenClover 5.0.0 Release Notes

2026-07-16

We are thrilled to announce OpenClover 5.0 — the first major release since the 4.x series began, and the result of years of careful work by the community! This release delivers on promises made throughout the 4.5.x cycle and sets the foundation for even bigger things ahead.

What's New

Java

Official Java 17 support — it's here!

Throughout the 4.5.x releases we methodically chased down every missing language construct, edge case, and instrumentation bug for JDK 17. That work is done. We are proud to announce official, production-ready support for Java 17! You can now instrument and compile code at any language level from 8 to 17, and run it under any JDK/JRE from 8 to 17 with full confidence.

Java 21 and Java 25 runtime verified

Planning your JDK upgrade? Good news: OpenClover now runs cleanly on Java 21 and Java 25, with both versions continuously built and tested. Note that this is runtime support — instrumentation of language features introduced in Java 18+ is not yet supported, that's what the next cycle is for. But if your build toolchain already runs on JDK 21 or the brand-new JDK 25, you won't be blocked.

Java 1.7 support dropped

To clear the path for Java 21 instrumentation support, we are officially dropping Java 1.7. If your OpenClover configuration specifies 1.7 as the language level, it will be silently treated as 8 and a warning will be printed. Since all OpenClover classes have always required JRE 8+ at runtime, this change affects only a very small number of projects still targeting a JVM that reached end-of-life years ago.

Groovy — finally some love!

Full support for Groovy 3.x through 5.x

Groovy has been waiting for this for a while. We've rewritten OpenClover's Groovy AST transformations from scratch and updated all related libraries to bring solid, tested compatibility with Groovy 3.x, 4.x, and 5.x.

Two exciting new instrumentation capabilities come with this:

Heads-up — visibility change: OpenClover has always injected a helper method $CLV_R$() into instrumented classes. Its visibility has changed from private to package-private. If you use a library that scans non-private members via reflection (e.g. a serialization framework), you may need to add an exclusion for this method in that library's configuration.

Groovy 2.x support removed

Groovy 2.x reached end of life years ago, and maintaining compatibility was holding back Groovy 3–5 work. OpenClover 5.0.0 may still work with Groovy 2.x in practice, but we make no guarantees — future bug-fix releases will remove deprecated code without hesitation. Time to upgrade!

IDE integrations — waking up from a decade-long nap!

Let's be honest: Clover for Eclipse and Clover for IDEA hadn't been touched in years. The last officially supported versions were IntelliJ IDEA 2016.3 and Eclipse 4.6 (Neon) — released back in 2016. If you tried installing the old plugin into a modern IDE, it simply wouldn't load. Not anymore!

We tore into both plugins, rebuilt clover-idea on top of the modern IntelliJ Platform Gradle plugin, chased down every API change across a decade of IDE releases, and got everything green again. The result:

Install the plugin in your current IDE and get instantaneous code coverage feedback right where you write code — no more waiting for an external build and report to finish before you find out what you missed. Spot risky areas at a glance with heat maps, and jump straight to top risks and quick wins from the built-in mini dashboard. Per-test coverage lets you navigate straight from any line of code to the tests that exercise it, and back again. Combine that with OpenClover's test optimization feature and you can save dozens of hours a year by running only the tests that actually matter for your change.

Codebase cleanup

Package renaming — goodbye com.atlassian.*

A major version bump was the perfect moment to finish the renaming that started when Atlassian open-sourced Clover. All remaining com.atlassian.* package references have been replaced with proper org.openclover.* prefixes, and each module now has a unique package namespace. For the vast majority of users this is invisible. If you maintain a custom plugin that imports OpenClover's internal Java classes directly, you will need to update those import statements.

Upgrading from OpenClover 4.5.x

Clover for Ant

Download the new Clover-for-Ant ZIP and drop the new clover.jar into your build.

Clover for Eclipse

Download the new update site ZIP and install it in your Eclipse via Help → Install New Software.

Clover for IDEA

Download the new plugin JAR and install it via Settings → Plugins → Install Plugin from Disk.

Clover Maven Plugin

Bump the version to 5.0.0 for both org.openclover:clover-maven-plugin and org.openclover:clover in your pom.xml files. Also ensure your Maven version is at least 3.3.1 (see OC-236).

Jenkins Clover Plugin

Upgrade to the latest 4.16.x plugin release from the Jenkins update centre.

Changelog

2026-07-16 OpenClover 5.0.0

Changelog

2026-07-20 OpenClover 5.0.1