26 Mar 2026
DZone Java Zone
Taming the JVM Latency Monster
An Architect's Guide to 100GB+ Heaps in the Era of Agency
In the "Chat Phase" of AI, we could afford a few seconds of lag while a model hallucinated a response. But as we transition into the Integration Renaissance - an era defined by autonomous agents that must Plan -> Execute -> Reflect - latency is no longer just a performance metric; it is a governance failure.
When your autonomous agent mesh is responsible for settling a €5M intercompany invoice or triggering a supply chain move, a multi-second "Stop-the-World" (STW) garbage collection (GC) pause doesn't just slow down the application; it breaks the deterministic orchestration required for enterprise trust. For an integrator operating on modern Java virtual machines (JVMs), the challenge is clear: how do we manage mountains of data without the latency spikes that torpedo agentic workflows? The answer lies in the current triumvirate of advanced OpenJDK garbage collectors: G1, Shenandoah, and ZGC.
26 Mar 2026 8:00pm GMT
Automating Maven Dependency Upgrades Using AI
Enterprise Java applications do not often break due to business logic. The reason they break is that dependency ecosystems evolve all the time. Manual maintenance in most large systems consists of hundreds of third-party libraries, and small upgrades occur regularly as a result of security patches, code corrections, or vendor advice. The problem is not recognizing outdated libraries. Tools such as OWASP Dependency-Check, Snyk, and Black Duck already do it well.
The problem is a wastage of the developer's time in repetitive actions: checking Maven Central for the latest versions, validating whether the upgrade is safe, reading release notes, guessing what test cases should be executed, and raising a pull request with meaningful documentation.
26 Mar 2026 7:00pm GMT
Data Driven API Testing in Java With REST Assured and TestNG: Part 4
APIs are at the heart of almost every application, and even small issues can have a big impact. Data-driven API testing with JSON files using REST Assured and TestNG makes it easier to validate multiple scenarios without rewriting the same tests again and again. By separating test logic from test data, we can build cleaner, flexible, and more scalable automation suites.
In this article, we'll walk through a practical, beginner-friendly approach to writing API automation tests with REST Assured and TestNG using JSON files as the data provider.
26 Mar 2026 12:00pm GMT
25 Mar 2026
DZone Java Zone
Data-Driven API Testing in Java With REST Assured and TestNG: Part 3
Data-driven testing enables testers to execute the same test logic with multiple sets of input data, improving coverage and reliability with minimal effort. By combining CSV files with TestNG's @DataProvider annotation, test data can be easily separated from the test logic. This approach enables maintainability and makes test automation more scalable and flexible.
This article explains how to implement data-driven testing with CSV files and TestNG in a clear, practical, and easy-to-follow manner.
25 Mar 2026 2:30pm GMT
24 Mar 2026
DZone Java Zone
Data-Driven API Testing in Java With REST Assured and TestNG: Part 2
In the previous article, we explored how to implement data-driven testing using Object arrays and TestNG's @DataProvider annotation. While this approach works well for small to medium-sized datasets, it is not ideal for handling large volumes of data. To address this limitation, TestNG also supports the use of Iterators, which provide a more efficient way to manage large and dynamic datasets.
This article focuses on how to perform data-driven API automation testing using an Iterator with a DataProvider annotation of TestNG.
24 Mar 2026 5:00pm GMT
20 Mar 2026
DZone Java Zone
Scalable Cloud-Native Java Architecture With Microservices and Serverless
Building enterprise Java systems used to mean choosing an app server, deploying a monolith, and scaling vertically until the budget or the database complained. In 2026, modern Java teams are expected to deliver faster releases, better resilience, and elastic cost-performance across unpredictable workloads. That's exactly what cloud-native Java architecture is designed to achieve: systems built for change, not just for uptime.
But "cloud-native" is not a buzzword synonym for "running on Kubernetes." A truly scalable approach combines Java microservices (for domain isolation and independent delivery) with Serverless Java (for bursty or event-driven workloads), backed by Kubernetes for Java as the operational substrate for consistent deployment, resilience, and observability.
20 Mar 2026 2:00pm GMT
18 Mar 2026
DZone Java Zone
Java Microservices (SCS) vs. Spring Modulith
This article discusses the differences between a Java microservice architecture (SCS style) using Clean Architecture and a Spring Modulith architecture. It explores their strengths, trade-offs, and when to use each approach.
The architectures are demonstrated using two projects:
18 Mar 2026 8:00pm GMT
Zero-Cost AI with Java
So you have a new AI-based idea and need to create an MVP app to test it?
If your AI knowledge is limited to OpenAI, I have bad news for you… it's not going to be free.
18 Mar 2026 7:00pm GMT
16 Mar 2026
DZone Java Zone
Stranger Things in Java: Enum Types
This article is part of the series "Stranger things in Java," dedicated to language deep dives that will help us master even the strangest scenarios that can arise when we program. All articles are inspired by content from the book "Java for Aliens" (in English), the book "Il nuovo Java", and the book "Programmazione Java."
This article is a short tutorial on enumeration types, also called enumerations or enums. They are one of the fundamental constructs of the Java language, alongside classes, interfaces, annotations, and records. They are particularly useful to represent sets of known and unchangeable values, such as the days of the week or the cardinal directions.
16 Mar 2026 1:00pm GMT
13 Mar 2026
DZone Java Zone
Extending Java Libraries with Service Loader
When designing a Java library, extensibility is often a key requirement, especially in the later phases of a project. Library authors want to allow users to add custom behavior or provide their own implementations without modifying the core codebase. Java addresses this need with the Service Loader API, a built-in mechanism for discovering and loading implementations of a given interface at runtime.
Service Loader enables a clean separation between the Application Programming Interface (API) and its implementation, making it a solid choice for plugin-like architectures and Service Provider Interfaces (SPI). In this post, we'll look at how Service Loader can be used in practice, along with its advantages and limitations when building extensible Java libraries.
13 Mar 2026 5:00pm GMT
12 Mar 2026
DZone Java Zone
What's New in Java 25: Key Changes From Java 21
On the 16th of September 2025, Java 25 was released. Time to take a closer look at the changes since the last LTS release, which is Java 21. In this blog, some of the changes between Java 21 and Java 25 are highlighted, mainly by means of examples. Enjoy!
Introduction
What has changed between Java 21 and Java 25? A complete list of the JEPs (Java Enhancement Proposals) can be found at the OpenJDK website. Here you can read the nitty-gritty details of each JEP. For a complete list of what has changed per release since Java 21, the Oracle release notes give a good overview.
12 Mar 2026 5:00pm GMT
10 Mar 2026
DZone Java Zone
Unblocking a Failed Solr 5 to Solr 8 Migration in a Large-Scale Ads Retrieval System
Major version upgrades of search infrastructure are often treated as dependency and configuration exercises. In practice, when search sits upstream of machine-learning pipelines and directly impacts revenue, such upgrades can fail in far more subtle - and harder to diagnose - ways.
This article describes how a long-stalled migration of a production ads retrieval system from Apache Solr/Apache Lucene 5 to 8 was unblocked after multiple prior attempts had failed. The failures were not caused by missing dependencies or misconfiguration, but by cumulative semantic drift and execution-path changes that only manifested under real production conditions.
10 Mar 2026 6:00pm GMT
09 Mar 2026
DZone Java Zone
Square, SumUp, Shopify: Data Streaming for Real-Time Point-of-Sale (POS)
Point-of-Sale (POS) systems are no longer just cash registers. They are becoming real-time, connected platforms that handle payments, manage inventory, personalize customer experiences, and feed business intelligence. Small and medium-sized merchants can now access capabilities once reserved for enterprise retailers. Mobile payment platforms like Square, SumUp, and Shopify make it easy to sell anywhere and integrate sales channels seamlessly.
At the same time, data streaming technologies such as Apache Kafka and Apache Flink are transforming retail operations. They enable instant insights and automated actions across every store, website, and supply chain partner.
09 Mar 2026 2:00pm GMT
04 Mar 2026
DZone Java Zone
Building a Java 17-Compatible TLD Generator for Legacy JSP Tag Libraries
When TLD Generation Tooling Falls Behind Java 17
The vulnerabilities introduced by upgrades to the Java platform tend not to lie in the application code itself, but rather in the ecosystem of build-time tools that enterprise systems rely on. This was made clear by a migration to Java 17, in which a long-standing dependency on TldDoclet to generate Tag Library Descriptor (TLD) was compromised.
TldDoclet, a widely used tool for generating TLD metadata from Java tag handler classes, is no longer supplied or compatible with current Java versions. The effect of this gap was not so obvious. The application itself compiled and executed well with Java 17, and the underlying JSP tag handlers remained functional. But TLD generation did not come up with a congenial mechanism, consequently placing a hard blocker late in the build. What once was a constant and unseen component of the toolchain turned into a migration issue with a high risk.
04 Mar 2026 5:00pm GMT
03 Mar 2026
DZone Java Zone
Comparing Top 3 Java Reporting Tools
There's no shortage of reporting tools, but a good number of them are either part of heavyweight BI systems or cloud services. Many line‑of‑business applications, however, just want a discreet, built‑in reporting option that can be customized.
Having recently tested several Java‑based document generation tools and libraries, I thought a short, plain-spoken, and up-to-date review could be worth sharing.
03 Mar 2026 6:00pm GMT
27 Feb 2026
DZone Java Zone
Rethinking Java Web UIs With Jakarta Faces and Quarkus
Nowadays, Java enterprise applications often default to Angular, React, or Vue for the frontend. But for this kind of application, the most natural UI framework already exists in the Java ecosystem: Jakarta Faces.
Modern Java enterprise applications tend to follow a familiar pattern: a Java backend exposing REST APIs and a JavaScript/TypeScript frontend built with some library like Angular, React, or Vue. This architecture has become so standard that we rarely question it.
27 Feb 2026 6:00pm GMT