From c3a0a79f7df94014960e8dab2d4d137b22534858 Mon Sep 17 00:00:00 2001
From: maxsca <130107847+maxsca@users.noreply.github.com>
Date: Mon, 25 Mar 2024 18:24:43 +0100
Subject: [PATCH] NOD-784 upgrade version
---
openapi/openapi.json | 142 +++++++++++++++++-
pom.xml | 136 +++++++++++------
.../wispconverter/config/LoggingAspect.java | 6 +-
.../config/MappingsConfiguration.java | 19 ---
.../wispconverter/config/OpenApiConfig.java | 6 +-
.../wispconverter/config/RedisConfig.java | 3 +-
.../wispconverter/config/RequestFilter.java | 10 +-
.../config/ResponseValidator.java | 8 +-
.../controller/ServiceController.java | 2 +-
.../wispconverter/exception/AppException.java | 2 +-
.../wispconverter/exception/ErrorHandler.java | 57 +------
.../wispconverter/model/ProblemJson.java | 4 +-
.../resources/application-local.properties | 4 +-
src/main/resources/application.properties | 10 +-
src/main/resources/logback-spring.xml | 6 +-
src/test/resources/application.properties | 34 ++++-
16 files changed, 298 insertions(+), 151 deletions(-)
delete mode 100644 src/main/java/it/gov/pagopa/wispconverter/config/MappingsConfiguration.java
diff --git a/openapi/openapi.json b/openapi/openapi.json
index 0967ef42..1fe9e452 100644
--- a/openapi/openapi.json
+++ b/openapi/openapi.json
@@ -1 +1,141 @@
-{}
+{
+ "openapi" : "3.0.1",
+ "info" : {
+ "description" : "A service that permits to handle nodoInviaRPT and nodoInviaCarrelloRPT request from WISP, interfacing them with GPD system",
+ "termsOfService" : "https://www.pagopa.gov.it/",
+ "title" : "wisp-converter",
+ "version" : "0.0.0"
+ },
+ "servers" : [ {
+ "url" : "http://localhost",
+ "description" : "Generated server url"
+ } ],
+ "paths" : {
+ "/info" : {
+ "get" : {
+ "operationId" : "healthCheck",
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/AppInfo"
+ }
+ }
+ },
+ "description" : "OK.",
+ "headers" : {
+ "X-Request-Id" : {
+ "description" : "This header identifies the call",
+ "schema" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "401" : {
+ "description" : "Wrong or missing function key.",
+ "headers" : {
+ "X-Request-Id" : {
+ "description" : "This header identifies the call",
+ "schema" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "403" : {
+ "description" : "Forbidden.",
+ "headers" : {
+ "X-Request-Id" : {
+ "description" : "This header identifies the call",
+ "schema" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "500" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemJson"
+ }
+ }
+ },
+ "description" : "Service unavailable.",
+ "headers" : {
+ "X-Request-Id" : {
+ "description" : "This header identifies the call",
+ "schema" : {
+ "type" : "string"
+ }
+ }
+ }
+ }
+ },
+ "security" : [ {
+ "ApiKey" : [ ]
+ } ],
+ "summary" : "Return OK if application is started",
+ "tags" : [ "Home" ]
+ },
+ "parameters" : [ {
+ "description" : "This header identifies the call, if not passed it is self-generated. This ID is returned in the response.",
+ "in" : "header",
+ "name" : "X-Request-Id",
+ "schema" : {
+ "type" : "string"
+ }
+ } ]
+ }
+ },
+ "components" : {
+ "schemas" : {
+ "AppInfo" : {
+ "type" : "object",
+ "properties" : {
+ "environment" : {
+ "type" : "string"
+ },
+ "name" : {
+ "type" : "string"
+ },
+ "version" : {
+ "type" : "string"
+ }
+ }
+ },
+ "ProblemJson" : {
+ "type" : "object",
+ "properties" : {
+ "detail" : {
+ "type" : "string",
+ "description" : "A human readable explanation specific to this occurrence of the problem.",
+ "example" : "There was an error processing the request"
+ },
+ "status" : {
+ "maximum" : 600,
+ "minimum" : 100,
+ "type" : "integer",
+ "description" : "The HTTP status code generated by the origin server for this occurrence of the problem.",
+ "format" : "int32",
+ "example" : 200
+ },
+ "title" : {
+ "type" : "string",
+ "description" : "A short, summary of the problem type. Written in english and readable for engineers (usually not suited for non technical stakeholders and not localized); example: Service Unavailable"
+ }
+ }
+ }
+ },
+ "securitySchemes" : {
+ "ApiKey" : {
+ "description" : "The API key to access this function app.",
+ "in" : "header",
+ "name" : "Ocp-Apim-Subscription-Key",
+ "type" : "apiKey"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index bf2ffc26..e3949e92 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,22 +7,24 @@
org.springframework.boot
spring-boot-starter-parent
- 2.7.3
+ 3.2.3
+
it.gov.pagopa
wisp-converter
0.0.0
pagoPA WISP Converter
- A service that permits to handle nodoInviaRPT and nodoInviaCarrelloRPT request from WISP, interfacing
- them with GPD system
-
+ A service that permits to handle nodoInviaRPT and nodoInviaCarrelloRPT request from WISP, interfacing them with GPD system
- 17
- 17
- UTF-8
- 1.6.15
+ 17
+ 1.5.5.Final
+ 2.4.0
+ 1.6.0
+ 1.9.20.1
+ 1.2.21
+ 4.1.101.Final
@@ -36,81 +38,71 @@
org.springframework.boot
- spring-boot-starter-web-services
+ spring-boot-starter-actuator
org.springframework.boot
- spring-boot-starter-data-redis
+ spring-boot-starter-aop
-
+
+
+
+
org.springframework.boot
- spring-boot-devtools
- runtime
- true
+ spring-boot-starter-web-services
org.springframework.boot
- spring-boot-configuration-processor
- true
+ spring-boot-starter-data-redis
org.springframework.boot
- spring-boot-starter-test
- test
+ spring-boot-starter-cache
- org.springframework.boot
- spring-boot-starter-actuator
+ com.github.ben-manes.caffeine
+ caffeine
+
+
org.springframework.boot
- spring-boot-starter-data-jpa
-
-
- org.springframework.data
- spring-data-jpa
+ spring-boot-devtools
+ runtime
+ true
org.springframework.boot
- spring-boot-starter-cache
+ spring-boot-configuration-processor
+ true
- com.github.ben-manes.caffeine
- caffeine
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
org.springdoc
- springdoc-openapi-ui
- ${springdoc.version}
-
-
-
- org.hibernate.orm
- hibernate-core
- 6.1.3.Final
-
-
-
- org.springframework.cloud
- spring-cloud-starter-openfeign
- 4.0.3
+ springdoc-openapi-starter-webmvc-ui
+ ${springdoc-openapi-starter-webmvc-ui}
-
- org.modelmapper
- modelmapper
- 3.1.0
-
org.projectlombok
lombok
true
+
+ org.mapstruct
+ mapstruct
+ ${mapstruct.version}
+
junit
@@ -120,7 +112,7 @@
co.elastic.logging
logback-ecs-encoder
- 1.5.0
+ ${java-ecs-logging.version}
@@ -145,13 +137,53 @@
+
+ no-sonar
+
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.11.0
+
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+
+
+ org.mapstruct
+ mapstruct-processor
+ ${mapstruct.version}
+
+
+ org.projectlombok
+ lombok-mapstruct-binding
+ 0.2.0
+
+
+
+ ${java.version}
+
+
org.springframework.boot
spring-boot-maven-plugin
+
+
+
+ org.projectlombok
+ lombok
+
+
+
@@ -180,7 +212,7 @@
org.sonarsource.scanner.maven
sonar-maven-plugin
- 3.3.0.603
+ 3.11.0.3922
verify
@@ -191,6 +223,12 @@
+
+
+ true
+ src/main/resources
+
+
src/test/resources
diff --git a/src/main/java/it/gov/pagopa/wispconverter/config/LoggingAspect.java b/src/main/java/it/gov/pagopa/wispconverter/config/LoggingAspect.java
index f7768dea..2a0e8cab 100644
--- a/src/main/java/it/gov/pagopa/wispconverter/config/LoggingAspect.java
+++ b/src/main/java/it/gov/pagopa/wispconverter/config/LoggingAspect.java
@@ -16,9 +16,9 @@
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
-import javax.annotation.PostConstruct;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.annotation.PostConstruct;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
diff --git a/src/main/java/it/gov/pagopa/wispconverter/config/MappingsConfiguration.java b/src/main/java/it/gov/pagopa/wispconverter/config/MappingsConfiguration.java
deleted file mode 100644
index 5c94b060..00000000
--- a/src/main/java/it/gov/pagopa/wispconverter/config/MappingsConfiguration.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package it.gov.pagopa.wispconverter.config;
-
-
-import org.modelmapper.ModelMapper;
-import org.modelmapper.convention.MatchingStrategies;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class MappingsConfiguration {
-
- @Bean
- ModelMapper modelMapper() {
- ModelMapper mapper = new ModelMapper();
- mapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
- return mapper;
- }
-
-}
diff --git a/src/main/java/it/gov/pagopa/wispconverter/config/OpenApiConfig.java b/src/main/java/it/gov/pagopa/wispconverter/config/OpenApiConfig.java
index b6ad0091..266fb3ba 100644
--- a/src/main/java/it/gov/pagopa/wispconverter/config/OpenApiConfig.java
+++ b/src/main/java/it/gov/pagopa/wispconverter/config/OpenApiConfig.java
@@ -17,7 +17,7 @@
import java.util.Objects;
import java.util.Optional;
-import org.springdoc.core.customizers.OpenApiCustomiser;
+import org.springdoc.core.customizers.OpenApiCustomizer;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -49,7 +49,7 @@ public OpenAPI customOpenAPI(
}
@Bean
- public OpenApiCustomiser sortOperationsAlphabetically() {
+ public OpenApiCustomizer sortOperationsAlphabetically() {
return openApi -> {
Paths paths =
openApi
@@ -86,7 +86,7 @@ public OpenApiCustomiser sortOperationsAlphabetically() {
}
@Bean
- public OpenApiCustomiser addCommonHeaders() {
+ public OpenApiCustomizer addCommonHeaders() {
return openApi ->
openApi
.getPaths()
diff --git a/src/main/java/it/gov/pagopa/wispconverter/config/RedisConfig.java b/src/main/java/it/gov/pagopa/wispconverter/config/RedisConfig.java
index 49a83ad4..eaead7e9 100644
--- a/src/main/java/it/gov/pagopa/wispconverter/config/RedisConfig.java
+++ b/src/main/java/it/gov/pagopa/wispconverter/config/RedisConfig.java
@@ -46,8 +46,7 @@ public LettuceConnectionFactory registerRedisConnectionFactory() {
public RedisTemplate registerRedisSimpleTemplate(final LettuceConnectionFactory connectionFactory, ObjectMapper objectMapper) {
RedisTemplate template = new RedisTemplate<>();
template.setKeySerializer(new StringRedisSerializer());
- Jackson2JsonRedisSerializer