Does Java Really Use Too Much Memory? Let’s Look at the Facts (JEPs)

Table of Contents The reputation didn’t come out of nowhere.Modern Java: What Actually Changed?1. Garbage Collection Is Not What It Used to Be2. Threads Got Lighter (Much Lighter)3. Java Objects Are Literally Getting Smaller4. The JVM Learned to Share (CDS)5. ... The post Does Ja … | Continue reading


@foojay.io | 2 months ago

Java Faceted Full-Text Search API Using MongoDB Atlas Search

Table of Contents Let’s build!Prerequisites1. Project setup2. COCO dataData modelRunning MongoDB AtlasData ingest into MongoDB AtlasCreating an Atlas Search indexExample search3. Java service implementation4. Java searchPagingFilter clausesFacetsSearch(Optional) Refactoring to a … | Continue reading


@foojay.io | 2 months ago

Oracle’s Java Verified Portfolio and JavaFX: What It Actually Means

Table of Contents Who Kept JavaFX Alive?OpenJFX Inspired Project SkaraWhat the JVP Actually ChangesJavaFX and the AI Visualization AngleA Note on the Community and Commercial DynamicsWhere Things Stand Oracle's JavaOne 2026 brought an announcement that caught some attention in th … | Continue reading


@foojay.io | 2 months ago

Grails Isn’t Done Yet (Part 2): EOL, Spring Boot, and What Comes Next

Table of Contents The inflexion pointWhere Grails versions stand todayThe Spring Boot gravitational pullWhat the risk actually looks likeThe practical middle groundUpgrade is an action, not a strategySummaryResources In the companion article to this one, I looked at the revitalis … | Continue reading


@foojay.io | 2 months ago

Atlas Search Score Breakdown

Table of Contents Relevancy riddleScore detailsLucene insideLucene indexingLucene scoringBest matchesBreaking down the score detailsPretty printing the score detailsMystery solved!Compound is kingBoosting clausesRelevancy tuning: a delicate balance Full-text search powers all of … | Continue reading


@foojay.io | 2 months ago

JavaFX Links of March 2026

Table of Contents CoreApplicationsComponents, Libraries, ToolsPodcasts, Videos, BooksMiscellaneousJFX Central Here are the JavaFX LinksOfTheMonth of March 2026. You can find the weekly lists on jfx-central.com. Did we miss anything? Is there anything you want to have included in … | Continue reading


@foojay.io | 2 months ago

🤖 5 Best Practices for Working with AI Agents, Subagents, Skills and MCP

Table of Contents §0 📖 Where This Fits in the Series§1 🏗️ The Naive Architecture — and Why It Breaks§2 ✅ The Better Architecture — Multi-Agent with MCP§3 📉 Before You Build: The Productivity Reality Check§3b 📐 Requirements First — ... The post  … | Continue reading


@foojay.io | 2 months ago

The Java in Education Catalog Now Has a Beautiful Home

Table of Contents Inspired by a Great Idea from James WardMeet education.foojay.socialThe Catalog Is Only as Good as the Community Makes ItWhat's Next A few weeks ago, Igor De Souza shared Bringing Java Closer to Education: A Community-Driven Initiative here ... The post The Java … | Continue reading


@foojay.io | 2 months ago

Modeling One-to-Many Relationships in Java with MongoDB

Table of Contents What You'll LearnPrerequisitesProject SetupConfiguring the MongoClient with POJO SupportWhat Is a One-to-Many Relationship in Java?How Does MongoDB Store Documents Differently Than a Relational Database?Pattern 1: Embedded DocumentsWhen Should You Embed?Modeling … | Continue reading


@foojay.io | 2 months ago

Spring Boot Actuator Health for MicroProfile Developers

Table of Contents The Conceptual BridgeThe Conceptual BridgeEndpoint MappingWriting Health ChecksWriting Health Checks Auto-Configured Health Indicators Response Format and Status Codes Security Considerations Actuator’s Extended Capabilities Practical Migration Tips Conclusions … | Continue reading


@foojay.io | 2 months ago

Does Language Still Matter in the Age of AI? Yes — But the Tradeoff Has Changed

Table of Contents The Bottleneck Has MovedAI Produces Code Faster Than Teams Can Review ItWhy Verbose Languages Are Making a ComebackBoilerplate Is Now SignalThe research backs this upWhat this means in practiceThe Other Half: Runtime PerformanceThe benchmarks tell the storyWhere … | Continue reading


@foojay.io | 2 months ago

How We Built a Java AI Agent by Connecting the Dots the Ecosystem Already Had

Table of Contents What does an AI agent need?Spring AI: the LLM layerSpring Events: instant multi-channel supportJobRunr: the piece nobody thinks aboutSpring Modulith: keeping it extensibleWhat ClawRunr can do todayTry it Everyone assumes you need Python to build AI agents. ... T … | Continue reading


@foojay.io | 2 months ago

Grails Isn’t Done Yet (Part 1): Inside the ASF Reboot

Table of Contents The technology we stop seeingWhy the Apache move mattersTwenty years of changing handsEighteen months of migrationOne hundred repositories become nineBeyond the code: licensing and complianceThe modernisation you might have missedWhat Grails 7 actually shipsGrai … | Continue reading


@foojay.io | 2 months ago

TestBox 7: Real-Time Feedback, a Browser-Based IDE, and Modern Testing Workflows on the JVM

Table of Contents Keyboard ShortcutsStreaming Test Execution via SSEDry Run & Spec DiscoveryBoxLang CLI Runner — New Power OptionsOther Notable ImprovementsTestBox CLI Updates (v1.8.0)Upgrade Now TestBox 7.x focuses on improving testing workflows for BoxLang and CFML applications … | Continue reading


@foojay.io | 2 months ago

Clean Architecture with Spring Boot and MongoDB

Table of Contents Prerequisites1. What is Clean Architecture?2. Project structure3. Building the domain layer4. Building the application layer5. Building the MongoDB adapter6. Wiring everything with Spring BootConclusion Most Spring Boot tutorials tightly wire everything together … | Continue reading


@foojay.io | 2 months ago

Eclipse GlassFish: This Isn’t Your Father’s GlassFish

Table of Contents The Myth of the Unsupported, Non-Production ServerKey Differences: Eclipse GlassFish vs. Oracle GlassFishWhat’s New in Eclipse GlassFish 7.0 and Beyond Jakarta EE 11 and MicroProfile Support A New Era for Embedded GlassFish Performance and Security at the Core . … | Continue reading


@foojay.io | 2 months ago

Lottie4J 1.2.0: dotLottie Support, Marker Playback, Cropping, and a Big Speed Boost

Table of Contents dotLottie File SupportNew Player FeaturesPlay Between MarkersCropping SupportResizable PlayerPerformance ImprovementsAdaptive Rendering ModeCore Model ImprovementsJackson 3 UpgradeDebug Tooling UpdatesTrying It OutWhat's Next Version 1.2.0 of Lottie4J is out, an … | Continue reading


@foojay.io | 2 months ago

JavaScript (No, Not That One): Modern Automation with Java

Table of Contents The Scripting DilemmaThe Death of Manual CompilationSingle-File ExecutionMulti-File SupportWhy so much ceremony?The Java EvolutionEasier console interactionJava as a Native Script: Shebang SupportAdvanced Automation with JBangWhat is JBang?Dependency ManagementA … | Continue reading


@foojay.io | 2 months ago

Official Azul Zulu OpenJDK Images Now Available on Docker Hub!

Table of Contents Why should you care about official images?Which versions and variants can you use?Where to start?What’s next and how to stay involved? Azul recently announced that Azul Zulu Builds of OpenJDK are now available as Docker Official images ... The post Official Azul … | Continue reading


@foojay.io | 2 months ago

Managing Native Memory in Java: Arenas, Malloc, and Custom Pools

Table of Contents What is the Memory APIArenasUsing ArenasCreating your own arenaNative Memory allocation methodsUsing Malloc and FreePool of reusable memoryWhy you would use themHow to use a memory poolSlicingHow to use themTL;DRConclusion What is the Memory API The Foreign ... … | Continue reading


@foojay.io | 2 months ago

JC-AI Newsletter #15

Over the past two weeks, the field of artificial intelligence has continued its remarkable pace of advancement. As AI becomes increasingly woven into the fabric of daily life, shaping how we work, communicate, and make decisions, it is both timely ... The post JC-AI Newsletter #1 … | Continue reading


@foojay.io | 2 months ago

Building Reactive Data Streams with Project Reactor

Table of Contents Creating Non-Blocking Streaming Endpoints for High-Throughput ApplicationsFrom Snapshots to StreamsProject SetupDomain Model: Telemetry as a Streamable DocumentReactive RepositoryService Layer: Explicit Backpressure StrategyStreaming Endpoint with Server-Sent Ev … | Continue reading


@foojay.io | 2 months ago

Introducing the BoxLang Spring Boot Starter: Dynamic JVM Templating for Spring

Table of Contents 🌐 What is BoxLang?✨ Zero-Config Spring Boot Integration GradleGradle 🚀 From Controller to Template in Minutes🌐 Full Web Scopes — Out of the Box🔥 Hot-Reload During Development⚙️ Configuration That Stays Out of Your Way🔀 Coe … | Continue reading


@foojay.io | 2 months ago

How is Leyden improving Java Performance? Part 3 of 3

Table of Contents What is inside the Ahead of Time Cache?JVM MetadataJVM Profile and Linkage DataJVM Code and Code Management DataLeyden Training DataHow Do I Know Leyden Is Helping?Training the applicationAnalyzing the CacheAre we training the right thing?Did we load ... The pos … | Continue reading


@foojay.io | 2 months ago

How is Leyden improving Java Performance? Part 2 of 3

Table of Contents How to use an AOT CacheHow to properly execute the Training Run?Should I start using AOT Cache in Java already?Heavy Mathematical ExampleSimple REST API In part 1 of this series of 3 blog posts we introduced the ... The post How is Leyden improving Java Performa … | Continue reading


@foojay.io | 2 months ago

Language Learning Flashcard System – Part 1

Table of Contents Complete code exampleCreate a project using Spring InitializrAdding the MongoDB Connection URIOur logical modelOur MongoDB schemaOur model classesImproving our development cycleOur first API endpointsDecksCardsAdding empty endpoints for DecksChanging the default … | Continue reading


@foojay.io | 2 months ago

How is Leyden improving Java Performance? Part 1 of 3

Table of Contents A Brief History of Java Performance Why Java takes time to reach peak performance Housekeeping considered harmfulLeyden Project ‘premain’ Experiment Training and Production Runs In this series of 3 blog posts we will explain how OpenJDK project ... The post How … | Continue reading


@foojay.io | 2 months ago

How is Leyden improving Java Performance? Part 1 of 3

Table of Contents A Brief History of Java PerformanceWhy Java takes time to reach peak performanceHousekeeping considered harmfulLeyden Project ‘premain’ ExperimentTraining and Production Runs In this series of 3 blog posts we will explain how OpenJDK project Leyden is helping .. … | Continue reading


@foojay.io | 2 months ago

BoxLang 1.11.0 Release

Table of Contents 🚀 What's New in 1.11.0⚡ Performance Wave — 15+ Targeted Runtime Speedups🔒 Concurrency & Lock Safety — Critical Fix🗓️ DateTime Casting Reliability🆕 enforceUDFTypeChecks Configuration Setting⏱️ getTickCount() — Nanosecond & Second P … | Continue reading


@foojay.io | 2 months ago

Java 26 Is Here, And With It a Solid Foundation for the Future

Java 26 is here, and its main purpose seems to be to provide a solid foundation for future things to come. It comes with a few new features, some performance improvements and multiple enhancements that mention Project Valhalla as the inspiration for their existence. This post has … | Continue reading


@foojay.io | 2 months ago

Foojay Podcast #92: Java 26 Is Here: What’s New, What’s Gone, and Why It Matters in 2026

Table of Contents YouTubePodcast AppsGuestsContent Welcome to another episode of the Foojay Podcast! In this episode, we're talking about Java 26, released on March 17 in the year 26. Again, right on schedule with Java's six-month release cadence. Now, Java ... The post Foojay Po … | Continue reading


@foojay.io | 2 months ago

Lottie4J 1.1.0: Better Rendering, Smarter Debugging, and an animated Lottie4J Logo!

Table of Contents What Is Lottie4J?What's New in Lottie4J v1.1.0License and API ImprovementsMany Rendering Fixes in the JavaFX PlayerSmarter Debug ToolingAutomated Comparison TestingTrying It OutWhat's Next Just one week after the first public release of Lottie4J, the open-source … | Continue reading


@foojay.io | 3 months ago

Atlas Online Archive: Efficiently Manage the Data Lifecycle

Table of Contents Problem statementResolutionAdvantagesLimitationsPre-requisitesOnline archival configuration setupConclusion Problem statement In the production environment, in a MongoDB Atlas database, a collection contains massive amounts of data stored, including aged and cur … | Continue reading


@foojay.io | 3 months ago

Event-Driven Architecture in Java and Kafka

Table of Contents Streaming Data - The Air Traffic Control Example.Reactive Java - a brief historyReactive Java with MongoDB and KafkaBlocking Code VersionReactive Code VersionBlocking Versus Reactive Application Performance.Final Thoughts Reactive Java is well suited to modern s … | Continue reading


@foojay.io | 3 months ago

Introducing the BoxLang IDE Plugin for IntelliJ

Table of Contents Installing the PluginKey Features 🎨 BoxLang Syntax Highlighting 🧰 BoxLang Project Creation 🧠 Language Server (LSP) Support 🐞 Debugging Support 🧪 TestBox Integration 🔵 CFML Syntax Highlighting Designed for the JVM E … | Continue reading


@foojay.io | 3 months ago

Introducing Lottie4J, a Java(FX) Library to Parse and Play Lottie Animation Files

Table of Contents What is Lottie?The Complexity of LottieLottie4J ProjectProject StructureMaking Sense of the JSONExample AnimationsHow to Use Lottie4JContinuous EvolutionGet Started I'm proud to present a new JavaFX library: Lottie4J, that brings Lottie animations to JavaFX appl … | Continue reading


@foojay.io | 3 months ago

DPoP: What It Is, How It Works, and Why Bearer Tokens Aren’t Enough

Table of Contents What is DPoP?The Problem: Bearer Tokens and the "Finders Keepers" RiskHow Does DPoP Work?Configuring DPoP in KeycloakDPoP in Action with QuarkusProject SetupProtected EndpointsReplay Protection with a jti FilterTesting with k6Conclusion DPoP is one of the most e … | Continue reading


@foojay.io | 3 months ago

Role-Based Access Control in Java Applications

Table of Contents Authorization Is a Business ConcernModeling Permissions FirstUsing MongoDB for User MetadataFrom Infrastructure Model to Application PrincipalCentralizing Authorization LogicContextual Rules: Where RBAC StopsRBAC vs ABAC: When Roles Are Not EnoughThe Architectur … | Continue reading


@foojay.io | 3 months ago

No Keys, No LLM: Building a Wikidata Definition API with Embabel

I built a Spring Boot 4 REST API that defines terms using Wikidata, orchestrated by an Embabel agent—no API keys, no local models, fully reproducible. The post No Keys, No LLM: Building a Wikidata Definition API with Embabel appeared first on foojay. | Continue reading


@foojay.io | 3 months ago

I Benchmarked Java on Single-Board Computers: Orange Pi 5 Ultra and Raspberry Pi 5 Lead the Pack

Table of Contents Benchmark ToolBenchmarkRunner.java - The User ToolSummarizeReports.java - The Automation ToolAbout The Renaissance Benchmark SuiteThe ResultsThe DashboardAnalyzing the ResultsSelecting a WinnerConclusionTry It Yourself!What's Next? In my "Java on Single Board Co … | Continue reading


@foojay.io | 3 months ago

Data Enrichment in MongoDB

Table of Contents Concurrency in data enrichmentMachine concurrency Human concurrencySchema design patternsBest practicesPlan for concurrencyUse a separate collection for pessimistic lockingAdd an auto-save to your application when humans and locks are involvedRelease the lock ap … | Continue reading


@foojay.io | 3 months ago

JC-AI Newsletter #14

Two weeks have passed and a lot have been happening on the field of artificial-intelligence. Two weeks have passed and a lot has been silently yet visibly happening in the field of artificial intelligence. This newsletter brings interesting developments, including ... The post JC … | Continue reading


@foojay.io | 3 months ago

BoxLang Homebrew Installer Released

Table of Contents Getting StartedOption 1: BVM — BoxLang Version ManagerOption 2: Quick Installer — Zero Friction SetupAlways Up to DateReady to Try It? We're excited to announce the official BoxLang Homebrew tap — the easiest way to get BoxLang ... The post BoxLang Homebrew Inst … | Continue reading


@foojay.io | 3 months ago

Java 26: What’s New?

Table of Contents JEP 500: Prepare to Make Final Mean FinalJEP 504: Remove the Applet APIJEP 516: Ahead-of-Time Object Caching with Any GCJEP 517: HTTP/3 for the HTTP Client APIJEP 522: G1 GC: Improve Throughput by Reducing SynchronizationUUIDv7 supportFeatures coming ... The pos … | Continue reading


@foojay.io | 3 months ago

Shaping Jakarta Agentic AI Together – Watch the Open Conversation

Table of Contents What is Jakarta Agentic AI?What we discussed in the sessionWhy this matters for the Jakarta ecosystemWatch the recording and get involved Last week, Eclipse Foundation and Payara hosted Jakarta Agentic AI, An Open Conversation, an open house ... The post Shaping … | Continue reading


@foojay.io | 3 months ago

Foojay Podcast #91: 25 Years of IntelliJ IDEA: The IDE That Grew Up With Java

Table of Contents YouTubePodcast AppsGuestsLinksContent In this Foojay Podcast, we're celebrating a major milestone in Java development history: 25 years of IntelliJ IDEA. Think about it: IntelliJ IDEA launched in 2000, and since then, it has become the go-to IDE ... The post Foo … | Continue reading


@foojay.io | 3 months ago

JavaFX Links of February 2026

Table of Contents ApplicationsComponents, Libraries, ToolsPodcasts, Videos, BooksTutorialsMiscellaneousJFX Central Here are the JavaFX LinksOfTheMonth of February 2026. You can find the weekly lists on jfx-central.com. Did we miss anything? Is there anything you want to have incl … | Continue reading


@foojay.io | 3 months ago

How to Build a Search Service in Java with MongoDB

Table of Contents PrerequisitesSearch service designSearch service interfaceReturned resultsSearch service implementationGETting the search resultsAggregation pipeline behind the scenes$search in codeField projectionAggregating and respondingTaking it to productionFuture roadmapC … | Continue reading


@foojay.io | 3 months ago