Package org.copperengine.core.persistent
Class PersistentWorkflow<E extends java.io.Serializable>
- java.lang.Object
-
- org.copperengine.core.Workflow<E>
-
- org.copperengine.core.persistent.PersistentWorkflow<E>
-
- Type Parameters:
E
- type of data object holt by the workflow (Passed in when callingProcessingEngine.run(java.lang.String, java.lang.Object)
- All Implemented Interfaces:
java.io.Serializable
,SavepointAware
public abstract class PersistentWorkflow<E extends java.io.Serializable> extends Workflow<E> implements java.io.Serializable, SavepointAware
Abstract base class for persistent workflows. It is safe to run a PersistentWorkflow in a transient engine. So if your want to keep it open to decide later whether your workflow needs persistence or not, it is OK to inherit from PersistentWorkflow.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.copperengine.core.Workflow
__stack, __stackPosition, NO_TIMEOUT
-
-
Constructor Summary
Constructors Constructor Description PersistentWorkflow()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Acknowledge
createCheckpointAcknowledge()
We create a quasi empty acknowledge here.boolean
flushCheckpointAcknowledges()
ErrorData
getErrorData()
void
onDelete(PersistenceContext pc)
void
onLoad(PersistenceContext pc)
void
onSave(PersistenceContext pc)
protected void
registerCheckpointAcknowledge(Acknowledge ack)
protected void
registerSavepointAware(SavepointAware sa)
void
setDataAsObject(java.lang.Object data)
Used internally-
Methods inherited from class org.copperengine.core.Workflow
__beforeProcess, createCallback, get__stack, getAndRemoveResponse, getAndRemoveResponses, getAnyNonTimedOutAndRemoveResponse, getCreationTS, getData, getEngine, getId, getLastActivityTS, getLastWaitStackTrace, getPriority, getProcessingState, getProcessorPoolId, getTimeoutTS, main, notify, prettyPrintData, putResponse, resubmit, savepoint, setData, setEngine, setId, setPriority, setProcessorPoolId, toString, wait, wait, wait, wait, waitForAll, waitForAll
-
-
-
-
Method Detail
-
setDataAsObject
public void setDataAsObject(java.lang.Object data)
Used internally- Parameters:
data
- Just hard cast data to (E). On internal call, we know that data is of correct type, even when handling as object.
-
onLoad
public void onLoad(PersistenceContext pc)
-
onSave
public void onSave(PersistenceContext pc)
- Specified by:
onSave
in interfaceSavepointAware
-
onDelete
public void onDelete(PersistenceContext pc)
-
createCheckpointAcknowledge
protected Acknowledge createCheckpointAcknowledge()
Description copied from class:Workflow
We create a quasi empty acknowledge here. It doesn't block at all and has empty callbacks for success and errors.- Overrides:
createCheckpointAcknowledge
in classWorkflow<E extends java.io.Serializable>
- Returns:
- a BestEffortAcknowledge
-
registerCheckpointAcknowledge
protected void registerCheckpointAcknowledge(Acknowledge ack)
- Overrides:
registerCheckpointAcknowledge
in classWorkflow<E extends java.io.Serializable>
-
registerSavepointAware
protected void registerSavepointAware(SavepointAware sa)
- Overrides:
registerSavepointAware
in classWorkflow<E extends java.io.Serializable>
-
flushCheckpointAcknowledges
public boolean flushCheckpointAcknowledges()
-
getErrorData
public ErrorData getErrorData()
-
-