OpenJDK تعدادی JEP کلیدی را برای JDK 28 هدف‌گذاری کرده و چند پروژه شناخته‌شدهٔ جاوا در این هفته نسخه‌های جدید منتشر کرده‌اند: GPULlama3.java نسخه GA را دریافت کرده، Micronaut، Quarkus و JobRunr آپدیت نقطه‌ای داشتند و Apache Maven به RC6 برای نسخه 4.0 نزدیک شد.

OpenJDK: JEPهای هدف‌گذاری‌شده برای JDK 28

توسعه‌دهندگان OpenJDK چند JEP را به وضعیت Targeted برای JDK 28 ارتقا داده‌اند. مهم‌ترین موارد عبارت‌اند از:

  • JEP 539 — Strict Field Initialization: الزام مقداردهی فیلدها پیش از خواندن آن‌ها تا از مشاهدهٔ مقادیر پیش‌فرضی مانند 0 یا null جلوگیری شود. این ویژگی برای کامپایلرهایی که فایل‌های کلاس تولید می‌کنند در دسترس خواهد بود.
  • JEP 401 — Value Objects (Preview): تعریف اشیای مقداری بدون هویت که فقط فیلدهای final دارند و مقایسهٔ آن‌ها بر اساس مقادیر انجام می‌شود؛ مناسب برای مدل‌سازی موجودیت‌های بدون هویت.
  • JEP 535 — Shenandoah GC: Generational Mode by Default: پیشنهاد می‌شود Shenandoah به‌صورت پیش‌فرض در حالت نسل‌بنیان اجرا شود و حالت غیرنسلی منسوخ شود؛ بازبینی این JEP تا 3 اوت 2026 ادامه دارد.
  • JEP 542 — PEM Encodings of Cryptographic Objects: این JEP (در وضعیت Candidate) API تبدیل کلیدها، گواهی‌ها و CRLها بین فرمت‌های PEM و فرمت‌های باینری مانند PKCS #8 و X.509 را نهایی می‌کند.

نسخه‌های دسترسی زودهنگام JDK

Build 33 از JDK 27 و Build 9 از JDK 28 منتشر شده‌اند؛ این نسخه‌ها شامل رفع اشکال و بهبودهای مختلف هستند و یادداشت‌های انتشار جزئیات کامل تغییرات را فهرست می‌کنند.

Jakarta EE: Agentic AI و پشتیبانی از EE 11

نسخهٔ اول milestone از Jakarta Agentic AI 1.0.0 منتشر شد. این نسخه زیرساخت جدید TCK برای ارزیابی رفتار واقعی و حاشیه‌نویسی‌های تازه @RequiresEngine و @RequiresNoEngine را معرفی می‌کند که روش‌های قدیمی تست را جایگزین می‌سازد. بنیاد Jakarta همچنین Eclipse Starter برای Jakarta EE را به‌روزرسانی کرده تا از Jakarta EE 11 پشتیبانی شود؛ زمان‌اجراهای پشتیبانی‌شده شامل Azul Payara، GlassFish و Open Liberty هستند.

GraalVM 25.2

GraalVM نسخهٔ 25.2 را منتشر کرد. تغییرات برجسته شامل ارائهٔ Graal Script Agent برای تبدیل درخواست‌های زبان طبیعی به پلاگین‌های شنی‌بندی‌شده، پشتیبانی از G1 GC در Native Image روی تمامی پلتفرم‌ها از جمله ویندوز و فعال‌سازی پیش‌فرض Java Vector API است.

TornadoVM و GPULlama3.java 1.0

پروژهٔ متن‌باز GPULlama3.java که روی TornadoVM ساخته شده، به نسخهٔ 1.0.0 رسید. این انتشار از بک‌اند CUDA با پیش‌پُرکردن دسته‌های شتاب‌یافته روی Tensor Core MMA پشتیبانی می‌کند، یک سرور سازگار با APIهای OpenAI برای سرو کردن مدل‌ها از طریق HTTP فراهم می‌آورد و کلاس جدید RunMetrics را برای جمع‌آوری معیارهای عملکرد معرفی می‌کند.

GPULlama3.java روی TornadoVM با شتاب‌دهی GPU

Micronaut، Quarkus و JobRunr

  • Micronaut 5.1.0: نسخهٔ 5.1.0 منتشر شد؛ تغییرات شامل حاشیه‌نویسی جدید @Property داخل @Introspected برای تزریق مجموعه‌های ترتیبی، تعامل با Kotlin Symbolic Processing و پشتیبانی از OpenDI (پیاده‌سازی Eclipse از CDI Lite) است. اطلاعات بیشتر در سایت Micronaut در دسترس است.
  • Quarkus 3.38.0: این نسخه رفع اشکال، ارتقاء وابستگی‌ها و چند قابلیت جدید دارد که تجربهٔ توسعه با Quarkus را بهبود می‌دهد. برای جزئیات فنی به سایت رسمی Quarkus مراجعه کنید.
  • JobRunr: انتشار نقطه‌ای اخیر مشکلات گزارش‌شده را اصلاح می‌کند و پایداری اجرای jobها را افزایش می‌دهد؛ مستندات و راهنمای به‌روزرسانی در وب‌سایت پروژه قابل‌دسترسی است.

Maven و ابزارهای زیرساخت

Apache Maven در مسیر RC6 برای نسخهٔ 4.0 قرار دارد و توسعه‌دهندگان می‌توانند این نسخهٔ کاندیدا را برای شناسایی مشکلات نهایی آزمایش کنند. همچنین نسخهٔ نگهدارشی JDKUpdater منتشر شده که چند مشکل مدیریت نصب JDK را رفع می‌کند. برای اطلاعات بیشتر به صفحهٔ رسمی Maven مراجعه کنید.

تأثیر بر توسعه‌دهندگان و اقدامات پیشنهادی

ترند اصلی هفته حول بهبود عملکرد (GC و Native Image)، استانداردسازی رمزنگاری (PEM) و شتاب‌دهی محلی برای استنتاج مدل‌ها شکل گرفته است. توصیه‌ها:

  • با JEPهای هدف‌گذاری‌شده برای JDK 28 آشنا شوید و تغییرات احتمالی رفتار زمان اجرا را بررسی کنید.
  • نسخه‌های جدید فریم‌ورک‌ها را ابتدا در محیط‌های آزمایشی اجرا کنید تا اثرات جانبی و سازگاری را بسنجید.
  • برای پروژه‌هایی که از Native Image یا شتاب‌دهی GPU استفاده می‌کنند، سناریوهای عملکرد و استقرار را بازآزمایی کنید.

پیگیری فعال این تغییرات فرصت‌هایی برای بهبود عملکرد و افزایش امنیت فراهم می‌کند؛ توصیه می‌شود به‌روز نگهداشتن وابستگی‌ها و آزمایش در محیط کنترل‌شده را در دستور کار قرار دهید.