Class PerCaseRuntimeManager

  • All Implemented Interfaces:
    org.kie.api.runtime.manager.RuntimeManager, org.kie.internal.runtime.manager.InternalRuntimeManager

    public class PerCaseRuntimeManager
    extends AbstractRuntimeManager
    A RuntimeManager implementation that is backed by the "Per Case" strategy. This means that every process instance that belongs to same case will be bound to a single (case scoped) 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 implementation supports the following Context implementations:
    • ProcessInstanceIdContext
    • CaseContext
    • Constructor Detail

      • PerCaseRuntimeManager

        public PerCaseRuntimeManager​(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)
      • signalEvent

        public void signalEvent​(String type,
                                Object event)
      • 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: 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 class AbstractRuntimeManager
      • close

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

        public boolean validate​(Long ksessionId,
                                Long processInstanceId)
      • 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 caseId)
      • saveLocalRuntime

        protected void saveLocalRuntime​(Object caseId,
                                        Object processInstanceId,
                                        org.kie.api.runtime.manager.RuntimeEngine runtime)
      • removeLocalRuntime

        protected void removeLocalRuntime​(org.kie.api.runtime.manager.RuntimeEngine runtime)
      • removeLocalRuntime

        protected void removeLocalRuntime​(org.kie.api.runtime.manager.RuntimeEngine runtime,
                                          Long processInstanceId)
      • activate

        public void activate()
        Specified by:
        activate in interface org.kie.internal.runtime.manager.InternalRuntimeManager
        Overrides:
        activate in class AbstractRuntimeManager
      • deactivate

        public void deactivate()
        Specified by:
        deactivate in interface org.kie.internal.runtime.manager.InternalRuntimeManager
        Overrides:
        deactivate in class AbstractRuntimeManager
      • destroyCase

        public void destroyCase​(org.kie.internal.runtime.manager.context.CaseContext caseContext)
      • getCaseEventSupport

        public org.drools.core.event.AbstractEventSupport<? extends EventListener> getCaseEventSupport()
      • setCaseEventSupport

        public void setCaseEventSupport​(org.drools.core.event.AbstractEventSupport<? extends EventListener> caseEventSupport)