Java, Kotlin and the JVM
25 subscribers
20 photos
2 videos
117 links
Java, Kotlin, Gradle, Maven, JDKs, Spring and the whole JVM ecosystem tips & tricks. πŸ‡ͺπŸ‡Έ & πŸ‡¬πŸ‡§
Download Telegram
Testing asynchronous systems is hard. Not only does it require handling threads, timeouts and concurrency issues, but the intent of the test code can be obscured by all these details. Awaitility is a DSL that allows you to express expectations of an asynchronous system in a concise and easy to read manner

.

http://www.awaitility.org/
Annotations processing changes in JDK 23

Up to JDK 22, this feature is enabled by default, which may have been reasonable when it was introduced in JDK 6 circa 2006, but from a current perspective, in the interest of making build output more robust against annotation processors being placed on the class path unintentionally, this is much less reasonable. Hence, starting with JDK 23, javac requires an additional command-line option to enable annotation processing.


https://mail.openjdk.org/pipermail/jdk-dev/2024-May/009028.html
Is Java heavyweight? will the container images be huge? Nope, Java is pretty good at producing decent size container images. The table below shows the container image sizes for a variety of popular open source project. Java does pretty well on these measures.

https://github.com/asaikali/modern-spring-on-kubernetes/blob/main/containerize%2Freadme.md
😁2
https://docs.gradle.org/8.9/release-notes.html

This release improves error and warning reporting for variant issues during dependency resolution. It also exposes structural details of Java compilation errors for IDE integrators, making it easier to analyze and resolve issues.
A virtual thread is not mapped 1:1 to a dedicated OS-level thread. Rather, we can think of it as a task that is scheduled to a fork-join thread pool. When a virtual thread enters a blocking call, like waiting for a Future, it relinquishes the OS thread it occupies and simply remains in memory until it is ready to resume. In the meantime, the OS thread can be reassigned to execute other VTs in the same fork-join pool

https://netflixtechblog.com/java-21-virtual-threads-dude-wheres-my-lock-3052540e231d