Package org.jbpm.runtime.manager.impl
Class PerRequestRuntimeManager
- java.lang.Object
-
- org.jbpm.runtime.manager.impl.AbstractRuntimeManager
-
- org.jbpm.runtime.manager.impl.PerRequestRuntimeManager
-
- All Implemented Interfaces:
org.kie.api.runtime.manager.RuntimeManager
,org.kie.internal.runtime.manager.InternalRuntimeManager
public class PerRequestRuntimeManager extends AbstractRuntimeManager
A RuntimeManager implementation that is backed by the "Per Request" strategy. This means that for every call togetRuntimeEngine
, a new instance will be delivered with brand new KieSession and TaskService. The only exception to this is when this is invoked within the same transaction from different places. In that case, the manager caches the currently active instance in a ThreadLocal instane to avoid concurrent modifications or "loss" of data. Disposing of the runtime engine manager will ensure that it is destroyed as well, so that it will get removed from the database to avoid outdated data.
This implementation does not require any specialContext
to proceed.
-
-
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 PerRequestRuntimeManager(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 void
close()
void
disposeRuntimeEngine(org.kie.api.runtime.manager.RuntimeEngine runtime)
protected org.kie.api.runtime.Environment
getEnvironment(org.kie.api.runtime.manager.RuntimeEngine runtimeEngine)
org.kie.internal.runtime.manager.SessionFactory
getFactory()
org.kie.api.runtime.manager.RuntimeEngine
getRuntimeEngine(org.kie.api.runtime.manager.Context<?> context)
org.kie.internal.runtime.manager.TaskServiceFactory
getTaskServiceFactory()
void
init()
void
setFactory(org.kie.internal.runtime.manager.SessionFactory factory)
void
setTaskServiceFactory(org.kie.internal.runtime.manager.TaskServiceFactory taskServiceFactory)
void
signalEvent(String type, Object event)
void
softDispose(org.kie.api.runtime.manager.RuntimeEngine runtimeEngine)
Soft dispose means it will be invoked as sort of preparation step before actual dispose.void
validate(org.kie.api.runtime.KieSession ksession, org.kie.api.runtime.manager.Context<?> context)
-
Methods inherited from class org.jbpm.runtime.manager.impl.AbstractRuntimeManager
activate, attachManager, canDestroy, canDispose, checkPermission, close, configureRuntimeOnTaskService, createLockOnGetEngine, createLockOnGetEngine, createLockOnNewProcessInstance, deactivate, getCacheManager, getDeploymentDescriptor, getEntityManager, getEnvironment, getExecutionErrorManager, getIdentifier, getKieContainer, getTransactionManager, getTransactionManagerInternal, hasEnvironmentEntry, hasMultipleProcessPerSession, hasSecurityManager, initTimerService, isActive, isClosed, isUseLocking, newTaskService, registerDisposeCallback, registerItems, releaseAndCleanLock, releaseAndCleanLock, removeRuntimeFromTaskService, setCacheManager, setDeploymentDescriptor, setEnvironment, setIdentifier, setKieContainer, setSecurityManager
-
-
-
-
Constructor Detail
-
PerRequestRuntimeManager
public PerRequestRuntimeManager(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)
-
getEnvironment
protected org.kie.api.runtime.Environment getEnvironment(org.kie.api.runtime.manager.RuntimeEngine runtimeEngine)
- Overrides:
getEnvironment
in classAbstractRuntimeManager
-
softDispose
public void softDispose(org.kie.api.runtime.manager.RuntimeEngine runtimeEngine)
Description copied from class:AbstractRuntimeManager
Soft 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:
softDispose
in classAbstractRuntimeManager
-
close
public void close()
- Specified by:
close
in interfaceorg.kie.api.runtime.manager.RuntimeManager
- Overrides:
close
in classAbstractRuntimeManager
-
getFactory
public org.kie.internal.runtime.manager.SessionFactory getFactory()
- Specified by:
getFactory
in 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)
-
init
public void init()
- Overrides:
init
in classAbstractRuntimeManager
-
-