29 Jul 2026
DZone Java Zone
This One Spring Data JPA Pattern Cleaned Up to 3 Years of Repository Debt
If you've spent more than a year building enterprise Java apps, you've probably felt this specific kind of pain: a product manager asks for a new search filter, and you open your repository file to find it already has 18 methods. You write number 19, then 20, and somewhere around method 25 you start wondering if there's a better way.
There is. It's called Spring Data JPA Specifications, and it's been sitting quietly in the framework the whole time.
29 Jul 2026 6:00pm GMT
The Java Story: The Official Documentary Is Here
The Java Story | The Official Documentary provides more than a retrospective on one of the most influential programming languages. Tracing Java's journey from the Oak project at Sun Microsystems to its widespread adoption in enterprise systems, embedded devices, and global platforms, the documentary highlights how technical constraints, strategic decisions, and architectural choices shaped its evolution. For those interested in technology history, it serves as a valuable case study of how software transitions from experimentation to infrastructure, and how early engineering decisions continue to impact modern systems.
The documentary's significance reaches beyond the Java community. It examines enduring themes in software engineering, including portability, backward compatibility, platform design, ecosystem governance, standardization, and the interplay between technology and community. It also reframes innovation as an ongoing process of adaptation, compromise, and collaboration, rather than a single breakthrough. As such, The Java Story is recommended viewing for anyone interested in how technologies endure, evolve, and become foundational to entire industries.
29 Jul 2026 1:00pm GMT
23 Jul 2026
DZone Java Zone
How to Build Living AI Coding Assistants With Quarkus Agent MCP
AI code generation tools are fantastic at writing isolated snippets of code, but they quickly fall short when they need to understand a running application's state. When a compiled class fails, or a local database container drops, standard AI coding assistants are left guessing. They lack runtime context, environment visibility, and any real-time connection to your active local development workspace.
The Model Context Protocol (MCP) bridges this gap by standardizing how AI applications interact with local tools. By leveraging the standalone quarkus-agent-mcp server, you can turn your local AI coding companion into a "living" pair programmer that can build, configure, and debug your Quarkus applications in real time.
23 Jul 2026 6:00pm GMT
Stop Writing If-Else Spaghetti: Architecting Cleaner Java with the Strategy Pattern
In high-volume, enterprise Java applications, business logic has a natural tendency to degrade into procedural complexity. You start with a straightforward task, such as calculating a discount for a pharmacy claim or evaluating a financial transaction. And before long, the core service method transforms into a multi-hundred-line monolith choked with nested if-else branches and brittle switch statements.
This code smell is more than just an eyesore; it creates significant technical debt. It is exceptionally difficult to unit test, violates fundamental object-oriented design principles, and introduces severe regression risks where adding a single business rule threatens to break three existing ones.
23 Jul 2026 3:00pm GMT
21 Jul 2026
DZone Java Zone
Hardening MCP Gateways: Mitigating July 28 Security Risks in Java Applications
The upcoming release of the July 28 Model Context Protocol (MCP) specification is a massive milestone for AI integration. By shedding the baggage of stateful connections and embracing a streamlined, stateless HTTP paradigm, MCP has finally become enterprise-ready. Developers can now build highly scalable, decentralized AI tool networks that integrate directly with enterprise data.
However, statelessness and flexibility come with a distinct set of trade-offs. The newly introduced capabilities - specifically custom _meta payload objects, dynamic parameter routing, and x-mcp-header mapping - have opened up novel, highly sophisticated attack vectors. If your AI agents can execute code, query databases, or access internal APIs, security cannot be an afterthought.
21 Jul 2026 5:00pm GMT
17 Jul 2026
DZone Java Zone
Mitigating Cache Stampedes in Dynamic API Translation Using Java 21 Virtual Threads
The Hidden Cost of API Versioning Hell
Continuous API evolution is non-negotiable in contemporary software development, yet maintaining backward compatibility remains an incredibly expensive and labor-intensive hurdle. Core schema mutations frequently force downstream enterprise clients into disruptive and unplanned refactoring cycles, stalling product velocity.
The typical industry fix - maintaining multiple, hard-coded API routes (e.g., /v1, /v2) - inevitably results in severe codebase sprawl, fractured engineering focus, and massive technical debt for the API provider.
17 Jul 2026 6:00pm GMT
AGENTS.md Makes Your Java Codebase AI-Agent Ready
The year is 2026, and the way software is built has fundamentally shifted. We are no longer just writing code for other humans to read; we are building systems that AI coding agents, such as Cursor, GitHub Copilot Agent Mode, Claude Code, and autonomous CLI tools, will navigate, debug, and extend.
As Java developers, we are blessed with robust tooling. If you are using Quarkus, you already possess a superpower: Supersonic Subatomic Java with an ultra-fast developer loop, continuous testing, and built-in Dev Services.
17 Jul 2026 4:00pm GMT
16 Jul 2026
DZone Java Zone
Going Stateless: Scaling MCP Servers to Cloud-Native Java and HTTP
The Model Context Protocol (MCP) completely changed how we connect large language models to real-world data and tools. However, early versions of the protocol had a massive bottleneck for enterprise developers: they relied heavily on stateful, long-lived sessions. If you wanted to scale out your AI tools to handle thousands of concurrent agent workflows, you had to deal with sticky sessions, complex load balancing, and heavy memory overhead.
The newest updates to the MCP specification solve this problem by introducing a completely stateless HTTP foundation. By removing the traditional initialization handshake and session IDs, MCP servers can now function as lightweight, independent microservices.
16 Jul 2026 6:00pm GMT
14 Jul 2026
DZone Java Zone
Compliance Reporting Without Losing the Spreadsheet or the Control
Compliance-reporting teams keep spreadsheets in the loop for a practical reason: a workbook lets domain experts inspect assumptions, formulas, source rows, and intermediate values without reading a line of application code. That transparency is genuinely useful, and it's a big part of why replacing Excel outright so often fails to stick.
The trouble starts once that workbook becomes part of a repeatable, audited reporting process - a regulatory filing, an IFRS report, a periodic compliance submission. At that point, a shared Excel file isn't enough on its own. What's actually needed is version control, validation, an audit trail, a review step, and a reliable way to connect the spreadsheet's logic to the systems downstream.
14 Jul 2026 5:00pm GMT
Differential Flamegraphs in Java in Jeffrey Microscope
In the first article, we got started with Jeffrey Microscope and learned to read a single flamegraph - the timeseries, search, tooltips, and the allocation and wall-clock variants. This time we build directly on that foundation and tackle one of Jeffrey's most powerful features for real-world performance work: the differential flamegraph, which compares two recordings and shows you precisely what changed between them.
A single flamegraph tells you where your application spends its time. But the questions that matter most in practice are comparative:
14 Jul 2026 12:00pm GMT
13 Jul 2026
DZone Java Zone
Jeffrey Microscope for Generating Flame Graphs in Java
Java Flight Recorder (JFR) captures an enormous amount of detail about what your application is doing - but raw JFR files are only as useful as the tools you have to explore them. Jeffrey is an open-source JFR analyzer that specializes in turning JFR events into interactive visualizations, and Jeffrey Microscope is its standalone, single-user deployment: a self-contained application that lets you import recordings and dig into flamegraphs, timeseries, and other views right in your browser. Getting started takes a minute:
- Standalone JAR - download the latest
microscope.jarfrom the GitHub releases page and start it withjava -jar microscope.jar(Java 25 or newer). - Docker - skip the setup entirely with
docker run -it --network host petrbouda/microscope. - Sample recordings - if you want to explore the tool before profiling your own application, the
petrbouda/microscope-examplesimage ships with sample recordings preloaded (docker run -it --network host petrbouda/microscope-examples).
In this article, we'll use Jeffrey Microscope to analyze JFR flamegraphs and walk through how they help you find where your application actually spends its time.
13 Jul 2026 2:00pm GMT
10 Jul 2026
DZone Java Zone
Your Codename One App, Now A Native Mac App
Codename One has run on the desktop for a long time through the JavaSE target, which is the same engine that powers the simulator. What it did not have was a real native Mac binary, and the desktop output still carried a lot of phone-shaped habits: a drawn toolbar where the OS menu bar belongs, scrollbars you could not grab, no place in the menu for Preferences or Quit. With version 7.0.250, we finally have an actual native macOS application target that doesn't bundle a JVM and is as native as our iOS target.
A Native Mac Build From the iOS Pipeline
PR #5053 adds a Mac Native target that takes the existing project through the same build as the iPhone builder and the ParparVM pipeline that produces an iOS app. In this case, it emits a native Mac variant of it.
10 Jul 2026 4:00pm GMT
Exploring A Few Java 25 Language Enhancements
Although Java 26 was released in mid-March this year, Java 25 is the latest LTS version available, and thus I chose to focus my attention on it in the first place.
Irrespective of whether certain Java 25 language improvements are still available as preview features or not, this article briefly outlines a few. The main purpose is to first make the developers aware that Java is continuously refined and evolved by its API contributors and secondly, to raise the curiosity and interest of exploring these enhancements in detail.
10 Jul 2026 2:00pm GMT
06 Jul 2026
DZone Java Zone
HTTP QUERY in Java: The Missing Method for Complex REST API Searches
HTTP methods in REST API design are more than technical details; they communicate intent between clients and servers. A GET request instructs the server to retrieve a resource. A POST request typically indicates that data should be processed, often creating a new resource. PUT indicates replacement or update, while DELETE signals removal. These methods are well-established and fundamental to the Web.
Despite this, API design has long faced a notable gap.
06 Jul 2026 5:00pm GMT
03 Jul 2026
DZone Java Zone
OBO SSO in Java Applications: Securely Calling Downstream APIs on Behalf of a User
Modern enterprise applications rarely operate in isolation. A user may authenticate through a web or mobile application, invoke a Java-based backend API, and that backend may need to call additional downstream services such as microservices or third-party APIs.
In these scenarios, simply using the application's identity is often insufficient. The downstream service may need to know which user initiated the request and enforce authorization based on that user's permissions. This is where the OAuth 2.0 On-Behalf-Of (OBO) flow becomes invaluable.
03 Jul 2026 2:00pm GMT
02 Jul 2026
DZone Java Zone
Dead Letter Queue Patterns in Apache Flink: Handling Poison Messages Without Stopping Your Stream
Streaming systems usually fail in one of two ways:
- Loudly, when infrastructure breaks
- Quietly, when one bad record keeps replaying until the pipeline is effectively dead
The second failure mode is more dangerous because it often starts with something small: malformed JSON, an unexpected schema change, a missing required field, or a downstream timeout that was never handled correctly.
02 Jul 2026 1:00pm GMT