Skip to content
This repository has been archived by the owner on Jan 15, 2025. It is now read-only.

Fix template #4

Closed
wants to merge 197 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
197 commits
Select commit Hold shift + click to select a range
d45dd9a
initial commit
jacopocarlini Sep 14, 2022
fa4bda8
Merge pull request #1 from pagopa/temp
jacopocarlini Sep 14, 2022
3f47ef1
README.md
jacopocarlini Sep 14, 2022
087ecf7
readme
jacopocarlini Sep 15, 2022
567fe5a
Merge remote-tracking branch 'origin/main'
jacopocarlini Sep 15, 2022
2f55093
fix
jacopocarlini Sep 15, 2022
2e2678f
fix deploy-pipelines.yml
jacopocarlini Sep 15, 2022
b7a80fc
fix
jacopocarlini Sep 15, 2022
a388bc8
fix
jacopocarlini Sep 15, 2022
5c8c860
fix
jacopocarlini Sep 16, 2022
2420327
fix
jacopocarlini Sep 20, 2022
bb437ad
int test
jacopocarlini Sep 21, 2022
bd47805
fix
jacopocarlini Sep 21, 2022
53bb849
fix
jacopocarlini Sep 21, 2022
8c5f3f1
integration test
jacopocarlini Sep 22, 2022
d913233
load test
jacopocarlini Sep 22, 2022
344de5e
int test
jacopocarlini Sep 23, 2022
585cd1a
fix
jacopocarlini Sep 23, 2022
057dcc2
fix
jacopocarlini Sep 23, 2022
9974ae5
fix deploy
jacopocarlini Sep 30, 2022
40cc79b
fix
jacopocarlini Oct 12, 2022
8b35d38
fix
jacopocarlini Oct 12, 2022
8259cbc
fix
jacopocarlini Oct 12, 2022
dde48fa
fix
jacopocarlini Oct 12, 2022
bf9e5bd
performance test
jacopocarlini Oct 12, 2022
a4dddf2
fix
jacopocarlini Oct 13, 2022
41dcb7e
fix scripts
jacopocarlini Oct 14, 2022
798d9cb
Update README.md
jacopocarlini Oct 18, 2022
c07c405
fix scripts
jacopocarlini Oct 25, 2022
763cab2
Merge remote-tracking branch 'origin/main'
jacopocarlini Oct 25, 2022
c1bf305
fix prop
jacopocarlini Oct 25, 2022
81f22bb
fix prop
jacopocarlini Oct 25, 2022
fa4cc32
release
jacopocarlini Oct 25, 2022
baeaab8
anchore
jacopocarlini Oct 25, 2022
569e48a
new script
jacopocarlini Nov 3, 2022
1130701
added pre-commit
jacopocarlini Nov 7, 2022
944cc1a
new pipeline
jacopocarlini Nov 11, 2022
8f34d76
new version template
jacopocarlini Nov 11, 2022
115210f
new scripts
jacopocarlini Nov 21, 2022
86652ab
[k6] new test types
jacopocarlini Nov 22, 2022
73891c3
small fix
jacopocarlini Nov 22, 2022
e591aef
fix
jacopocarlini Nov 22, 2022
fdc11ab
fix
jacopocarlini Nov 22, 2022
662f5c4
fix
jacopocarlini Nov 22, 2022
74ba6d1
fix
jacopocarlini Nov 23, 2022
71533d1
set -e
jacopocarlini Nov 23, 2022
29fe2ca
new perf type
jacopocarlini Nov 23, 2022
9aa1d05
fix
jacopocarlini Nov 23, 2022
4f6e290
new pipeline UAT
jacopocarlini Nov 28, 2022
ca896d1
subkey as variable
jacopocarlini Nov 28, 2022
38375fd
dashboard
jacopocarlini Dec 14, 2022
7729e45
fix
jacopocarlini Dec 23, 2022
a237ca4
formatting
jacopocarlini Dec 23, 2022
e43412a
action
jacopocarlini Dec 23, 2022
12809ad
code review
jacopocarlini Dec 23, 2022
d6e99c2
Update run_docker.sh
jacopocarlini Jan 4, 2023
a35cbd5
fix
jacopocarlini Jan 5, 2023
1e8264e
Merge remote-tracking branch 'origin/main'
jacopocarlini Jan 5, 2023
f2adba0
fix action
jacopocarlini Jan 5, 2023
6f08e1b
try
jacopocarlini Jan 5, 2023
31e3e1a
fix
jacopocarlini Jan 5, 2023
ad93e25
Fix actions
jacopocarlini Jan 11, 2023
acb5106
Fix actions
jacopocarlini Jan 11, 2023
a0b7885
Fix actions
jacopocarlini Jan 11, 2023
1cf4a33
new actions
jacopocarlini Jan 16, 2023
935e65d
fix
jacopocarlini Jan 16, 2023
feb6c1c
fix
jacopocarlini Jan 16, 2023
9c4625a
fix
jacopocarlini Jan 17, 2023
96a888e
fix action
jacopocarlini Jan 17, 2023
b5a5fdc
Update code_review.yml
jacopocarlini Jan 17, 2023
15c7b59
fix
jacopocarlini Jan 17, 2023
21f6876
Merge remote-tracking branch 'origin/main'
jacopocarlini Jan 17, 2023
cb44d0b
fix
jacopocarlini Jan 17, 2023
73c99c0
fix
jacopocarlini Jan 17, 2023
3d5ec99
fix
jacopocarlini Jan 26, 2023
2ff28dd
fix actions
jacopocarlini Jan 31, 2023
29da371
fix
jacopocarlini Jan 31, 2023
1695d9f
fix
jacopocarlini Feb 9, 2023
0681aff
fix
jacopocarlini Feb 9, 2023
21c15a6
forcing container removal
FedericoRuzzier Mar 2, 2023
1ea40df
Merge pull request #2 from pagopa/performance-test-container-removal
jacopocarlini Mar 2, 2023
f9ee81f
identity
jacopocarlini Mar 7, 2023
186af24
Merge remote-tracking branch 'origin/main'
jacopocarlini Mar 7, 2023
d4b2a1d
code review
jacopocarlini Mar 10, 2023
6120ca3
name
jacopocarlini Mar 13, 2023
5641546
fix script terraform
jacopocarlini Mar 13, 2023
14ff2d2
secrets
jacopocarlini Mar 13, 2023
3e0cf59
update
jacopocarlini Mar 22, 2023
23dc17c
update
jacopocarlini Mar 22, 2023
1da3a9f
update
jacopocarlini Mar 22, 2023
1ed29ca
integration test
jacopocarlini Mar 27, 2023
f5191b1
opex
jacopocarlini Mar 27, 2023
da113c8
opex
jacopocarlini Mar 27, 2023
5c47ddd
opex
jacopocarlini Mar 27, 2023
3933180
k8s
jacopocarlini Mar 27, 2023
3f79405
resource_type: api-management
jacopocarlini Mar 27, 2023
4dc50ea
🔖 chore(pom.xml): remove name tag and update description
jacopocarlini Mar 28, 2023
9ab575c
fix
jacopocarlini Mar 29, 2023
91b3019
fix
jacopocarlini Mar 30, 2023
bdb6bc5
🔥 chore(integration_test.yml): remove notify job
jacopocarlini Apr 12, 2023
658a0f2
header canary
jacopocarlini Apr 14, 2023
61f0e66
integration test
jacopocarlini May 4, 2023
3668eb8
fix
jacopocarlini May 4, 2023
ce3a13d
template
jacopocarlini Jun 7, 2023
6e44226
template fix deploy
jacopocarlini Jun 7, 2023
ae01cc5
upgrade
jacopocarlini Jun 7, 2023
499b988
0.0.0
jacopocarlini Jun 7, 2023
694d901
labels
jacopocarlini Jun 7, 2023
bdd285c
fix
jacopocarlini Jun 7, 2023
52ae723
fix script docker
jacopocarlini Jun 7, 2023
3b4f69a
policy
jacopocarlini Jun 7, 2023
8d85383
fix canary
jacopocarlini Jun 8, 2023
fb24d5a
fix
jacopocarlini Jun 8, 2023
8c95341
fix
jacopocarlini Jun 8, 2023
b5cf517
fix
jacopocarlini Jun 9, 2023
7fef44f
badge
jacopocarlini Jun 9, 2023
7a005c7
fix
jacopocarlini Jun 9, 2023
944ee41
for each
jacopocarlini Jun 9, 2023
a0479cf
fix prod
jacopocarlini Jun 12, 2023
d2a6707
fix
jacopocarlini Jun 12, 2023
037c010
require label removed
jacopocarlini Jun 13, 2023
dfd1948
notify
jacopocarlini Jun 13, 2023
30b6cd0
team
jacopocarlini Jun 13, 2023
e3c84c3
team
jacopocarlini Jun 13, 2023
03fc300
team
jacopocarlini Jun 13, 2023
b26d013
icon
jacopocarlini Jun 14, 2023
0eef335
fix
jacopocarlini Jun 14, 2023
e54e5fc
use intellij formatting
jacopocarlini Jun 26, 2023
1d908bf
Merge pull request #3 from pagopa/formatter
jacopocarlini Jun 27, 2023
e560a74
infra
jacopocarlini Jun 27, 2023
72a732d
fix
jacopocarlini Jun 28, 2023
2cab8a8
fix
jacopocarlini Jun 28, 2023
7f17893
Merge remote-tracking branch 'origin/main'
jacopocarlini Jun 28, 2023
a426516
fix
jacopocarlini Jun 28, 2023
f136dcd
new
jacopocarlini Jun 28, 2023
0774459
delete space
jacopocarlini Jun 28, 2023
f45ae32
generatre openapi
jacopocarlini Jun 28, 2023
2303163
fix bot
jacopocarlini Jun 30, 2023
27efcec
no docker
jacopocarlini Jun 30, 2023
74905ba
weu
jacopocarlini Jun 30, 2023
e97ed03
hostname
jacopocarlini Jun 30, 2023
ce037ce
fix check size
jacopocarlini Jul 24, 2023
577b29b
local
jacopocarlini Jul 24, 2023
d94f1db
local
jacopocarlini Jul 24, 2023
21d228b
readme
jacopocarlini Jul 24, 2023
5fcd25a
open telemetry agent
jacopocarlini Jul 25, 2023
009b2af
fix
jacopocarlini Jul 27, 2023
b03ea99
style
jacopocarlini Aug 8, 2023
37d7caf
chart
jacopocarlini Aug 9, 2023
630dd3f
bump GHA
jacopocarlini Sep 8, 2023
3b2fd17
deploy GHA
jacopocarlini Sep 8, 2023
cb10d25
deploy GHA
jacopocarlini Sep 8, 2023
8f75568
port
jacopocarlini Sep 8, 2023
513e899
logging
jacopocarlini Oct 3, 2023
416b422
logging
jacopocarlini Oct 11, 2023
d00073c
update GHA
jacopocarlini Oct 12, 2023
bbfc2bf
release and deploy
jacopocarlini Dec 13, 2023
d0ea760
skip
jacopocarlini Dec 19, 2023
7572289
template
jacopocarlini Jan 25, 2024
83a2fb1
template fix logging
jacopocarlini Jan 25, 2024
9bf9db7
new version
jacopocarlini Apr 23, 2024
31fb43e
typo
jacopocarlini May 7, 2024
35ad74c
added sops.sh
jacopocarlini May 7, 2024
0a2759a
template
jacopocarlini May 10, 2024
3216821
true
jacopocarlini May 10, 2024
4143985
fix
jacopocarlini May 10, 2024
a08d830
update gha
jacopocarlini May 10, 2024
f715954
fix
jacopocarlini May 10, 2024
8572c15
Pin dependencies
renovate-pagopa[bot] Nov 21, 2024
ab95a21
feat: new GHA and identity
jacopocarlini Nov 21, 2024
01dd3fb
.
jacopocarlini Nov 25, 2024
2bd560a
update
jacopocarlini Nov 25, 2024
4a2cc24
replace javax imports with jakarta
gioelemella Dec 2, 2024
3b3af33
updated README
gioelemella Dec 2, 2024
c4ac4dd
updated helm charts with default app env and fixed application insigh…
gioelemella Dec 2, 2024
9bfcf42
fixed cors configuration properties that caused application startup f…
gioelemella Dec 2, 2024
8c51ecc
removed junit unused dependency, replaced springdoc-openapi-ui with s…
gioelemella Dec 2, 2024
d054994
Merge remote-tracking branch 'origin/renovate/pin-dependencies'
jacopocarlini Dec 2, 2024
a2faa7e
fix tests
gioelemella Dec 2, 2024
a963d2b
Apply suggestions from code review
jacopocarlini Dec 2, 2024
5d5f117
Apply suggestions from code review
jacopocarlini Dec 2, 2024
265ad43
Update src/main/java/it/gov/pagopa/microservice/config/OpenApiConfig.…
jacopocarlini Dec 2, 2024
3795843
Update src/main/java/it/gov/pagopa/microservice/config/ResponseValida…
jacopocarlini Dec 2, 2024
2cd5974
Apply suggestions from code review
jacopocarlini Dec 2, 2024
2df2f84
Update src/main/java/it/gov/pagopa/microservice/config/ResponseValida…
jacopocarlini Dec 2, 2024
6cded1f
Update src/main/java/it/gov/pagopa/microservice/exception/ErrorHandle…
jacopocarlini Dec 2, 2024
79a62a6
Update src/main/java/it/gov/pagopa/microservice/exception/ErrorHandle…
jacopocarlini Dec 2, 2024
e9fa382
Update src/main/java/it/gov/pagopa/microservice/model/ProblemJson.java
jacopocarlini Dec 2, 2024
9956588
Update src/main/java/it/gov/pagopa/microservice/config/ResponseValida…
jacopocarlini Dec 2, 2024
8b80f83
Update src/main/java/it/gov/pagopa/microservice/exception/ErrorHandle…
jacopocarlini Dec 2, 2024
2c7f239
Update src/main/java/it/gov/pagopa/microservice/config/LoggingAspect.…
jacopocarlini Dec 2, 2024
dc03438
Update src/main/java/it/gov/pagopa/microservice/config/LoggingAspect.…
jacopocarlini Dec 2, 2024
1733162
formatter
jacopocarlini Dec 2, 2024
719de7e
formatter
jacopocarlini Dec 2, 2024
bc30d96
formatter
jacopocarlini Dec 2, 2024
f5262ab
style(CommonUtility.java): remove unnecessary semicolons and improve …
jacopocarlini Dec 18, 2024
752e3ce
Merge branch 'main' into fix-template
jacopocarlini Dec 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
formatter
jacopocarlini committed Dec 2, 2024
commit 173316237c49a99cc3f78e9b98c431a20b2e2aa1
253 changes: 121 additions & 132 deletions src/main/java/it/gov/pagopa/microservice/config/LoggingAspect.java
Original file line number Diff line number Diff line change
@@ -24,144 +24,133 @@
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

import static it.gov.pagopa.microservice.util.CommonUtility.deNull;


@Aspect
@Component
@Slf4j
public class LoggingAspect {

public static final String START_TIME = "startTime";
public static final String METHOD = "method";
public static final String STATUS = "status";
public static final String CODE = "httpCode";
public static final String RESPONSE_TIME = "responseTime";
public static final String FAULT_CODE = "faultCode";
public static final String FAULT_DETAIL = "faultDetail";
public static final String REQUEST_ID = "requestId";
public static final String OPERATION_ID = "operationId";
public static final String ARGS = "args";

@Autowired
HttpServletRequest httRequest;

@Autowired
HttpServletResponse httpResponse;

@Value("${info.application.name}")
private String name;

@Value("${info.application.version}")
private String version;

@Value("${info.properties.environment}")
private String environment;


@Pointcut("@within(org.springframework.web.bind.annotation.RestController)")
public void restController() {
// all rest controllers
}

@Pointcut("@within(org.springframework.stereotype.Repository)")
public void repository() {
// all repository methods
public static final String START_TIME = "startTime";
public static final String METHOD = "method";
public static final String STATUS = "status";
public static final String CODE = "httpCode";
public static final String RESPONSE_TIME = "responseTime";
public static final String FAULT_CODE = "faultCode";
public static final String FAULT_DETAIL = "faultDetail";
public static final String REQUEST_ID = "requestId";
public static final String OPERATION_ID = "operationId";
public static final String ARGS = "args";

@Autowired HttpServletRequest httRequest;

@Autowired HttpServletResponse httpResponse;

@Value("${info.application.name}")
private String name;

@Value("${info.application.version}")
private String version;

@Value("${info.properties.environment}")
private String environment;

@Pointcut("@within(org.springframework.web.bind.annotation.RestController)")
public void restController() {
// all rest controllers
}

@Pointcut("@within(org.springframework.stereotype.Repository)")
public void repository() {
// all repository methods
}

@Pointcut("@within(org.springframework.stereotype.Service)")
public void service() {
// all service methods
}

/** Log essential info of application during the startup. */
@PostConstruct
public void logStartup() {
log.info("-> Starting {} version {} - environment {}", name, version, environment);
}

@Around(value = "restController()")
public Object logApiInvocation(ProceedingJoinPoint joinPoint) throws Throwable {
MDC.put(METHOD, joinPoint.getSignature().getName());
MDC.put(START_TIME, String.valueOf(System.currentTimeMillis()));
MDC.put(OPERATION_ID, UUID.randomUUID().toString());
if (MDC.get(REQUEST_ID) == null) {
var requestId = UUID.randomUUID().toString();
MDC.put(REQUEST_ID, requestId);
}

@Pointcut("@within(org.springframework.stereotype.Service)")
public void service() {
// all service methods
}

/**
* Log essential info of application during the startup.
*/
@PostConstruct
public void logStartup() {
log.info("-> Starting {} version {} - environment {}", name, version, environment);
}

@Around(value = "restController()")
public Object logApiInvocation(ProceedingJoinPoint joinPoint) throws Throwable {
MDC.put(METHOD, joinPoint.getSignature().getName());
MDC.put(START_TIME, String.valueOf(System.currentTimeMillis()));
MDC.put(OPERATION_ID, UUID.randomUUID().toString());
if(MDC.get(REQUEST_ID) == null) {
var requestId = UUID.randomUUID().toString();
MDC.put(REQUEST_ID, requestId);
}
Map<String, String> params = getParams(joinPoint);
MDC.put(ARGS, params.toString());

log.info("Invoking API operation {} - args: {}", joinPoint.getSignature().getName(), params);

Object result = joinPoint.proceed();

MDC.put(STATUS, "OK");
MDC.put(CODE, String.valueOf(httpResponse.getStatus()));
MDC.put(RESPONSE_TIME, getExecutionTime());
log.info("Successful API operation {} - result: {}", joinPoint.getSignature().getName(), result);
MDC.remove(STATUS);
MDC.remove(CODE);
MDC.remove(RESPONSE_TIME);
MDC.remove(START_TIME);
return result;
}

@AfterReturning(value = "execution(* *..exception.ErrorHandler.*(..))", returning = "result")
public void trowingApiInvocation(JoinPoint joinPoint, ResponseEntity<ProblemJson> result) {
MDC.put(STATUS, "KO");
MDC.put(CODE, String.valueOf(result.getStatusCodeValue()));
MDC.put(RESPONSE_TIME, getExecutionTime());
MDC.put(FAULT_CODE, getTitle(result));
MDC.put(FAULT_DETAIL, getDetail(result));
log.info("Failed API operation {} - error: {}", MDC.get(METHOD), result);
MDC.clear();
}

@Around(value = "repository() || service()")
public Object logTrace(ProceedingJoinPoint joinPoint) throws Throwable {
Map<String, String> params = getParams(joinPoint);
log.debug("Call method {} - args: {}", joinPoint.getSignature().toShortString(), params);
Object result = joinPoint.proceed();
log.debug("Return method {} - result: {}", joinPoint.getSignature().toShortString(), result);
return result;
}

private static String getDetail(ResponseEntity<ProblemJson> result) {
if(result != null && result.getBody() != null && result.getBody().getDetail() != null) {
return result.getBody().getDetail();
} else return AppError.UNKNOWN.getDetails();
}

private static String getTitle(ResponseEntity<ProblemJson> result) {
if(result != null && result.getBody() != null && result.getBody().getTitle() != null) {
return result.getBody().getTitle();
} else return AppError.UNKNOWN.getTitle();
}

public static String getExecutionTime() {
String startTime = MDC.get(START_TIME);
if(startTime != null) {
long endTime = System.currentTimeMillis();
long executionTime = endTime - Long.parseLong(startTime);
return String.valueOf(executionTime);
}
return "-";
Map<String, String> params = getParams(joinPoint);
MDC.put(ARGS, params.toString());

log.debug("Invoking API operation {} - args: {}", joinPoint.getSignature().getName(), params);

Object result = joinPoint.proceed();

MDC.put(STATUS, "OK");
MDC.put(CODE, String.valueOf(httpResponse.getStatus()));
MDC.put(RESPONSE_TIME, getExecutionTime());
log.info(
"Successful API operation {} - result: {}", joinPoint.getSignature().getName(), result);
MDC.remove(STATUS);
MDC.remove(CODE);
MDC.remove(RESPONSE_TIME);
MDC.remove(START_TIME);
return result;
}

@AfterReturning(value = "execution(* *..exception.ErrorHandler.*(..))", returning = "result")
public void trowingApiInvocation(JoinPoint joinPoint, ResponseEntity<ProblemJson> result) {
MDC.put(STATUS, "KO");
MDC.put(CODE, String.valueOf(result.getStatusCodeValue()));
MDC.put(RESPONSE_TIME, getExecutionTime());
MDC.put(FAULT_CODE, getTitle(result));
MDC.put(FAULT_DETAIL, getDetail(result));
log.info("Failed API operation {} - error: {}", MDC.get(METHOD), result);
MDC.clear();
}

@Around(value = "repository() || service()")
public Object logTrace(ProceedingJoinPoint joinPoint) throws Throwable {
Map<String, String> params = getParams(joinPoint);
log.debug("Call method {} - args: {}", joinPoint.getSignature().toShortString(), params);
Object result = joinPoint.proceed();
log.debug("Return method {} - result: {}", joinPoint.getSignature().toShortString(), result);
return result;
}

private static String getDetail(ResponseEntity<ProblemJson> result) {
if (result != null && result.getBody() != null && result.getBody().getDetail() != null) {
return result.getBody().getDetail();
} else return AppError.UNKNOWN.getDetails();
}

private static String getTitle(ResponseEntity<ProblemJson> result) {
if (result != null && result.getBody() != null && result.getBody().getTitle() != null) {
return result.getBody().getTitle();
} else return AppError.UNKNOWN.getTitle();
}

public static String getExecutionTime() {
String startTime = MDC.get(START_TIME);
if (startTime != null) {
long endTime = System.currentTimeMillis();
long executionTime = endTime - Long.parseLong(startTime);
return String.valueOf(executionTime);
}

private static Map<String, String> getParams(ProceedingJoinPoint joinPoint) {
CodeSignature codeSignature = (CodeSignature) joinPoint.getSignature();
Map<String, String> params = new HashMap<>();
int i = 0;
for (var paramName : codeSignature.getParameterNames()) {
params.put(paramName, deNull(joinPoint.getArgs()[i++]));
}
return params;
return "-";
}

private static Map<String, String> getParams(ProceedingJoinPoint joinPoint) {
CodeSignature codeSignature = (CodeSignature) joinPoint.getSignature();
Map<String, String> params = new HashMap<>();
int i = 0;
for (var paramName : codeSignature.getParameterNames()) {
params.put(paramName, deNull(joinPoint.getArgs()[i++]));
}
return params;
}
}