Newsletter Java: Novedades de la Semana 1 Marzo 2025
Tu newsletter semanal de Programando En Java
¡Hola Javero/a! 👋
Bienvenido a tu roundup semanal de Java. Esta semana se destacan avances revolucionarios en el ecosistema: desde innovaciones en OpenJDK con JEP 502 hasta emocionantes lanzamientos en el mundo Spring, Quarkus y herramientas esenciales como JReleaser y Gradle. Descubre cómo estas novedades seguirán moldeando el futuro del desarrollo Java.
¡Sigue leyendo para descubrir todo lo que necesitas saber!
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: RENDIMIENTO 10x TU APLICACIÓN con GRAALVM y SPRING BOOT en JAVA
En este video, exploramos cómo combinar GraalVM y Spring Boot para conseguir un rendimiento hasta 10 veces superior en tus aplicaciones. Aprende a configurar tu entorno, optimizar la compilación nativa y aprovechar al máximo las innovaciones en GraalVM para llevar tus proyectos al siguiente nivel.
🔍 OpenJDK y JDK Updates
JEP 502 – Stable Values (Preview)
JEP 502, antes conocida como Computed Constants (Preview), ha sido elevada a "Proposed to Target" para JDK 25. Esta propuesta introduce los computed constants, que son contenedores inmutables de valores inicializados una única vez, combinando los beneficios de los camposfinal
con mayor flexibilidad en la inicialización. Se espera concluir la revisión el 7 de marzo de 2025.
🔗 Detalles de JEP 502 | 🔗 Anuncio en JDK-devJEP 503 – Remove the 32-bit x86 Port
Elevado a Candidate, este JEP propone eliminar el soporte para la arquitectura 32-bit x86, siguiendo la deprecación anunciada en JEP 501 para JDK 24.
🔗 Detalles de JEP 503 | 🔗 Anuncio en JDK-devJDK 24
Build 36 sigue siendo el build actual en los early-access builds de JDK 24.
🔗 Build 36 en GitHub | 📄 Release notes de JDK 24JDK 25
Build 12 de JDK 25 ya está disponible, incluyendo actualizaciones y correcciones desde Build 11 para mejorar la estabilidad y seguridad.
🔗 Build 12 en GitHub | 📄 Release notes de JDK 25
Recuerda: Reporta bugs para JDK 24 y JDK 25 en el Java Bug Database.
🤩 ¡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.
👉Realizar encuesta👈
🌐 Jakarta EE 11 y el Camino a Jakarta EE 12
En su blog Hashtag Jakarta EE, Ivar Grimstad actualiza sobre el progreso hacia Jakarta EE 11 y la planificación de Jakarta EE 12. Se está cerrando el TCK para el Web Profile de Jakarta EE 11, mientras se recopilan planes de especificación para Jakarta EE 12 en CDI 5.0, Data 1.1 y Faces 5.0. Además, el proceso de revisión para Jakarta NoSQL 1.0 finaliza el 11 de marzo de 2025.
🔗 Leer actualización completa
🎓 DOMINA Java y Spring Boot desde cero
¿Cansado de tutoriales aburridos que no van al grano? Estos cursos no son para quienes solo quieren "mirar código", sino para quienes quieren escribirlo como un pro.
👉 Ver cursos GRATUITOS y más aquí👈
⚙️ Spring Modulith
La semana en Spring estuvo llena de actividad:
Spring Modulith 1.4.0 – 2nd Milestone
Introduce nuevas clases como ApplicationModuleIdentifiers y ApplicationModuleMetadata para gestionar de forma ordenada los identificadores y metadatos de módulos. Además, el ApplicationModulesExporter ahora puede exponer un bean de ApplicationModuleInitializer.
🔗 1.4.0-M2 Release notesService Releases:
Las versiones 1.3.3 y 1.2.9 también ya están disponibles con importantes correcciones y mejoras de dependencia.
🔗 1.3.3 Release notes | 🔗 1.2.9 Release notes
🚀 Quarkus 3.19.0
La última versión de Quarkus trae:
Correcciones de bugs y actualizaciones de dependencias.
Cambio predeterminado a Red Hat Universal Base Image (UBI) 9.
Un puente para convertir métricas de Micrometer al formato OpenTelemetry.
Soporte para JEP 483, que introduce Ahead-of-Time Class Loading & Linking, una característica que se integrará en el próximo JDK 24.
🔗 Release notes de Quarkus 3.19.0
Además, se han anunciado importantes resoluciones a CVEs críticos para versiones anteriores de Quarkus.
🖥️ Open Liberty
IBM ha lanzado Open Liberty 25.0.0.2, que ofrece:
Soporte para cifrado AES-256 en contraseñas.
Una nueva guía para construir aplicaciones web dinámicas con UI integrada.
Actualizaciones en las guías para incluir MicroProfile 7.0 y características versionless.
Solución a la vulnerabilidad CVE-2024-47535 en Netty.
🔗 Detalles de Open Liberty 25.0.0.2
🌟 Otros Lanzamientos y Herramientas Clave
Apache Software Foundation
Camel Quarkus 3.19.0:
Integra Camel 4.10.0 con Quarkus 3.19.0, habilitando monitoreo nativo y eliminando configuraciones workaround para el endpoint/observe
.
🔗 Release notes de Camel Quarkus 3.19.0Apache Groovy 4.0.26 y 3.0.24:
Mejoras en bug fixes, actualizaciones de dependencias y propagación del flagparameter
del compilador Groovy ajavac
.
🔗 Groovy 4.0.26 Release notes | 🔗 Groovy 3.0.24 Release notes
JReleaser 1.17.0
Esta versión de JReleaser ofrece:La capacidad de parametrizar distribuciones mediante una nueva sección Matrix.
Soporte para publicar artefactos -SNAPSHOT usando el deployer de Maven Central.
Integración para añadir manifiestos personalizados para Scoop.
Gradle 8.13.0
La versión 8.13.0 de Gradle introduce una utilidad de auto-provisioning para descargar automáticamente la JVM necesaria para el Gradle Daemon, además de mejoras en la configuración para el plugin de Scala y una mayor precisión en los timestamps de los eventos de JUnit XML.
🔗 Release notes de Gradle 8.13.0
💡 Tip en Java de la Semana: Aprovecha Computed Constants (JEP 502)
Ahora que JEP 502 ha avanzado en su revisión, es el momento ideal para pensar en cómo los computed constants pueden beneficiar a tu código. Estos contenedores inmutables te permiten inicializar valores costosos una única vez, combinando la seguridad de los campos final
con flexibilidad en el tiempo de inicialización.
Ejemplo:
public class Constants {
// Computed constant: se inicializa solo una vez y mejora el rendimiento
public static final int EXPENSIVE_CONSTANT = computeExpensiveValue();
private static int computeExpensiveValue() {
// Simula una operación costosa
return 42; // valor calculado
}
}
Beneficios:
Rendimiento Optimizado: Evita cálculos repetitivos.
Inmutabilidad Garantizada: Combina seguridad y eficiencia.
Flexibilidad en la Inicialización: Permite postergar la inicialización sin sacrificar la inmutabilidad.
¡Eso es todo por esta semana! Espero que disfrutes de estas actualizaciones y sigas comprobando que el ecosistema Java se reinventa constantemente para ofrecer las mejores herramientas a los desarrolladores.
Nos vemos en la próxima edición con más noticias, tips y recursos.
¡Feliz programación y que tengas una excelente semana! 🚀💻🎉
Ricardo
P.D.: Si te ha gustado esta newsletter, ¡compártela con otros desarrolladores y ayúdanos a hacer crecer nuestra comunidad! 😊👍