package edu.harvard.iq.dataverse.actionlogging; import java.util.Date; import javax.ejb.Stateless; import javax.ejb.TransactionAttribute; import javax.ejb.TransactionAttributeType; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; /** * A service bean that persists {@link ActionLogRecord}s to the DB. * @author michael */ @Stateless public class ActionLogServiceBean { @PersistenceContext(unitName = "VDCNet-ejbPU") private EntityManager em; /** * Log the record. Set default values. * @param rec */ @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) public void log( ActionLogRecord rec ) { if ( rec.getEndTime() == null ) { rec.setEndTime( new Date() ); } if ( rec.getActionResult() == null && rec.getActionType() != ActionLogRecord.ActionType.Command ) { rec.setActionResult(ActionLogRecord.Result.OK); } em.persist(rec); } }