Rafael Winterhalter
@rafaelcodes.bsky.social
📤 676
📥 90
📝 56
software consultant who likes static typing, coding at
http://github.com/raphw
🇧🇻🇩🇪🇪🇺
reposted by
Rafael Winterhalter
Brice Dutheil
2 months ago
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...
loading . . .
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...
https://github.com/mockito/mockito/issues/3777
0
15
3
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.
add a skeleton here at some point
3 months ago
0
11
2
reposted by
Rafael Winterhalter
Cay Horstmann
4 months ago
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...
0
6
8
reposted by
Rafael Winterhalter
Brice Dutheil
5 months ago
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...
loading . . .
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.
https://blog.daviddodda.com/how-i-almost-got-hacked-by-a-job-interview
0
2
1
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.
loading . . .
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.
https://vimeo.com/1115458585
6 months ago
0
15
5
reposted by
Rafael Winterhalter
Gunnar Morling
8 months ago
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...
2
18
6
reposted by
Rafael Winterhalter
Gunnar Morling
10 months ago
"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...
4
42
9
reposted by
Rafael Winterhalter
Christian Stöcker
10 months ago
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
53
1496
765
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.
10 months ago
1
1
0
reposted by
Rafael Winterhalter
Per Minborg
10 months ago
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/...
2
77
22
reposted by
Rafael Winterhalter
Mixmaster Morris
10 months ago
0
37
10
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.
11 months ago
4
2
0
reposted by
Rafael Winterhalter
JavaZone
11 months ago
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/...
1
5
3
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...
loading . . .
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 ...
https://stackoverflow.com/questions/79529741/dynamically-added-annotation-is-not-visible-to-kotlin-reflection
11 months ago
0
1
1
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-...
loading . . .
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...
https://discuss.kotlinlang.org/t/dynamicly-added-annotations-are-not-visible/30132
11 months ago
0
7
1
reposted by
Rafael Winterhalter
Patricia Aas 🐢🏳️🌈
12 months ago
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...
15
512
281
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.
12 months ago
0
4
0
reposted by
Rafael Winterhalter
Ólafur Páll Geirsson
12 months ago
@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?
1
10
3
reposted by
Rafael Winterhalter
Ólafur Páll Geirsson
12 months ago
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.
2
3
1
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.
loading . . .
Add support for including module-info in Mockito. by raphw · Pull Request #3597 · mockito/mockito
Adds module-info.java to describe module descriptor.
https://github.com/mockito/mockito/pull/3597
12 months ago
0
2
1
reposted by
Rafael Winterhalter
jPrime Conference
about 1 year ago
🎓 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
0
2
1
reposted by
Rafael Winterhalter
Bjørn Johan Berger
about 1 year ago
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.
3
197
245
reposted by
Rafael Winterhalter
JavaZone
about 1 year ago
💘 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/ ℹ️ http
#JavaZone2025
://2025.javazone.no/en/speaker
#JavaZone
0
10
6
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.
about 1 year ago
1
2
0
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...
loading . . .
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...
https://github.com/raphw/byte-buddy/releases/tag/byte-buddy-1.17.0
about 1 year ago
1
6
2
I made a mistake in my changed build and 1.16.1 now offers the actual support for this.
add a skeleton here at some point
about 1 year ago
0
8
4
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...
loading . . .
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...
https://github.com/raphw/byte-buddy/releases/tag/byte-buddy-1.16.0
about 1 year ago
1
43
13
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...
loading . . .
GitHub - raphw/asm-jdk-bridge
Contribute to raphw/asm-jdk-bridge development by creating an account on GitHub.
https://github.com/raphw/asm-jdk-bridge
about 1 year ago
2
14
6
reposted by
Rafael Winterhalter
Axel Fontaine
about 1 year ago
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
add a skeleton here at some point
0
8
2
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.
about 1 year ago
3
4
0
reposted by
Rafael Winterhalter
Ron Filipkowski
about 1 year ago
A real photo and perfect metaphor heading into 2025.
2128
79631
19059
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-...
loading . . .
GitHub - raphw/build-buddy
Contribute to raphw/build-buddy development by creating an account on GitHub.
https://github.com/raphw/build-buddy
about 1 year ago
10
36
10
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.
about 1 year ago
4
3
2
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.
about 1 year ago
2
1
0
reposted by
Rafael Winterhalter
OpenJDK
about 1 year ago
Hello, Bluesky!
13
185
44
Java build tools (and their dependency management) have given me a headache as long as I remember. I appreciate that building software is a hard problem and I want to try out some ideas I had around them. To start, I wrote a standalone POM-to-dependency converter (
gist.github.com/raphw/78b0d5...
)
loading . . .
Maven POM resolution (standalone)
Maven POM resolution (standalone). GitHub Gist: instantly share code, notes, and snippets.
https://gist.github.com/raphw/78b0d5264636c3d2a3af339c3259c17c
about 1 year ago
3
4
4
What's the point of storing checksums on Maven Central alongside the artifacts? If you download a corrupted artifact from a corrupted server, computing a correct checksum of the corrupted artifact, and storing it along, is the easy part. And TCP already checks for lost packages (and retries).
over 1 year ago
2
1
0
It's tragic that the POM file has emerged as the standard way of representing a published Java artifact's transitive dependencies. POMs are a mess to parse and it's almost impossible to end up with the same result as Maven. The ecosystem should strive towards a better standard.
over 1 year ago
1
4
0
I am partially grateful for Twitter becoming the hellscape it now is, as it somewhat cured me from looking at my phone too much. But I always missed it as a channel for what is happening in technology, so I will give this one another try.
over 1 year ago
5
28
1
you reached the end!!
feeds!
log in