Class ArrayDesignMergeAuditServiceImpl

java.lang.Object
ubic.gemma.core.loader.expression.arrayDesign.ArrayDesignMergeAuditServiceImpl
All Implemented Interfaces:
ArrayDesignMergeAuditService

@Service public class ArrayDesignMergeAuditServiceImpl extends Object implements ArrayDesignMergeAuditService
Implementation of ArrayDesignMergeAuditService: a thin co-bean that exists so each recordMerge(ArrayDesign, String) call is invoked through a Spring proxy and the Audited aspect can intercept it and emit the ArrayDesignMergeEvent.

The previous incarnation was a private audit(...) member of ArrayDesignMergeHelperServiceImpl self-invoked via this. from persistMerging() -- Spring AOP cannot intercept either case, so an imperative auditTrailService.addUpdateEvent(...) call was the only workable shape. Hoisting it onto a separately-injected bean lets the aspect see it and the body collapses to a logging-only marker.

The Transactional default propagation (REQUIRED) joins the outer transaction opened by ArrayDesignMergeHelperServiceImpl.persistMerging, matching the pre-hoist behaviour (the legacy auditTrailService.addUpdateEvent(...) call ran inside the same transaction).

  • Constructor Details

    • ArrayDesignMergeAuditServiceImpl

      public ArrayDesignMergeAuditServiceImpl()
  • Method Details