-
Instalar extensión Spring Tools 4
-
Crear proyecto Spring Starter Project con las dependencias:
- Jersey
- Spring Boot Dev Tools
-
Estructura de paquetes creada: config, models, rest, services
-
Creada clase de configuración jersey: JerseyConfig
-
Clases paquete models:
- Clase abstracta Car
- Clases hijas (Combustion, Electrico, Hibrido)
- Clases para asociaciones dentro del paquete: Components
- Interface Arranque dentro del paquete Components que define el encendido y apagado de los components del coche
-
Clases controlador:
- CarController
- Una clase controlador por cada tipo de coche y en la cuales se definen métodos CRUD:
- CombustionController
- ElectricoController
- HibridoController
-
Patrones de diseño usados: Factory y Fachada
-
Interfaces services:
- Una interfaz por cada tipo de Car (ICombustionService, IElectricoServices, IHibridoService), definiendo los métodos CRUD:
- findOne
- findAll
- create / update (combinados en un mismo método save)
- deleteOne
- deleteAll
- filtros (Color, Doors, Name,..)
- Una interfaz por cada tipo de Car (ICombustionService, IElectricoServices, IHibridoService), definiendo los métodos CRUD:
-
Implementación de interfaces servicio:
- Crear una clase implementación por cada interfaz servicio
- Emular base de datos utilizando una estructura de datos en Java (HashMap)
-
Colección de peticiones POSTMAN con las que probar los controladores importada en el proyecto con el nombre de Proyecto1.postman_collection.json
- Testing unitario con JUnit 5 - proceso (
Java Avanzado actualizado para proyecto 2
)- Se crea dentro de src/test/java un package com.example.project1.services
- Se crea una clase de test por cada clase a testear (CarFactory, CarFacade y los respectivos servicios de los tipos de coche) para alcanzar la mayor cobertura y todas sus pruebas posibles, validando el correcto funcionamiento de cada uno de sus respectivos métodos
* Integración en el pom de dependencies, build y reporting necesarios
* Ejecución de los comandos mvn clean install y mvn site
* Generación de site y su correspondiente index.html
* Corrección de bugs visualizados con Spotbugs
* Visualización cobertura tras las correcciones realizadas
* Realización de Reporte, el cual se adjunta al zip junto este proyecto
* Creación de un archivo Jenkinsfile con sus correspondientes stages (build, test, sonar..)
* Modificación del pom con las properties necesarias
* Creación de un pipeiline con Jenkins en Blue Ocean, leyendo el proyecto desde el repositorio github y comprobar que funcione correctamente.
* Ejecutar Sonar Cloud y verificar los datos en su dashboard
* Arreglo de los fallos (blocker, major y critical)
* Creación de algunos nuevos tests para comprobar y mejorar la cobertura
* Cambiar el proyecto en Sonar Cloud, añadiendo un workflow de GitHub Actions
* Comprobaciones de que funciona, ejecutando y analizandose ahora con GitHub Actions