diff src/main/java/edu/harvard/iq/dataverse/actionlogging/ActionLogServiceBean.java @ 10:a50cf11e5178

Rewrite LGDataverse completely upgrading to dataverse4.0
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Tue, 08 Sep 2015 17:00:21 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/edu/harvard/iq/dataverse/actionlogging/ActionLogServiceBean.java	Tue Sep 08 17:00:21 2015 +0200
@@ -0,0 +1,35 @@
+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);
+    }
+}