Package org.jbpm.runtime.manager.impl
Class PerProcessInstanceRuntimeManager
- java.lang.Object
-
- org.jbpm.runtime.manager.impl.AbstractRuntimeManager
-
- org.jbpm.runtime.manager.impl.PerProcessInstanceRuntimeManager
-
- All Implemented Interfaces:
org.kie.api.runtime.manager.RuntimeManager,org.kie.internal.runtime.manager.InternalRuntimeManager
public class PerProcessInstanceRuntimeManager extends AbstractRuntimeManager
A RuntimeManager implementation that is backed by the "Per Process Instance" strategy. This means that every process instance will be bound to a ksession for it's entire life time. Once started, whenever other operations are invoked, this manager will ensure that the correct ksession will be provided.
This also applies to sub processes (reusable sub processes) that create new process instances: the sub process instance will have its own ksession independent of the parent one.
This manager will ensure that as soon as the process instance completes, the ksession will be disposed of and destroyed.
This implementation supports the followingContextimplementations:- ProcessInstanceIdContext
- CorrelationKeyContext
- EmptyContext - for initial RuntimeEngine to start process only
-
-
Field Summary
-
Fields inherited from class org.jbpm.runtime.manager.impl.AbstractRuntimeManager
cacheManager, closed, deploymentDescriptor, engineInitEager, environment, executionErrorManager, identifier, kieContainer, lockStrategyFactory, registry, runtimeManagerLockStrategy, securityManager, watcher
-
-
Constructor Summary
Constructors Constructor Description PerProcessInstanceRuntimeManager(org.kie.api.runtime.manager.RuntimeEnvironment environment, org.kie.internal.runtime.manager.SessionFactory factory, org.kie.internal.runtime.manager.TaskServiceFactory taskServiceFactory, String identifier)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidactivate()voidclose()voiddeactivate()voiddisposeRuntimeEngine(org.kie.api.runtime.manager.RuntimeEngine runtime)protected org.kie.api.runtime.manager.RuntimeEnginefindLocalRuntime(Object processInstanceId)org.kie.internal.runtime.manager.SessionFactorygetFactory()org.kie.internal.runtime.manager.MappergetMapper()org.kie.api.runtime.manager.RuntimeEnginegetRuntimeEngine(org.kie.api.runtime.manager.Context<?> context)org.kie.internal.runtime.manager.TaskServiceFactorygetTaskServiceFactory()voidinit()protected booleanisUseLocking()protected voidremoveLocalRuntime(org.kie.api.runtime.manager.RuntimeEngine runtime)protected voidsaveLocalRuntime(Object processInstanceId, org.kie.api.runtime.manager.RuntimeEngine runtime)voidsetFactory(org.kie.internal.runtime.manager.SessionFactory factory)voidsetMapper(org.kie.internal.runtime.manager.Mapper mapper)voidsetTaskServiceFactory(org.kie.internal.runtime.manager.TaskServiceFactory taskServiceFactory)voidsignalEvent(String type, Object event)voidsoftDispose(org.kie.api.runtime.manager.RuntimeEngine runtimeEngine)Soft dispose means it will be invoked as sort of preparation step before actual dispose.booleanvalidate(Long ksessionId, Long processInstanceId)voidvalidate(org.kie.api.runtime.KieSession ksession, org.kie.api.runtime.manager.Context<?> context)-
Methods inherited from class org.jbpm.runtime.manager.impl.AbstractRuntimeManager
attachManager, canDestroy, canDispose, checkPermission, close, configureRuntimeOnTaskService, createLockOnGetEngine, createLockOnGetEngine, createLockOnNewProcessInstance, getCacheManager, getDeploymentDescriptor, getEnvironment, getExecutionErrorManager, getIdentifier, getKieContainer, getTransactionManager, getTransactionManagerInternal, hasEnvironmentEntry, hasSecurityManager, initTimerService, isActive, isClosed, newTaskService, registerDisposeCallback, registerItems, releaseAndCleanLock, releaseAndCleanLock, removeRuntimeFromTaskService, setCacheManager, setDeploymentDescriptor, setEnvironment, setIdentifier, setKieContainer, setSecurityManager
-
-
-
-
Constructor Detail
-
PerProcessInstanceRuntimeManager
public PerProcessInstanceRuntimeManager(org.kie.api.runtime.manager.RuntimeEnvironment environment, org.kie.internal.runtime.manager.SessionFactory factory, org.kie.internal.runtime.manager.TaskServiceFactory taskServiceFactory, String identifier)
-
-
Method Detail
-
getRuntimeEngine
public org.kie.api.runtime.manager.RuntimeEngine getRuntimeEngine(org.kie.api.runtime.manager.Context<?> context)
-
validate
public void validate(org.kie.api.runtime.KieSession ksession, org.kie.api.runtime.manager.Context<?> context) throws IllegalStateException- Throws:
IllegalStateException
-
disposeRuntimeEngine
public void disposeRuntimeEngine(org.kie.api.runtime.manager.RuntimeEngine runtime)
-
softDispose
public void softDispose(org.kie.api.runtime.manager.RuntimeEngine runtimeEngine)
Description copied from class:AbstractRuntimeManagerSoft dispose means it will be invoked as sort of preparation step before actual dispose. Mainly used with transaction synchronization to be invoked as part of beforeCompletion to clean up any thread state - like thread local settings as afterCompletion can be invoked from another thread- Overrides:
softDisposein classAbstractRuntimeManager
-
close
public void close()
- Specified by:
closein interfaceorg.kie.api.runtime.manager.RuntimeManager- Overrides:
closein classAbstractRuntimeManager
-
getFactory
public org.kie.internal.runtime.manager.SessionFactory getFactory()
- Specified by:
getFactoryin classAbstractRuntimeManager
-
setFactory
public void setFactory(org.kie.internal.runtime.manager.SessionFactory factory)
-
getTaskServiceFactory
public org.kie.internal.runtime.manager.TaskServiceFactory getTaskServiceFactory()
-
setTaskServiceFactory
public void setTaskServiceFactory(org.kie.internal.runtime.manager.TaskServiceFactory taskServiceFactory)
-
getMapper
public org.kie.internal.runtime.manager.Mapper getMapper()
-
setMapper
public void setMapper(org.kie.internal.runtime.manager.Mapper mapper)
-
findLocalRuntime
protected org.kie.api.runtime.manager.RuntimeEngine findLocalRuntime(Object processInstanceId)
-
saveLocalRuntime
protected void saveLocalRuntime(Object processInstanceId, org.kie.api.runtime.manager.RuntimeEngine runtime)
-
removeLocalRuntime
protected void removeLocalRuntime(org.kie.api.runtime.manager.RuntimeEngine runtime)
-
init
public void init()
- Overrides:
initin classAbstractRuntimeManager
-
activate
public void activate()
- Specified by:
activatein interfaceorg.kie.internal.runtime.manager.InternalRuntimeManager- Overrides:
activatein classAbstractRuntimeManager
-
deactivate
public void deactivate()
- Specified by:
deactivatein interfaceorg.kie.internal.runtime.manager.InternalRuntimeManager- Overrides:
deactivatein classAbstractRuntimeManager
-
isUseLocking
protected boolean isUseLocking()
- Overrides:
isUseLockingin classAbstractRuntimeManager
-
-