Purpose : Enforce common coding style for java source code in IDE at source code compile time. 
Result : Get detailed report about violation of pre-defined common coding style issues such as incorrect indentation, * import, package-class-method-variable naming convention etc. 
1- To activate maven checkstyle plugin run the following maven command : 
NOT : Execute maven command from where the pom.xml is located in the project directory. 
$ mvn clean install
[ERROR] \test\StoreServiceIntegrationTest.java:45:19: '(' is followed by whitespace. 
[ERROR] \test\StoreServiceIntegrationTest.java:45:49: ')' is preceded with whitespace. 
[ERROR] \test\java\service\integration\test\StoreServiceIntegrationTest.java:46:19: '(' is followed by whitespace. 
[ERROR] \test\java\service\integration\test\StoreServiceIntegrationTest.java:47:19: '(' is followed by whitespace. 
[ERROR] \test\java\service\unit\test\ProductServiceUnitTest.java:48:32: '(' is followed by whitespace. 
[ERROR] \test\java\service\unit\test\ProductServiceUnitTest.java:48:53: ')' is preceded with whitespace. 
Audit done. 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time:  6.120 s 
[INFO] Finished at: 2021-10-03T15:29:57+03:00 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.1.2:check (validate) on project spring-boot-maven-checkstyle-coding-standard-plugin: 
Failed during checkstyle execution: 
There are 201 errors reported by Checkstyle 9.0 
[ERROR] 
Java 11 
H2 Database Engine 
spring boot 
spring boot starter data jpa 
spring boot starter web 
spring boot starter test 
hibernate 
logback 
maven 
maven-checkstyle-plugin 
springfox-swagger-ui 
datasource-proxy 
Docker 
NOT : Execute docker commands from where the DockerFile is located. 
$ docker system prune
$ docker build . --tag demo
$ docker run -p 8080:8080 -e "SPRING_PROFILES_ACTIVE=dev" demo:latest
Method : HTTP.POST 
URL : http://localhost:8080/customer-info/store/save 
Request :
curl --location --request POST 'http://localhost:8080/customer-info/store/save' \
--header 'Content-Type: application/json' \
--data-raw '{
  "name": "jeans_store",
  "products": [
    {
      "name": "prod1"
    },
    {
      "name": "prod2"
    },
    {
      "name": "prod3"
    }
  ]
}'
Response :
HTTP response code 200 
{
    "id": 1,
    "name": "jeans_store",
    "products": [
        {
            "id": 1,
            "name": "prod3"
        },
        {
            "id": 2,
            "name": "prod1"
        },
        {
            "id": 3,
            "name": "prod2"
        }
    ]
}
Method : HTTP.GET 
URL : http://localhost:8080/customer-info/store/list 
Request :
curl --location --request GET 'http://localhost:8080/customer-info/store/list'
Response :
HTTP response code 200 
[
    {
        "id": 1,
        "name": "jeans_store",
        "products": [
            {
                "id": 1,
                "name": "prod3"
            },
            {
                "id": 2,
                "name": "prod1"
            },
            {
                "id": 3,
                "name": "prod2"
            }
        ]
    }
]
