Example usage for org.springframework.boot.actuate.audit AuditEventRepository AuditEventRepository

List of usage examples for org.springframework.boot.actuate.audit AuditEventRepository AuditEventRepository

Introduction

In this page you can find the example usage for org.springframework.boot.actuate.audit AuditEventRepository AuditEventRepository.

Prototype

AuditEventRepository

Source Link

Usage

From source file:fi.helsinki.opintoni.repository.CustomAuditEventRepository.java

@Bean
public AuditEventRepository auditEventRepository() {
    return new AuditEventRepository() {

        @Inject//from   ww  w. j  a va2 s  .  c  o  m
        private AuditEventConverter auditEventConverter;

        @Override
        public List<AuditEvent> find(String principal, Date after) {
            Iterable<PersistentAuditEvent> persistentAuditEvents;
            if (principal == null && after == null) {
                persistentAuditEvents = persistenceAuditEventRepository.findAll();
            } else if (after == null) {
                persistentAuditEvents = persistenceAuditEventRepository.findByPrincipal(principal);
            } else {
                persistentAuditEvents = persistenceAuditEventRepository
                        .findByPrincipalAndAuditEventDateAfter(principal, new LocalDateTime(after));
            }
            return auditEventConverter.convertToAuditEvent(persistentAuditEvents);
        }

        @Override
        @Transactional(propagation = Propagation.REQUIRES_NEW)
        public void add(AuditEvent event) {
            PersistentAuditEvent persistentAuditEvent = new PersistentAuditEvent();
            persistentAuditEvent.setPrincipal(event.getPrincipal());
            persistentAuditEvent.setAuditEventType(event.getType());
            persistentAuditEvent.setAuditEventDate(new LocalDateTime(event.getTimestamp()));
            persistentAuditEvent.setData(auditEventConverter.convertDataToStrings(event.getData()));

            persistenceAuditEventRepository.save(persistentAuditEvent);
        }
    };
}