Interface RuleEngineService

All Known Implementing Classes:
DefaultCommerceRuleEngineService, DefaultPlatformRuleEngineService

public interface RuleEngineService
The interface provides with method that allows initialization and evaluation of rules modules.
  • Method Details

    • evaluate

      Since 6.0 Executes rule evaluation for given RuleEvaluationContext. Executes all rules contained within the context
      Parameters:
      context - the rule engine context containing data about rule engine execution
      Returns:
      results of rule engine execution
    • initializeNonBlocking

      <M extends AbstractRulesModuleModel> void initializeNonBlocking(M module, String deployedMvnVersion, boolean propagateToOtherNodes, boolean enableIncrementalUpdate, RuleEngineActionResult result)
      Since 6.4 Asynchronously initializes the given rules module (and if propagateToOtherNodes is set to true propagates a RuleEngineInitializedEvent to other nodes).
      Parameters:
      module - the module to be initialized
      deployedMvnVersion - currently deployed version of the Kie Module
      propagateToOtherNodes - if true propagates a RuleEngineInitializedEvent to other nodes.
      enableIncrementalUpdate - flag, if true, enables for incremental updates of the rule engine kie module
      result - the instance of RuleEngineActionResult accumulating the results of initialization
    • initialize

      InitializationFuture initialize(List<AbstractRulesModuleModel> modules, boolean propagateToOtherNodes, boolean enableIncrementalUpdate)
      Since 6.4 Initializes the given rules module in blocking/async mode (depending on blocking param) (and if propagateToOtherNodes is set to true propagates a RuleEngineInitializedEvent to other nodes).
      Parameters:
      modules - the modules to be initialized
      propagateToOtherNodes - if true propagates a RuleEngineInitializedEvent to other nodes.
      enableIncrementalUpdate - flag, if true, enables for incremental updates of the rule engine kie module
      Returns:
      instance of InitializationFuture to be used for eventual blocking on multiple parallel swapping
    • initialize

      InitializationFuture initialize(List<AbstractRulesModuleModel> modules, boolean propagateToOtherNodes, boolean enableIncrementalUpdate, ExecutionContext executionContext)
      Since 6.7 Initializes the given rules module in blocking/async mode (depending on blocking param) (and if propagateToOtherNodes is set to true propagates a RuleEngineInitializedEvent to other nodes).
      Parameters:
      modules - the modules to be initialized
      propagateToOtherNodes - if true propagates a RuleEngineInitializedEvent to other nodes.
      enableIncrementalUpdate - flag, if true, enables for incremental updates of the rule engine kie module
      executionContext - instance of ExecutionContext that serves as a storage for initialization related data
      Returns:
      instance of InitializationFuture to be used for eventual blocking on multiple parallel swapping
    • initialize

      void initialize(AbstractRulesModuleModel module, String deployedMvnVersion, boolean propagateToOtherNodes, boolean enableIncrementalUpdate, RuleEngineActionResult result)
      Since 6.4 Initializes the given rules module (and if propagateToOtherNodes is set to true propagates a RuleEngineInitializedEvent to other nodes).
      Parameters:
      module - the module to be initialized
      deployedMvnVersion - currently deployed mvn version of the rule engine module
      propagateToOtherNodes - if true propagates a RuleEngineInitializedEvent to other nodes.
      enableIncrementalUpdate - flag, if true, enables for incremental updates of the rule engine kie module
      result - the instance of RuleEngineActionResult accumulating the results of initialization
    • initialize

      void initialize(AbstractRulesModuleModel module, String deployedMvnVersion, boolean propagateToOtherNodes, boolean enableIncrementalUpdate, RuleEngineActionResult result, ExecutionContext executionContext)
      Since 18.08 Initializes the given rules module (and if propagateToOtherNodes is set to true propagates a RuleEngineInitializedEvent to other nodes).
      Parameters:
      module - the module to be initialized
      deployedMvnVersion - currently deployed mvn version of the rule engine module
      propagateToOtherNodes - if true propagates a RuleEngineInitializedEvent to other nodes.
      enableIncrementalUpdate - flag, if true, enables for incremental updates of the rule engine kie module
      result - the instance of RuleEngineActionResult accumulating the results of initialization
      executionContext - the instance of ExecutionContext to be set as executionContext of RuleEngineActionResult if not null
    • initializeAllRulesModules

      List<RuleEngineActionResult> initializeAllRulesModules()
      Initializes all AbstractRulesModuleModels that are marked as active (in case of cluster mode - on all the nodes).
      Returns:
      the results of the initialize action (use RuleEngineActionResult.isActionFailed() to check if the action succeeded)
    • initializeAllRulesModules

      List<RuleEngineActionResult> initializeAllRulesModules(boolean propagateToOtherNodes)
      Initializes all AbstractRulesModuleModels that are marked as active.
      Parameters:
      propagateToOtherNodes - if true on all the nodes of cluster
      Returns:
      the activation results
    • updateEngineRule

      RuleEngineActionResult updateEngineRule(AbstractRuleEngineRuleModel ruleEngineRule, AbstractRulesModuleModel rulesModule)
      Updates the given rule if it already exists.
      Parameters:
      ruleEngineRule - Rule to be updated
      rulesModule - AbstractRulesModuleModel where the Rule be updated
      Returns:
      the result of the update action (use RuleEngineActionResult.isActionFailed() to check if the action succeeded)
    • archiveRules

      <T extends DroolsRuleModel> Optional<InitializationFuture> archiveRules(Collection<T> engineRules)
      Archive a collection of rules
      Type Parameters:
      T - subtype of DroolsRuleModel
      Parameters:
      engineRules - collection of DroolsRuleModel instances
      Returns:
      optional of InitializationFuture keeping the status of initialization
    • getRuleForCodeAndModule

      AbstractRuleEngineRuleModel getRuleForCodeAndModule(String code, String moduleName)
      Finds AbstractRuleEngineRuleModel for given code and module.
      Parameters:
      code - the rule code
      moduleName - the rules module name
      Returns:
      AbstractRuleEngineRuleModel for given code.
    • getRuleForUuid

      AbstractRuleEngineRuleModel getRuleForUuid(String uuid)
      Finds AbstractRuleEngineRuleModel for given uuid.
      Parameters:
      uuid - the rule uuid
      Returns:
      AbstractRuleEngineRuleModel for given uuid.
    • deactivateRulesModuleEngineRules

      <T extends AbstractRuleEngineRuleModel> void deactivateRulesModuleEngineRules(String moduleName, Collection<T> engineRules)
      make the specified collection of engine rules belonging to a specified module inactive, so that the engine wouln't take them in consideration during init
      Type Parameters:
      T - a type of engine rules
      Parameters:
      moduleName - Name of the module the rules should refer to when applying changes
      engineRules - A collection of AbstractRuleEngineRuleModel to be deactivated