Package de.hybris.platform.ruleengine
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 Summary
Modifier and TypeMethodDescription<T extends DroolsRuleModel>
Optional<InitializationFuture>archiveRules(Collection<T> engineRules) Archive a collection of rules<T extends AbstractRuleEngineRuleModel>
voiddeactivateRulesModuleEngineRules(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 initevaluate(RuleEvaluationContext context) Since 6.0 Executes rule evaluation for given RuleEvaluationContext.getRuleForCodeAndModule(String code, String moduleName) Finds AbstractRuleEngineRuleModel for given code and module.getRuleForUuid(String uuid) Finds AbstractRuleEngineRuleModel for given uuid.voidinitialize(AbstractRulesModuleModel module, String deployedMvnVersion, boolean propagateToOtherNodes, boolean enableIncrementalUpdate, RuleEngineActionResult result) Since 6.4 Initializes the given rules module (and ifpropagateToOtherNodesis set totruepropagates aRuleEngineInitializedEventto other nodes).voidinitialize(AbstractRulesModuleModel module, String deployedMvnVersion, boolean propagateToOtherNodes, boolean enableIncrementalUpdate, RuleEngineActionResult result, ExecutionContext executionContext) Since 18.08 Initializes the given rules module (and ifpropagateToOtherNodesis set totruepropagates aRuleEngineInitializedEventto other nodes).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 ifpropagateToOtherNodesis set totruepropagates aRuleEngineInitializedEventto other nodes).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 ifpropagateToOtherNodesis set totruepropagates aRuleEngineInitializedEventto other nodes).Initializes allAbstractRulesModuleModels that are marked as active (in case of cluster mode - on all the nodes).initializeAllRulesModules(boolean propagateToOtherNodes) Initializes allAbstractRulesModuleModels that are marked as active.<M extends AbstractRulesModuleModel>
voidinitializeNonBlocking(M module, String deployedMvnVersion, boolean propagateToOtherNodes, boolean enableIncrementalUpdate, RuleEngineActionResult result) Since 6.4 Asynchronously initializes the given rules module (and ifpropagateToOtherNodesis set totruepropagates aRuleEngineInitializedEventto other nodes).updateEngineRule(AbstractRuleEngineRuleModel ruleEngineRule, AbstractRulesModuleModel rulesModule) Updates the given rule if it already exists.
-
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 ifpropagateToOtherNodesis set totruepropagates aRuleEngineInitializedEventto other nodes).- Parameters:
module- the module to be initializeddeployedMvnVersion- currently deployed version of the Kie ModulepropagateToOtherNodes- if true propagates aRuleEngineInitializedEventto other nodes.enableIncrementalUpdate- flag, if true, enables for incremental updates of the rule engine kie moduleresult- the instance ofRuleEngineActionResultaccumulating 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 ifpropagateToOtherNodesis set totruepropagates aRuleEngineInitializedEventto other nodes).- Parameters:
modules- the modules to be initializedpropagateToOtherNodes- if true propagates aRuleEngineInitializedEventto other nodes.enableIncrementalUpdate- flag, if true, enables for incremental updates of the rule engine kie module- Returns:
- instance of
InitializationFutureto 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 ifpropagateToOtherNodesis set totruepropagates aRuleEngineInitializedEventto other nodes).- Parameters:
modules- the modules to be initializedpropagateToOtherNodes- if true propagates aRuleEngineInitializedEventto other nodes.enableIncrementalUpdate- flag, if true, enables for incremental updates of the rule engine kie moduleexecutionContext- instance ofExecutionContextthat serves as a storage for initialization related data- Returns:
- instance of
InitializationFutureto 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 ifpropagateToOtherNodesis set totruepropagates aRuleEngineInitializedEventto other nodes).- Parameters:
module- the module to be initializeddeployedMvnVersion- currently deployed mvn version of the rule engine modulepropagateToOtherNodes- if true propagates aRuleEngineInitializedEventto other nodes.enableIncrementalUpdate- flag, if true, enables for incremental updates of the rule engine kie moduleresult- the instance ofRuleEngineActionResultaccumulating 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 ifpropagateToOtherNodesis set totruepropagates aRuleEngineInitializedEventto other nodes).- Parameters:
module- the module to be initializeddeployedMvnVersion- currently deployed mvn version of the rule engine modulepropagateToOtherNodes- if true propagates aRuleEngineInitializedEventto other nodes.enableIncrementalUpdate- flag, if true, enables for incremental updates of the rule engine kie moduleresult- the instance ofRuleEngineActionResultaccumulating the results of initializationexecutionContext- the instance ofExecutionContextto be set as executionContext ofRuleEngineActionResultif not null
-
initializeAllRulesModules
List<RuleEngineActionResult> initializeAllRulesModules()Initializes allAbstractRulesModuleModels 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
Initializes allAbstractRulesModuleModels 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 updatedrulesModule-AbstractRulesModuleModelwhere the Rule be updated- Returns:
- the result of the update action (use
RuleEngineActionResult.isActionFailed()to check if the action succeeded)
-
archiveRules
Archive a collection of rules- Type Parameters:
T- subtype ofDroolsRuleModel- Parameters:
engineRules- collection ofDroolsRuleModelinstances- Returns:
- optional of
InitializationFuturekeeping the status of initialization
-
getRuleForCodeAndModule
Finds AbstractRuleEngineRuleModel for given code and module.- Parameters:
code- the rule codemoduleName- the rules module name- Returns:
- AbstractRuleEngineRuleModel for given code.
-
getRuleForUuid
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 changesengineRules- A collection ofAbstractRuleEngineRuleModelto be deactivated
-