Warning: file_get_contents(https://dzone.com/articles/test-get-api-rest-assured-java): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274

Warning: file_get_contents(https://dzone.com/articles/apache-spark-3-to-apache-spark-4-migration): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274

Warning: file_get_contents(https://dzone.com/articles/using-java-for-developing-agentic-ai-applications): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274

Warning: file_get_contents(https://dzone.com/articles/odata-mongodb-query-translator-for-java-app): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274

Warning: file_get_contents(https://dzone.com/articles/tracking-dependencies-beyond-build-stage): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274

Warning: file_get_contents(https://dzone.com/articles/enterprise-java-applications-risk-driven-architecture): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274

Warning: file_get_contents(https://dzone.com/articles/memory-optimization-and-utilization-in-java-25-lts): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274

Warning: file_get_contents(https://dzone.com/articles/data-driven-api-testing-java-rest-assured-part-5): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274

Warning: file_get_contents(https://dzone.com/articles/migrating-legacy-microservices-java-typescript): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274

Warning: file_get_contents(https://dzone.com/articles/deploying-java-applications-on-arm64): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274

Warning: file_get_contents(https://dzone.com/articles/scaling-ai-workloads-java-apis): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274

Warning: file_get_contents(https://dzone.com/articles/taming-the-jvm-latency-monster): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274

Warning: file_get_contents(https://dzone.com/articles/automating-maven-dependency-upgrades-using-ai): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274

Warning: file_get_contents(https://dzone.com/articles/data-driven-api-testing-java-rest-assured-part-4): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274

Warning: file_get_contents(https://dzone.com/articles/data-driven-api-testing-java-rest-assured-part-3): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274

Warning: file_get_contents(https://dzone.com/articles/java-api-testing-rest-assured-testng-part-2): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274

Warning: file_get_contents(https://dzone.com/articles/cloud-native-java-microservices-serverless): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274

Warning: file_get_contents(https://dzone.com/articles/java-microservicesscs-vs-spring-modulith): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274

Warning: file_get_contents(https://dzone.com/articles/zero-cost-ai-with-java-1): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274

Warning: file_get_contents(https://dzone.com/articles/stranger-things-in-java-enum-types): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /usr/home/freebsd/rss-extender/RssExtender.php on line 274
en DZone Java Zone https://dzone.com/java Recent posts in Java on DZone.com How to Test a GET API Request Using REST-Assured Java https://dzone.com/articles/test-get-api-rest-assured-java <p name="c306">Testing GET requests is a fundamental part of API automation, ensuring that endpoints return the expected data and status codes. With REST Assured in Java, sending GET requests with query and path parameters, extracting data, verifying the status code, and validating the response body is quite simple.</p> <p name="6729">This tutorial walks through practical approaches to efficiently test GET APIs and build reliable automated checks, including:</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/test-get-api-rest-assured-java</span> Mon, 13 Apr 2026 14:30:00 GMT https://dzone.com/articles/3649945 Faisal Khatri Apache Spark 3 to Apache Spark 4 Migration: What Breaks, What Improves, What's Mandatory https://dzone.com/articles/apache-spark-3-to-apache-spark-4-migration </figcaption></span></span></h2> <p><a href="https://dzone.com/articles/apache-spark-40-whats-new-for-data-engineers-and-ml-devs">Apache Spark 4.0</a> represents a major evolutionary leap in the big data processing ecosystem. Released in 2025, this version introduces significant enhancements across SQL capabilities, Python integration, connectivity features, and overall performance. However, with great power comes great responsibility — migrating from Spark 3.x to Spark 4.0 requires careful planning due to several breaking changes that can impact your existing workloads.</p> <p>This comprehensive guide walks you through everything you need to know about the Spark 3 to Spark 4 migration journey. We'll cover what breaks in your existing code, what improvements you can leverage, and what changes are mandatory for a successful transition. Whether you're a data engineer, platform architect, or data scientist, this article provides practical insights to ensure a smooth migration path.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/apache-spark-3-to-apache-spark-4-migration</span> Fri, 10 Apr 2026 20:00:00 GMT https://dzone.com/articles/3632502 Rambabu Bandam Using Java for Developing Agentic AI Applications: The Enterprise-Ready Stack in 2026 https://dzone.com/articles/using-java-for-developing-agentic-ai-applications <p>As agentic AI shifts from prototypes to enterprise production, Java emerges as a powerful alternative to Python-centric stacks. This article looks into building robust agentic applications using LangChain4j for orchestration, Quarks for high-performance deployment, Model Context Protocol (MCP) for standardized tool and data access, and OpenTelemetry for comprehensive observability. Through practical code examples — including tool definitions, agent creation with memory, RAG integration, and production patterns — the guide demonstrates Java's advantages in type safety, low-latency execution, deep system integration, and audit-ready tracing. This is ideal for developers seeking scalable, reliable agentic solutions in mission-critical environments.</p> <p><a href="https://dzone.com/articles/future-of-agentic-ai">Agentic AI</a> — autonomous systems that reason, plan, use tools, remember context, and execute complex multi-step tasks — is moving from experimental prototypes to production workloads in enterprises. While Python ecosystems (LangChain, LlamaIndex, CrewAI) led the early wave, <a href="https://dzone.com/articles/the-reason-java-is-still-popular">Java</a> is emerging as a serious contender for mission-critical agentic applications.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/using-java-for-developing-agentic-ai-applications</span> Thu, 09 Apr 2026 16:00:05 GMT https://dzone.com/articles/3640652 Bhaskar Reddy Kollu Translating OData Queries to MongoDB in Java With Jamolingo https://dzone.com/articles/odata-mongodb-query-translator-for-java-app <p>Modern APIs often need to support <strong>dynamic filtering, sorting, and pagination</strong> without creating dozens of custom endpoints. One of the most widely used standards for this is <a href="https://docs.oasis-open.org/odata/odata/v4.01/os/part2-url-conventions/odata-v4.01-os-part2-url-conventions.html" rel="noopener noreferrer" target="_blank">OData</a> (Open Data Protocol).<strong> </strong>OData has established itself as a powerful standard for building and consuming RESTful APIs. It provides a uniform way to query and manipulate data, offering clients unparalleled flexibility through system query options like <code>$filter</code>, <code>$select</code>, and <code>$expand</code>.</p> <p>Example: </p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/odata-mongodb-query-translator-for-java-app</span> Thu, 09 Apr 2026 15:00:00 GMT https://dzone.com/articles/3639782 Szymon Tarnowski Tracking Dependencies Beyond the Build Stage https://dzone.com/articles/tracking-dependencies-beyond-build-stage <p>When working on modern software, a developer will often use hundreds or thousands of dependencies. Кeeping an accurate and consistent bill of materials is essential for license compliance and for security.</p> <h2>Motivation</h2> <p>In a large organization, the scope of dependencies review given by build-time scanning has some limitations.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/tracking-dependencies-beyond-build-stage</span> Thu, 09 Apr 2026 14:00:00 GMT https://dzone.com/articles/3641632 Rumen Dimov Enterprise Java Applications: A Practical Guide to Securing Enterprise Applications with a Risk-Driven Architecture https://dzone.com/articles/enterprise-java-applications-risk-driven-architecture <p dir="ltr">Enterprise <a href="https://dzone.com/articles/supercharge-your-java-apps-with-ai">Java applications</a> still serve business-critical processes but are becoming vulnerable to changing security threats and regulatory demands. Traditional compliance-based security methods tend to respond to audits or attacks, instead of stopping them. This paper introduces a risk-based security architecture, which focuses on protection according to the impact of the business, the probability of the threat, and exposure. The threat modeling, dependency risk analysis, and layered security controls help organizations to minimize the attack surfaces beforehand without impacting on performance and delivery velocity. The strategy is explained with the help of real-life examples of enterprise Java to facilitate its use in practice.</p> <h2 dir="ltr"><strong>Intended Audience</strong></h2> <p dir="ltr">The audience targeted in the article is those an enterprise architect, senior Java developer, security architect, and DevSecOps teams who are required to design, modernize or secure large-scale Java applications. In recent years, there are a number of breaches of enterprises that have not been initiated by a <a href="https://dzone.com/articles/ai-zero-day-threat-hunting">zero-day exploit</a> but a known vulnerability, which has not been prioritized e.g. an outdated library, an open API, or a poorly configured integration In a number of instances, the organizations were technically compliant but still exposed because of the homogenous, checklist-driven security measures that did not concentrate on the high-risk elements. </p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/enterprise-java-applications-risk-driven-architecture</span> Wed, 08 Apr 2026 23:00:06 GMT https://dzone.com/articles/3638073 Sravan Reddy Kathi Memory Optimization and Utilization in Java 25 LTS: Practical Best Practices https://dzone.com/articles/memory-optimization-and-utilization-in-java-25-lts <p>Memory tuning in <a href="https://dzone.com/articles/java-evolution-changed-developer-workflow">Java</a> has evolved over years and whenever each version was released, we anticipate some magic. If you worked with Java 6 or 7, you probably remember spending hours tweaking PermGen, experimenting with CMS flags, and nervously watching GC logs in production. But with Java 25, Memory Optimization and Utilization are more mature.<br><br> Modern Java gives us better garbage collectors, improved container awareness, stronger tooling, and smarter runtime ergonomics. But despite all that progress, memory optimization is something that you can't ignore. In a cloud-native environment where every gigabyte costs money, memory efficiency directly affects both performance and money spent on infrastructure as well.<br><br> In this article I am trying to summarize some of the best practices for memory utilization, so developers can use it as a reference guide.<br><br><strong><span style="font-size:30px;line-height:115%;font-family:"Helvetica Neue";color:#222635;">1. Start with Measurement, Not Assumptions</span></strong></p> <p data-end="1660" data-start="1503">The most common mistake that we could usually see is increasing heap size without understanding allocation patterns. A bigger heap often delays a problem rather than solving it.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/memory-optimization-and-utilization-in-java-25-lts</span> Tue, 31 Mar 2026 15:00:00 GMT https://dzone.com/articles/3639593 Muhammed Harris Kodavath Data-Driven API Testing in Java With REST Assured and TestNG: Part 5 https://dzone.com/articles/data-driven-api-testing-java-rest-assured-part-5 <p name="1251">In the previous articles, we discussed how to perform data-driven API automation testing with different approaches, including <a data-href="https://medium.com/javarevisited/data-driven-api-testing-in-java-with-rest-assured-and-testng-part-1-275795ca2c62" href="https://dzone.com/articles/data-driven-api-testing-in-java-with-rest-assured" rel="noopener noreferrer" target="_blank">object arrays</a>, <a data-href="https://medium.com/javarevisited/data-driven-api-testing-in-java-with-rest-assured-and-testng-part-2-06029e688efe" href="https://dzone.com/articles/java-api-testing-rest-assured-testng-part-2" rel="noopener noreferrer" target="_blank">iterators</a>, <a data-href="https://medium.com/javarevisited/data-driven-api-testing-in-java-with-rest-assured-and-testng-part-3-3eed3cc1e39f" href="https://dzone.com/articles/data-driven-api-testing-java-rest-assured-part-3" rel="noopener noreferrer" target="_blank">CSV files</a>, and <a data-href="https://medium.com/@iamfaisalkhatri/data-driven-api-testing-in-java-with-rest-assured-and-testng-part-4-3e90355085d5" href="https://dzone.com/articles/data-driven-api-testing-java-rest-assured-part-4" rel="noopener noreferrer" target="_blank">JSON files</a>.</p> <p name="11a8">An Excel file can also be used to perform data-driven API testing. It allows testers to store multiple test data in one place, where we can easily add, update, or remove test cases without changing the automation code. It allows non-technical members, such as Business Analysts and Product owners, to understand and edit the test data to perform robust testing.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/data-driven-api-testing-java-rest-assured-part-5</span> Mon, 30 Mar 2026 16:30:00 GMT https://dzone.com/articles/3641502 Faisal Khatri Migrating Legacy Microservices to Modern Java and TypeScript https://dzone.com/articles/migrating-legacy-microservices-java-typescript <p>"Modernize the legacy stack" is a phrase that strikes dread into every senior engineer's heart — and for good reason. Migration projects fail at a notoriously high rate. They balloon in scope, break running systems, and produce tech debt that rivals what they replaced. I led successful migrations of critical <a href="https://dzone.com/articles/how-to-get-started-with-microservices">microservices</a> to modern runtimes, containerized deployments, and event-driven architectures — on time, without downtime, and with measurable gains in performance and reliability.</p> <p>This article distills the frameworks, patterns, and hard lessons from those engagements into a practical guide for teams facing similar challenges.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/migrating-legacy-microservices-java-typescript</span> Mon, 30 Mar 2026 15:00:00 GMT https://dzone.com/articles/3639263 Venkata Sandeep Dhullipalla Deploying Java applications on Arm64 with Kubernetes https://dzone.com/articles/deploying-java-applications-on-arm64 <p dir="ltr">In the first part of this two-part series on <a href="https://amperecomputing.com/tutorials/optimizing-java-applications-for-arm64-in-the-cloud">tuning Java applications for Ampere®- powered cloud instances</a>, we concentrated on tuning your Java environment for cloud applications, including picking the right Java version, tuning your default heap and garbage collector, and some options that enable your application to take advantage of underlying Arm64 features. In this article, we will look more closely at the operating system and Kubernetes configuration. In particular, we take a deep dive into container awareness in recent versions of Java, how to restrict the system resources made available to Java containers, and some common Linux configuration options to optimize your system for specific workloads. Much of the advice related to operating system tuning and workload placement applies to all workloads, not just JVM workloads, but since our focus is on the deployment of Java applications on Arm64 to Kubernetes, we will focus on that use-case here.</p> <h3 dir="ltr">Resource Allocation in Kubernetes</h3> <p dir="ltr">In this section, we’ll step outside the JVM and look at the infrastructure layer. Understanding how Kubernetes allocates resources, and how your Java application perceives those allocations, is fundamental to ensuring that you allocate the right amount of resources to your JVM.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/deploying-java-applications-on-arm64</span> Mon, 30 Mar 2026 13:30:00 GMT https://dzone.com/articles/3643642 Dave Neary Scaling AI Workloads in Java Without Breaking Your APIs https://dzone.com/articles/scaling-ai-workloads-java-apis <p>As AI inference moves from prototype to production, Java services must handle high-concurrency workloads without disrupting existing APIs. This article examines patterns for scaling AI model serving in Java while preserving API contracts. Here, we compare synchronous and asynchronous approaches, including modern virtual threads and reactive streams, and discuss when to use in-process JNI/FFM calls versus network calls, gRPC/REST. We also present concrete guidelines for API versioning, timeouts, circuit breakers, bulkheads, rate limiting, graceful degradation, and observability using tools like Resilience4j, Micrometer, and OpenTelemetry. </p> <p>Detailed Java code examples illustrate each pattern from a blocking wrapper with a thread pool and queue to a non-blocking implementation using <code>CompletableFuture</code> and virtual threads to a Reactor-based example. We also show a gRPC client/server stub, a batching implementation, Resilience4j integration, and Micrometer/OpenTelemetry instrumentation, as well as performance considerations and deployment best practices. Finally, we offer a benchmarking strategy and a migration checklist with anti-patterns to avoid.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/scaling-ai-workloads-java-apis</span> Fri, 27 Mar 2026 20:00:00 GMT https://dzone.com/articles/3640496 Ramya vani Rayala Taming the JVM Latency Monster https://dzone.com/articles/taming-the-jvm-latency-monster <h2>An Architect's Guide to 100GB+ Heaps in the Era of Agency</h2> <div dir="ltr"> <p data-path-to-node="1"><span data-path-to-node="1,0">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 <b data-index-in-node="133" data-path-to-node="1,0">Integration Renaissance </b>— an era defined by autonomous agents that must <b data-index-in-node="203" data-path-to-node="1,0">Plan -> Execute -> Reflect </b>— latency is no longer just a performance metric; it is a governance failure.</span>   </p> <p data-path-to-node="2"><span data-path-to-node="2,0">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.</span><span data-path-to-node="2,2"> For an integrator operating on modern </span><a href="https://dzone.com/articles/jvm-architecture-explained"><span data-path-to-node="2,2">Java virtual machines</span></a><span data-path-to-node="2,2"> (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: <b data-index-in-node="270" data-path-to-node="2,2">G1</b>, <b data-index-in-node="274" data-path-to-node="2,2">Shenandoah</b>, and <b data-index-in-node="290" data-path-to-node="2,2">ZGC</b>.</span>   </p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/taming-the-jvm-latency-monster</span> Thu, 26 Mar 2026 20:00:00 GMT https://dzone.com/articles/3639529 Theo Ezell Automating Maven Dependency Upgrades Using AI https://dzone.com/articles/automating-maven-dependency-upgrades-using-ai <p>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.</p> <p>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.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/automating-maven-dependency-upgrades-using-ai</span> Thu, 26 Mar 2026 19:00:00 GMT https://dzone.com/articles/3640454 Sravan Reddy Kathi Data-Driven API Testing in Java With REST Assured and TestNG: Part 4 https://dzone.com/articles/data-driven-api-testing-java-rest-assured-part-4 <p name="af20">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.</p> <p name="0f6c">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.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/data-driven-api-testing-java-rest-assured-part-4</span> Thu, 26 Mar 2026 12:00:00 GMT https://dzone.com/articles/3641501 Faisal Khatri Data-Driven API Testing in Java With REST Assured and TestNG: Part 3 https://dzone.com/articles/data-driven-api-testing-java-rest-assured-part-3 <p name="7401">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 <code>@DataProvider</code><em> </em>annotation, test data can be easily separated from the test logic. This approach enables maintainability and makes test automation more scalable and flexible.</p> <p name="0cca">This article explains how to implement data-driven testing with CSV files and TestNG in a clear, practical, and easy-to-follow manner.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/data-driven-api-testing-java-rest-assured-part-3</span> Wed, 25 Mar 2026 14:30:00 GMT https://dzone.com/articles/3641500 Faisal Khatri Data-Driven API Testing in Java With REST Assured and TestNG: Part 2 https://dzone.com/articles/java-api-testing-rest-assured-testng-part-2 <p name="be61">In the <a data-href="https://medium.com/@iamfaisalkhatri/data-driven-api-testing-in-java-with-rest-assured-and-testng-part-1-275795ca2c62" href="https://dzone.com/articles/data-driven-api-testing-in-java-with-rest-assured" rel="noopener noreferrer" target="_blank">previous article</a>, we explored how to implement data-driven testing using <em>Object</em> arrays and TestNG’s <code>@DataProvider</code> 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 <em>Iterators</em>, which provide a more efficient way to manage large and dynamic datasets.</p> <p name="0e9c">This article focuses on how to perform data-driven API automation testing using an <em>Iterator</em> with a <em>DataProvider</em> annotation of TestNG.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/java-api-testing-rest-assured-testng-part-2</span> Tue, 24 Mar 2026 17:00:00 GMT https://dzone.com/articles/3641498 Faisal Khatri Scalable Cloud-Native Java Architecture With Microservices and Serverless https://dzone.com/articles/cloud-native-java-microservices-serverless <p><span data-contrast="auto" lang="EN-US">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 </span><span data-contrast="auto" lang="EN-US">cloud-native Java architecture</span><span data-contrast="auto" lang="EN-US"> is designed to achieve: systems built for change, not just for uptime.</span><span data-ccp-props="{"134233117":false,"134233118":false,"335551550":6,"335551620":6,"335559738":240,"335559739":240}"> </span></p> <p><span data-contrast="auto" lang="EN-US">But “cloud-native” is not a buzzword synonym for “running on Kubernetes.” A truly scalable approach combines</span><span data-contrast="auto" lang="EN-US"> </span><a href="https://dzone.com/articles/java-microservices-code-examples-tutorials-and-more"><span data-contrast="auto" lang="EN-US">Java microservices</span></a><span data-contrast="auto" lang="EN-US"> (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.</span><span data-ccp-props="{"134233117":false,"134233118":false,"335551550":6,"335551620":6,"335559738":240,"335559739":240}"> </span></p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/cloud-native-java-microservices-serverless</span> Fri, 20 Mar 2026 14:00:00 GMT https://dzone.com/articles/3639338 Harris Anderson Java Microservices (SCS) vs. Spring Modulith https://dzone.com/articles/java-microservicesscs-vs-spring-modulith <p data-end="396" data-start="172">This article discusses the differences between a Java microservice architecture (SCS style) using Clean Architecture and a <a href="https://dzone.com/articles/creating-a-spring-modulith-project-practical-guide">Spring Modulith architecture</a>. It explores their strengths, trade-offs, and when to use each approach.</p> <p data-end="452" data-start="398">The architectures are demonstrated using two projects:</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/java-microservicesscs-vs-spring-modulith</span> Wed, 18 Mar 2026 20:00:00 GMT https://dzone.com/articles/3629470 Sven Loesekann Zero-Cost AI with Java https://dzone.com/articles/zero-cost-ai-with-java-1 <p data-end="216" data-start="143">So you have a new AI-based idea and need to create an MVP app to test it?</p> <p data-end="312" data-start="218">If your AI knowledge is limited to OpenAI, I have bad news for you… it’s not going to be free.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/zero-cost-ai-with-java-1</span> Wed, 18 Mar 2026 19:00:00 GMT https://dzone.com/articles/3639155 Fernando Boaglio Stranger Things in Java: Enum Types https://dzone.com/articles/stranger-things-in-java-enum-types <p><em>This article is part of the series “<a href="https://www.claudiodesio.com/category/stranger-things-in-java/" rel="noopener" target="_blank">Stranger things in Java</a>,” 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 “<a href="https://www.javaforaliens.com" rel="noopener" target="_blank">Java for Aliens</a>” (in English), the book “<a href="https://www.nuovojava.it" rel="noopener" target="_blank">Il nuovo Java</a>”, and the book “<a href="https://amzn.to/4s3PSrk" rel="noopener" target="_blank">Programmazione Java</a>.”</em></p> <p>This article is a short tutorial on <strong>enumeration types</strong>, also called <a href="https://dzone.com/articles/enums-in-python">enumerations</a> or <strong>enums</strong>. 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.</p> <br /><br /><span style='font: #ff0000'>WARNING! Your Rss-Extender rules returned an empty string for link: https://dzone.com/articles/stranger-things-in-java-enum-types</span> Mon, 16 Mar 2026 13:00:09 GMT https://dzone.com/articles/3621156 Claudio De Sio Cesari