From c543e99e6b02a25c6dc745081f3915897420b225 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Fri, 20 Sep 2013 13:39:01 +0200 Subject: Keep a History object in the Workflow to avoid recreating it on repeated executions. --- src/main/java/com/c2kernel/lifecycle/instance/Activity.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/main/java/com/c2kernel/lifecycle/instance/Activity.java') diff --git a/src/main/java/com/c2kernel/lifecycle/instance/Activity.java b/src/main/java/com/c2kernel/lifecycle/instance/Activity.java index 2384dc3..a8a2016 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/Activity.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/Activity.java @@ -21,7 +21,6 @@ import com.c2kernel.lookup.EntityPath; import com.c2kernel.lookup.InvalidEntityPathException; import com.c2kernel.lookup.LDAPRoleManager; import com.c2kernel.lookup.RolePath; -import com.c2kernel.persistency.ClusterStorage; import com.c2kernel.persistency.TransactionManager; import com.c2kernel.persistency.outcome.Outcome; import com.c2kernel.persistency.outcome.Viewpoint; @@ -523,7 +522,7 @@ public class Activity extends WfVertex String viewName = hasOutcome?(String)getProperties().get("Viewpoint"):null; try { - hist = (History) Gateway.getStorage().get(entityPath.getSysKey(), ClusterStorage.HISTORY, this); + hist = getWf().getHistory(); if (hasOutcome) { String schemaName = isError?"Errors":(String)getProperties().get("SchemaType"); String schemaVersion = isError?"0":(String)getProperties().get("SchemaVersion"); @@ -577,17 +576,18 @@ public class Activity extends WfVertex Logger.msg(5, "Activity::storeOutcome() - type:" + schemaType + " version:" + schemaVersion); try { + Object locker = getWf(); Outcome newOutcome = new Outcome(eventID, requestData, schemaType, schemaVersion); - Gateway.getStorage().put(entityPath.getSysKey(), newOutcome, this); + Gateway.getStorage().put(entityPath.getSysKey(), newOutcome, locker); // update specific view if defined String specificView = (String) getProperties().get("Viewpoint"); if (specificView != null && !specificView.equals("")) { Viewpoint currentView = new Viewpoint(entityPath.getSysKey(), schemaType, specificView, schemaVersion, eventID); - Gateway.getStorage().put(entityPath.getSysKey(), currentView, this); + Gateway.getStorage().put(entityPath.getSysKey(), currentView, locker); } // update last view Viewpoint currentView = new Viewpoint(entityPath.getSysKey(), schemaType, "last", schemaVersion, eventID); - Gateway.getStorage().put(entityPath.getSysKey(), currentView, this); + Gateway.getStorage().put(entityPath.getSysKey(), currentView, locker); return schemaType + "/" + schemaVersion + "/" + eventID; } catch (Exception ex) @@ -609,6 +609,7 @@ public class Activity extends WfVertex String schemaType = (String) getProperties().get("SchemaType"); boolean hasOutcome = (transitionID == Transitions.DONE || transitionID == Transitions.COMPLETE) && (schemaType != null && schemaType.length() > 0); boolean hasErrorOutcome = transitionID == Transitions.SUSPEND && requestData != null && requestData.length()>0; + Object locker = getWf(); Event event = auditEvent(transitionID, agent, hasOutcome, hasErrorOutcome); if (event != null) eventID = event.getID(); @@ -618,7 +619,7 @@ public class Activity extends WfVertex TransactionManager storage = Gateway.getStorage(); if (entityPath != null) { - storage.commit(this); + storage.commit(locker); } } -- cgit v1.2.3