<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>JavaPro on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/category/javapro/</link><description>Recent content in JavaPro on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 11 Jun 2026 18:04:03 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/category/javapro/index.xml" rel="self" type="application/rss+xml"/><item><title>Scoped Values: Why I Banned ThreadLocal in Exeris</title><link>https://foojayio.github.io/website/today/banned-threadlocal-java-scoped-values/</link><pubDate>Thu, 28 May 2026 09:36:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/banned-threadlocal-java-scoped-values/</guid><description>&lt;h4 id="in-a-zero-copy-runtime-designed-for-1-vt-per-stream-density-threadlocal-is-a-performance-serial-killer-here-is-the-forensic-analysis-and-how-jep-506-scoped-values-changed-everything"&gt;In a zero-copy runtime designed for 1-VT-per-Stream density, ThreadLocal is a performance serial killer. Here is the forensic analysis and how JEP 506 Scoped Values changed everything.&lt;/h4&gt;
&lt;hr&gt;
&lt;p&gt;When I started designing the &lt;strong&gt;Exeris Kernel&lt;/strong&gt; &amp;mdash; a next-generation, zero-copy runtime built for Java 26+ &amp;mdash; I established one non-negotiable architectural law: &lt;strong&gt;&amp;ldquo;No Waste Compute.&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In a system designed to handle extreme density by mapping exactly one Virtual Thread to every network stream (1-VT-per-Stream), every byte of memory and every CPU cycle must be intentional.&lt;/p&gt;</description></item><item><title>Foojay Podcast #94: More Than a Blog: How Foojay Connects, Sustains, and Evolves the Java Community</title><link>https://foojayio.github.io/website/today/foojay-podcast-94/</link><pubDate>Mon, 04 May 2026 06:26:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/foojay-podcast-94/</guid><description>&lt;p&gt;Foojay.io, the website for the Friends of OpenJDK, is turning six years old. To celebrate, Frank Delporte headed to JCON in Cologne, Germany, and sat down with twelve members of the Java community to talk about what Foojay means to them, what they learn from each other, and how the community is evolving.&lt;/p&gt;
&lt;p&gt;This episode covers a lot of ground. Sharat Chandar reflects on 25 years in the Java community and why the people are what keep the language alive. Markus Westergren and Iryna Dohndorf both focus on a theme that comes up again and again: developer sustainability. Not just green software, but how you stay healthy, grounded, and relevant when AI is changing everything around you. Markus and his wife researched how developers are reacting to AI, from ignoring it completely to transforming everything they do. Iryna talks about building resilience and robustness as skills, not afterthoughts.&lt;/p&gt;</description></item><item><title>Announcing bx-ldap: Enterprise LDAP for BoxLang</title><link>https://foojayio.github.io/website/today/announcing-bx-ldap-enterprise-ldap-for-boxlang/</link><pubDate>Tue, 16 Dec 2025 17:01:13 +0000</pubDate><guid>https://foojayio.github.io/website/today/announcing-bx-ldap-enterprise-ldap-for-boxlang/</guid><description>&lt;p&gt;&lt;img src="https://foojayio.github.io/website/today/announcing-bx-ldap-enterprise-ldap-for-boxlang/bx-ldap-700x467.jpg" alt="" loading="lazy"&gt;
&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;re excited to announce the release of &lt;strong&gt;bx-ldap&lt;/strong&gt;, a comprehensive LDAP module that brings enterprise-grade directory access to BoxLang! This module goes above and beyond traditional CFML LDAP implementations, offering modern features like connection pooling, event-driven programming, multiple return formats, and a clean, intuitive API.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; bx-ldap is a premium module available exclusively to BoxLang +/++ &lt;strong&gt;subscribers&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="h2-0-why"&gt;🎯 Why?&lt;/h2&gt;
&lt;p&gt;Whether you&amp;rsquo;re integrating with Active Directory, OpenLDAP, or any LDAP-compliant directory service, &lt;strong&gt;bx-ldap&lt;/strong&gt; makes it simple and powerful. From basic queries to complex directory operations, this module handles it all with grace and performance.&lt;/p&gt;</description></item><item><title>From Reactive Streams to Virtual Threads</title><link>https://foojayio.github.io/website/today/javapro-shout-out-from-reactive-streams-to-virtual-threads/</link><pubDate>Mon, 07 Apr 2025 19:34:45 +0000</pubDate><guid>https://foojayio.github.io/website/today/javapro-shout-out-from-reactive-streams-to-virtual-threads/</guid><description>&lt;p&gt;Virtual Threads deliver a fast, cheap (in terms of memory &amp;amp; switching speed) threading solution for the JVM.&lt;/p&gt;
&lt;p&gt;They promise the return of a direct-style, synchronous programming model.&lt;/p&gt;
&lt;p&gt;But is that enough to challenge the status quo regarding data streaming?&lt;/p&gt;
&lt;p&gt;Can we have the best of both worlds: the simplicity that Virtual Threads promise and the resilience and safety of Reactive Streams?&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s find out, on JavaPro, here:&lt;/p&gt;
&lt;figure class="wp-block-embed is-type-wp-embed is-provider-javapro-international wp-block-embed-javapro-international"&gt;
 &lt;div class="wp-block-embed__wrapper"&gt;
 &lt;blockquote class="wp-embedded-content" data-secret="wPzWYKExuK"&gt;
 &lt;a target="_blank" href="https://javapro.io/2025/04/04/from-reactive-streams-to-virtual-threads/"&gt;From Reactive Streams to Virtual Threads&lt;/a&gt;
 &lt;/blockquote&gt;&lt;iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; visibility: hidden;" title="“From Reactive Streams to Virtual Threads” — JAVAPRO International" src="https://javapro.io/2025/04/04/from-reactive-streams-to-virtual-threads/embed/#?secret=SejceMHGCw#?secret=wPzWYKExuK" data-secret="wPzWYKExuK" width="500" height="282" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt;
 &lt;/div&gt;
&lt;/figure&gt;</description></item></channel></rss>