All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.javers.spring.auditable.aspect.JaversAuditableAspect Maven / Gradle / Ivy

There is a newer version: 7.6.2
Show newest version
package org.javers.spring.auditable.aspect;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.javers.core.Javers;
import org.javers.spring.auditable.AuthorProvider;
import org.javers.spring.auditable.CommitPropertiesProvider;
import org.javers.spring.auditable.EmptyPropertiesProvider;

/**
 * Commits all arguments passed to methods with @JaversAuditable annotation
 * (only if a method exits normally, i.e. no Exception has been thrown).
 * 

* * Spring @Transactional attributes (like noRollbackFor or noRollbackForClassName) * have no effects on this aspect. */ @Aspect public class JaversAuditableAspect { private final JaversCommitAdvice javersCommitAdvice; public JaversAuditableAspect(Javers javers, AuthorProvider authorProvider, CommitPropertiesProvider commitPropertiesProvider) { this(new JaversCommitAdvice(javers, authorProvider, commitPropertiesProvider) ); } public JaversAuditableAspect(Javers javers, AuthorProvider authorProvider) { this(javers, authorProvider, new EmptyPropertiesProvider()); } JaversAuditableAspect(JaversCommitAdvice javersCommitAdvice) { this.javersCommitAdvice = javersCommitAdvice; } @AfterReturning("@annotation(org.javers.spring.annotation.JaversAuditable)") public void commitAdvice(JoinPoint pjp) { javersCommitAdvice.commitMethodArguments(pjp); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy