Package de.hybris.platform.ruleengine
Interface RuleEngineService
-
- All Known Implementing Classes:
DefaultCommerceRuleEngineService,DefaultPlatformRuleEngineService
public interface RuleEngineServiceThe interface provides with method that allows initialization and evaluation of rules modules.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description RuleEngineActionResultarchiveRule(AbstractRuleEngineRuleModel ruleEngineRule)Deprecated, for removal: This API element is subject to removal in a future version.since 1811RuleEngineActionResultarchiveRule(AbstractRuleEngineRuleModel ruleEngineRule, AbstractRulesModuleModel rulesModule)Deprecated, for removal: This API element is subject to removal in a future version.since 1811<T extends DroolsRuleModel>
java.util.Optional<InitializationFuture>archiveRules(java.util.Collection<T> engineRules)Archive a collection of rules<T extends AbstractRuleEngineRuleModel>
voiddeactivateRulesModuleEngineRules(java.lang.String moduleName, java.util.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 initRuleEvaluationResultevaluate(RuleEvaluationContext context)Since 6.0 Executes rule evaluation for given RuleEvaluationContext.AbstractRuleEngineRuleModelgetRuleForCodeAndModule(java.lang.String code, java.lang.String moduleName)Finds AbstractRuleEngineRuleModel for given code and module.AbstractRuleEngineRuleModelgetRuleForUuid(java.lang.String uuid)Finds AbstractRuleEngineRuleModel for given uuid.voidinitialize(AbstractRulesModuleModel module, java.lang.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, java.lang.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).InitializationFutureinitialize(java.util.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).InitializationFutureinitialize(java.util.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).java.util.List<RuleEngineActionResult>initializeAllRulesModules()Initializes allAbstractRulesModuleModels that are marked as active (in case of cluster mode - on all the nodes).java.util.List<RuleEngineActionResult>initializeAllRulesModules(boolean propagateToOtherNodes)Initializes allAbstractRulesModuleModels that are marked as active.<M extends AbstractRulesModuleModel>
voidinitializeNonBlocking(M module, java.lang.String deployedMvnVersion, boolean propagateToOtherNodes, boolean enableIncrementalUpdate, RuleEngineActionResult result)Since 6.4 Asynchronously initializes the given rules module (and ifpropagateToOtherNodesis set totruepropagates aRuleEngineInitializedEventto other nodes).RuleEngineActionResultupdateEngineRule(AbstractRuleEngineRuleModel ruleEngineRule, AbstractRulesModuleModel rulesModule)Updates the given rule if it already exists.
-
-
-
Method Detail
-
evaluate
RuleEvaluationResult evaluate(RuleEvaluationContext context)
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, java.lang.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(java.util.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(java.util.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, java.lang.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, java.lang.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
java.util.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
java.util.List<RuleEngineActionResult> initializeAllRulesModules(boolean propagateToOtherNodes)
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)
-
archiveRule
@Deprecated(since="1811", forRemoval=true) RuleEngineActionResult archiveRule(AbstractRuleEngineRuleModel ruleEngineRule)Deprecated, for removal: This API element is subject to removal in a future version.since 1811Archives the given rule if it already exists.- Parameters:
ruleEngineRule- Rule to be archived- Returns:
- the result of the archive action (use
RuleEngineActionResult.isActionFailed()to check if the action succeeded)
-
archiveRule
@Deprecated(since="1811", forRemoval=true) RuleEngineActionResult archiveRule(AbstractRuleEngineRuleModel ruleEngineRule, AbstractRulesModuleModel rulesModule)Deprecated, for removal: This API element is subject to removal in a future version.since 1811Archives the given rule if it already exists.- Parameters:
ruleEngineRule- Rule to be archivedrulesModule-AbstractRulesModuleModelwhere the Rule is archived- Returns:
- the result of the archive action (use
RuleEngineActionResult.isActionFailed()to check if the action succeeded)
-
archiveRules
<T extends DroolsRuleModel> java.util.Optional<InitializationFuture> archiveRules(java.util.Collection<T> engineRules)
Archive a collection of rules- Type Parameters:
T- subtype ofDroolsRuleModel- Parameters:
engineRules- collection ofDroolsRuleModelinstances- Returns:
- optional of
InitializationFuturekeeping the status of initialization
-
getRuleForCodeAndModule
AbstractRuleEngineRuleModel getRuleForCodeAndModule(java.lang.String code, java.lang.String moduleName)
Finds AbstractRuleEngineRuleModel for given code and module.- Parameters:
code- the rule codemoduleName- the rules module name- Returns:
- AbstractRuleEngineRuleModel for given code.
-
getRuleForUuid
AbstractRuleEngineRuleModel getRuleForUuid(java.lang.String uuid)
Finds AbstractRuleEngineRuleModel for given uuid.- Parameters:
uuid- the rule uuid- Returns:
- AbstractRuleEngineRuleModel for given uuid.
-
deactivateRulesModuleEngineRules
<T extends AbstractRuleEngineRuleModel> void deactivateRulesModuleEngineRules(java.lang.String moduleName, java.util.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
-
-