Rafael Winterhalter
rafaelcodes.bsky.social
Rafael Winterhalter
@rafaelcodes.bsky.social
software consultant who likes static typing, coding at http://github.com/raphw 🇧🇻🇩🇪🇪🇺
Ever wanted or were forced to use two versions of the same library in Java at the same time, but you did not want to shade: Jenesis now supports layers which uses the JVM to split off a layer within a JVM, without moving a single package. jenesis.build/tool/depende...
Dependencies · Jenesis
Declaring dependencies in each layout, how they resolve through Maven Central and the Jenesis Module Index, which version wins a conflict, pruning an unwanted transitive, and giving a nameless library...
jenesis.build
September 16, 2026 at 3:13 PM
Last pillar: Jenesis can now track GPG fingerprints and automatically validate dependencies against their signature. When updating, you are therefore notified if a new version was shipped by a different entity.

github.com/jenesis/jene...
GitHub - jenesis/jenesis: A modern Java build tool: Java-native config, plugin-free, with module-info.java treated as a feature, not an afterthought.
A modern Java build tool: Java-native config, plugin-free, with module-info.java treated as a feature, not an afterthought. - jenesis/jenesis
github.com
September 12, 2026 at 6:40 PM
I argue, Java can become simpler and more secure if we do like this: vimeo.com/1223683963
Modules didn't fail. Build tools did - Rafael Winterhalter
This is "Modules didn't fail. Build tools did - Rafael Winterhalter" by JavaZone on Vimeo, the home for high quality videos and the people who love them.
vimeo.com
September 5, 2026 at 10:09 AM
Thanks to coding agents, Jenesis has matured at a speed I did not expect, and it has become the build tool for Java I would have liked to see a decade ago.

I had agents build hundreds of projects, and it works, so try it out.

I moved the entire shebang to a GitHub org: github.com/jenesis
Jenesis
Project for the Jenesis product family. Jenesis has 8 repositories available. Follow their code on GitHub.
github.com
August 28, 2026 at 5:34 PM
Over half of the 1000 most used and maintained Java libraries on Maven Central will be affected by the publishing limits that are enforced from October: github.com/raphw/jenesi...

This is not a rare issue for few publishers, as claimed. Measuring the long tail of tiny libraries skews the numbers.
github.com
August 26, 2026 at 10:13 AM
Reposted by Rafael Winterhalter
In Session 4 of the GitHub Secure Open Source Fund, 50 projects upgraded their security posture through AI-assisted workflows, maintainer expertise, GitHub security tools, and more.

As AI changes how software is built, maintainers remain at the center of protecting the open source ecosystem. 👇
What 50 open source projects taught us about security in the AI era
See how the projects in the GitHub Secure Open Source Fund combined AI-assisted workflows, maintainer expertise, and more to improve project security.
github.blog
August 13, 2026 at 10:25 PM
Released Jenesis 0.10.0, after building a first larger modular Java app without a single POM. Works without glitches now and is rather fast. Try it! github.com/raphw/jenesi...
jenesis/demo at main · raphw/jenesis
A modern Java build tool: Java-native config, plugin-free, with module-info.java treated as a feature, not an afterthought. - raphw/jenesis
github.com
August 4, 2026 at 9:09 PM
Jenesis 0.9.0 fully supports SBOMs and automatically creates them now and improves on automated licensing and vulnerability constraints. With all it knows how to do (github.com/raphw/jenesi...) what would still be missing?
jenesis/demo at main · raphw/jenesis
A modern Java build tool: Java-native config, plugin-free, with module-info.java treated as a feature, not an afterthought. - raphw/jenesis
github.com
June 30, 2026 at 4:10 PM
Jenesis now offers all features build tools out there offer through configuration, but by detecting configuration files in the main folder. I would expect that most developers will meet a feature complete tool. Try it out:

github.com/raphw/jenesi...
jenesis/demo at main · raphw/jenesis
A modern Java build tool: Java-native config, plugin-free, with module-info.java treated as a feature, not an afterthought. - raphw/jenesis
github.com
June 13, 2026 at 10:10 AM
Added implicit support for jmod, jlink and jpackage to Jenesis,for those that want to use it. Samples are in the demos.

Should now also build most POM projects without needing Maven.

github.com/raphw/jenesis
GitHub - raphw/jenesis: A modern Java build tool: Java-native config, plugin-free, with module-info.java treated as a feature, not an afterthought.
A modern Java build tool: Java-native config, plugin-free, with module-info.java treated as a feature, not an afterthought. - raphw/jenesis
github.com
June 2, 2026 at 2:34 PM
I added support for most JVM languages to Jenesis and polished the framework altogether. I also added a range of demos:

github.com/raphw/jenesi...

If you are interested in build tools and always thought that building on the JVM should be easier, maybe this approach is for you. Let me know!
jenesis/demo at main · raphw/jenesis
A modern Java build tool: Java-native config, plugin-free, with module-info.java treated as a feature, not an afterthought. - raphw/jenesis
github.com
June 1, 2026 at 10:05 PM
Out of the 1000 most downloaded artifacts from Maven Central, more than a third are not actively maintained. commons-io is the second most downloaded artifact. That is a little bit sad.

github.com/raphw/jenesi...
github.com
May 29, 2026 at 8:16 AM
I think I came up with a reasonable alternative for a build tool for the JVM.

To give you a teaser, I want to get rid of the POM, but offer compatibility to it, given they are anywhere, but want to embrace Java Modules which work really well for this.

State of modules: github.com/raphw/jenesi...
github.com
May 28, 2026 at 2:56 PM
As amazingly well Claude and Codex are working as tools; they are not useful as pair programmers in my eyes, as they are never pushing back. Makes me wonder how broad the need for maintenance of technical debt will affect worker productivity. The best code is the one you don't write, still.
May 8, 2026 at 6:15 AM
Reposted by Rafael Winterhalter
As an old and somewhat inactive Mockito maintainer I'd like to congratulate Tim for these past years keeping the light on the Mockito project. He his now stepping down.
Thank you Tim.

github.com/mockito/mock...
Stepping down as maintainer after 10 years · Issue #3777 · mockito/mockito
In March 2026, I will be Mockito maintainer for 10 years (nearly a third of my whole life). Looking ahead, I decided that a decade milestone is a good moment to pass on maintainership to other folk...
github.com
December 28, 2025 at 4:20 PM
I had the pleasure of traveling home to Munich to talk to Marco about software, and I quite enjoyed it! And I will hope you will, too. Thanks for having me.
New deep-dive on The Marco Show!
🎥 Watch now: youtu.be/AzfhxgkBL9s

Marco sits down with @rafaelcodes.bsky.social (creator of ByteBuddy) to unravel JVM internals, bytecode instrumentation, Mockito and Hibernate internals, legacy Java realities, and the challenges of maintaining open source at scale.
December 10, 2025 at 7:46 PM
Reposted by Rafael Winterhalter
Help--my LocalDate isn’t flattened! Just before my Valhalla talk at JFall, I found out that the early access build can flatten LocalDate arrays, but the latest version from Github cannot. Why? Serialization, of course. Read the gory details at https://horstmann.com/un...
November 10, 2025 at 6:52 AM
Reposted by Rafael Winterhalter
That was for developer interview...

"I was 30 seconds away from running malware on my machine." Malware hidden in the Code exercise.

blog.daviddodda.com/how-i-almost...
How I Almost Got Hacked By A 'Job Interview'
I was 30 seconds away from running malware, Here's how a sophisticated scam operation almost got me, and why every developer needs to read this.
blog.daviddodda.com
October 17, 2025 at 7:11 AM
Tried to give an introduction on the class file API that explains it to anybody working with Java: vimeo.com/1115458585 Courtesy of JavaZone. Thanks for having me.
Java Just Got Easier - Rafael Winterhalter
This is "Java Just Got Easier - Rafael Winterhalter" by JavaZone on Vimeo, the home for high quality videos and the people who love them.
vimeo.com
September 3, 2025 at 9:53 PM
Reposted by Rafael Winterhalter
Wow, TIL that LISTEN/NOTIFY in Postgres requires a global lock when committing transactions issuing a NOTIFY. Consider listening to the WAL via logical replication as an alternative with no impact on the write path.

www.recall.ai/blog/postgre...
July 11, 2025 at 7:09 AM
Reposted by Rafael Winterhalter
"Towards a JSON API for the JDK"

New proposal on the core-libs-dev list for adding a basic JSON API to #Java. That would be a more than welcome addition, in particular considering the envisioned usage once member patterns will be available. Make it So 🤩!

mail.openjdk.org/pipermail/co...
May 18, 2025 at 3:00 PM
Reposted by Rafael Winterhalter
Und das, liebe Kinder, ist der Grund, warum man sich bei existenziell wichtigen Werkzeugen am besten mindestens parallel auf lokal gehostete Open Source Lösungen stützt. Wenn #Trump anfängt, die US-Tech-Konzerne in Waffen zu verwandeln, wird es finster. #KritIs
May 16, 2025 at 10:24 AM
Here's something I want but am too lazy to build: Take a picture of a huge pile of Lego, and get me a classification of what brick belongs to which set. The manual equivalent is quite something.
May 10, 2025 at 9:07 AM
Reposted by Rafael Winterhalter
We just integrated a performance improvement to Java String that will provide a ~10x performance boost in some applications where Strings are used as keys and where the associated values are constant foldable. This will make JDK 25 faster.

github.com/openjdk/jdk/...
April 22, 2025 at 3:14 PM
Reposted by Rafael Winterhalter
April 26, 2025 at 9:38 PM