Class DifferentialExpressionAnalyzerAuditServiceImpl

java.lang.Object
ubic.gemma.core.analysis.expression.diff.DifferentialExpressionAnalyzerAuditServiceImpl
All Implemented Interfaces:
DifferentialExpressionAnalyzerAuditService

@Service public class DifferentialExpressionAnalyzerAuditServiceImpl extends Object implements DifferentialExpressionAnalyzerAuditService
Implementation of DifferentialExpressionAnalyzerAuditService. The Audited aspect intercepts the method on return, picks up the DifferentialExpressionAnalysisPayload argument, serialises it to JSON and writes it to AUDIT_EVENT.PAYLOAD via addUpdateEventWithPayload. The note parameter is exposed via messageSpel = "#note" so the caller controls the AUDIT_EVENT.NOTE column verbatim.

Propagation.REQUIRES_NEW is used because the calling DifferentialExpressionAnalyzerServiceImpl is class-level Propagation.NEVER; the audit row needs its own short-lived transaction.

Phase C bucket 2f — see AUDIT_PHASE_C_RECCE.md §4d. Replaces the legacy imperative auditTrailService.addUpdateEvent(ee, DifferentialExpressionAnalysisEvent.class, note, detail) 4-arg call wrapped in a defensive try/catch at the bottom of DifferentialExpressionAnalyzerServiceImpl#persistAnalysis.