1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.openehealth.ipf.boot.atna;
18
19 import org.openehealth.ipf.commons.audit.AuditContext;
20 import org.openehealth.ipf.commons.audit.codes.EventOutcomeIndicator;
21 import org.openehealth.ipf.commons.audit.event.ApplicationActivityBuilder;
22 import org.openehealth.ipf.commons.audit.utils.AuditUtils;
23 import org.springframework.beans.factory.annotation.Autowired;
24 import org.springframework.context.ApplicationContext;
25 import org.springframework.context.ApplicationListener;
26 import org.springframework.context.event.ContextRefreshedEvent;
27
28 import static java.util.Objects.requireNonNull;
29
30
31
32
33 public class ApplicationStartEventListener implements ApplicationListener<ContextRefreshedEvent> {
34
35 private final AuditContext auditContext;
36
37 @Autowired
38 private ApplicationContext applicationContext;
39
40 public ApplicationStartEventListener(AuditContext auditContext) {
41 this.auditContext = requireNonNull(auditContext);
42 }
43
44 @Override
45 public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
46 if (auditContext.isAuditEnabled() && contextRefreshedEvent.getApplicationContext() == applicationContext) {
47 auditContext.audit(
48 new ApplicationActivityBuilder.ApplicationStart(EventOutcomeIndicator.Success)
49 .setAuditSource(auditContext)
50 .setApplicationParticipant(
51 applicationContext.getApplicationName(),
52 null,
53 null,
54 AuditUtils.getLocalHostName())
55 .addApplicationStarterParticipant(System.getProperty("user.name"))
56 .getMessages()
57 );
58 }
59
60 }
61 }