Sign in

Rafael Winterhalter

@rafaelcodes.bsky.social
703 followers 91 following 89 posts

software consultant who likes static typing, coding at github.com/raphw 🇧🇻🇩🇪🇪🇺

PostsRepliesMedia
Rafael Winterhalter @rafaelcodes.bsky.social · 26/09/2026
If you care for the evolution of the Java ecosystem, consider expressing your opinion on github.com/CycloneDX/cy...
github.com
Proposal: cdx:java namespace for Java module names · Issue #198 · CycloneDX/cyclonedx-property-taxonomy
Hi, For over 10 years, since Java 9, a jar can declare a module name, either in its module-info.class or through the Automatic-Module-Name manifest attribute. That name is what the JVM runtime, the...
013
Rafael Winterhalter @rafaelcodes.bsky.social · 16/09/2026
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...
jenesis.build
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...
010
Rafael Winterhalter @rafaelcodes.bsky.social · 12/09/2026
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.com
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
011
Rafael Winterhalter @rafaelcodes.bsky.social · 05/09/2026
I argue, Java can become simpler and more secure if we do like this: vimeo.com/1223683963
vimeo.com
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.
170
Rafael Winterhalter @rafaelcodes.bsky.social · 28/08/2026
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
github.com
Jenesis
Project for the Jenesis product family. Jenesis has 8 repositories available. Follow their code on GitHub.
032
Rafael Winterhalter @rafaelcodes.bsky.social · 26/08/2026
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
110
Reposted by Rafael Winterhalter
GitHub @github.com · 13/08/2026
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. 👇
github.blog
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.
32511
Rafael Winterhalter @rafaelcodes.bsky.social · 04/08/2026
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...
github.com
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
083
Rafael Winterhalter @rafaelcodes.bsky.social · 30/06/2026
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?
github.com
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
021
Rafael Winterhalter @rafaelcodes.bsky.social · 13/06/2026
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...
github.com
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
083
Rafael Winterhalter @rafaelcodes.bsky.social · 02/06/2026
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.com
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
031
Rafael Winterhalter @rafaelcodes.bsky.social · 01/06/2026
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!
github.com
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
161
Rafael Winterhalter @rafaelcodes.bsky.social · 29/05/2026
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
011
Rafael Winterhalter @rafaelcodes.bsky.social · 28/05/2026
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
271
Rafael Winterhalter @rafaelcodes.bsky.social · 08/05/2026
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.
180
Reposted by Rafael Winterhalter
Brice Dutheil @bricedutheil.bsky.social · 28/12/2025
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...
github.com
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...
0175
Rafael Winterhalter @rafaelcodes.bsky.social · 10/12/2025
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.
0134
Reposted by Rafael Winterhalter
Cay Horstmann @horstmann.com · 10/11/2025
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 horstmann.com/un...
067
Reposted by Rafael Winterhalter
Brice Dutheil @bricedutheil.bsky.social · 17/10/2025
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...
blog.daviddodda.com
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.
021
Rafael Winterhalter @rafaelcodes.bsky.social · 03/09/2025
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.
vimeo.com
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.
0166
Reposted by Rafael Winterhalter
Gunnar Morling @gunnarmorling.dev · 11/07/2025
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...
2196
Reposted by Rafael Winterhalter
Gunnar Morling @gunnarmorling.dev · 18/05/2025
"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...
4429
Reposted by Rafael Winterhalter
Christian Stöcker @christianstoecker.de · 16/05/2025
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
Post von Peter Schaar: #Microsoft hat auf Anordnung von Donald #Trump seine Dienste für den Internationalen Strafgerichtshof gesperrt. Der Staatsanwalt des #ICC hat keinen Zugriff auf seine #email. Quelle: AP
521482704
Rafael Winterhalter @rafaelcodes.bsky.social · 10/05/2025
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.
110
Reposted by Rafael Winterhalter
Per Minborg @pminborg.bsky.social · 22/04/2025
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/...
27721
Reposted by Rafael Winterhalter
Mixmaster Morris @mixmastermorris.bsky.social · 26/04/2025
03610
Rafael Winterhalter @rafaelcodes.bsky.social · 09/04/2025
Do I understand it correctly that the central-publishing-maven-plugin intends to replace the nexus-staging-maven-plugin? But not necessarily the maven-release-plugin? How would one otherwise handle tagging in Git? I'm confused.
420
Reposted by Rafael Winterhalter
JavaZone @javazone.bsky.social · 07/04/2025
We’d love to see more talk proposals rolling in for #JavaZone2025! Got something interesting to share? Big or small, wild or practical — we want to hear it! 🙌 2025.javazone.no/en/...
153
Rafael Winterhalter @rafaelcodes.bsky.social · 23/03/2025
My first question on Stack Overflow in four years. Any ideas why Kotlin reflect cannot observe an annotation if a class's "flag" is 6 and not 7? stackoverflow.com/questions/79...
stackoverflow.com
Dynamically added annotation is not visible to Kotlin reflection
I am working with a Java agent that is adding an annotation dynamically to a class file. When this class file is a Kotlin class, and if it is investigated by Kotlin reflection, the annotation does ...
011
Rafael Winterhalter @rafaelcodes.bsky.social · 21/03/2025
What frustrates me most about Kotlin and Scala is their closed world perspective on their own tooling. Java byte code is well-defined and easy to interop. It should not be hard to add an annotation to a class, but with Kotlin it somehow is: discuss.kotlinlang.org/t/dynamicly-...
discuss.kotlinlang.org
Dynamicly added annotations are not visible
I am trying to add support for kotest for a test intelligence tool. To do so, I need to be able to add the Ignored annotation to classes dynamically using a Java agent, but the annotation seems to not...
071
Reposted by Rafael Winterhalter
Patricia Aas 🐢🏳️‍🌈 @patigallardo.bsky.social · 19/03/2025
All folks who speak at conferences should read this and think long and hard about whether they want to risk speak in the US in the future. Also anyone who works while traveling. comicon.com/2025/03/18/f...
First of all, they all confirmed what I thought.
The majority of comics creators travel to the
USA on an ESTA — "The short is that almost everyone just goes in on a ESTA. "That's the electronic tourist visa, easy to apply for, valid for two years. Things are slightly different for Canada, they have their own version of an ESTA, and anecdotal reports say that some Canadian shows implicitly include visa requirements in the guest information.
But when you're going in on a tourist visa like the ESTA, the Immigration and Border Control can and will interrogate you about what you're visiting for. And if they have even the slightest idea that you're working whilst you're there, they can and will deny you entry and/or detain
you.
The problem now is that all those previously accepted and overlooked things that can be classed as 'working', such as Becky's chores for board or a hotel room for a comics convention
in return for your appearance, could well see you denied and/or detained.
15508257
Rafael Winterhalter @rafaelcodes.bsky.social · 19/03/2025
Catch of the day: The Kafka client for Java logs a bunch of things on info level that likely should be debug, which resulted in Splunk logging for millions of crowns of repetitive things nobody needs. I argue that libraries should never log anything on the info level.
040
Reposted by Rafael Winterhalter
Ólafur Páll Geirsson @geirsson.com · 07/03/2025
@vonderleyen.ec.europa.eu Here’s a potent idea for Europe: allow member states to charge VAT on online ads served within their borders. Why should platforms like Meta earn ad revenue from EU audiences without paying VAT locally?
1103
Reposted by Rafael Winterhalter
Ólafur Páll Geirsson @geirsson.com · 07/03/2025
One of my most radical political positions is that online ads should be treated like addictive substances (alcohol) and have something like 100% VAT. This doesn’t exist because governments can’t technically charge VAT for online ads served in the country.
231
Rafael Winterhalter @rafaelcodes.bsky.social · 03/03/2025
Finally found the time to make Mockito a proper named module: github.com/mockito/mock... jdk.unsupported can still be used, but if Mockito is added as an agent and the package is not imported elsewhere, it still works fully without it on official API in the instrumentation API.
github.com
Add support for including module-info in Mockito. by raphw · Pull Request #3597 · mockito/mockito
Adds module-info.java to describe module descriptor.
021
Reposted by Rafael Winterhalter
jPrime Conference @jprimeconf.bsky.social · 26/02/2025
🎓 We are so happy that our great friend Rafael Winterhalter (@rafaelcodes.bsky.social) will be back to Sofia and will give his talk: "Exploring the Java Class File API"! 🗓️ 14-15 May, 2025 📍 Sofia, Bulgaria 🇧🇬 🎫 Grab your pass: jprime.io/tickets
021
Reposted by Rafael Winterhalter
Bjørn Johan Berger @bjornjberger.bsky.social · 20/02/2025
Dette kan du gjøre for å støtte Ukraina: Trykk på «republiser-knappen» - slik at flest mulig får vite om den politiske markeringen på mandag.
3197241
Reposted by Rafael Winterhalter
JavaZone @javazone.bsky.social · 14/02/2025
💘 Roses are red, commits turn green, JavaZone’s stage is calling—be seen! 💘 Every bug fix, late-night hack, and production horror story deserves an audience. Your code has a story—share it at #JavaZone2025! 💌 talks.javazone.no/ ℹ️ 2025.javazone.no/en/speaker #JavaZone
0105
Rafael Winterhalter @rafaelcodes.bsky.social · 30/01/2025
So Apple.tv has no Android app, but if you open it in the browser, it automatically routes to /us. This I have to replace with /no manually, otherwise the page crashes loading a language bundle for a popup. Did someone make this page in Dreamweaver? Severance better be a good show.
120
Rafael Winterhalter @rafaelcodes.bsky.social · 30/01/2025
It took another release to iron out some issues with the Class File API Integration. Also, Byte Buddy now offers improved support for using constantdynamic in instrumentation, with fallback to invokedynamic if not yet available. github.com/raphw/byte-b...
github.com
Release Byte Buddy 1.17.0 · raphw/byte-buddy
Assure that implicit choice for class reader and class writer are always symmetric with regard to internal representation. Retrofit MemberSubstitution to also allow for intercepting invokedynamic i...
160
Rafael Winterhalter @rafaelcodes.bsky.social · 19/01/2025
I made a mistake in my changed build and 1.16.1 now offers the actual support for this.
084
Rafael Winterhalter @rafaelcodes.bsky.social · 17/01/2025
Byte Buddy 1.16.0 now integrates the Java Class File API and is therefore compatible with any future JDK that retains its instruction set, without activating the experimental flag. github.com/raphw/byte-b...
github.com
Release Byte Buddy 1.16.0 · raphw/byte-buddy
Allow for erasure of types of bootstrapped methods in Advice within instrumented class. Rework Advice post-processing to allow for erasure of bootstrapped methods. Fix missing application of hashCo...
14312
Rafael Winterhalter @rafaelcodes.bsky.social · 17/01/2025
Finally released the first version of my ASM-JDK bridge. It's as close as can be a drop-in replacement for ASM's ClassReader and ClassWriter where the alternative implementations use the JDK class file API in the JDK, and allow for limited forward compatibility. github.com/raphw/asm-jd...
github.com
GitHub - raphw/asm-jdk-bridge
Contribute to raphw/asm-jdk-bridge development by creating an account on GitHub.
2146
Reposted by Rafael Winterhalter
Axel Fontaine @axelfontaine.bsky.social · 09/01/2025
After months of beta testing, I am excited to announce our new product: Sprinters Run GitHub Actions jobs 10x cheaper by changing 1 line in your workflow yml Like I did for Flyway, we focussed on simplicity, security and no-brainer pricing. Check it out: sprinters.sh
sprinters.sh
Run your GitHub Actions jobs 10x cheaper on your own AWS account - Sprinters
Run your GitHub Actions jobs 10x cheaper on your own AWS account.
072
Rafael Winterhalter @rafaelcodes.bsky.social · 03/01/2025
I'm looking for a good primer on file system performance in our time. I did the basic CS classes, but I am sure things have changed in the past 20 years. Admittedly, I only looked into network IO since then, so I wonder if someone knows a good sunmary of today's state of the art on files.
340
Reposted by Rafael Winterhalter
Ron Filipkowski @ronfilipkowski.bsky.social · 01/01/2025
A real photo and perfect metaphor heading into 2025.
21127915617450
Rafael Winterhalter @rafaelcodes.bsky.social · 27/12/2024
I made a small Java build tool! With the kids being a bit older, I found some energy again to play with something I had in my head for a few years. This is still very much a POC, but I am happy with the direction it has taken. Have a look and let me know what you think! github.com/raphw/build-...
github.com
GitHub - raphw/build-buddy
Contribute to raphw/build-buddy development by creating an account on GitHub.
103610
Rafael Winterhalter @rafaelcodes.bsky.social · 09/12/2024
Maven dependency negotiation is non-intuitive. But I do not think many developers understand the impact of version ranges. I did indeed not. Any version range will override an explicit version. And due to how scopes work, even a transitive test dependency might override production dependencies.
432
Rafael Winterhalter @rafaelcodes.bsky.social · 06/12/2024
What plugin determines what checksums are calculated and uploaded to Maven Central? I want to have a look, but cannot find any configuration or documentation on this.
210
Reposted by Rafael Winterhalter
OpenJDK @openjdk.org · 04/12/2024
Hello, Bluesky!
1318640