<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>foojay.io - Friends Of OpenJDK</title><link>https://foojay.io/</link><description>Foojay is a place for Friends Of OpenJDK, providing free, reference materials and blogs for daily Java usage.</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 02 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://foojay.io/index.xml" rel="self" type="application/rss+xml"/><item><title>Changes Included in Release 26.08 of Azul Zing Builds of OpenJDK</title><link>https://foojay.io/today/changes-included-in-release-26-08-of-azul-zing-builds-of-openjdk/</link><pubDate>Fri, 02 Oct 2026 00:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Matt Van Order</dc:creator><category>Java</category><category>Release Notes</category><guid>https://foojay.io/today/changes-included-in-release-26-08-of-azul-zing-builds-of-openjdk/</guid><description>Azul Zing Builds of OpenJDK, the optimized Java runtime within Azul Platform Prime, has reached the release of the 26.08 Stable Release line.</description></item><item><title>Why Every JVM In Your Fleet Warms Up Alone</title><link>https://foojay.io/today/why-every-jvm-in-your-fleet-warms-up-alone/</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jiří Holuša</dc:creator><category>Java Core</category><category>Performance</category><category>JEPs</category><guid>https://foojay.io/today/why-every-jvm-in-your-fleet-warms-up-alone/</guid><description>Why you can't just copy a JIT-compiled method from one JVM to another: compiled code is a bet on one specific JVM's state. Identity, validity, and profitability all have to be checked before it's safe to reuse.</description></item><item><title>Lathe: A Java Language Server That Works Straight From Your Maven Build</title><link>https://foojay.io/today/lathe-a-java-language-server-from-your-maven-build/</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexey Gavrilov</dc:creator><category>Developer Tools</category><category>Java</category><category>Maven</category><guid>https://foojay.io/today/lathe-a-java-language-server-from-your-maven-build/</guid><description>No project import, no classpath setup — Lathe takes its whole model from your Maven build, so the editor never drifts from what actually compiles.</description></item><item><title>Announcing 'Skinning JavaFX Applications'</title><link>https://foojay.io/today/announcing-skinning-javafx-applications/</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Libán Bande González</dc:creator><category>JavaFX</category><category>Java</category><guid>https://foojay.io/today/announcing-skinning-javafx-applications/</guid><description>A practical, code-first book on building modern, visually distinctive JavaFX interfaces — from theming to custom dashboard controls built from scratch.</description></item><item><title>My love-hate relationship with Java formatters</title><link>https://foojay.io/today/my-love-hate-relationship-with-java-formatters/</link><pubDate>Wed, 30 Sep 2026 00:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alex Abashev</dc:creator><category>Developer Tools</category><category>Java</category><category>Opinion</category><guid>https://foojay.io/today/my-love-hate-relationship-with-java-formatters/</guid><description>Learning to love google-java-format, why AI agents make formatters matter even more, and why palantir-java-format now has a fork: open-java-format.</description></item><item><title>Lies, Damn Lies and Benchmarks</title><link>https://foojay.io/today/performance-work-between-benchmarks/</link><pubDate>Wed, 30 Sep 2026 00:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Shai Almog</dc:creator><category>Java</category><guid>https://foojay.io/today/performance-work-between-benchmarks/</guid><description>Codename One tackles GC, maps, startup, and JavaScript overhead, and adds native drag and drop plus cross-device continuity. Javadoc joins website search...</description></item><item><title>JavaFX Links of September 2026</title><link>https://foojay.io/today/javafx-links-of-september-2026/</link><pubDate>Wed, 30 Sep 2026 00:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Frank Delporte</dc:creator><category>JavaFX</category><guid>https://foojay.io/today/javafx-links-of-september-2026/</guid><description>Here are the JavaFX LinksOfTheMonth of September 2026. This was a big month with the release of JavaFX 27!</description></item><item><title>Durable Execution Is a Property, Not a Product</title><link>https://foojay.io/today/durable-execution-is-a-property-not-a-product/</link><pubDate>Wed, 30 Sep 2026 00:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nicholas D'hondt</dc:creator><category>Opinion</category><category>Durability</category><category>Java</category><guid>https://foojay.io/today/durable-execution-is-a-property-not-a-product/</guid><description>Durable execution is a property your existing database can provide, not a product you must buy. Measured, with receipts you can run yourself.</description></item><item><title>The Java 21 Doomsday Clock Countdown</title><link>https://foojay.io/today/the-java-21-doomsday-clock-countdown/</link><pubDate>Tue, 29 Sep 2026 00:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dana Crane</dc:creator><category>Java</category><category>OpenJDK</category><category>OpenJDK Migration</category><guid>https://foojay.io/today/the-java-21-doomsday-clock-countdown/</guid><description>Oracle's free NFTC license for Java 21 has expired, and the October 2026 quarterly update is the first one enterprises have to pay for. Here are the three options left, and why the timeline is short!</description></item><item><title>Testing Kafka Consumer Recovery Contracts With Testcontainers and JUnit</title><link>https://foojay.io/today/testing-kafka-consumer-recovery-contracts-with-testcontainers-and-junit/</link><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ishan Shah</dc:creator><category>Java</category><category>Kafka</category><category>Testcontainers</category><category>Testing</category><guid>https://foojay.io/today/testing-kafka-consumer-recovery-contracts-with-testcontainers-and-junit/</guid><description>Use Testcontainers and JUnit to test Kafka consumer recovery contracts for duplicate delivery, malformed records, and offset-boundary failures.</description></item><item><title>How much will post-quantum migration cost your Java codebase?</title><link>https://foojay.io/today/how-much-will-post-quantum-migration-cost-your-java-codebase/</link><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Arpan Sharma</dc:creator><category>Security</category><category>Java</category><category>Research</category><guid>https://foojay.io/today/how-much-will-post-quantum-migration-cost-your-java-codebase/</guid><description>A static auditor that estimates what a post-quantum migration will cost a Java codebase, run across 27 popular Java projects to show where the cost hides.</description></item><item><title>AI-assisted genealogy, a follow-up</title><link>https://foojay.io/today/ai-assisted-genealogy-follow-up/</link><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nicolas Frankel</dc:creator><category>AI</category><category>Use Cases</category><guid>https://foojay.io/today/ai-assisted-genealogy-follow-up/</guid><description>A follow-up on AI-assisted genealogy: source quality with GEDCOM QUAY, per-site browsing skills, Playwright sessions, transcriptions, and hiccups along the way.</description></item><item><title>One Database, Two Models: Building AI-Friendly Java Applications with MySQL JSON Duality Views</title><link>https://foojay.io/today/one-database-two-models-mysql-json-duality-views-java/</link><pubDate>Sat, 26 Sep 2026 00:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">A N M Bazlur Rahman</dc:creator><category>Java</category><category>Databases</category><category>AI</category><category>LangChain4j</category><guid>https://foojay.io/today/one-database-two-models-mysql-json-duality-views-java/</guid><description>Explore MySQL JSON Duality Views in Java: simpler reads, safe document writes, ORM comparisons, and read-only tools for a local AI assistant.</description></item><item><title>VoIP, VPN, and the Build System Behind Them</title><link>https://foojay.io/today/voip-vpn-builders/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Shai Almog</dc:creator><category>Java</category><guid>https://foojay.io/today/voip-vpn-builders/</guid><description>Codename One adds native call management and VPN APIs, while its builders generate the platform services, frameworks, permissions, and extension plumbing...</description></item><item><title>BoxLang AI 3.4.0: Gateways, Human-in-the-Loop, and a Full Security Stack</title><link>https://foojay.io/today/boxlang-ai-340-gateways-hitl-security/</link><pubDate>Fri, 25 Sep 2026 00:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Luis Majano</dc:creator><category>AI</category><category>BoxLang</category><category>GenAI</category><category>Security</category><category>Developer Tools</category><guid>https://foojay.io/today/boxlang-ai-340-gateways-hitl-security/</guid><description>BoxLang AI 3.4.0 introduces gateways, durable human approvals, layered AI security, normalized reasoning, run control, and improvements across providers.</description></item><item><title>Diagrams as Code: Mermaid Support on the new Foojay</title><link>https://foojay.io/today/diagrams-as-code-mermaid-support-on-foojay/</link><pubDate>Thu, 24 Sep 2026 00:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Frank Delporte</dc:creator><category>Foojay</category><guid>https://foojay.io/today/diagrams-as-code-mermaid-support-on-foojay/</guid><description>Foojay articles now render Mermaid diagrams from a fenced code block. Write the diagram in Markdown, get a real diagram, and keep it reviewable in the pull request.</description></item><item><title>AsciiDoc Support on the new Foojay</title><link>https://foojay.io/today/asciidoc-support-on-foojay/</link><pubDate>Wed, 23 Sep 2026 00:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Frank Delporte</dc:creator><category>Foojay</category><guid>https://foojay.io/today/asciidoc-support-on-foojay/</guid><description>Foojay articles can now be written in AsciiDoc as well as Markdown. Named blocks, real tables, source callouts and admonitions — the things Markdown has no syntax for.</description></item><item><title>Announcing The New Foojay</title><link>https://foojay.io/today/announcing-the-new-foojay/</link><pubDate>Tue, 22 Sep 2026 00:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Frank Delporte</dc:creator><category>Foojay</category><guid>https://foojay.io/today/announcing-the-new-foojay/</guid><description>Foojay has a new home: a static, open-source site where publishing an article is a pull request. Same URLs, same archive, much faster, and new features.</description></item><item><title>World geography gotchas</title><link>https://foojay.io/today/world-geography-gotchas/</link><pubDate>Sun, 20 Sep 2026 05:51:17 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nicolas Frankel</dc:creator><category>Tutorials</category><guid>https://foojay.io/today/world-geography-gotchas/</guid><description>Years ago, a colleague of mine told me about two pockets of foreign land surrounded by Switzerland: Campione d'Italia and Büsingen am Hochrhein,…</description></item><item><title>BoxLang 1.17.0 Released: Module Inception, CLI Checker, Jar Loading and much more!</title><link>https://foojay.io/today/boxlang-1-17-0-released-module-inception-cli-checker-jar-loading-and-much-more/</link><pubDate>Thu, 17 Sep 2026 20:20:32 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Cristobal Escobar</dc:creator><category>AI</category><category>BoxLang</category><category>Developer Tools</category><category>GenAI</category><category>Java</category><category>Testing</category><category>Tools</category><guid>https://foojay.io/today/boxlang-1-17-0-released-module-inception-cli-checker-jar-loading-and-much-more/</guid><description>BoxLang has always been an extensible language. As of 1.17.0, it is a hierarchically extensible one. Modules can now contain other modules; aka Module…</description></item><item><title>What's New In The September 2026 Azul Payara Release?</title><link>https://foojay.io/today/whats-new-in-the-september-2026-azul-payara-release/</link><pubDate>Wed, 16 Sep 2026 16:46:54 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dominika Tasarz</dc:creator><category>Jakarta EE</category><category>Payara</category><guid>https://foojay.io/today/whats-new-in-the-september-2026-azul-payara-release/</guid><description>MicroProfile 7.1 lands on the commercial lines, OpenTracing is removed, and Jakarta Agentic AI reaches Payara Micro in the September Azul Payara release.</description></item><item><title>Can You Explain the Diff Your AI Agent Just Wrote?</title><link>https://foojay.io/today/can-you-explain-the-diff-your-ai-agent-just-wrote/</link><pubDate>Tue, 15 Sep 2026 14:12:01 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktoria Evdokimova</dc:creator><category>AI</category><category>IntelliJ IDEA</category><category>Java</category><category>Kotlin</category><category>LLM</category><guid>https://foojay.io/today/can-you-explain-the-diff-your-ai-agent-just-wrote/</guid><description>Every Java developer has been in a code review where the question is simple: What does this method do? The answer used to tell you something.</description></item><item><title>How I Built an AI Assistant for My Career with Java, Spring AI, and MongoDB</title><link>https://foojay.io/today/how-i-built-an-ai-assistant-for-my-career-with-java-spring-ai-and-mongodb/</link><pubDate>Tue, 15 Sep 2026 11:51:17 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ricardo Mello</dc:creator><category>AI</category><category>Databases</category><category>Java</category><category>Mongo</category><guid>https://foojay.io/today/how-i-built-an-ai-assistant-for-my-career-with-java-spring-ai-and-mongodb/</guid><description>How one developer built a personal AI assistant in Java using Spring AI, MongoDB Vector Search, conversation memory, and tool calling with Calendly.</description></item><item><title>Hello Java 27! Have You Been Working Out?</title><link>https://foojay.io/today/hello-java-27-have-you-been-working-out/</link><pubDate>Tue, 15 Sep 2026 08:00:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Hanno Embregts</dc:creator><category>Java</category><category>Java Core</category><category>JEPs</category><guid>https://foojay.io/today/hello-java-27-have-you-been-working-out/</guid><description>Java 27 is like that friend that you haven't seen all summer, and when you finally see them again it's clear that they spent a lot of time in the gym. Bringing numerous improvements to performance and security, this version of Java seems to be in top shape. This post has all the info!</description></item><item><title>Foojay Podcast #101: Java 27 in Practice: Smaller Heaps, Smarter Defaults, and Valhalla on the Horizon</title><link>https://foojay.io/today/foojay-podcast-101/</link><pubDate>Mon, 14 Sep 2026 06:11:42 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Frank Delporte</dc:creator><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Simon Ritter</dc:creator><category>Java</category><category>Java Core</category><category>OpenJDK</category><category>Podcast</category><guid>https://foojay.io/today/foojay-podcast-101/</guid><description>Simon Ritter on JDK 27: compact object headers, G1 everywhere by default, post-quantum TLS, monthly security updates, and Valhalla's first preview in Java 28.</description></item><item><title>Come for Java. Get a Whole Lot More.</title><link>https://foojay.io/today/come-for-java-get-a-whole-lot-more/</link><pubDate>Fri, 11 Sep 2026 09:33:46 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Richard Fichtner</dc:creator><category>Conference</category><category>Events</category><category>Java</category><category>JUGs</category><guid>https://foojay.io/today/come-for-java-get-a-whole-lot-more/</guid><description>JCON USA returns inside IBM TechXchange 2026 with two rooms of deep Java content, a dedicated community home, and direct access to one of the years…</description></item><item><title>Reflection-Free Serialization on the JVM: Four Formats In, Avro Out</title><link>https://foojay.io/today/reflection-free-serialization-on-the-jvm-four-formats-in-avro-out/</link><pubDate>Thu, 10 Sep 2026 06:56:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitry Moskalyuk</dc:creator><category>Data Engineering</category><category>Java</category><category>Kotlin</category><guid>https://foojay.io/today/reflection-free-serialization-on-the-jvm-four-formats-in-avro-out/</guid><description>I run a model layer that accepts the same business data in JSON, XML, YAML, and TOML and converts it all to Avro. The project was greenfield, so the…</description></item><item><title>One Base URL, Many Coding Agents: What an OpenAI-Compatible Gateway Looks Like From java.net.http</title><link>https://foojay.io/today/one-base-url-many-coding-agents-what-an-openai-compatible-gateway-looks-like-from-java-net-http/</link><pubDate>Wed, 09 Sep 2026 16:09:53 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktoria Evdokimova</dc:creator><category>AI</category><category>Debugging</category><category>IntelliJ IDEA</category><category>Java</category><category>Java Beginner</category><category>Java Core</category><category>JavaFX</category><category>JavaPro</category><category>Kotlin</category><category>LLM</category><category>Machine Learning</category><category>Release Notes</category><guid>https://foojay.io/today/one-base-url-many-coding-agents-what-an-openai-compatible-gateway-looks-like-from-java-net-http/</guid><description>Somewhere in every coding agent there is an HTTP client. Claude Code, Codex, Cursor, Cline, OpenCode: strip away the terminal UI or the editor pane and…</description></item><item><title>Masking a JVM thread dump without breaking the analysis</title><link>https://foojay.io/today/masking-a-jvm-thread-dump-without-breaking-the-analysis/</link><pubDate>Wed, 09 Sep 2026 07:32:00 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Felipe Maschio</dc:creator><category>Java</category><category>Java Core</category><category>Security</category><guid>https://foojay.io/today/masking-a-jvm-thread-dump-without-breaking-the-analysis/</guid><description>A few weeks ago I posted on r/java about detecting virtual thread pinning from a plain thread dump. The technical discussion was fine. The comment that…</description></item><item><title>Debugging Is Invariant Discovery: What One Kafka Session Taught Us About AI Agents</title><link>https://foojay.io/today/debugging-is-invariant-discovery-what-one-kafka-session-taught-us-about-ai-agents/</link><pubDate>Tue, 08 Sep 2026 14:14:36 +0000</pubDate><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktoria Evdokimova</dc:creator><category>AI</category><category>Debugging</category><category>GenAI</category><category>Jakarta EE</category><category>Java</category><category>Java Beginner</category><category>Java Core</category><category>JavaFX</category><category>JavaPro</category><category>LLM</category><guid>https://foojay.io/today/debugging-is-invariant-discovery-what-one-kafka-session-taught-us-about-ai-agents/</guid><description>Every Java team has a sentence like this one somewhere: Any operation on a TID must go through the single asynchronous path and must not let TMS and EMV…</description></item></channel></rss>