Jan Ouwens
Jan Ouwens
@jqno.nl
Developer ◦ Java/JVM ◦ EqualsVerifier ◦ speaker ◦ @yoink.nl but opinions mine ◦ 👨👩👧 ◦ 🇳🇱🇪🇺 ◦ 🖖🏻 ◦ 💚 ◦ 🇺🇦🌻 ◦ he/him
143 followers66 following265 posts
EqualsVerifier 4.5.2 is out! It fixes an issue when you have a sealed hierarchy with a singleton enum that comes first alphabetically... Check it out at github.com/jqno/equalsv... #java
I finally managed to get a Chromecast working in a vacation home! jqno.nl/post/2026/08...
EqualsVerifier 4.5.1 is out! It now has a built-in prefab value for LinkedHashSet. As always, check the release notes at github.com/jqno/equalsv... #java
Want to see the insane talk I wrote about the insane programming language that I built? Join us at the @openvalue.eu meetup next week! www.meetup.com/openvalue/ev...
I deleted my Twitter, closed my Dropbox account and installed a new OS on my phone: I'm trying to move away from Big Tech jqno.nl/post/2026/05...
EqualsVerifier 4.5 is out! It adds a new check: it fails if you use java.net.URL's equals() method, because this will make a network call that can be flaky. (Convert to java.net.URI instead.) You can suppress this with a new Warning though. Check it out: github.com/jqno/equalsv... #java
EqualsVerifier 4.4.2 is out! It's a bugfix release that improves the layout of error messages, fixes a small bug with Kotlin lazy fields, and fixes two other minor issues. Check it out: github.com/jqno/equalsv... #java
EqualsVerifier 4.4.1 is out. It contains a bug fix for floats and doubles. See also: github.com/jqno/equalsv... #java
EqualsVerifier 4.4 is out! It contains a fix for Java 26's "final means final" warnings. (Yes, I know Java 26 not released yet 😅) Check out the changelog at github.com/jqno/equalsv... and also the updated manual at jqno.nl/equalsverifi... #java
Jan Ouwens reposted
My story on database schemas is published in the (Dutch) Java Magazine! Unfortunately it had to be shortened, so if you want to read the full version (or don't have access to Java Magazine), you can find it on my blog! jqno.nl/post/2026/02...
EqualsVerifier 4.3.1 is out! It respects the Kotlin data class contract as described here: kotlinlang.org/docs/data-cl... As always, check out the changelog: github.com/jqno/equalsv... #java
I just found out that my Lego model of the Tilburg city skyline was put up for sale on AliExpress without my knowledge or consent. I guess that means I'm in the big leagues now!! 😂 (It's cheaper if you go through bricklink.com BTW 😉)
EqualsVerifier 4.3 is out! It fixes an issue with consecutive calls to `ScanOption.except()`. Check it out at github.com/jqno/equalsv... #java
EqualsVerifier 4.2.6 is out! 🎇 For sealed types, it can now use all permitted non-abstract subclasses instead of only the first one, which is handy if the first one has a recursion. It also fixes a potential bug for records. As usual, check it out at github.com/jqno/equalsv... #java
EqualsVerifier 4.2.5 is out. It runs slightly faster, and is slightly better factored! Check it out at github.com/jqno/equalsv... #java
Frank interviewed several experts, and me, about sustainability in IT at J-Fall for the @foojay.io podcast. I like how it came out!
In the next @foojay.io #podcast, we're exploring an increasingly important topic: developing #sustainable software that is both #performant and #ecofriendly. Learn more from Daniel Witkowski, @koturk.nl, Ronald Dehuysser, and Jan Ouwens. On YouTube www.youtube.com/watch?v=wZvU... or in podcast app.
EqualsVerifier 4.2.4 is out! Some people reported an UnnecessaryStubbingException caused by EqualsVerifier. This is now fixed! Check out the changelog at github.com/jqno/equalsv... #java
EqualsVerifier 4.2.3 is out! It contains some small improvements for tests that are run on the module path. Also, it improves on error messages when Mockito is in use. Check it out at github.com/jqno/equalsv... #java
EqualsVerifier 4.2.2 is out! It now supports EnumSets and EnumMaps for enums with only one value. Also, I fixed an error message that referred to Warning.ZERO_FIELDS, which was removed in version 4.0. All in all, very exciting stuff Check it out at github.com/jqno/equalsv... #java
Thank you to everyone who joined my talk at #jfall today! You can find my slides here: jqno.nl/talks/slides...
EqualsVerifier 4.2.1 is out! It fixes an issue with Kotlin lazy delegates with a generic type. Check out the changelog at github.com/jqno/equalsv... #java
I really appreciate that license! I often try to game it in my PRs by having 0 surviving issues on the first try. I just opened a big PR and managed to kill 187, but 7 still survive. I'm a little bit proud of myself now. But I'm also happy that I get to ship without those 7 issues that I missed!
We provide free arcmutate licences to open source projects as a matter of principle, but a great side benefit is that we get sent good quality bug reports and feature suggestions.
It turns out the YouTube app on my tv was set to Dutch, and I could change it in the settings. I set it to English which fixes my problem! (And probably introduces the new problem of translating all Dutch videos into English...but we'll cross that bridge when we get there) Thanks @bjeaurn.com !
Youtube setting! I assume it carries over to TV and other devices. I think it’s achieved by setting your Youtube’s language to British English.
EqualsVerifier 4.2 is out! It has prefab values for Java 25's ScopedValues, but the main attraction is that support for #Kotlin delegates is greatly improved! They're now much easier to work with, and also error messages are much clearer. Check out the details at github.com/jqno/equalsv... #java
I just upgraded EqualsVerifier and I have to say, the process was extremely painless! I had exactly 1 deprecation to deal with and that was it.
#JUnit 6.0.0 is released! ✨ Java 17 and Kotlin 2.2 baseline 🌄 JSpecify nullability annotations 🛫 Integrated JFR support 🚟 Kotlin suspend function support 🛑 Support for cancelling test execution ⏭️ New `--fail-fast` mode for ConsoleLauncher 🧹 Removal of deprecated APIs docs.junit.org/6.0.0/releas...
EqualsVerifier 4.1.1 is out! It fixes an issue with classes that extend Enum Check it out: github.com/jqno/equalsv... #java
EqualsVerifier 4.1 is out! It adds the method withResettablePrefabValues, which allows you to have values that are re-inintialized after each check that EqualsVerifier runs internally. Handy for values that mutate when they're used. See github.com/jqno/equalsv... #java
Jan Ouwens reposted
So, here is my new #java side-project: jdtfmt - a Java #formatter for the command line. * Can be paired with #spotless (both use jdt). * fast (native) github.com/bmarwell/jdt... Thanks to @jqno.nl for the inspiration, @mthmulders.bsky.social for #graalvm hints and @bdemers.io for encouraging me 😀
And EqualsVerifier 4.0.9 is out, too! Sometimes you introduce a bug while fixing one... 🤦🏻♂️ Check it out at github.com/jqno/equalsv... #java
EqualsVerifier 4.0.8 is out! It fixes an issue with abstract sealed types that add state and need `Warning.NULL_FIELDS` suppressed. Check it out at github.com/jqno/equalsv... #java
EqualsVerifier 4.0.7 is out! It fixes a bug with file path separators on Windows when using forPackage() See github.com/jqno/equalsv... #java
EqualsVerifier 4.0.6 is out! JPA entities with lazy fields must use their getters in equals. EqualsVerifier checks this but can't do it if the getter is final. It now throws an error if the getter is final instead of silently skipping the check. Check it out: github.com/jqno/equalsv... #java
EqualsVerifier 4.0.5 is out! It fixes a regression when testing relaxed equals relations. Check it out at github.com/jqno/equalsv... #java