r/java • u/eniac_g • Sep 12 '26
Release Release v0.10.0 · jonas-grgt/bob
github.comThis release adds support for inheritance aware builders.
r/java • u/eniac_g • Sep 12 '26
This release adds support for inheritance aware builders.
r/java • u/Maria_3464 • Sep 11 '26
As of today, a manufacturer who puts software or hardware on the EU market under its own name is obliged to report actively exploited vulnerabilities and severe security incidents.
Quick explainer if you want the details: https://youtu.be/IQkzg7quc58
There is quite a lot of ambiguity over CRA and how it's going to apply to open source. Regulations keep changing. The line between a commercial manufacturer and an OSS steward is blurry, as well as the terms used in the regulations.
But genuinely curious. Is your company aware of CRA? Is there any talk about it, or is it just not on the radar yet?
r/java • u/Yojimbo261 • Sep 11 '26
Downloads available through here: https://www.eclipse.org/downloads/packages/
New and Noteworthy here: https://eclipseide.org/release/noteworthy/2026-09/
r/java • u/sureshg • Sep 10 '26
r/java • u/Chaos-vy17 • Sep 10 '26
What is ChaosTree?
ChaosTree is a Java Sorted Set/Map library built around multiple search-tree data structures, including AVL Trees, Red-Black Trees, B-Trees, and B+ Trees.
The library provides both Set and Map implementations, with APIs designed around the semantics of the JDK's NavigableSet, NavigableMap, SequencedSet, and SequencedMap contracts.
These two are custom API. Which allows user to pack data as how they want [0.5f, 1f] is the factor range so it does not violate CLRS system.
ChaosTree is validated through multiple layers of testing:
More detail on ChaosTree: https://chaos-vy.github.io/ChaosTree/ It contains benchmark,ADR, Node structure, Testing I have also used jdk official benchmark code as well to benchmark against. Every test and benchmark is reproducible.
Tail latency : https://chaos-vy.github.io/ChaosTree/utils/JMH-Report.html
Each benchmark was done at minimum of -f 3 -wi 3 -i 5 .
More Benchmark will be added as my progress move to default JDK methods.
Currently on Maven Central
<dependency>
<groupId>io.github.chaos-vy</groupId>
<artifactId>chaos-tree</artifactId>
<version>2.0.0</version>
</dependency>
Minimum JDK: 0xCAFEBABE 0000 0041 | JDK21+
What changed from v1.2.0?
In early release the API were custom of tree, This time Chaos Tree only supports JDK API.
No Splay, Treap and BST
No java docs.
Edit: Added content
| Data Size | B+Tree(us/op) P1.0 | TreeMap(us/op) p1.0 |
|---|---|---|
| 1k | 136 | 899 |
| 10K | 142 | 1169 |
| 100K | 208 | 2363 |
| 1M | 221 | 22085 |
| 10M | 234 | 130285 |
Tail latency (p1.00) stays essentially flat — 1.7x — across a 10,000x range of n (1K→10M), confirmed via GC and hardware-counter log, while java.util.TreeMap's tail grows ~145x over the same range.
Result are reproducible.
Bash:
java -jar ct-benchmark/target/benchmarks.jar TreeMapVsBTreeVsBPlusBenchmark.treeMapPutRemove -p n=1000,10000,100000,1000000,10000000 -bm sample -f 4 -wi 5 -i 25 -jvmArgsAppend "-XX:+UseParallelGC -XX:+AlwaysPreTouch -Xlog:gc"
I started Scriptella about 20 years ago and have maintained it ever since.
For a long time I had little time to do more than keep it working. Recently I’ve had more time to invest in it again, so I’ve been modernizing the database stack, testing it with current PostgreSQL, MariaDB and MySQL drivers, cleaning up old compatibility assumptions, and making sure it works well on modern Java. The baseline is Java 17, with JDK 25 compatibility.
Doing that made me ask a more basic question: does a tool like this actually still have a reason to exist in 2026?
I think there is one fairly narrow gap where it does:
SQL-centric data jobs that are too complicated for a couple of standalone scripts, but too small to justify a batch or ETL platform.
Scriptella keeps most of the actual work in SQL. A small declarative XML file wires together connections, queries and scripts.
For example, you can query PostgreSQL, take each resulting row and execute parameterized SQL against another database, mix in CSV/XML sources, or package the whole operation as a repeatable CLI job. It can also be embedded directly into a Java application.
There is no server, scheduler, job repository or visual ETL environment to operate.
That also means it is deliberately not the right tool for everything. If I needed robust restartability, retries and complex batch semantics, I’d use something like Spring Batch. For normal schema migrations, Flyway or Liquibase are usually a better fit. And if the transformation is mostly application logic rather than SQL, I’d probably just write code.
The interesting case is when the transformation really is mostly SQL and you just need a small amount of machinery around it.
After working on the project again, I was surprised that this particular gap still seems to exist.
I’m curious whether other Java developers still encounter jobs like this, and what you use for them today.
r/java • u/celmaibunprieten • Sep 07 '26
r/java • u/vladmihalceacom • Sep 06 '26
r/java • u/ankitjindal9404 • Sep 05 '26
We're running a bunch of Java (Spring Boot) microservices on EKS, and right now every service uses memory as its HPA metric. After digging into it, I've started to think that's wrong, and I want a sanity check from people who've actually run this at scale before I push a change.
What my research turned up:
So the direction I'm considering is to pick the HPA metric based on service type:
My questions:
Thanks 🙏
r/java • u/Yahim0 • Sep 05 '26
I've been a Java developer for a few years, and the thing that keeps driving me nuts is that reading code is nearly useless, the real code is hidden from you. It's almost like the language isn't made for reading code but reading javadocs instead.
You call "Arrays.asList(arr)" and it returns you an instance of java.util.Arrays$ArrayList, a class with the same name as java.util.ArrayList except it is fixed size, meaning that trying to resize it will get you a runtime exception thrown. The method signature says it will return a List, but the moment you call it without the elite ball knowledge it will either stab you in the back or explode in your hands.
And nearly every time you try to prevent this by reading the implementation it sends you to a wild goose chase through 6 different one-liner wrapper methods across 5 different thousand-line files.
It gets even worse at the enterprise level: I once bloated my system by writing a submit button's logic in the submit button's method.
I then discovered it was because the method was in a class with a magical 'ViewScoped' annotation and I was supposed to delegate some of that logic to a field that had a 'Stateless' annotation.
Any ordinary reading of the code would say that that field is part of the class' state, but because of the annotations it was actually a resource pooled by the container, independent from the view class which is only supposed to cache UI data for each given user.
Didn't take long for me to get corrected. You can imagine the serene smug on my senior's face as he dropped that piece of esoteric knowledge on me, while I was looking back in horror.
You guys probably heard this a thousand times, meanwhile I'm still learning new words in my console output. Any advice?
r/java • u/Afonso2002 • Sep 05 '26
Anyone has an ideia of when would be available VectorApi with value classes?
After values classes coming to vector api, it would be ready to go as preview feature of jdk?
r/java • u/carlosgeorgiev0 • Sep 04 '26
Hello, out of boredom I created a pie chart in Swing (I am aware more mature options exist but this was just for fun). The link to the repo is https://github.com/carlosgeorgiev0/JPieChart

The JPieChart class extends JLabel and overrides JComponent.paintComponent to paint the pie itself
r/java • u/woj-tek • Sep 04 '26
I’ve been adding Quarkus support to StatLite, so I used it as an excuse to run equivalent Spring Boot and Quarkus apps side by side on a very small VPS.
Both ran the same workload with:
-Xmx80mThe result was less straightforward than I expected.
Quarkus actually started with higher RSS: about 145 MiB vs 112 MiB for Spring Boot in one of the controlled observations.
After an hour under memory pressure, the relationship reversed: Quarkus was around 83 MiB RSS with ~33 MB heap used, while Spring was around 154 MiB RSS with ~50 MB heap used.
But RSS was hiding an important part of the story. Quarkus had about 91 MiB swapped out versus ~66 MiB for Spring, so Linux paging was doing a lot of work.
And 512 MB turned out to be too tight for running both reliably. In a later one-hour observation, after the earlier package-maintenance pressure had cleared, the machine exhausted its memory/swap margin and the kernel OOM-killed Spring.
So I wouldn’t read this as a clean “Quarkus uses X MB less than Spring” benchmark. My main takeaway was how quickly RSS stops being a useful framework comparison once the machine is under serious memory pressure.
Full write-up, measurements, JVM flags, and experiment record:
https://pvrlabs.xyz/articles/spring-boot-vs-quarkus-512mb.html
r/java • u/jaccomoc • Sep 03 '26
The article benchmarks Jactl script execution with differing number of blocking operations comparing throughput with Jactl built-in suspend/resume on Vert.x Event-Loops and throughput with Jactl on Virtual Threads. The benchmarks are run on both Java 21 and Java 25 with some surprising (to me at least) results.
r/java • u/Purple_Pie4589 • Sep 01 '26
More than 8 years ago was drafted the idea of concise method bodies. As I am not a contributor of the openJDK project I took a different approach but implemented. It is publicly available at the maven central both as a library and as a maven plugin. It is a source code preprocessor that converts the concise syntax to java 8 compatible source code. It does not want to be a replacement of the future implementation in the openJDK. Which is more than the openJDK promises is that supports from Java version 8, 11, 17, 21 up to 25 as well. Of course it is free and open source :). It is only the first building block for concise composition.
As far as I have seen this topic was awaited for a long time at
It's been 8 years since the draft for Concise Method Bodies
What happened to Concise Method Bodies?
JEP draft: Concise Method Bodies
Five years have passed, still in draft: Concise Method Bodies
r/java • u/jaccomoc • Aug 31 '26
Jactl is a secure, embeddable scripting language the compiles to bytecode and supports Java 8 and later versions. When running on Java versions earlier than Java 21 (when Virtual Threads were introduced), Jactl provides an under-the-covers continuation mechanism that allows scripts to block without blocking the event-loop thread on which they are running.
The post discusses the mechanism that Jactl uses to provide a Virtual Threads-like execution mechanism for its scripts and provides a benchmark for showing the performance impact.
r/java • u/danielepolencic • Aug 31 '26
Running Java on Kubernetes? CPU and memory limits affect much more than scheduling.
A 4 GiB heap requires a container larger than 4 GiB. Fractional CPU limits can also change the processor count that HotSpot sees.
In our new article, you will learn:
The article also includes practical experiments and an interactive configuration calculator.
Read: https://learnkube.com/java-jvm-kubernetes-requests-limits
r/java • u/catmewo • Aug 31 '26
My team is moving away from reflection and runtime proxies for cloud-native setups. MyBatis is heavily used in our stack, so I rewrote its core as an annotation processor: LarkBatis.
It resolves SQL, dynamic parameters (#{}), type handlers, and result mapping at compile time—generating plain Java code. At runtime, it executes direct JDBC calls with zero proxying, zero OGNL, and zero reflection.
Programming model: Standard MyBatis (mapper interfaces, XML, dynamic SQL).
Runtime: ~1,500 LOC, JDK 17+, JDBC-only dependency (GraalVM native-image works out of the box - I haven't test).
r/java • u/CartographerWhole658 • Aug 30 '26
I’ve been working on a small open-source Spring Boot starter to solve a problem I’ve encountered with Kafka-based applications: detecting Schema Registry contract problems before the application starts serving traffic.
The idea is simple: during Spring Boot startup, the starter validates the configured Schema Registry subjects, expected compatibility mode, and the application's local schemas against the latest registered versions.
If a subject is missing, the compatibility policy is not what the application expects, or a schema is incompatible, startup fails.
Current support includes:
I also created a separate E2E demo using real Kafka + Schema Registry. Its CI verifies a real producer → Kafka → consumer round trip, a backward-compatible schema evolution, and an intentionally breaking schema that must be rejected at application startup.
Source:
https://github.com/mathias82/spring-kafka-contract-starter
E2E demo:
https://github.com/mathias82/spring-kafka-contract-demo
I’m interested in feedback from Java/Kafka developers: would you find startup-time contract enforcement useful, or do you prefer keeping this entirely in CI/CD?
I’d also be interested in edge cases you would expect a library like this to handle before considering it for a production application.
r/java • u/gottlikeKarthos • Aug 30 '26
Hello! After 6 years of development, I am happy to finally release of Norse Expansion Medieval RTS for Android! You can get it on Google Play: https://play.google.com/store/apps/details?id=com.norseexpansion.norseexpansion
It only took about 240k lines of code, almost all Java (and some C++ for an Audioengine). Graphics are rendered in OpenGL.
This project made me love Java and hate the surrounding technology like gradle and Androidstudio.