Class 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 all RuntimeManager 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)
    Additionally, this provides a abstract init method that will be called on RuntimeManager instantiation.
    • Field Detail

      • registry

        protected org.kie.internal.runtime.manager.RuntimeManagerRegistry registry
      • 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
    • Constructor Detail

      • AbstractRuntimeManager

        public AbstractRuntimeManager​(org.kie.api.runtime.manager.RuntimeEnvironment environment,
                                      String identifier)
    • Method Detail

      • init

        public void init()
      • initTimerService

        protected void initTimerService()
      • scheduleDeadlines

        protected void scheduleDeadlines()
      • 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 interface org.kie.internal.runtime.manager.InternalRuntimeManager
      • close

        public void close()
        Specified by:
        close in interface org.kie.api.runtime.manager.RuntimeManager
      • close

        public void close​(boolean removeJobs)
      • getEnvironment

        public org.kie.internal.runtime.manager.RuntimeEnvironment getEnvironment()
        Specified by:
        getEnvironment in interface org.kie.internal.runtime.manager.InternalRuntimeManager
      • setEnvironment

        public void setEnvironment​(org.kie.api.runtime.manager.RuntimeEnvironment environment)
      • getIdentifier

        public String getIdentifier()
        Specified by:
        getIdentifier in interface org.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)
      • hasEnvironmentEntry

        protected boolean hasEnvironmentEntry​(String name,
                                              Object value)
      • 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 interface org.kie.internal.runtime.manager.InternalRuntimeManager
      • setDeploymentDescriptor

        public void setDeploymentDescriptor​(org.kie.internal.runtime.conf.DeploymentDescriptor deploymentDescriptor)
        Specified by:
        setDeploymentDescriptor in interface org.kie.internal.runtime.manager.InternalRuntimeManager
      • setSecurityManager

        public void setSecurityManager​(org.kie.internal.runtime.manager.SecurityManager securityManager)
        Specified by:
        setSecurityManager in interface org.kie.internal.runtime.manager.InternalRuntimeManager
      • hasSecurityManager

        public boolean hasSecurityManager()
        Specified by:
        hasSecurityManager in interface org.kie.internal.runtime.manager.InternalRuntimeManager
      • checkPermission

        protected void checkPermission()
      • setCacheManager

        public void setCacheManager​(org.kie.internal.runtime.manager.CacheManager cacheManager)
        Specified by:
        setCacheManager in interface org.kie.internal.runtime.manager.InternalRuntimeManager
      • getCacheManager

        public org.kie.internal.runtime.manager.CacheManager getCacheManager()
        Specified by:
        getCacheManager in interface org.kie.internal.runtime.manager.InternalRuntimeManager
      • getKieContainer

        public org.kie.api.runtime.KieContainer getKieContainer()
        Specified by:
        getKieContainer in interface org.kie.internal.runtime.manager.InternalRuntimeManager
      • setKieContainer

        public void setKieContainer​(org.kie.api.runtime.KieContainer kieContainer)
        Specified by:
        setKieContainer in interface org.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 interface org.kie.internal.runtime.manager.InternalRuntimeManager
      • deactivate

        public void deactivate()
        Specified by:
        deactivate in interface org.kie.internal.runtime.manager.InternalRuntimeManager
      • getExecutionErrorManager

        public org.kie.internal.runtime.error.ExecutionErrorManager getExecutionErrorManager()
      • getFactory

        public abstract org.kie.internal.runtime.manager.SessionFactory getFactory()