<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mihaela Gheorghe-Roman on JAVAPRO International</title><link>https://javapro-en.svenruppert.com/authors/mihaela-gheorghe-roman/</link><description>Recent content in Mihaela Gheorghe-Roman on JAVAPRO International</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Thu, 25 Jun 2026 07:00:01 +0000</lastBuildDate><atom:link href="https://javapro-en.svenruppert.com/authors/mihaela-gheorghe-roman/index.xml" rel="self" type="application/rss+xml"/><item><title>From Prototype to Production: Building Safe and Reliable AI Agents with Spring AI and MCP</title><link>https://javapro-en.svenruppert.com/from-prototype-to-production-building-safe-and-reliable-ai-agents-with-spring-ai-and-mcp/</link><pubDate>Thu, 25 Jun 2026 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/from-prototype-to-production-building-safe-and-reliable-ai-agents-with-spring-ai-and-mcp/</guid><description>&lt;p&gt;The AI agent demo works perfectly in the development environment. Your prototype handles natural language queries, executes tool calls, and generates sensible responses. But when stakeholders ask &amp;lsquo;Can we deploy this?&amp;rsquo;, reality sets in. That question exposes the massive gap between a functional prototype and a Spring AI production system ready for real traffic, unexpected failures, and business-critical operations.&lt;/p&gt;
&lt;p&gt;That question reveals the massive gap between a working prototype and a production system. The demo doesn&amp;rsquo;t handle failures gracefully. It has no guardrails against harmful outputs. There&amp;rsquo;s no visibility into what the agent is actually doing. Cost per request? Unknown. Error rates? No idea. Recovery strategy when the LLM provider goes down? Haven&amp;rsquo;t thought about it.&lt;/p&gt;</description></item><item><title>Unlocking Developer Productivity with Java 25: Features You’ll Actually Use</title><link>https://javapro-en.svenruppert.com/unlocking-developer-productivity-with-java-25-features-youll-actually-use/</link><pubDate>Thu, 28 May 2026 07:00:02 +0000</pubDate><guid>https://javapro-en.svenruppert.com/unlocking-developer-productivity-with-java-25-features-youll-actually-use/</guid><description>&lt;h2 id="summary"&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Java 25 features for developers bring practical enhancements you can use daily. From improved switch expressions and record patterns to simplified error handling, these Java 25 features reduce boilerplate, improve clarity, and simplify your code. Discover practical, real-world examples you can drop directly into your codebase.&lt;/p&gt;
&lt;h2 id="introduction-a-java-release-that-makes-a-difference"&gt;&lt;strong&gt;&lt;a href="A%20Java%20Release%20That%20Makes%20a%20Difference"&gt;Introduction: A Java Release that makes a difference&lt;/a&gt;&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;For many developers, Java release cycles blur together. Each version arrives with a list of JEPs, often full of improvements that, while important for the platform, they don’t immediately translate into productivity gains for everyday coding.&lt;/p&gt;</description></item><item><title>Pattern Matching in Java 25: Writing Cleaner, Safer, Faster Code</title><link>https://javapro-en.svenruppert.com/pattern-matching-in-java-25-writing-cleaner-safer-faster-code/</link><pubDate>Tue, 28 Apr 2026 07:00:02 +0000</pubDate><guid>https://javapro-en.svenruppert.com/pattern-matching-in-java-25-writing-cleaner-safer-faster-code/</guid><description>&lt;h2 id="summary"&gt;Summary&lt;/h2&gt;
&lt;p&gt;Java Pattern Matching Updates in Java 25 make pattern matching a core tool in your developer toolbox. This article walks through the latest improvements, including record patterns, guarded patterns, and deconstruction in switch statements. Through practical examples, you’ll learn how to refactor old verbose code into concise, expressive logic with safety and proper type control at every step.&lt;/p&gt;
&lt;h2 id="introduction-pattern-matching-has-grown-up"&gt;Introduction: Pattern Matching Has Grown Up&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Java Pattern Matching Updates&lt;/strong&gt; in Java 25 bring a major shift in how developers handle type checks, record deconstruction, and switch statements. These updates make code more concise, type-safe, and easier to maintain.&lt;/p&gt;</description></item><item><title>Java 25 and the New Age of Performance: Virtual Threads and Beyond</title><link>https://javapro-en.svenruppert.com/java-25-and-the-new-age-of-performance-virtual-threads-and-beyond/</link><pubDate>Thu, 05 Mar 2026 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/java-25-and-the-new-age-of-performance-virtual-threads-and-beyond/</guid><description>&lt;h2 id="summary"&gt;Summary&lt;/h2&gt;
&lt;p&gt;Project Loom continues to reshape how we handle concurrency in the JVM, and Java 25 makes virtual threads more accessible to developers than ever. In this article, we’ll take a closer look at how virtual threads work, how they differ from platform threads, and where they provide the most benefit in real-world applications. We’ll also include performance benchmarks and a step-by-step guide for refactoring blocking I/O services to use virtual threads.&lt;/p&gt;</description></item><item><title>Security in the Age of Java 25: New Language Tools for Safer Code</title><link>https://javapro-en.svenruppert.com/security-in-the-age-of-java-25-new-language-tools-for-safer-code/</link><pubDate>Tue, 30 Dec 2025 07:00:03 +0000</pubDate><guid>https://javapro-en.svenruppert.com/security-in-the-age-of-java-25-new-language-tools-for-safer-code/</guid><description>&lt;p&gt;Security is more than just encryption - it&amp;rsquo;s also about how you write code. There are several Java security features that can help prevent logic bugs, misuse of types, and unexpected state mutations. Learn how sealed classes, pattern matching, and records can reinforce domain modeling, reduce null checks, and prevent injection-prone scenarios.&lt;/p&gt;
&lt;h2 id="introduction-why-java-security-features-matters-more-than-ever"&gt;Introduction: Why Java security features Matters More Than Ever&lt;/h2&gt;
&lt;p&gt;Application security has never been a static field. Over the past two decades, the Java platform has evolved not just as a runtime for enterprise applications but as a trusted foundation for industries ranging from finance and healthcare to government systems. Security breaches, once attributed primarily to poor encryption or missing authentication, now more often stem from subtler flaws: unchecked input, leaky abstractions, and poorly modeled domain logic.&lt;/p&gt;</description></item><item><title>Java Streams Evolution: From Java 8 to Today</title><link>https://javapro-en.svenruppert.com/java-streams-evolution-from-java-8-to-today/</link><pubDate>Thu, 13 Nov 2025 07:00:02 +0000</pubDate><guid>https://javapro-en.svenruppert.com/java-streams-evolution-from-java-8-to-today/</guid><description>&lt;p&gt;The Java Streams evolution, starting from Java 8, has significantly transformed how we process data collections with a clean, declarative style. What began as straightforward map, filter, and reduce operations has expanded into sophisticated stream pipelines and advanced features like Gatherers. Gaining a solid grasp of this evolution empowers you to write more elegant and efficient Java code.&lt;/p&gt;
&lt;p&gt;This article takes you through the journey of Java Streams, tracing their development from Java 8 to the present. Along the way, we’ll highlight important enhancements, practical use cases, and best practices to help you leverage Streams to their fullest potential.&lt;/p&gt;</description></item><item><title>The Rise of JVM Languages: Kotlin, Scala, Groovy, and More</title><link>https://javapro-en.svenruppert.com/the-rise-of-jvm-languages-kotlin-scala-groovy-and-more/</link><pubDate>Thu, 09 Oct 2025 07:00:00 +0000</pubDate><guid>https://javapro-en.svenruppert.com/the-rise-of-jvm-languages-kotlin-scala-groovy-and-more/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;As Java marks its 30th anniversary in 2025, it remains a foundational force in software development. However, one of its most enduring contributions is not just the language itself but the Java Virtual Machine (JVM). The JVM has paved the way for numerous modern programming languages by providing a stable, efficient, and interoperable runtime environment.&lt;/p&gt;
&lt;p&gt;Over the years, developers have embraced JVM-based languages. These languages offer alternative syntax styles, functional programming paradigms, and dynamic scripting capabilities. At the same time, they maintain seamless compatibility with Java. This article explores the growth of JVM languages. It highlights Kotlin, Scala, and Groovy, along with other influential options such as Clojure, JRuby, and Jython. These languages have extended the reach of the JVM, empowering developers with increased flexibility and productivity.&lt;/p&gt;</description></item><item><title>Adapting Java for Modern APIs: REST, GraphQL, and Event-Driven Innovation</title><link>https://javapro-en.svenruppert.com/adapting-java-for-modern-apis-rest-graphql-and-event-driven-innovation/</link><pubDate>Thu, 05 Jun 2025 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/adapting-java-for-modern-apis-rest-graphql-and-event-driven-innovation/</guid><description>&lt;h2 id="introduction"&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;In the rapidly evolving world of software development, new API standards like REST, GraphQL, and event-driven architectures are crucial for building scalable, efficient systems. Java for modern APIs, known for its stability in enterprise applications, has continually adapted to meet the demands of these modern paradigms. With an evolving ecosystem, Java for modern APIs remains a robust choice for developers creating flexible, scalable web services.&lt;/p&gt;
&lt;p&gt;This article explores how Java for modern APIs has evolved to support REST, GraphQL, and event-driven architectures, highlighting the technical advancements, key frameworks, and best practices that power modern API development.&lt;/p&gt;</description></item><item><title>Java through the decades: From Applets to Microservices</title><link>https://javapro-en.svenruppert.com/java-through-the-decades-from-applets-to-microservices/</link><pubDate>Thu, 22 May 2025 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/java-through-the-decades-from-applets-to-microservices/</guid><description>&lt;h2 id="introduction"&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Java has undergone a remarkable transformation since its creation. It evolved from a language designed for interactive web-based Applets to a dominant force in enterprise development and cloud-native microservices. Java was originally created to enhance web interactivity. It soon evolved to support business applications, distributed systems, and modern architectures. This article explores Java evolution from Applets to microservices, highlighting key technological advancements and industry shifts.&lt;/p&gt;
&lt;h2 id="java-evolution-from-applets-to-microservices-a-technological-shift"&gt;&lt;strong&gt;Java Evolution from Applets to Microservices: A Technological Shift&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Java’s origins trace back to 1991 when Sun Microsystems initiated the Green Project to develop a platform-independent language. Officially released in 1995, Java introduced the concept of &amp;ldquo;Write Once, Run Anywhere&amp;rdquo; (WORA), allowing applications to execute on any system with a Java Virtual Machine (JVM).&lt;/p&gt;</description></item></channel></rss>