Newsletter Java: Novedades de la Semana 3 Febrero 2025
Tu newsletter semanal de Programando En Java
¡Hola Javero! 👋
En esta edición encontrarás lo último del ecosistema Java: un video imperdible, actualizaciones importantes de JDK y JDK Mission Control, mejoras en Spring Framework y Spring Data, novedades de Micronaut, Hibernate, Vert.x, Gradle y mucho más.
¡Descubre cómo Java sigue evolucionando y marcando tendencia! 🚀🚀
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
🔧 Actualizaciones del Ecosistema Java
OpenJDK y JDK Updates
JDK Mission Control 9.1.0
Qué trae: Correcciones de errores y mejoras, como el uso de tipos personalizados en JFR Writer API y soporte para tipos primitivos en convertidores.
Enlace:
🔗 Detalles en la lista de issues
JDK 24 – Build 36 y Release Candidate
Qué trae: Build 36 es la versión actual de los early-access builds y, sin P1 bugs, ha entrado en su primer release candidate.
Próximo GA: Se espera el GA para el 18 de marzo de 2025, con 24 nuevas características.
Enlaces útiles:
🔗 Build 36 en GitHub
📄 Release notes de JDK 24
🔗 Release schedule y anuncio de Mark Reinhold
JDK 25 – Build 10
Qué trae: Actualizaciones desde Build 9 que corrigen varios issues para un entorno más seguro y estable.
Enlaces útiles:
🔗 Build 10 en GitHub
📄 Release notes de JDK 25
🤩 ¡Tu opinión importa!
Ayúdame a mejorar esta newsletter y necesito tu ayuda. Responde esta encuesta (menos de 1 minuto) para contarme qué temas prefieres y cómo puedo mejorarla.
👉Realizar encuesta👈
💬 Sesión de Mentoría 1:1
¿Quieres llevar tus conocimientos de Java y Spring al siguiente nivel?
¡Estoy aquí para ayudarte!
15 minutos gratuitos para resolver tus dudas técnicas.
Sesiones personalizadas de 1 hora para profundizar en tus proyectos y retos.
✌️ Mentoría GRATIS: Reserva ahora
😎 Mentoría personalizada: Reserva ahora
🛠️ Novedades en Frameworks y Herramientas
🍃 Spring Framework y Spring Data
Spring Framework 7.0.0 – 2nd Milestone (M2)
Qué trae:
Mejoras en el método
equals()
deAnnotatedMethod
.Optimización en
HandlerMethod
para resolver fallos en configuraciones CORS.Refinamiento en
GenericApplicationContext
, añadiendo@Nullable
con JSpecify en el parámetroconstructorArgs
deregisterBean()
.
Spring Data 2025.0.0 – Primer Milestone
Qué trae:
Soporte para búsqueda vectorial en MongoDB Atlas y Cassandra Vector Search.
Nuevo tipo de dato
Vector
para facilitar la abstracción y portabilidad en modelos de dominio.
Spring Tools 4.28.1
Qué trae:
Distribución firmada oficialmente para Windows OS.
Solución al error de "unknown publisher" en Windows 11.
Enlace:
🔗 Release notes de Spring Tools 4.28.1
🔥Frameworks y Librerias
Open Liberty 25.0.0.2-beta
Qué trae: Configuración del MicroProfile Telemetry 2.0 para enviar logs de auditoría a un colector OpenTelemetry.
Enlace:
🔗 Detalles en Open Liberty
Micronaut 4.7.6
Qué trae:
Incluye Micronaut Core 4.7.14 y actualizaciones al módulo Micronaut Oracle Cloud.
Actualización a Netty 4.1.118 para abordar la vulnerabilidad CVE-2025-24970.
Enlace:
🔗 Release notes de Micronaut 4.7.6
Hibernate ORM 7.0.0 – 4th Beta Release
Qué trae:
Migración a Jakarta Persistence 3.2, base mínima en JDK 17 y mejoras en validaciones de modelos de dominio.
Transición de Hibernate Commons Annotations a Hibernate Models para el procesamiento a bajo nivel.
Enlace:
🔗 Release notes de Hibernate ORM 7.0.0 Beta4
🔗 Migration Guide
Hibernate Reactive 2.4.5.Final
Qué trae:
Compatibilidad con Hibernate ORM 6.6.7.Final.
Solución a problemas de
PropertyAccessException
y mejoras en la actualización reactiva de filas.
Eclipse Vert.x 5.0.0 – 5th Release Candidate
Qué trae:
Eliminación de clases obsoletas como
ServiceAuthInterceptor
yProxyHelper
.Soporte para el Java Platform Module System (JPMS).
Enlaces:
🔗 Release notes de Vert.x 5.0.0
🔗 Deprecations & Breaking Changes
Micrometer
Micrometer Metrics 1.15.0 – 2nd Milestone:
Qué trae: Mejoras en documentación, correcciones de bugs y actualización de dependencias, incluyendo la eliminación de manejos especiales de los códigos HTTP 404 y 301 en instrumentación con OkHttp; y deprecación de
SignalFxMeterRegistry
a favor deOtlpMeterRegistry
.
Micrometer Tracing 1.5.0 – 2nd Milestone:
Qué trae: Actualizaciones en dependencias y deprecación de
ArrayListSpanProcessor
en favor deInMemorySpanExporter
.
Piranha Cloud 25.2.0
Qué trae:
Mejoras en documentación, actualizaciones de dependencias y eliminación de extensiones de compatibilidad con GlassFish 7.x y Tomcat 10.x.
Nueva capacidad para configurar el tamaño máximo de archivos en las clases de FileUpload.
Enlace:
🔗 Release notes de Piranha 25.2.0
Project Reactor
Reactor 2024.0.3 – 3rd Maintenance Release:
Qué trae: Actualizaciones a
reactor-core 3.7.3
,reactor-netty 1.2.3
yreactor-pool 1.1.2
, junto con realineación areactor-addons 3.5.2
,reactor-kotlin-extensions 1.2.3
yreactor-kafka 1.3.23
.Enlace:
🔗 Changelog Reactor 2024.0.3
Reactor 2023.0.15 – 15th Maintenance Release:
Qué trae: Actualizaciones a
reactor-core 3.6.14
,reactor-netty 1.1.27
yreactor-pool 1.0.10
, manteniendo consistencia con los addons y extensiones mencionados.Enlace:
🔗 Changelog Reactor 2023.0.15
JHipster 8.9.0
Qué trae:
Actualizaciones de dependencias: Spring Boot 3.4.2, Node 22.13.1, Gradle 8.12.1, Angular 19.0.6 y Typescript 5.7.3.
Soporte para campos de tiempo (LocalTime) independientes en JHipster Domain Language (JDL).
Enlace:
🔗 Release notes de JHipster 8.9.0
Gradle 8.13.0 – 1st Release Candidate
Qué trae:
Nueva utilidad de auto-provisioning que descarga automáticamente un JVM para el Gradle Daemon.
Configuración explícita de la versión de Scala en el plugin de Scala y precisión refinada en los timestamps de eventos de JUnit XML.
Enlace:
🔗 Release notes de Gradle 8.13.0-RC1
💡 Tip en Java de la Semana: Optimiza el Rendimiento con ConcurrentHashMap
Utiliza los métodos atómicos de ConcurrentHashMap
para reducir la contención y mejorar el rendimiento en aplicaciones concurrentes. Métodos como computeIfAbsent()
, merge()
y computeIfPresent()
permiten actualizar la estructura de forma segura sin necesidad de bloqueos externos.
Ejemplo:
import java.util.concurrent.ConcurrentHashMap;
public class ConcurrentHashMapTip {
public static void main(String[] args) {
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
// Inicializa la clave "clave" con un valor calculado de forma perezosa
map.computeIfAbsent("clave", key -> expensiveOperation());
// Actualiza el valor de la clave de forma atómica
map.merge("clave", 1, Integer::sum);
System.out.println("Valor actualizado: " + map.get("clave"));
}
private static int expensiveOperation() {
// Simula una operación costosa
return 42;
}
}
Beneficios:
Actualización Atómica: Evita la necesidad de sincronización manual.
Reducción de Contención: Mejora el rendimiento en entornos altamente concurrentes.
Código más Limpio: Simplifica la lógica de actualización y manejo de datos compartidos.
¡Eso es todo por esta semana! Espero que disfrutes de estas actualizaciones, consejos y novedades, y que sigas comprobando que Java sigue siendo tan relevante y potente como siempre.
Nos vemos en la próxima edición con más noticias, tips y recursos para desarrolladores.
¡Feliz programación y que tengas una excelente semana! 🚀💻🎉
Ricardo