Jan Ouwens
@jqno.nl
120 followers 59 following 170 posts
Developer ◦ Java/JVM ◦ EqualsVerifier ◦ speaker ◦ @yoinknl but opinions mine ◦ 👨‍👩‍👧 ◦ 🇳🇱🇪🇺 ◦ 🖖🏻 ◦ 💚 ◦ 🇺🇦🌻 ◦ he/him
Posts Media Videos Starter Packs
jqno.nl
In C#, == delegates to .Equals() which you can still override in records. Same as with Java records btw.

EqualsVerifier has become less needed since the introduction of records in Java, but people still find it useful.

When I worked in C# my coworkers even asked if I could do a port.
jqno.nl
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
github.com
jqno.nl
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.org
#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...
JUnit Release Notes
docs.junit.org
jqno.nl
Was it successful? 😄
jqno.nl
It was 8 days ago that I checked that it worked. So I assumed it worked. But I noticed this morning that the smart thermostat had been offline for 6 days ... 🤦🏻

But now it works again. Don't know about tomorrow, but today it works!
jqno.nl
EqualsVerifier 4.1.1 is out!

It fixes an issue with classes that extend Enum

Check it out: github.com/jqno/equalsv...

#java
github.com
jqno.nl
Ours works! 🎉
jqno.nl
Usually takes a few days...
jqno.nl
Haha, and when you've learned to type on this, you won't be able to type on regular keyboards anymore, right? 😅
jqno.nl
Jan Ouwens @jqno.nl · Sep 3
I don't want to admit it but I feel the same way. It's become standard procedure for me to take a train earlier because I don't trust them to get me where I need to go on time.

That's what you get when you consistently underfund such an important piece of infrastructure...
jqno.nl
Jan Ouwens @jqno.nl · Sep 2
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
github.com
jqno.nl
Jan Ouwens @jqno.nl · Sep 2
Same for me, unfortunately. But have fun Hanno!
jqno.nl
Jan Ouwens @jqno.nl · Sep 2
Good luck!
jqno.nl
Jan Ouwens @jqno.nl · Aug 27
You cynic you 😄
jqno.nl
Jan Ouwens @jqno.nl · Aug 27
Thanks for the kind words!

I've played around with OpenRewrite and used it on EqualsVerifier's codebase to update some things, but I haven't used it to create recipes for EqualsVerifier itself. Sounds like a cool idea!
jqno.nl
Jan Ouwens @jqno.nl · Aug 27
Ugh. Kobo have replaced Pocket with Instapaper, even on my antiquated device, and in the upgrade somehow managed to destroy my Wallabag setup.

It also now shows dozens of 99% read Pocket articles on my homescreen that I can no longer access.

Time for a factory reset...
jqno.nl
Jan Ouwens @jqno.nl · Aug 27
Looks like I'll have to update my blog soon: there's a new player in town 😄
Reposted by Jan Ouwens
bmarwell.de
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 😀
GitHub - bmarwell/jdtfmt: jdtfmt is an opinionated java source code formatter for the command line
jdtfmt is an opinionated java source code formatter for the command line - bmarwell/jdtfmt
github.com
jqno.nl
Jan Ouwens @jqno.nl · Aug 22
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
github.com
jqno.nl
Jan Ouwens @jqno.nl · Aug 22
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
github.com
jqno.nl
Jan Ouwens @jqno.nl · Aug 20
So then why is it telling me, the reviewer, instead of the person who made the commit?

Also, sometimes it's just inevitable to have a large commit...
jqno.nl
Jan Ouwens @jqno.nl · Aug 20
Yes let's hide the important stuff, thanks GitHub
Screenshot of a piece of GitHub diff saying "Load diff - Large diffs are not rendered by default."
jqno.nl
Jan Ouwens @jqno.nl · Aug 13
That would be the dream 😄
jqno.nl
Jan Ouwens @jqno.nl · Aug 13
It's pretty fast, but still more than a second, and you have to format a whole project at a time.

I'm looking for something like gofmt, which formats a single file in milliseconds.

But I'm happy to hear that it solves your use case!
jqno.nl
Jan Ouwens @jqno.nl · Aug 13
It should be possible, I did look at how spotless integrates with it, you should be able to do the same from a standalone app.
An advantage of using EclipseJDT is that it's also an IDE, so it has an incentive to be up-to-date with new language features...