Package org.copperengine.core.tranzient
Class TransientScottyEngine
- java.lang.Object
-
- org.copperengine.core.common.AbstractProcessingEngine
-
- org.copperengine.core.tranzient.TransientScottyEngine
-
- All Implemented Interfaces:
ProcessingEngine
,org.copperengine.management.ProcessingEngineMXBean
public class TransientScottyEngine extends AbstractProcessingEngine implements ProcessingEngine, org.copperengine.management.ProcessingEngineMXBean
Transient implementation of a COPPERProcessingEngine
. A transient engine may run instances ofWorkflow
orPersistentWorkflow
. Anyhow, all workflow instances will only reside in the local JVM heap.
-
-
Field Summary
-
Fields inherited from class org.copperengine.core.common.AbstractProcessingEngine
dependencyInjector, engineState, startupBlocker, startupTS, statisticsCollector, wfRepository
-
-
Constructor Summary
Constructors Constructor Description TransientScottyEngine()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addWaitHook(java.lang.String wfInstanceId, WaitHook waitHook)
Adds the specified WaitHook for the workflow instance with the specified id.long
countWorkflowInstances(org.copperengine.management.model.WorkflowInstanceFilter filter)
org.copperengine.management.model.EngineType
getEngineType()
int
getNumberOfWorkflowInstances()
java.util.List<org.copperengine.management.ProcessorPoolMXBean>
getProcessorPools()
java.lang.String
getState()
java.util.List<java.lang.String>
getWorkflowInstanceStates()
void
incErrorWFCounter()
void
notify(Response<?> response, Acknowledge ack)
Adds a response to the engine.org.copperengine.management.model.WorkflowInfo
queryActiveWorkflowInstance(java.lang.String id)
java.util.List<org.copperengine.management.model.WorkflowInfo>
queryActiveWorkflowInstances(java.lang.String className, int max)
java.lang.String
queryObjectState(java.lang.String id)
org.copperengine.management.model.WorkflowInfo
queryWorkflowInstance(java.lang.String id)
java.util.List<org.copperengine.management.model.WorkflowInfo>
queryWorkflowInstances()
java.util.List<org.copperengine.management.model.WorkflowInfo>
queryWorkflowInstances(org.copperengine.management.model.WorkflowInstanceFilter filter)
void
registerCallbacks(Workflow<?> w, WaitMode mode, long timeoutMsec, java.lang.String... correlationIds)
Registers a workflow instance to we waiting for a number of correlation ids.void
removeWorkflow(java.lang.String id)
For internal use only!!protected void
run(java.util.List<Workflow<?>> list)
protected java.lang.String
run(Workflow<?> w)
void
setEarlyResponseContainer(EarlyResponseContainer earlyResponseContainer)
void
setPoolManager(ProcessorPoolManager<TransientProcessorPool> poolManager)
void
setTicketPoolManager(TicketPoolManager ticketPoolManager)
void
setTimeoutManager(TimeoutManager timeoutManager)
void
shutdown()
Triggers the shutdown of the engine.void
startup()
Starts up the engine.-
Methods inherited from class org.copperengine.core.common.AbstractProcessingEngine
addShutdownObserver, convert2Wfi, count, createUUID, createWorkflowFactory, createWorkflowInstance, filter, getDependencyInjectorType, getDequeuedCount, getEngineId, getEngineState, getErrorCount, getFinishedCount, getInvalidCount, getRunningCount, getStatisticsCollector, getStatisticsCollectorType, getWaitingCount, getWfRepository, getWorkflowRepository, injectDependencies, queryEngineActivity, run, run, runBatch, setDependencyInjector, setEngineIdProvider, setIdFactory, setStatisticsCollector, setWfRepository, trackActivity, trackWfiStarted
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.copperengine.core.ProcessingEngine
addShutdownObserver, createUUID, getEngineId, getEngineState, run, run, runBatch
-
-
-
-
Method Detail
-
setTicketPoolManager
public void setTicketPoolManager(TicketPoolManager ticketPoolManager)
-
setTimeoutManager
public void setTimeoutManager(TimeoutManager timeoutManager)
-
setPoolManager
public void setPoolManager(ProcessorPoolManager<TransientProcessorPool> poolManager)
-
setEarlyResponseContainer
public void setEarlyResponseContainer(EarlyResponseContainer earlyResponseContainer)
-
notify
public void notify(Response<?> response, Acknowledge ack)
Description copied from interface:ProcessingEngine
Adds a response to the engine. The engine will subsequently try to find the corresponding workflow instance that is waiting for the response. Depending on the workflow instances waitmode and the number of open responses, the workflow may or may not be resumed.- Specified by:
notify
in interfaceProcessingEngine
- Parameters:
response
- the reponseack
- the object to notify upon processing of the message. Note: The ack.waitForAcknowledge returns when the response is processed by the COPPER engine, not when the workflow was waked up with this response.
-
run
protected java.lang.String run(Workflow<?> w) throws DuplicateIdException
- Specified by:
run
in classAbstractProcessingEngine
- Throws:
DuplicateIdException
-
shutdown
public void shutdown()
Description copied from interface:ProcessingEngine
Triggers the shutdown of the engine. The engine tries to end running workflow instances gracefully. The invocation of this method returns immediately.- Specified by:
shutdown
in interfaceProcessingEngine
- Overrides:
shutdown
in classAbstractProcessingEngine
-
startup
public void startup()
Description copied from interface:ProcessingEngine
Starts up the engine. The invocation of this method blocks until the startup procedure is finished. This method might even throw an Error, if something fundamentally wents wrong like starting up the workflow repository or database storage.- Specified by:
startup
in interfaceProcessingEngine
- Overrides:
startup
in classAbstractProcessingEngine
-
registerCallbacks
public void registerCallbacks(Workflow<?> w, WaitMode mode, long timeoutMsec, java.lang.String... correlationIds)
Description copied from interface:ProcessingEngine
Registers a workflow instance to we waiting for a number of correlation ids.- Specified by:
registerCallbacks
in interfaceProcessingEngine
- Parameters:
w
- the workflow instance waiting for one or more responsemode
- the wait modetimeoutMsec
- the relative timeout in milliseconds or0
for no an infinite timeoutcorrelationIds
- the correlation ids of the expected responses
-
removeWorkflow
public void removeWorkflow(java.lang.String id)
For internal use only!!- Parameters:
id
- workflow instance id
-
run
protected void run(java.util.List<Workflow<?>> list)
- Specified by:
run
in classAbstractProcessingEngine
-
getState
public java.lang.String getState()
- Specified by:
getState
in interfaceorg.copperengine.management.ProcessingEngineMXBean
-
queryObjectState
public java.lang.String queryObjectState(java.lang.String id)
- Specified by:
queryObjectState
in interfaceorg.copperengine.management.ProcessingEngineMXBean
-
queryWorkflowInstances
public java.util.List<org.copperengine.management.model.WorkflowInfo> queryWorkflowInstances()
- Specified by:
queryWorkflowInstances
in interfaceorg.copperengine.management.ProcessingEngineMXBean
-
queryWorkflowInstance
public org.copperengine.management.model.WorkflowInfo queryWorkflowInstance(java.lang.String id)
- Specified by:
queryWorkflowInstance
in interfaceorg.copperengine.management.ProcessingEngineMXBean
-
getNumberOfWorkflowInstances
public int getNumberOfWorkflowInstances()
- Specified by:
getNumberOfWorkflowInstances
in interfaceorg.copperengine.management.ProcessingEngineMXBean
-
addWaitHook
public void addWaitHook(java.lang.String wfInstanceId, WaitHook waitHook)
Description copied from interface:ProcessingEngine
Adds the specified WaitHook for the workflow instance with the specified id. The WaitHook is called once at the next wait invocation of the specified workflow instance.- Specified by:
addWaitHook
in interfaceProcessingEngine
- Parameters:
wfInstanceId
- workflow instance idwaitHook
- wait hook
-
getProcessorPools
public java.util.List<org.copperengine.management.ProcessorPoolMXBean> getProcessorPools()
- Specified by:
getProcessorPools
in interfaceorg.copperengine.management.ProcessingEngineMXBean
-
getEngineType
public org.copperengine.management.model.EngineType getEngineType()
- Specified by:
getEngineType
in interfaceorg.copperengine.management.ProcessingEngineMXBean
-
queryActiveWorkflowInstances
public java.util.List<org.copperengine.management.model.WorkflowInfo> queryActiveWorkflowInstances(java.lang.String className, int max)
- Specified by:
queryActiveWorkflowInstances
in interfaceorg.copperengine.management.ProcessingEngineMXBean
-
queryActiveWorkflowInstance
public org.copperengine.management.model.WorkflowInfo queryActiveWorkflowInstance(java.lang.String id)
- Specified by:
queryActiveWorkflowInstance
in interfaceorg.copperengine.management.ProcessingEngineMXBean
-
getWorkflowInstanceStates
public java.util.List<java.lang.String> getWorkflowInstanceStates()
- Specified by:
getWorkflowInstanceStates
in interfaceorg.copperengine.management.ProcessingEngineMXBean
-
queryWorkflowInstances
public java.util.List<org.copperengine.management.model.WorkflowInfo> queryWorkflowInstances(org.copperengine.management.model.WorkflowInstanceFilter filter)
- Specified by:
queryWorkflowInstances
in interfaceorg.copperengine.management.ProcessingEngineMXBean
-
countWorkflowInstances
public long countWorkflowInstances(org.copperengine.management.model.WorkflowInstanceFilter filter)
- Specified by:
countWorkflowInstances
in interfaceorg.copperengine.management.ProcessingEngineMXBean
-
incErrorWFCounter
public void incErrorWFCounter()
-
-