Giter Site home page Giter Site logo

java_proyecto1's Introduction

Proyecto Java Avanzado con API REST Spring - Jersey

  1. Instalar extensión Spring Tools 4

  2. Crear proyecto Spring Starter Project con las dependencias:

    • Jersey
    • Spring Boot Dev Tools
  3. Estructura de paquetes creada: config, models, rest, services

  4. Creada clase de configuración jersey: JerseyConfig

  5. 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
  6. Clases controlador:

    • CarController
    • Una clase controlador por cada tipo de coche y en la cuales se definen métodos CRUD:
    • CombustionController
    • ElectricoController
    • HibridoController
  7. Patrones de diseño usados: Factory y Fachada

  8. 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,..)
  9. 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)
  10. Colección de peticiones POSTMAN con las que probar los controladores importada en el proyecto con el nombre de Proyecto1.postman_collection.json

Parte 1 del Proyecto de JUnit y Git: testing sobre el proyecto del módulo 1

  1. 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

Actualización del proyecto con la realización del proyecto 3 MAVEN

* 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

Actualización del proyecto con la realización del proyecto 4 CI/CD

* 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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.