Newsletter Java: Novedades de la Semana 5 Mayo 2025
Tu newsletter semanal de Programando En Java
Hola, comunidad 👋
Esta semana viene cargada de lanzamientos y actualizaciones en el mundo Java y tecnologías relacionadas. Aquí tienes el resumen completo para estar al día con lo más relevante del ecosistema.
Redes Sociales
📘 Facebook: Programando en JAVA
🐦 X (Twitter): ProgEnJava
📸 Instagram: Programando en Java
💼 LinkedIn: Ricardo Romero Benítez
▶️ YouTube: Programando en Java
🎵 TikTok: Programando en Java
🧵 Threads: Programando en Java
💬 Discord: Comunidad de Programando en JAVA
🎥 Video de la Semana en YouTube: ¡Domina la Arquitectura Hexagonal con JAVA y SPRING!
🚀 Esta semana en el canal te traigo un video imperdible: aprende a aplicar la Arquitectura Hexagonal en tus proyectos Java con Spring de forma clara y práctica.
Si quieres escribir código limpio, desacoplado y fácil de testear, este video es para ti. ¡No te lo pierdas!
🔥 Java cumple 30 años: de Oak al monstruo portátil Detalles:
El 23 de mayo de 1995, en Sun World (SF), Sun Microsystems presentó oficialmente Java.
Su abuelo se llamó Oak (por un roble junto a la ventana de Gosling) y luego “renació” como Java en diciembre de 1990, dentro del “Proyecto Green”.
Star7: el primer PDA con control de TV (+ guía), pantalla de 5″ y a Duke (sí, nuestro perrito triangular) como “agente amigable”.
Cita épica de Gosling: “Java is C++ without guns, knives, and clubs.”
Links originales:
• Historia de Java → https://www.tech-insider.org/java/research/1998/05-a.html
• Vídeo Star7 → https://www.youtube.com/watch?v=1CsTH9S79qI
• James Gosling (LinkedIn) → https://www.linkedin.com/in/jamesgosling/
Celebra conmigo los 30 años de JAVA: Intellij Conf 2025, 3-4 Junio
🎉 ¡Java cumple 30 años! Y qué mejor forma de celebrarlo que en la IntelliJ Conf 2025, los días 3 y 4 de junio de 11:00h a 17:00h (hora España peninsular).
Únete a mí para descubrir las novedades del lenguaje, buenas prácticas y charlas inspiradoras de la comunidad. ¡Nos vemos allí!
👇¡Haz click aquí a la imagen para reservar tu plaza!👇

💥 JEP 512: Compact Source Files & Instance Main Methods. Qué cambia (¡bye-bye boilerplate!):
Permite ejecutar código Java sin definir clase pública ni método
public static void main(String[])
.Archivos “compactos”: admiten sentencias sueltas y un “main” implícito.
Objetivo: bajar la barrera de entrada para estudiantes y scripts ligeros.
¿Dónde leer más?
• Diseño “Paving the on-ramp” → https://openjdk.org/projects/amber/design-notes/on-ramp
• JEP 512 (Status final) → https://openjdk.org/jeps/512
• Especificación completa → https://cr.openjdk.org/~gbierman/jep512/jep512-20250422/specs/compact-source-files-instance-main-methods-jls.html🔐 JEP 510 – Key Derivation Function (KDF) API
📌 Ver en OpenJDK | Anuncio oficial
Esta JEP introduce una API estándar para funciones de derivación de claves (KDFs), una herramienta clave en criptografía moderna. Su objetivo es ofrecer una forma segura y extensible de generar claves adicionales a partir de una clave secreta combinada con otros datos (ej. un salt o contexto).
🔗 Si quieres profundizar en KDFs desde la perspectiva de la criptografía aplicada:
cryptography.io – Key Derivation Functions
☕ OpenJDK & JDK 25
A) JEPs elevadas a “Targeted” para JDK 25 (Rampdown Phase 1 inicia 5 jun):
JEP 519 Compact Object Headers
https://openjdk.org/jeps/519
Anuncio: https://mail.openjdk.org/pipermail/jdk-dev/2025-May/010121.htmlJEP 515 Ahead-of-Time Method Profiling
https://openjdk.org/jeps/515
Anuncio: https://mail.openjdk.org/pipermail/jdk-dev/2025-May/010156.htmlJEP 514 AOT Command-Line Ergonomics
https://openjdk.org/jeps/514
Anuncio: https://mail.openjdk.org/pipermail/jdk-dev/2025-May/010155.htmlJEP 508 Vector API (10ª incubación)
https://openjdk.org/jeps/508
Anuncio: https://mail.openjdk.org/pipermail/jdk-dev/2025-May/010108.htmlJEP 507 Primitive Types en patterns/instanceof/switch (3ª preview)
https://openjdk.org/jeps/507
Anuncio: https://mail.openjdk.org/pipermail/jdk-dev/2025-May/010152.html
B) JEPs suben de “Candidate” a “Proposed to Target”:
JEP 521 Generational Shenandoah
https://openjdk.org/jeps/521
https://mail.openjdk.org/pipermail/jdk-dev/2025-May/010116.htmlJEP 520 JFR Method Timing & Tracing
https://openjdk.org/jeps/520
https://mail.openjdk.org/pipermail/jdk-dev/2025-May/010112.htmlJEP 518 JFR Cooperative Sampling
https://openjdk.org/jeps/518
https://mail.openjdk.org/pipermail/jdk-dev/2025-May/010107.htmlJEP 470 PEM Encodings of Cryptographic Objects (Preview)
https://openjdk.org/jeps/470
https://mail.openjdk.org/pipermail/jdk-dev/2025-May/010117.html
C) jtreg 7.5.2 ya liberado:
Soporte para
${test.main.class}
en acciones de prueba.Timeout configurable por properties.
Reconoce
.jasm
y.jcod
en módulos parcheados.Release notes: https://github.com/openjdk/jtreg/blob/jtreg-7.5.2+1/CHANGELOG.md
Más info: https://mail.openjdk.org/pipermail/jdk-dev/2025-May/010110.html
D) JDK 25 EA Build 24 disponible:
Actualiza Build 23 corrigiendo bugs varios.
Release notes: https://jdk.java.net/25/release-notes
Descarga EA: https://jdk.java.net/25/
Reporta bugs: https://bugreport.java.com/bugreport/
🌐 Jakarta EE
Ivar Grimstad (Hashtag Jakarta EE) informa en su blog que la TCK de EE 11 está lista y el GA sale en junio.
Plan de EE 12 on-track; revisados specs, debatiendo adiciones/deprecaciones.
Roadmap: 5 milestones, Core & Web Profile ya shippeados; Platform RC antes de GA.
🎓 ¿Ya conoces Java y quieres llevar tus habilidades al siguiente nivel?
He creado un Curso de Java Intermedio pensado para ti que ya dominas lo básico y quieres avanzar con conceptos como POO avanzada, colecciones, concurrencia, servlets, y más.
💡 Ideal si estás buscando mejorar tu perfil profesional o prepararte para proyectos reales
💻 Acceso de por vida + proyecto final que revisaré personalmente
🔝 Solo 12,99 €
💪 Al comprarlo, me ayudas directamente a seguir creando contenido gratuito en YouTube, newsletter y más.
Es una forma sencilla de apoyar mi trabajo y seguir aprendiendo.

¡Gracias por ser parte de esta comunidad de desarrolladores Java! 🙌
🚀 ROADMAP SPRING FRAMEWORK 7.0 & BOOT 4.0
Broadcom no se duerme
Spring Framework 7.0 + Spring Boot 4.0 apuntan a noviembre 2025.
Java 25 on-board: JEP 483 (Leyden), JEP 515 (AOT Method Profiling) y JEP 8335368 (AOT Compilation).
Null-safety out-of-the-box con JSpecify (más abajo).
JAVA NULL SAFETY: JEP 8303099 & JSPECIFY 🔒
Porque los NPE siguen siendo la pesadilla de todos:
JEP Draft 8303099 “Null-Restricted and Nullable Types (Preview)”: work-in-progress, todavía no va en JDK oficial (https://openjdk.org/jeps/8303099).
JSpecify (https://jspecify.dev/): estándar de anotaciones @Nullable, @NonNull y @NullMarked para análisis estático.
Tres sabores de nullness: nullable, non-null y unspecified (el default de Java).
Granularidad a nivel paquete, clase o método gracias a @NullMarked.
Próximo objetivo: ¡anotar el JDK al completo!
AOT CACHE & PROJECT LEYDEN: BEST PRACTICES ⚡
Startup de aplicaciones Java ultrarrápido… si juegas bien tus cartas:
Usa el comando “--extract” + Class Data Sharing (CDS) o AOT cache.
Entrena tu cache con JEP 515: corre tu app con carga realista (incluso en prod) y genera el perfil.
Empaqueta tu cache en una capa de contenedor top-level (buildpacks lo hacen automáticamente). Se beneficia del layer caching y evita leaks (a diferencia de CRaC).
En tu plataforma: Tanzu Platform y Tanzu Spring ya traen integración automática de Spring AOT (https://www.vmware.com/products/app-platform/tanzu + https://enterprise.spring.io/). Más info:
Spring Boot AOT/CDS: https://docs.spring.io/spring-boot/reference/packaging/class-data-sharing.html
JEP 515: https://openjdk.org/jeps/515
JEP 8335368: https://openjdk.org/jeps/8335368
💥 Construye tu Backend en Minutos, No en Semanas
¿Cansado de perder tiempo construyendo infraestructura? ¡Déjalo en mis manos! Con Spring Boot JWT Starter Pack podrás lanzar tu backend YA.
✅ Autenticación segura con JWT
✅ Gestión de roles sin dolor de cabeza
✅ API documentada y lista para producción
✅ Compilación nativa para rendimiento superior
🚀 Menos configuración. Más código que importa.

🏛️ Open Liberty 25.0.0.5
Bug fixes generales.
MicroProfile Telemetry 2.0 (
mpTelemetry-2.0
) ahora puede recolectar y exportar HTTP access logs a OpenTelemetry.Docs Telemetry: https://openliberty.io/docs/latest/microprofile-telemetry.html
⚡ Quarkus MCP Server 1.2.0
Soporte para HTTP streamable + transportes
stdio
ySSE
.Permite conectar apps móviles / servicios cloud a MCP servers.
Próximas: resumability & redelivery.
Repo: https://github.com/quarkiverse/quarkus-mcp-server/blob/main/README.md
🐘 Hibernate
A) ORM 7.0.0.Final
• QuerySpecification API para construir queries de forma programática iterativa.
• Migración de HCANN → Hibernate Models para el modelado de dominio.
• Soporte Jakarta Persistence 3.2 (EE 11).
• Release notes: https://github.com/hibernate/hibernate-orm/releases/tag/7.0.0
• Migration guide: https://docs.jboss.org/hibernate/orm/7.0/migration-guide/migration-guide.html
• Blog Gavin King: https://in.relation.to/2025/05/19/orm-70/
B) Validator 9.0.0.Final
• Nuevas constraints: @KorRRN
(Korean RRN) y @BitcoinAddress
.
• BOM para gestión de dependencias unificada.
• Implementación Jakarta Validation 3.1.
• Release & blog: https://in.relation.to/2025/05/20/hibernate-validator-9-0-0-Final/
🤖 Embabel Agent Framework
Rod Johnson (Spring dad) lanza un agent platform JVM en Kotlin.
Novel: planning step con algoritmo AI no-LLM + rich domain model exponible como LLM tools o en Java/Kotlin.
Integración plena con Spring AI y MCP.
Intro blog: https://medium.com/@springrod/embabel-a-new-agent-platform-for-the-jvm-1c83402e0014
Repo: https://github.com/embabel/embabel-agent/blob/main/README.md
🕒 JobRunr 8.0.0-Beta1
Recurring jobs AOT: programa nueva ejecución apenas termina la anterior.
Soporte Kotlin serialization con
KotlinxSerializationJsonMapper
implementandoJsonMapper
.Mejora la experiencia Kotlin.
Release notes: https://github.com/jobrunr/jobrunr/releases/tag/v8.0.0-beta.1
☁️ Eclipse DataGrid
Nueva iniciativa Eclipse + Microstream: Java in-memory data grid para aplicaciones EclipseStore distribuidas.
Features: distributed Java object graph, integración con Streams API, Apache Lucene y Kubernetes.
Proposal: https://projects.eclipse.org/proposals/eclipse-datagrid
Blog Microstream: https://microstream.one/blog/2025/05/20/announcing-eclipse-data-grid-for-distributed-eclipsestore-applications/
🤩 ¡Tu opinión importa!
¡Ayúdame a mejorar esta newsletter!. Responde esta encuesta (menos de 1 minuto) para contarme qué temas prefieres y cómo puedo mejorarla.
💡 Consejo de la semana: Spring Batch
¿Por qué?
Divide tu lógica en pasos pequeños y reutilizables usando Step
y Tasklet
para mayor claridad y control.
✔️ Separas la lógica en pasos reutilizables.
✔️ Controlas la ejecución de forma estructurada.
✔️ Facilita el manejo de errores, reinicios y validaciones.
✔️ Ideal para ETL, cargas masivas, migraciones o procesamientos por lotes.
Ejemplo:
@Bean
public Step step1() {
return stepBuilderFactory.get("step1")
.tasklet((contribution, chunkContext) -> {
System.out.println("Ejecutando paso 1");
return RepeatStatus.FINISHED;
}).build();
}
Usa JobParameters
para hacer tus jobs idempotentes y evitar reprocesamientos accidentales.
jobLauncher.run(myJob, new JobParametersBuilder()
.addLong("timestamp", System.currentTimeMillis())
.toJobParameters());
📩 Si te ha gustado esta edición, compártela con otros desarrolladores y nos vemos la próxima semana con más novedades.
¡Feliz coding! 🚀
Ricardo