20 Aug 2025
DZone Java Zone
Filtering Java Stack Traces With MgntUtils Library
Introduction: Problem Definition and Suggested Solution Idea
This article is a a technical article for Java developers that suggest a solution for a major pain point of analyzing very long stack traces searching for meaningful information in a pile of frameworks related stack trace lines. The core idea of the solution is to provide a capability to intelligently filter out irrelevant parts of the stack trace without losing important and meaningful information. The benefits are two-fold:
1. Making stack trace much easier to read and analyze, making it more clear and concise
20 Aug 2025 8:00pm GMT
15 Aug 2025
DZone Java Zone
Java JEP 400 Explained: Why UTF-8 Became the Default Charset
A JDK Enhancement Proposal (JEP) is a formal process used to propose and document improvements to the Java Development Kit. It ensures that enhancements are thoughtfully planned, reviewed, and integrated to keep the JDK modern, consistent, and sustainable over time. Since its inception, many JEPs have introduced significant language and runtime features that shape the evolution of Java. One such important proposal, JEP 400, introduced in JDK 18 in 2022, standardizes UTF-8 as the default charset, addressing long-standing issues with platform-dependent encoding and improving Java's cross-platform reliability.
Traditionally, Java's I/O API, introduced in JDK 1.1, includes classes like FileReader
and FileWriter
that read and write text files. These classes rely on a Charset
to correctly interpret byte data. When a charset is explicitly passed to the constructor, like in:
15 Aug 2025 7:00pm GMT
12 Aug 2025
DZone Java Zone
Scoped Values: Revolutionizing Java Context Management
In an application meant for concurrent execution need of sharing data (or context) between threads is imperative. The available design choices are to pass the context as method parameter(s) or enable the context to be universally accessible (viz. global variable or equivalent).
While former choice (i.e. context as method argument) is easiest it doesn't scale well. As the application evolves, the context too grows and thus the method parameters. Moreover, the method is required to accept parameters which aren't utilized by itself directly but instead some method deep down the call hierarchy. Thus, overall data flow isn't clean or intuitive. In case the context is mutable any of the callee potentially could corrupt the context. Identifying this rouge behavior is unpleasant at best.
12 Aug 2025 12:00pm GMT
11 Aug 2025
DZone Java Zone
Testing Approaches for Java Enterprise Applications With Jakarta NoSQL and Jakarta Data
When discussing software development and its history, we often hear quotes emphasizing the importance of testing; however, in practice, we usually prioritize it as the last step, perhaps ahead of documentation. Without proper testing, ensuring the quality of your software is nearly impossible. Tests work as a safety certification, catching issues early and ensuring that your software behaves as expected. Despite their clear advantages - improved code quality, easier refactoring, and better adaptability for future changes - tests are often neglected.
The reality is that testing is a long-term investment, and many software engineers and tech leaders tend to underestimate its importance. This article aims to highlight why testing should be an integral part of your development workflow, particularly when working with Jakarta EE.
11 Aug 2025 12:00pm GMT
07 Aug 2025
DZone Java Zone
Introduction to Data-Driven Testing With JUnit 5: A Guide to Efficient and Scalable Testing
When discussing the history of software development, we can observe an increase in software complexity, characterized by more rules and conditions. When it comes to modern applications that rely heavily on databases, testing how the application interacts with its data becomes equally important. It is where data-driven testing plays a crucial role.
Data-driven testing helps increase software quality by enabling tests with multiple data sets, which means the same test runs multiple times with different data inputs. Automating these tests also ensures scalability and repeatability across your test suite, reducing human error, boosting productivity, saving time, and guaranteeing that the same mistake doesn't happen twice.
07 Aug 2025 1:00pm GMT
How to Configure a Jenkins Job for a Maven Project
Jenkins is a widely used automation server that plays a big role in modern software development. It helps teams streamline their continuous integration and continuous delivery (CI/CD) processes by automating tasks like building, testing, and deploying applications.
One of the key strengths of Jenkins is its flexibility. It easily integrates with a wide range of tools and technologies, making it adaptable to different project needs.
07 Aug 2025 12:00pm GMT
06 Aug 2025
DZone Java Zone
jBPM as AI Orchestration Platform
Disclaimer: The views expressed in this document reflect the author's subjective perspective on the current and potential capabilities of jBPM.
This text presents jBPM as a platform for orchestrating external AI-centric environments, such as Python, used for designing and running AI solutions. We will provide an overview of jBPM's most relevant functionalities for AI orchestration and walk you through a practical example that demonstrates its effectiveness as an AI orchestration platform:
06 Aug 2025 7:00pm GMT
04 Aug 2025
DZone Java Zone
How to Build an MCP Server With Java SDK
A previous article [Resource 1] described how an open-source PostgreSQL Model Context Protocol server can be plugged into an AI host and provide additional database context to the interacting LLM. Moreover, quite a few interesting insights on the considered data were inferred by the LLM when natural language prompts were written and responded to.
The current article uses the exact same database schema and does a similar experiment, the only significant difference being that the MCP Server is developed from scratch, using the available Java SDK, without involving any additional frameworks.
04 Aug 2025 12:00pm GMT
30 Jul 2025
DZone Java Zone
Immutable Objects Using Record in Java
It is often useful to have objects that, once created, don't change their content. To see a complete description on how to build such class, you can read my previous article "Immutable Objects in Java".
Let's imagine we want to build a PersonClass
with two fields: firstName
and lastName
. To create immutable instances, this class must:
30 Jul 2025 8:00pm GMT
25 Jul 2025
DZone Java Zone
Smart-Doc: Generating gRPC API Documentation in Java Projects
Foreword
In modern Java microservices, gRPC simplifies inter-service communication with its efficient binary protocol and multi-language support. However, maintaining gRPC API documentation can be challenging as projects grow. Among various AI tools, smart-doc stands out as the optimal solution for generating gRPC API documentation in Java projects.
Advantages of Smart-Doc in Java Projects
1. Fast Speed
Smart-doc is designed to quickly scan code and generate documentation without additional runtime dependencies. It directly extracts .proto
files, compiles them into Java code using protoc
, and then generates documentation by parsing the Java code and comments. This process is much faster than AI tools.
25 Jul 2025 1:00pm GMT
23 Jul 2025
DZone Java Zone
Undocumented Java 16 Feature: The End-of-File Comment
While working on some code where I wanted to obscure parts of it using Unicode escapes instead of the actual source, I accidentally stumbled upon an undocumented feature that's been around since Java 16: what I call the end-of-file comment.
In Java, we typically have three types of comments:
23 Jul 2025 6:00pm GMT
22 Jul 2025
DZone Java Zone
Lock-Free Programming: From Primitives to Working Structures
Working with multiple threads is one of the most complex problems we may encounter in our daily work. When put against the wall of multithreading, most people right away reach out for blocking approaches. In Java, it takes the form of the synchronized keyword, or some other less painful mechanisms, like ReentrantLock. Locks are not the only option: Lock-free programming is also the way.
In this text, I will show problems, techniques, and best practices related to Lock-Free Programming. I will also provide a real-life example of how to implement a Lock-Free stack. Besides, I will share common patterns on moving from Lock-Free to Wait-Free.
22 Jul 2025 11:00am GMT
21 Jul 2025
DZone Java Zone
1-Line IO in Java
Here is a quick coding challenge for all Java developers: How many lines of code do you need to implement the following tasks, using the JDK and any library of your choice?
(Rules of the game: Lines of code are counted using standard formatting, you need to close any opened resources, the code may throw IOExceptions, except if stated otherwise):
21 Jul 2025 12:00pm GMT
17 Jul 2025
DZone Java Zone
How Hackers Exploit Spring Core Vulnerability in 2025: Proactive Measures to Detect Emerging Cyber Threats
API management has emerged as a critical and strategic factor in staying ahead of the market leaders. However, digital transformation has significant disadvantages, such as opening the door to hackers.
Hackers have been quick to take advantage of a serious flaw in Spring Core, commonly known as SpringShell or Spring4Shell among security experts. The cybercriminal sends a specially created query to the Spring Core framework's web application server.
17 Jul 2025 7:00pm GMT
Fraud Detection in Mobility Services With Apache Kafka and Flink
Mobility services like Uber, Grab, FREE NOW (Lyft), and DoorDash are built on real-time data. Every trip, delivery, and payment relies on accurate, instant decision-making. But as these services scale, they become prime targets for sophisticated fraud-GPS spoofing, fake accounts, payment abuse, and more. Traditional, batch-based fraud detection can't keep up. It reacts too late, misses complex patterns, and creates blind spots that fraudsters exploit. To stop fraud before it happens, mobility platforms need data streaming technologies like Apache Kafka and Apache Flink for fraud detection. This blog explores how leading platforms are using real-time event processing to detect and block fraud as it happens-protecting revenue, user trust, and platform integrity at scale.
The Business of Mobility Services (Ride-Hailing, Food Delivery, Taxi Aggregators, Etc.)
Mobility services have become an essential part of modern urban life. They offer convenience and efficiency through ride-hailing, food delivery, car-sharing, e-scooters, taxi aggregators, and micro-mobility options. Companies such as Uber, Lyft, FREE NOW (former MyTaxi; acquired by Lyft recently), Grab, Careem, and DoorDash connect millions of passengers, drivers, restaurants, retailers, and logistics partners to enable seamless transactions through digital platforms.
17 Jul 2025 12:00pm GMT
15 Jul 2025
DZone Java Zone
How to Build a Real API Gateway With Spring Cloud Gateway and Eureka
API gateways are essential in a microservices architecture.
But building one that's real-world-ready, secure, scalable, and service-aware will require more than just wiring a few annotations.
15 Jul 2025 3:00pm GMT