79e3bf28077524cb25436aad2138475816d17e38
[JavaForFun] /
1 package de.spring.example.persistence.domain.audit;
2
3 import org.hibernate.envers.RevisionListener;
4
5 import de.spring.example.context.UsernameThreadContext;
6
7 public class MyCustomRevisionListener implements RevisionListener {
8         private final UsernameThreadContext userNameThreadContext;
9         
10         public MyCustomRevisionListener(UsernameThreadContext userNameThreadContext) {
11                 this.userNameThreadContext = userNameThreadContext;
12         }
13         
14         @Override
15         public void newRevision(Object revisionEntity) {
16                 MyCustomRevision myCustomRevision = (MyCustomRevision) revisionEntity;
17                 
18                 final String username = getSafeUsername();
19                 myCustomRevision.setUsername(username);
20                 
21         }
22         
23         private String getSafeUsername() {
24                 String userName = userNameThreadContext.getUsername();
25                 
26                 if (userName == null) {
27                         userName = "NO_USER";
28                 }
29                 
30                 return userName;
31         }
32
33 }