Newsletter Java: Novedades de la Semana 2 - Septiembre 2025
Tu newsletter semanal de Programando En Java
¡Hola javeros!
Esta semana viene cargada de actualizaciones que no querrás perder: mejoras en frameworks clave, avances del JDK 26, nuevas propuestas de JEPs (spoiler: HTTP/3 👀), y herramientas que te harán la vida más simple como dev. ¡Vamos al grano! 🚀
Todo listo para que sigas subiendo de nivel en Java. ¡Vamos al lío! ☕💻
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
🚀 ¡Acelera tu carrera Java con Codeja!
Si estás cansado de practicar sin rumbo, prueba CodeJa: una plataforma práctica creada para que de verdad subas de nivel.
🎯 Retos reales y semanales — orientados a problemas de producción.
🏆 Leaderboard global — compite y gana visibilidad.
😎 Retos semanales - compite por la mejor posición en los retos semanales
🔁 Historial de envíos — revisa, compara y vuelve a versiones anteriores de tu código.
💬 4 mentorías 1:1 al mes — arquitectura, revisión de CV o preparación de entrevistas.
🎥 Video de la Semana - ¿Spring Framework vs Spring Boot?
Muchos desarrolladores que empiezan con Spring se hacen la misma pregunta:
👉 ¿Cuál es la diferencia entre Spring Framework y Spring Boot?
👉 ¿Cuál debería elegir para mis proyectos?
En el video de esta semana te lo explico de manera clara y directa:
Qué es Spring Framework y por qué sigue siendo la base de todo.
Qué añade Spring Boot y cómo simplifica la vida del desarrollador.
Cuándo usar uno u otro en proyectos reales.
💡 Si alguna vez te has sentido perdido entre tanta terminología de Spring, este video te dará una visión clara para tomar mejores decisiones en tus desarrollos.
👨💻 CodeCast 13 - Ixchel Ruiz
En este episodio tengo el honor de conversar con Chel Ruiz, ingeniera en sistemas computacionales y electrónicos, reconocida como Java Champion y Oracle Ace Pro. Con una carrera marcada por su fuerte compromiso con el open source y la comunidad, Chel nos comparte cómo su trabajo ha impactado no solo su desarrollo profesional, sino también la vida de miles de desarrolladores en todo el mundo.
Este episodio es una invitación a reflexionar sobre el impacto del conocimiento compartido y la fuerza del aprendizaje colectivo en el mundo del software.
También en Spotify:
📦 Novedades en Librerías y Frameworks
🔥 Quarkus 3.26.2
La nueva versión de mantenimiento trae:
Corrección para que el método
setup()
enNativeImageBuildContainerRunner
se invoque solo una vez con la extensión AWT.Refactor del test
HibernatePropertiesTest
, ahora con AssertJ y mejores mensajes de error.
👉 Ideal para quienes trabajen con imágenes nativas o testing más expresivo.
🤖 Quarkus A2A Java SDK 0.3.0.Alpha1
Compatible con la especificación de interoperabilidad Agent-to-Agent (A2A).
Novedades:
Soporte para protocolos gRPC y JSON-RPC.
Declaración explícita de protocolos soportados vía
AgentCard
.
🔗 https://quarkus.io/blog/quarkus-a2a-java-0-3-0-alpha-release/
⚡ Micronaut 4.9.3
Basado en Micronaut Core 4.9.10, esta versión incluye:
Fixes en módulos como Micronaut for Spring y Micronaut Data.
Nuevas clases para manejar interceptores privados inaccesibles.
🔗 https://micronaut.io/2025/09/01/micronaut-framework-4-9-3-released/
☁️ Payara Platform - Septiembre 2025
Ediciones publicadas:
Community 6.2025.9
Enterprise 6.30.0 y 5.79.0
Novedades:
Logging reducido de
INFO
aFINE
para eventos CDI.Fix para
alternatedocroot_n
en Payara Micro.Mejora en la estabilidad del Java Transaction Service.
Además, se lanzó Payara 7.2025.1.Beta1 con soporte para Jakarta EE 11 y Docker con JDK 21.0.8.
🔗 https://blog.payara.fish/whats-new-in-the-payara-platform-september-2025-release
⚙️ Apache Kafka 4.1.0
Incluye:
Mejora en
AlterPartitionReassignments
para preservar el replication factor.Eliminación de
ThreadLocal
enTransactionManager
, ahora usando hilos dedicados.
🔗 https://downloads.apache.org/kafka/4.1.0/RELEASE_NOTES.html
🐱 Apache Tomcat 11.0.11
Cambios relevantes:
Fix para pérdida de sesiones concurrentes.
Refactor de
WebResource
para usarKeyedReentrantReadWriteLock
.
🧠 GPULlama3.java 0.2.0 (by TornadoVM)
GPU-accelerated inference con Llama 3 y soporte para:
Windows OS
Nuevos modelos en formato GGUF: Mistral, Qwen, DeepSeek-R1, Phi-3
🔗 https://github.com/beehive-lab/GPULlama3.java/releases/tag/v0.2.0
🚀 Apache Grails 7.0.0-RC2
Mejoras:
Se oculta la selección de servlet features en favor de
--servlet
.Fixes en el enum
ServletImpl
.
🔗 https://github.com/apache/grails-core/releases/tag/v7.0.0-RC2
🧱 Gradle 9.1.0-RC2
Incluye:
Soporte para JDK 25.
Task graph visual sin necesidad de build.
CLI mejorada y nuevos reportes de proyecto.
☕ Actualizaciones del JDK
🔹 JDK 25 - Build 36 (Early Access)
Sigue como build actual para pruebas anticipadas.
Nada disruptivo, pero si usas EA, actualiza.
🚀 ¡Recuerda! El día 16 de Septiembre 2025 se lanza el JDK 25
🔹 JDK 26 - Build 14 (Early Access)
Contiene fixes varios.
Si estás testeando compatibilidad futura o migraciones, buen momento para revisar.
🧪 Nuevas JEPs o Propuestas
📡 JEP 517 - HTTP/3 para HttpClient
Estado: Proposed to Target para JDK 26
Objetivo: Soporte nativo para HTTP/3 en la API HttpClient
, con mínimos cambios de código.
💥 Esto es un game-changer para apps con alto rendimiento en red. HTTP/2 ya es viejo...
Revisión cierra el 10 de septiembre.
🔗 https://openjdk.org/jeps/517
🔗 https://mail.openjdk.org/pipermail/jdk-dev/2025-September/010384.html
🛠️ Herramientas y Utilidades para Developers
🔧 Gradle Task Graph Visual
Ahora puedes visualizar la grafo de tareas sin ejecutar el build. Perfecto para entender dependencias y optimizar tiempos.
🔗 https://docs.gradle.org/9.1.0-rc-1/userguide/build_lifecycle.html#task_graph
🌍 Comunidad y Ecosistema
🎤 Evento: JakartaOne Livestream 2025 - 28 de Septiembre
Registro gratuito, foco en Jakarta EE 11, MicroProfile y cloud-native Java.
💡 Tip de la semana
🔍 Spring Boot: ¿Necesitas saber si un @Bean
fue cargado?
A veces necesitas validar si un bean fue definido (por configuración, perfiles activos, etc.). Puedes usar el ApplicationContext
para inspeccionarlo dinámicamente:
@Autowired
private ApplicationContext context;
public boolean isBeanPresent(String beanName) {
return context.containsBean(beanName);
}
👉 Útil para beans condicionales o cuando trabajas con librerías externas que configuran beans automáticamente.
¿Te ha molado? Comparte esta newsletter con otro friki del backend 💻
¿Preguntas o sugerencias? Responde a este correo, y charlamos.