Class AbstractRuleTaskHandler

  • All Implemented Interfaces:
    org.kie.api.runtime.process.WorkItemHandler, org.kie.internal.runtime.Cacheable
    Direct Known Subclasses:
    BusinessRuleTaskHandler, DecisionTaskHandler

    public abstract class AbstractRuleTaskHandler
    extends org.jbpm.process.workitem.core.AbstractLogOrThrowWorkItemHandler
    implements org.kie.internal.runtime.Cacheable
    Additional BusinessRuleTask support that allows to decouple rules from processes - as default BusinessRuleTask uses exact same working memory (kie session) as process which essentially means same kbase. To allow better separation and maintainability BusinessRuleTaskHandler is provided that supports:
    • DRL stateful
    • DRL stateless
    • DMN
    Type of runtime is selected by Language data input and if not given defaults to DRL stateless.

    Session type can be given by KieSessionType data input and session name can be given as KieSessionName property -these apply to DRL only.

    DMN support following data inputs:

    • Namespace - DMN namespace to be used - mandatory
    • Model - DMN model to be used - mandatory
    • Decision - DMN decision name to be used - optional

    Results returned will be then put back into the data outputs.

    DRL handling is based on same names for data input and output as that is then used as correlation.
    DMN handling receives all data from DMNResult.

    • Constructor Detail

      • AbstractRuleTaskHandler

        public AbstractRuleTaskHandler​(String groupId,
                                       String artifactId,
                                       String version)
      • AbstractRuleTaskHandler

        public AbstractRuleTaskHandler​(String groupId,
                                       String artifactId,
                                       String version,
                                       long scannerInterval)
      • AbstractRuleTaskHandler

        public AbstractRuleTaskHandler​(String groupId,
                                       String artifactId,
                                       String version,
                                       long scannerInterval,
                                       ClassLoader classLoader,
                                       org.kie.api.runtime.manager.RuntimeManager runtimeManager)
    • Method Detail

      • getRuleLanguage

        public abstract String getRuleLanguage()
      • executeWorkItem

        public void executeWorkItem​(org.kie.api.runtime.process.WorkItem workItem,
                                    org.kie.api.runtime.process.WorkItemManager manager)
        Specified by:
        executeWorkItem in interface org.kie.api.runtime.process.WorkItemHandler
      • abortWorkItem

        public void abortWorkItem​(org.kie.api.runtime.process.WorkItem workItem,
                                  org.kie.api.runtime.process.WorkItemManager manager)
        Specified by:
        abortWorkItem in interface org.kie.api.runtime.process.WorkItemHandler
      • setRuntimeManager

        public void setRuntimeManager​(org.kie.api.runtime.manager.RuntimeManager runtimeManager)
      • close

        public void close()
        Specified by:
        close in interface org.kie.internal.runtime.Cacheable
      • handleStatefull

        protected void handleStatefull​(org.kie.api.runtime.process.WorkItem workItem,
                                       String kieSessionName,
                                       Map<String,​Object> parameters,
                                       Map<String,​Object> results)
      • handleStateless

        protected void handleStateless​(org.kie.api.runtime.process.WorkItem workItem,
                                       String kieSessionName,
                                       Map<String,​Object> parameters,
                                       Map<String,​Object> results)
      • handleDMN

        protected void handleDMN​(org.kie.api.runtime.process.WorkItem workItem,
                                 Map<String,​Object> parameters,
                                 Map<String,​Object> results)
      • getKieContainer

        public org.kie.api.runtime.KieContainer getKieContainer()