- Programando En Java
- Posts
- Newsletter Java: Novedades de la Semana 5 Mayo 2025
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.
📘 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
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.
Blog: https://www.agilejava.eu/2025/05/25/hashtag-jakarta-ee-282/
EE 11 Platform: https://jakarta.ee/specifications/platform/11/
EE 12 Release Plan: https://jakartaee.github.io/platform/jakartaee12/JakartaEE12ReleasePlan
🎓 ¿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
Reply