Holger Brands's Avatar

Holger Brands

@holgerbrands.bsky.social

Software Architecture and Design | Java and JVM | Distributed Systems

79 Followers  |  338 Following  |  11 Posts  |  Joined: 28.11.2024
Posts Following

Posts by Holger Brands (@holgerbrands.bsky.social)

Preview
java.evolved Code Snippets | java.evolved A collection of modern Java code snippets. Every old Java pattern next to its clean, modern replacement β€” side by side.

java.evolved – Every old Java pattern next to its modern replacement, side by side.

javaevolved.github.io

16.02.2026 18:18 β€” πŸ‘ 57    πŸ” 18    πŸ’¬ 1    πŸ“Œ 1

Congrats!
Are there any notable differences from the german edition?

06.12.2025 10:23 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
JUnit Release Notes

#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...

30.09.2025 08:50 β€” πŸ‘ 119    πŸ” 75    πŸ’¬ 2    πŸ“Œ 11
Java 25 / JDK 25: General Availability

Java 25 / JDK 25: General Availability: mail.openjdk.org/pipermail/jd...

Features: openjdk.org/projects/jdk...

Downloads: jdk.java.net/25/

#Java25 #JDK25 #OpenJDK #Java

16.09.2025 13:26 β€” πŸ‘ 81    πŸ” 52    πŸ’¬ 0    πŸ“Œ 3
Video thumbnail

Ever wonder which #Spring project versions map to the latest Spring Boot release? πŸ€”
There is no more guessing if you navigate to spring.io/projects/gen...

07.08.2025 22:08 β€” πŸ‘ 32    πŸ” 14    πŸ’¬ 1    πŸ“Œ 1
@ParameterizedClass
@ValueSource(strings = {"foo", "bar"})
class SomeTests {
    @Parameter String value;
    
    @Test
    void shouldNotBeNull() {
        assertNotNull(value);
    }
    @Test
    void lengthShouldBeThree() {
        assertEquals(3, value.length());
    }
}

@ParameterizedClass @ValueSource(strings = {"foo", "bar"}) class SomeTests { @Parameter String value; @Test void shouldNotBeNull() { assertNotNull(value); } @Test void lengthShouldBeThree() { assertEquals(3, value.length()); } }

✨ New blog post: "STF Milestone 4: Parameterized test classes"

JUnit 5.13 introduced parameterized test classes (in addition to methods). They are a powerful testing tool that has long been missing from JUnit Jupiter...

πŸ‘‰ marcphilipp.de/blog/2025/06...

07.06.2025 11:52 β€” πŸ‘ 31    πŸ” 11    πŸ’¬ 0    πŸ“Œ 0
Preview
Java 25 Features (with Examples) Java 25: Scoped Values, Module Import Declarations, Compact Source Files, Instant Main Methods, Flexible Constructor Bodies, Compact Object Headers and more...

Java 25 enters Rampdown Phase One – and is packed with features:

βœ… Scoped Values
βœ… ​Compact Source Files + Instance Main Methods
βœ… Flexible Constructor Bodies
βœ… Stable Values (Preview)
βœ… Structured Concurrency revamp

Full overview:
πŸ‘‰ www.happycoders.eu/java/java-25...

#Java #Java25

05.06.2025 08:25 β€” πŸ‘ 3    πŸ” 3    πŸ’¬ 0    πŸ“Œ 0

A lot of good #java stuff @devoxx.uk 😎

Here is the 2025 playlist:
youtube.com/playlist?lis...

20.05.2025 20:28 β€” πŸ‘ 9    πŸ” 4    πŸ’¬ 0    πŸ“Œ 0

Excellent resources below: 😎

09.05.2025 11:56 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Stable Values in Java - Finally Initialize Values Safely! What are Stable Values and how do you use them? What are Stable Lists, Stable Maps, and Stable Functions? How do Stable Values work internally?

Just published:

"Stable Values in Java 25: Finally Initialize Values Safely!"

Learn how this new preview feature solves common multi-threading initialization problems. No need to wait for Java 25 - get the details now!

www.happycoders.eu/java/stable-...

#Java #Java25 #StableValues

09.04.2025 10:09 β€” πŸ‘ 4    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0

This is the moment you've all been waiting for... πŸ₯

#JUnit Jupiter support for @⁠ParameterizedClass as a companion to the existing @⁠ParameterizedTest support! πŸš€

@marcphilipp.de has put a lot of work into this, and we're eager for you to try it out and provide feedback!!!

21.03.2025 14:46 β€” πŸ‘ 35    πŸ” 14    πŸ’¬ 1    πŸ“Œ 2

Does anyone know the implications for #Java Webstart apps?
If I'm not mistaken the JNLP spec explicitly mentions the SecurityManager. Will there be a spec revision or other measures?

25.01.2025 20:40 β€” πŸ‘ 4    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Null-safety :: Spring Framework

I have just merged into Spring Framework main branch the huge commit (3458 files changed) that migrates the codebase to JSpecify annotations. That will allow Spring Framework 7 and related portfolio projects to provide next-level null-safety support to avoid NullPointerException at runtime.

19.12.2024 10:52 β€” πŸ‘ 48    πŸ” 7    πŸ’¬ 0    πŸ“Œ 3

Mapping ZonedDateTime and OffsetDateTime with Hibernate can be an issue. Not all databases support TIMESTAMP_WITH_TIMEZONE, and Hibernate has to convert it.

Starting with version 6, you can decide how to handle the timezone information by providing a TimeZoneStorageType.

These are your options:

04.12.2024 15:11 β€” πŸ‘ 1    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0
Preview
Patterns.dev Learn JavaScript design and performance patterns for building more powerful web applications.

Improve how you architect webapps.

14.12.2024 12:53 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

In a distributed system, after "reloading" an object you might need to reattach it to an existing object graph and propagate it. Equals checks via state or id/version won't do, as they might have not changed, but the instance has changed nevertheless.

14.12.2024 10:50 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Detoxifying the JDK Source Code There’s been a fair amount of churn through the JDK source code recently, up until Rampdown Phase 1 of JDK 24, which was last week. (RDP1 is similar to what other projects might call β€œf…

Interesting writeup from Stuart Marks @smarks.bsky.social:

"Permission checking and handling of privileged operations were a continuing maintenance burden on the JDK code. It’s good be rid of it." πŸŽ‰

stuartmarks.wordpress.com/2024/12/12/d...

#Java #JDK

14.12.2024 02:46 β€” πŸ‘ 4    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0

Yes, but we want to avoid the "-am" option in this case to avoid testing unaffected modules, so we need to resort to installing with m3.
Hopefully, Maven 4 will offer enhancements in this regard, but I did not try yet.

13.12.2024 10:44 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

But how do you test a subset of modules of a multi-module build?
Imagine a CI pipeline that has compiled everything in the previous stage and now wants to test the affected modules by a change. Using options "-pl -amd" will lead to a test classpath referencing Jars in local repo last time I checked.

13.12.2024 09:03 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
WireMock Now Has an Official Spring Boot Integration Embed WireMock directly into Spring for annotation-driven configuration, automatic resource management, and simple declarative configuration of mocked APIs.

#WireMock Now Has an Official #SpringBoot Integration

08.12.2024 09:31 β€” πŸ‘ 22    πŸ” 7    πŸ’¬ 0    πŸ“Œ 0
NANOWAR OF STEEL - HelloWorld.java (Source Code Video) | Napalm Records
YouTube video by Napalm Records NANOWAR OF STEEL - HelloWorld.java (Source Code Video) | Napalm Records

How is this real? Nanowar, Napalm Record... #java based song. #metal music. Unfortunatly no simpler main method πŸ˜‚

www.youtube.com/watch?v=yup8...

03.12.2024 15:31 β€” πŸ‘ 45    πŸ” 18    πŸ’¬ 10    πŸ“Œ 7
Post image

πŸ“ "Revisiting the Outbox Pattern"

New blog post is out, taking a fresh look at the outbox pattern: how to implement it correctly, is it still relevant, which alternatives exist?

πŸ‘‰ www.decodable.co/blog/revisit...

31.10.2024 15:02 β€” πŸ‘ 43    πŸ” 12    πŸ’¬ 2    πŸ“Œ 2
Anonymous Analytics This page describes the anonymous analytics that Liquibase collects.

It is always worthwhile to read changelogs.
For example, #liquibase 4.30.0 and above will now collect statistics (#telemetry) with opt-out instead of opt-in. Thanks for nothing.

New #java projects will be using #flyway.

docs.liquibase.com/analytics/ho...

10.11.2024 17:26 β€” πŸ‘ 8    πŸ” 5    πŸ’¬ 4    πŸ“Œ 4

Alive and kicking!

I think that deserves a 24 hour live stream and release party...no? @nipafx.dev πŸ˜ƒ

30.11.2024 17:13 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Spring Boot 3.4.0 available now Level up your Java code and explore what Spring can do for you.

Spring Boot 3.4 goes GA!

spring.io/blog/2024/11...

#spring @spring.io

21.11.2024 20:25 β€” πŸ‘ 29    πŸ” 13    πŸ’¬ 0    πŸ“Œ 1
Download Apache Maven – Maven

Apache Maven 4.0.0-rc-1 just dropped! I’ve been running 4.0.0 betas for a while now and definitely loved it so far.

Make sure to give the new features and major improvements a swing yourself: maven.apache.org/download.cgi

If you run into anything make sure to reach out!

#Java #Apache #Maven

29.11.2024 09:56 β€” πŸ‘ 55    πŸ” 24    πŸ’¬ 2    πŸ“Œ 1

Epic new #JEPCafe episode!

29.11.2024 13:02 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Hi Sharat,
would be nice to be included.😎

29.11.2024 12:57 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Welcome everybody!
Finally landed on Bluesky as well.
Let's see how it goes.πŸ™‚

28.11.2024 23:55 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0