Newsletter Java: Novedades de la Semana 4 Febrero 2025
Tu newsletter semanal de Programando En Java
¡Hola Javero! 👋
Bienvenido a tu roundup semanal de Java. Esta semana se viene cargada de lanzamientos y actualizaciones que demuestran que el ecosistema Java sigue reinventándose. En esta edición encontrarás novedades sobre JDK, el vibrante mundo de Spring y sus múltiples subproyectos, junto con importantes anuncios de herramientas y plataformas como Apache NetBeans, Payara, Hibernate Reactive y Gradle.
¡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: Las Mejores Librerías en Java
¿Te gustaría conocer las librerías que están marcando la diferencia en el desarrollo Java? En este video exploramos una selección curada de las mejores librerías actuales: desde herramientas para procesamiento de datos hasta soluciones para la gestión de concurrencia. Descubre casos prácticos, consejos y ejemplos reales que te ayudarán a potenciar tus proyectos y a mantenerte a la vanguardia.
🔧 Actualizaciones OpenJDK y JDK
JDK 24 – Build 36 y Release Candidate
Build 36 sigue siendo el build actual de los early-access builds de JDK 24. Con la ausencia de bugs críticos (P1), JDK 24 ha entrado en su primer release candidate, anticipando un GA el 18 de marzo de 2025, con 24 nuevas características.
🔗 Build 36 en GitHub | 📄 Release notes
🔗 Anuncio de Mark ReinholdJDK 25 – Build 11
La Build 11 de JDK 25 incorpora actualizaciones desde Build 10, solucionando varios issues para optimizar seguridad y rendimiento.
🔗 Build 11 en GitHub | 📄 Release notes
Tip: Recuerda reportar bugs para JDK 24 y 25 en el Java Bug Database.
🤩 ¡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
🌱 El Ecosistema Spring en Movimiento
La semana estuvo marcada por una intensa actividad en el ecosistema Spring, con lanzamientos que abarcan desde Spring Boot hasta Spring AMQP.
Spring Boot
Spring Boot 3.5.0-M2:
Incluye correcciones de errores, mejoras en documentación y actualizaciones de dependencias. Destaca la nueva funcionalidad para activar trabajos Quartz on-demand a través de un endpoint Actuator, y soporte actualizado para Prometheus mediante la mejora en elPrometheusPushGatewayManager
.
🔗 Release notes Spring Boot 3.5.0-M2Spring Boot 3.4.3 y 3.3.9:
Estas versiones traen correcciones, mejoras en la documentación y han incorporado la constanteTWENTY_FOUR
al enumJavaVersion
.
🔗 3.4.3 Release notes | 🔗 3.3.9 Release notes
Spring Security
Spring Security 6.5.0 – 2nd Milestone:
Esta actualización ofrece nuevas funcionalidades como la claseHttpStatusAccessDeniedHandler
, que establece códigos de estado HTTP, y nuevas interfaces para la resolución de tokens one-time en entornos servlet y reactivos.
🔗 Release notes Spring Security 6.5.0-M2Versiones 6.4.3 y 6.3.7:
Incluyen mejoras en la estabilidad, como la reconfiguración del task Gradle y la introducción del flagdisableDefaultRegistrationPage
en el DSL de WebAuthn.
🔗 6.4.3 Release notes | 🔗 6.3.7 Release notes
Spring Authorization Server
Spring Authorization Server 1.5.0 – 1st Milestone:
Esta versión incorpora soporte para OAuth 2.0 DPoP, una innovación que permite tokens más seguros mediante un mecanismo de prueba de posesión.
🔗 Release notes Spring Authorization Server 1.5.0-M1Versiones 1.4.2 y 1.3.5:
Se han lanzado con mejoras como la incorporación del@Override
en clases OAuth2 y el reemplazo del métodofromHttpUrl()
porfromUriString()
.
🔗 1.4.2 Release notes | 🔗 1.3.5 Release notes
Spring for GraphQL
Spring for GraphQL 1.3.4:
Trae correcciones de bugs, mejoras en documentación y optimizaciones en la implementación deWebSocketHandler
y en la extracción de tokens de autenticación, haciéndolo más robusto en entornos reales.
🔗 Release notes Spring for GraphQL 1.3.4
Spring Session
Versiones 3.4.2 y 3.3.6:
Estas releases incluyen importantes actualizaciones de dependencias (como Spring Boot 3.3.8 y Spring Framework 6.2.3) y mejoras que aseguran una gestión de sesiones más eficiente.
🔗 3.4.2 Release notes | 🔗 3.3.6 Release notes
Spring Integration
Spring Integration 6.5.0 – 2nd Milestone:
Se han implementado mejoras como la eliminación del headerCLOSEABLE_RESOURCE
en elStreamTransformer
y la generación automática de headers (ID y TIMESTAMP) en los inbound channel adapters para Apache Kafka.
🔗 Release notes Spring Integration 6.5.0-M2Versiones 6.4.2 y 6.3.8:
Incluyen ajustes en el métodotaskScheduler()
y correcciones en el sincronizador de archivos SFTP.
🔗 6.4.2 Release notes | 🔗 6.3.8 Release notes
Spring AI
Spring AI 1.0.0 – 6th Milestone:
Se han introducido nuevas anotaciones (@Tool
y@ToolParam
) y clases de callback para definir herramientas de forma declarativa. Además, se integra el Model Context Protocol Java SDK y se han mejorado las APIs de Vector Store.
🔗 Upgrade notes Spring AI
Spring AMQP
Spring AMQP 4.0.0 – 1st Milestone:
Esta versión destaca por su migración completa a null-safety usando JSpecify y NullAway, y mejoras en la claseAbstractMessageListenerContainer
para una mayor consistencia.
🔗 Release notes Spring AMQP 4.0.0-M1Versiones 3.2.3 y 3.1.9:
Se han lanzado con actualizaciones que incluyen correcciones de bugs y mejoras en la misma clase mencionada.
🔗 3.2.3 Release notes | 🔗 3.1.9 Release notes
Spring for Apache Kafka
Versiones 3.3.3 y 3.2.7:
Estas versiones optimizan la claseMessagingMessageListenerAdapter
y solucionan problemas de invocación enDelegatingInvocableHandler
.
🔗 3.3.3 Release notes | 🔗 3.2.7 Release notes
Spring for Apache Pulsar
Versiones 1.2.3 y 1.1.9:
Con actualizaciones a Spring Framework, Micrometer y Project Reactor, estas versiones aseguran una integración fluida con Apache Pulsar.
🔗 1.2.3 Release notes | 🔗 1.1.9 Release notes
🖥️ Otros Lanzamientos y Herramientas Clave
Apache NetBeans 25
Lo nuevo: Mejoras en la finalización de código para tipos sellados en
switch
y en la gestión de editores para evitar conflictos conDocumentFilter
.
Apache Tomcat 9.0.100
Lo nuevo: Soluciona una regresión en JDK 17 y mitiga el riesgo del CVE-2024-56337.
Hibernate Reactive 3.0.0 – 2nd Beta Release
Lo nuevo: Resuelve un
ClassCastException
enReactiveEmbeddableForeignKeyResultImpl
y unNullPointerException
en la gestión de relaciones complejas, asegurando una compatibilidad óptima con Hibernate ORM 7.0.0.Beta4 y Vert.x SQL client 4.5.13.
JobRunr 7.4.1
Lo nuevo: Incluye correcciones de bugs y mejoras en la visualización de fechas y parámetros en la vista de trabajos.
Gradle 8.13.0 – 2nd Release Candidate
Lo nuevo: Introduce una utilidad de auto-provisioning para descargar automáticamente el JVM para el Gradle Daemon, configuración explícita para Scala y una mayor precisión en los timestamps de JUnit XML.
💡 Tip en Java de la Semana
Aprovecha los Streams Paralelos para Procesar Datos a Gran Escala
Si trabajas con grandes volúmenes de datos, utiliza parallelStream()
para aprovechar el poder de múltiples núcleos de CPU. Esto puede mejorar significativamente el rendimiento de operaciones intensivas sin complicar tu código.
Ejemplo:
import java.util.Arrays;
import java.util.List;
public class ParallelStreamTip {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// Utiliza un stream paralelo para calcular la suma
int sum = numbers.parallelStream()
.mapToInt(Integer::intValue)
.sum();
System.out.println("Suma total: " + sum);
}
}
Beneficios:
Mejora en el rendimiento: Procesa elementos en paralelo aprovechando múltiples núcleos.
Código conciso: Facilita la implementación de operaciones sobre colecciones sin necesidad de gestionar manualmente threads.
Escalabilidad: Ideal para grandes volúmenes de datos en aplicaciones concurrentes.
¡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! 😊👍