Giter Site home page Giter Site logo

jmccar / jeorg-spring-5-test-drives Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jesperancinha/jeorg-spring-test-drives

0.0 0.0 0.0 3.78 MB

This project is intended as a study tool for the Spring Framework. This includes Spring and Spring Boot. It includes Java and Kotlin implementations. It is also a source of Mockk, Kotest and Jupiter 5 combined examples.

Home Page: http://joaofilipesabinoesperancinha.nl/

License: Apache License 2.0

Shell 0.03% JavaScript 0.18% Java 97.83% Groovy 0.02% Kotlin 1.19% CSS 0.13% Makefile 0.01% HTML 0.59% Gherkin 0.03%

jeorg-spring-5-test-drives's Introduction

Spring-test-drives


Twitter URL Generic badge GitHub License

CircleCI Build status jeorg-spring-5-test-drives

Codacy Badge codebeat badge BCH compliance Known Vulnerabilities

Codacy Badge Coverage Status codecov

GitHub language count GitHub top language GitHub top language

Technologies used


alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text


Description

SPRING study project.

The purpose of this project is to keep up with the development of the Spring Framework

Contents

  1. Spring 5 - Test drives for the Spring 5 Frawework (Bare minimum focus given to Spring Boot)
  2. Spring Kotlin 5 - Test drives for the Spring 5 Frawework in Kotlin (Bare minimum focus given to Spring Boot)

Communication 1

It is important to take note that none of the examples presented are thought to become production versions of any sort of product.
The goal of this project is purely to demonstrate and provide examples of different Aspects of the Spring Framework.
Concepts related to immutability/mutability, SOLID, ACID, 12 Factor App, Reactive Manifesto and others are present, but they are not followed in every single example module.
The reason being is that they take time, and adding these concerns per module can potentially lead away from the specific goal of each module.
These modules dot not pertain to show good practices, code styles or javadocs necessarily.
When it comes to using Lombok, you'll find its usage more often, but it won't be used everywhere given that in some cases it may hide some important concepts.
These three remain a concern, but they are not the focus of this repo.
It is also true that I will do my best to improve every single module as part of my Spring Framework journey, so these concepts will show up more often.
What's important to take away from this repo it to understand how the Spring Framework works.
If you understand all of this, then please continue with your studies. Thank you! πŸ™

JoΓ£o Esperancinha, 2021/04/21

Communication 2

The jeorg-spring-5-test-drives repository has reached a colossal size.
Therefore, it is not feasible to continue developing on this repo for new developments.
You can consider this repo as basic overall round overview of important Spring technology developments for your day to day work. However, this is only the beginning of the road into your Spring journey. We will continue on this in a new repo called Spring Master 5 Test Drives.

JoΓ£o Esperancinha, 2021/05/21

Specs

  1. Spring: org.springframework - 5.2.15.RELEASE
  2. Spring Boot: org.springframework.boot/spring-boot-starter-parent - 2.3.11.RELEASE

Build

Note that if you want to build this project from the root, you need to use one of the JDK 11 or upper versions.

See Hints&Tricks document for more details

mvn clean install -Dconsolerizer.show=false

Install JDK 11 using SDK-MAN

sdk install java 11.0.9.hs-adpt
sdk use java 11.0.9.hs-adpt

Run Codecov

mvn clean test -Dconsolerizer.show=false
bash <(curl -s https://codecov.io/bash)

Detect Non-Runing Tests

mvn clean install | egrep "Tests run|----"

Sequence Diagram

sequenceDiagram
    participant USER
    participant SPRING
    participant Spring Professional
    
    rect rgb(1,130,25)
    
    USER->>SPRING: User studies spring
    
    SPRING->>Spring Professional: User becomes
 
    loop Keep updated
         Spring Professional->>SPRING: User studies again
    end
    end

Note: You need a Mermaid plugin extension

i.e. mermaid-plugin

Tech-stack Cloud

@Transational timeout, TestRestTemplate, HealthIndicator, actuator, Embedded, JPA, Big Data

Running unit and integration tests

The examples presented in this repo need to use a docker-engine/docker-machine in order to run.

This is because they make use of the testcontainers project.

I tested this using Docker Desktop for mac and on an ubuntu-unity machine. As long as the docker-machine/docker-engine is running, the maven build shoud also work.

Using embedded alternatives revealed to be quite cumbersome, inefficient and slow.

For more info on docker desktop please check their website.

For learning how to install docker in ubuntu please check their website.

When this is ready, just run:

make build

or

mvn clean install

References

Books

  • Cosmina, I. (11th December 2019). Pivotal Certified Professional Core Spring 5 Developer Exam: A Study Guide Using Spring Framework 5. (Second Edition). Apress
  • Sharma, R. (September 2018). Hands-On Reactive Programming with Reactor. (First Edition). Packt
  • Cosmina, I. Harrop, R. Schaefer, C. Ho, C. (October 2017). Pro Spring 5 An In-Depth Guide to the Spring Framework and Its Tools. (Fifth Edition). Apress
  • Winch, R. Mularien, P. (December 2012). Spring Security 3.1. (Second Edition). Packt Publishing
  • Kurniawan, B. Deck, P. (January 2015). Servlet, JSP & Spring MVC. (First Edition). Brainy Software
  • Long, J. (2020). Reactive Spring. (First Edition). Josh Long

Online

About me πŸ‘¨πŸ½β€πŸ’»πŸš€πŸ³οΈβ€πŸŒˆ

alt text alt text alt text alt text Generic badge alt text alt text alt text alt text alt text alt text alt text alt text GitHub followers alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text Twitter Follow alt text alt text alt text alt text alt text alt text alt text VMware Spring Professional 2021 Oracle Certified Professional, JEE 7 Developer Oracle Certified Professional, Java SE 11 Programmer IBM Cybersecurity Analyst Professional Certified Advanced JavaScript Developer Certified Neo4j Professional Deep Learning Generic badge Generic badge Generic badge

jeorg-spring-5-test-drives's People

Contributors

jesperancinha avatar dependabot[bot] avatar github-actions[bot] avatar snyk-bot avatar

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.