Curso Jakarta EE 9 (4). Pruebas automáticas (1): Introducción

logo Jakarta EE

Puede parecer un poco prematuro introducir apenas recién comenzado el curso las pruebas (testing) automáticas. A fin de cuentas, parece razonable pensar que el único objetivo es escribir el código de la aplicación para implementar todas sus funcionalidades…

Nota. Este capítulo es una breve introducción teórica al mundo del testing. Si bien no tiene relación directa con la temática principal del curso, he considerado oportuna su inclusión para presentar conceptos que cualquier programador debería conocer antes de empezar a implementar y diseñar sus primeras pruebas. Su lectura, por tanto, es opcional pero recomendable.

Seguir leyendo

Curso Jakarta EE 9 (3). La primera aplicación web.

logo Jakarta EE

Tras la pertinente introducción teórica para tener una perspectiva global del mundo Jakarta EE, y con el software necesario instalado en nuestro equipo, ha llegado el momento de ponernos manos a la obra y crear la primera aplicación. Y, lo más importante, veremos cómo “ejecutarla” en el servidor de aplicaciones WildFly de forma manual o mediante un entorno de desarrollo (IntelliJ y Eclipse).

Seguir leyendo

Curso Jakarta EE 9 (0). Presentación.

logo Jakarta EE

Bienvenid@ a esta serie de tutoriales organizados en forma de curso que exploran la amplia y poderosa colección de APIs estándar de Java -llamadas especificaciones- recopiladas bajo el paraguas de Jakarta EE, la evolución de “Java Enterprise Edition” (JEE)-. Estas especificaciones nos permitirán construir aplicaciones web robustas con todas las funcionalidades demandadas en la actualidad.

Seguir leyendo

Introducción a CDI Beans 2.0 (JEE 8)

logo java

JEE (Java Enterprise Edition) es una colección de especificaciones especialmente orientadas al desarrollo de aplicaciones empresariales generalmente del lado del servidor (aplicaciones web). Incluye tecnologías tales como Servlet, JSP, EJB, JAX-WS, JPA o JMS. La versión más actual en el momento de escribir el presente tutorial es la 8 (su versionado no coincide con el de Java SE que es el core del propio lenguaje Java).

El desarrollo de JEE es controlado por Oracle y realizado dentro del Java Community Process(JCP), pero a finales de 2017 Oracle cedió JEE a la fundación Eclipse y, por cuestiones legales en el uso de la marca Java EE, ha pasado a llamarse Jakarta EE. La primera versión es Jakarta EE 8 y coincide exactamente con las especificaciones Java EE 8. Los cambios han llegado con Jakarta EE 9 a finales de 2020 pero no a nivel funcional: simplemente se ha cambiado el nombre de los paquetes javax.* a jakartaee.*, y unas pocas especificaciones han pasado a ser opcionales o directamente han dejado de ser parte de Jakarta EE 9. En cualquier caso, todo lo visto en este tutorial sigue siendo válido para Jakarta EE 8 y 9.

Seguir leyendo

Spring: Sistema de eventos

logo springLos sistemas de eventos permiten que múltiples componentes intercambien información reduciendo el acoplamiento entre ellos suponiendo en la práctica una generalización más abstracta de los principios del patrón de diseño observador. El core de Spring cuenta con un sistema de eventos que quizás no sea demasiado conocido, de hecho en la bibliografía se suele citar de pasada. Este sistema de eventos de Spring es muy básico y utiliza el propio ApplicationContext como bróker para el envío de eventos entre los beans gestionados por el mismo. En este tutorial echaremos un vistazo a este sistema eventos.

Seguir leyendo

Spring Boot: Gestión de errores en aplicaciones web y REST

Última actualización: 02/11/2020

logo springEn este tutorial haremos un breve repaso con un enfoque eminentemente práctico de las mejores opciones que tenemos para la gestión de excepciones en aplicaciones web, tanto “tradicionales” como REST, desarrolladas con Spring MVC. Se hará especial hincapié en las funcionalidades implementadas de forma específica por Spring Boot que facilitarán nuestro trabajo.

Seguir leyendo

Testing en Spring Boot con JUnit 4\5. Mockito, MockMvc, REST Assured, bases de datos embebidas.

Última actualización: 28/10/2020

logo springEn el tutorial Introducción a Spring Boot: Aplicación Web con servicios REST y Spring Data JPA se construye una pequeña aplicación web que muestra en pantalla los registros de una tabla de una base de datos MySQL a la que se accede a través de Spring Data JPA, y que también dispone de una pequeña api REST.

Sin embargo, falta un elemento vital como son los tests (*). Para suplir esta carencia, en el presente tutorial voy a mostrar cómo configurar tests de integración en Spring Boot utilizando esa misma aplicación así como algunas opciones y librerías que pueden ser de gran ayuda. Estos tests necesitarán para su ejecución levantar el contexto de Spring, y su objetivo no es tanto validar el funcionamiento de la aplicación sino “jugar” con las funcionalidades más básicas que Spring Boot y esas librerias proporcionan.

(*) Si el lector está interesado en una pequeña introducción teórica al testing automatizado, he preparado este artículo. Aunque forma parte de mi curso de Jakarta EE, su contenido es genérico.

Los tests se desarrollarán con JUnit 4 pero al final del tutorial veremos cómo utilizar también JUnit 5. Esta versión del tutorial está actualizada a Spring Boot 2.3.3 (agosto 2020), y se indicarán algunas diferencias significativas con respecto a versiones anteriores para ayudar al lector en el caso de que trabaje con aplicaciones más antiguas.

Seguir leyendo

Creación de validadores con Bean Validation\Hibernate Validator

logo java

Una vez que hemos empezado a utilizar la especificación Bean Validation para definir restricciones sobre los atributos de clases Java, en algún momento nos encontraremos con la necesidad de validar restricciones que no sean proporcionadas ni por el estándar Bean Validation ni por Hibernate Validator y que no pueden definirse utilizando expresiones regulares con @Pattern. Por ejemplo, realizar alguna comprobación en una base de datos.

Seguir leyendo