Package org.jbpm.runtime.manager.impl
Class AbstractRuntimeManager
- java.lang.Object
-
- org.jbpm.runtime.manager.impl.AbstractRuntimeManager
-
- All Implemented Interfaces:
org.kie.api.runtime.manager.RuntimeManager
,org.kie.internal.runtime.manager.InternalRuntimeManager
- Direct Known Subclasses:
PerCaseRuntimeManager
,PerProcessInstanceRuntimeManager
,PerRequestRuntimeManager
,SingletonRuntimeManager
public abstract class AbstractRuntimeManager extends Object implements org.kie.internal.runtime.manager.InternalRuntimeManager
Common implementation that allRuntimeManager
implementations should inherit from. Provides the following capabilities:- keeps track of all active managers by their identifier and prevents multiple managers from having the same id
- provides a common close operation
- injects the RuntimeManager into the ksession's environment for further reference
- registers dispose callbacks (via transaction synchronization) to dispose of the runtime engine automatically on transaction completion
- registers all defined items (work item handlers, event listeners)
init
method that will be called on RuntimeManager instantiation.
-
-
Field Summary
Fields Modifier and Type Field Description protected org.kie.internal.runtime.manager.CacheManager
cacheManager
protected boolean
closed
protected org.kie.internal.runtime.conf.DeploymentDescriptor
deploymentDescriptor
protected boolean
engineInitEager
protected org.kie.api.runtime.manager.RuntimeEnvironment
environment
protected org.kie.internal.runtime.error.ExecutionErrorManager
executionErrorManager
protected String
identifier
protected org.kie.api.runtime.KieContainer
kieContainer
protected RuntimeManagerLockStrategyFactory
lockStrategyFactory
protected org.kie.internal.runtime.manager.RuntimeManagerRegistry
registry
protected RuntimeManagerLockStrategy
runtimeManagerLockStrategy
protected org.kie.internal.runtime.manager.SecurityManager
securityManager
protected RuntimeManagerLockWatcherSingletonService
watcher
-
Constructor Summary
Constructors Constructor Description AbstractRuntimeManager(org.kie.api.runtime.manager.RuntimeEnvironment environment, String identifier)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
activate()
protected void
attachManager(org.kie.api.runtime.manager.RuntimeEngine runtime)
protected boolean
canDestroy(org.kie.api.runtime.manager.RuntimeEngine runtime)
protected boolean
canDispose(org.kie.api.runtime.manager.RuntimeEngine runtime)
protected void
checkPermission()
void
close()
void
close(boolean removeJobs)
protected void
configureRuntimeOnTaskService(org.kie.internal.task.api.InternalTaskService internalTaskService, org.kie.api.runtime.manager.RuntimeEngine engine)
protected void
createLockOnGetEngine(Long id, org.kie.api.runtime.manager.RuntimeEngine runtime)
protected void
createLockOnGetEngine(org.kie.api.runtime.manager.Context<?> context, org.kie.api.runtime.manager.RuntimeEngine runtime)
protected void
createLockOnNewProcessInstance(Long id, org.kie.api.runtime.manager.RuntimeEngine runtime)
void
deactivate()
org.kie.internal.runtime.manager.CacheManager
getCacheManager()
org.kie.internal.runtime.conf.DeploymentDescriptor
getDeploymentDescriptor()
org.kie.internal.runtime.manager.RuntimeEnvironment
getEnvironment()
org.kie.internal.runtime.error.ExecutionErrorManager
getExecutionErrorManager()
abstract org.kie.internal.runtime.manager.SessionFactory
getFactory()
String
getIdentifier()
org.kie.api.runtime.KieContainer
getKieContainer()
protected org.drools.persistence.api.TransactionManager
getTransactionManager(org.kie.api.runtime.Environment env)
protected org.drools.persistence.api.TransactionManager
getTransactionManagerInternal(org.kie.api.runtime.Environment env)
protected boolean
hasEnvironmentEntry(String name, Object value)
boolean
hasMultipleProcessPerSession()
boolean
hasSecurityManager()
void
init()
protected void
initTimerService()
protected boolean
isActive()
boolean
isClosed()
protected boolean
isUseLocking()
protected org.kie.internal.task.api.InternalTaskService
newTaskService(org.kie.internal.runtime.manager.TaskServiceFactory factory)
protected void
registerDisposeCallback(org.kie.api.runtime.manager.RuntimeEngine runtime, org.drools.persistence.api.TransactionSynchronization sync, org.kie.api.runtime.Environment environment)
protected void
registerItems(org.kie.api.runtime.manager.RuntimeEngine runtime)
protected void
releaseAndCleanLock(Long id, org.kie.api.runtime.manager.RuntimeEngine runtime)
protected void
releaseAndCleanLock(org.kie.api.runtime.manager.RuntimeEngine runtime)
protected void
removeRuntimeFromTaskService()
void
setCacheManager(org.kie.internal.runtime.manager.CacheManager cacheManager)
void
setDeploymentDescriptor(org.kie.internal.runtime.conf.DeploymentDescriptor deploymentDescriptor)
void
setEnvironment(org.kie.api.runtime.manager.RuntimeEnvironment environment)
void
setIdentifier(String identifier)
void
setKieContainer(org.kie.api.runtime.KieContainer kieContainer)
void
setSecurityManager(org.kie.internal.runtime.manager.SecurityManager securityManager)
void
softDispose(org.kie.api.runtime.manager.RuntimeEngine runtimeEngine)
Soft dispose means it will be invoked as sort of preparation step before actual dispose.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
-
-
Field Detail
-
registry
protected org.kie.internal.runtime.manager.RuntimeManagerRegistry registry
-
lockStrategyFactory
protected RuntimeManagerLockStrategyFactory lockStrategyFactory
-
environment
protected org.kie.api.runtime.manager.RuntimeEnvironment environment
-
deploymentDescriptor
protected org.kie.internal.runtime.conf.DeploymentDescriptor deploymentDescriptor
-
kieContainer
protected org.kie.api.runtime.KieContainer kieContainer
-
cacheManager
protected org.kie.internal.runtime.manager.CacheManager cacheManager
-
engineInitEager
protected boolean engineInitEager
-
identifier
protected String identifier
-
closed
protected boolean closed
-
securityManager
protected org.kie.internal.runtime.manager.SecurityManager securityManager
-
executionErrorManager
protected org.kie.internal.runtime.error.ExecutionErrorManager executionErrorManager
-
runtimeManagerLockStrategy
protected RuntimeManagerLockStrategy runtimeManagerLockStrategy
-
watcher
protected RuntimeManagerLockWatcherSingletonService watcher
-
-
Constructor Detail
-
AbstractRuntimeManager
public AbstractRuntimeManager(org.kie.api.runtime.manager.RuntimeEnvironment environment, String identifier)
-
-
Method Detail
-
init
public void init()
-
initTimerService
protected void initTimerService()
-
registerItems
protected void registerItems(org.kie.api.runtime.manager.RuntimeEngine runtime)
-
registerDisposeCallback
protected void registerDisposeCallback(org.kie.api.runtime.manager.RuntimeEngine runtime, org.drools.persistence.api.TransactionSynchronization sync, org.kie.api.runtime.Environment environment)
-
canDispose
protected boolean canDispose(org.kie.api.runtime.manager.RuntimeEngine runtime)
-
attachManager
protected void attachManager(org.kie.api.runtime.manager.RuntimeEngine runtime)
-
isClosed
public boolean isClosed()
- Specified by:
isClosed
in interfaceorg.kie.internal.runtime.manager.InternalRuntimeManager
-
close
public void close()
- Specified by:
close
in interfaceorg.kie.api.runtime.manager.RuntimeManager
-
close
public void close(boolean removeJobs)
-
getEnvironment
public org.kie.internal.runtime.manager.RuntimeEnvironment getEnvironment()
- Specified by:
getEnvironment
in interfaceorg.kie.internal.runtime.manager.InternalRuntimeManager
-
setEnvironment
public void setEnvironment(org.kie.api.runtime.manager.RuntimeEnvironment environment)
-
getIdentifier
public String getIdentifier()
- Specified by:
getIdentifier
in interfaceorg.kie.api.runtime.manager.RuntimeManager
-
setIdentifier
public void setIdentifier(String identifier)
-
newTaskService
protected org.kie.internal.task.api.InternalTaskService newTaskService(org.kie.internal.runtime.manager.TaskServiceFactory factory)
-
configureRuntimeOnTaskService
protected void configureRuntimeOnTaskService(org.kie.internal.task.api.InternalTaskService internalTaskService, org.kie.api.runtime.manager.RuntimeEngine engine)
-
removeRuntimeFromTaskService
protected void removeRuntimeFromTaskService()
-
softDispose
public void softDispose(org.kie.api.runtime.manager.RuntimeEngine runtimeEngine)
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
-
canDestroy
protected boolean canDestroy(org.kie.api.runtime.manager.RuntimeEngine runtime)
-
getTransactionManager
protected org.drools.persistence.api.TransactionManager getTransactionManager(org.kie.api.runtime.Environment env)
-
getTransactionManagerInternal
protected org.drools.persistence.api.TransactionManager getTransactionManagerInternal(org.kie.api.runtime.Environment env)
-
getDeploymentDescriptor
public org.kie.internal.runtime.conf.DeploymentDescriptor getDeploymentDescriptor()
- Specified by:
getDeploymentDescriptor
in interfaceorg.kie.internal.runtime.manager.InternalRuntimeManager
-
setDeploymentDescriptor
public void setDeploymentDescriptor(org.kie.internal.runtime.conf.DeploymentDescriptor deploymentDescriptor)
- Specified by:
setDeploymentDescriptor
in interfaceorg.kie.internal.runtime.manager.InternalRuntimeManager
-
setSecurityManager
public void setSecurityManager(org.kie.internal.runtime.manager.SecurityManager securityManager)
- Specified by:
setSecurityManager
in interfaceorg.kie.internal.runtime.manager.InternalRuntimeManager
-
hasSecurityManager
public boolean hasSecurityManager()
- Specified by:
hasSecurityManager
in interfaceorg.kie.internal.runtime.manager.InternalRuntimeManager
-
checkPermission
protected void checkPermission()
-
setCacheManager
public void setCacheManager(org.kie.internal.runtime.manager.CacheManager cacheManager)
- Specified by:
setCacheManager
in interfaceorg.kie.internal.runtime.manager.InternalRuntimeManager
-
getCacheManager
public org.kie.internal.runtime.manager.CacheManager getCacheManager()
- Specified by:
getCacheManager
in interfaceorg.kie.internal.runtime.manager.InternalRuntimeManager
-
getKieContainer
public org.kie.api.runtime.KieContainer getKieContainer()
- Specified by:
getKieContainer
in interfaceorg.kie.internal.runtime.manager.InternalRuntimeManager
-
setKieContainer
public void setKieContainer(org.kie.api.runtime.KieContainer kieContainer)
- Specified by:
setKieContainer
in interfaceorg.kie.internal.runtime.manager.InternalRuntimeManager
-
isUseLocking
protected boolean isUseLocking()
-
createLockOnNewProcessInstance
protected void createLockOnNewProcessInstance(Long id, org.kie.api.runtime.manager.RuntimeEngine runtime)
-
createLockOnGetEngine
protected void createLockOnGetEngine(org.kie.api.runtime.manager.Context<?> context, org.kie.api.runtime.manager.RuntimeEngine runtime)
-
createLockOnGetEngine
protected void createLockOnGetEngine(Long id, org.kie.api.runtime.manager.RuntimeEngine runtime)
-
releaseAndCleanLock
protected void releaseAndCleanLock(org.kie.api.runtime.manager.RuntimeEngine runtime)
-
releaseAndCleanLock
protected void releaseAndCleanLock(Long id, org.kie.api.runtime.manager.RuntimeEngine runtime)
-
isActive
protected boolean isActive()
-
activate
public void activate()
- Specified by:
activate
in interfaceorg.kie.internal.runtime.manager.InternalRuntimeManager
-
deactivate
public void deactivate()
- Specified by:
deactivate
in interfaceorg.kie.internal.runtime.manager.InternalRuntimeManager
-
getExecutionErrorManager
public org.kie.internal.runtime.error.ExecutionErrorManager getExecutionErrorManager()
-
getFactory
public abstract org.kie.internal.runtime.manager.SessionFactory getFactory()
-
hasMultipleProcessPerSession
public boolean hasMultipleProcessPerSession()
-
-