Class DefaultCommerceRuleEngineService
java.lang.Object
de.hybris.platform.droolsruleengineservices.impl.DefaultCommerceRuleEngineService
- All Implemented Interfaces:
RuleEngineService
Default implementation of Commerce Rule Engine Service.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected RuleAndRuleGroupExecutionTrackerprotected RuleEngineResultRAOAdds a RuleEngineResultRAO to the facts of this context if it doesn't exist already.<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.protected AgendaEventListenerFactoryprotected AgendaFilterFactoryprotected ConfigurationServiceprotected EngineRuleDaogetEventListners(DroolsRuleEngineContextModel ruleEngineContext) protected FactContextFactoryprotected RuleEngineServiceprotected ProcessEventListenerFactorygetRuleForCodeAndModule(String code, String moduleName) Finds AbstractRuleEngineRuleModel for given code and module.getRuleForUuid(String uuid) Finds AbstractRuleEngineRuleModel for given uuid.protected RuleRuntimeEventListenerFactoryvoidinitialize(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.voidinitializeNonBlocking(AbstractRulesModuleModel module, String deployedReleaseIdVersion, boolean propagateToOtherNodes, boolean enableIncrementalUpdate, RuleEngineActionResult result) Since 6.4 Asynchronously initializes the given rules module (and ifpropagateToOtherNodesis set totruepropagates aRuleEngineInitializedEventto other nodes).protected voidlogContextFacts(RuleEvaluationContext context) provideRAOs(FactContext factContext) voidsetAgendaEventListenerFactory(AgendaEventListenerFactory agendaEventListenerFactory) voidsetAgendaFilterFactory(AgendaFilterFactory agendaFilterFactory) voidsetConfigurationService(ConfigurationService configurationService) voidsetEngineRuleDao(EngineRuleDao engineRuleDao) voidsetFactContextFactory(FactContextFactory factContextFactory) voidsetPlatformRuleEngineService(RuleEngineService ruleEngineService) voidsetProcessEventListenerFactory(ProcessEventListenerFactory processEventListenerFactory) voidsetRuleRuntimeEventListenerFactory(RuleRuntimeEventListenerFactory ruleRuntimeEventListenerFactory) updateEngineRule(AbstractRuleEngineRuleModel ruleEngineRule, AbstractRulesModuleModel rulesModule) Updates the given rule if it already exists.
-
Constructor Details
-
DefaultCommerceRuleEngineService
public DefaultCommerceRuleEngineService()
-
-
Method Details
-
initialize
public void initialize(AbstractRulesModuleModel module, String deployedMvnVersion, boolean propagateToOtherNodes, boolean enableIncrementalUpdate, RuleEngineActionResult result) Description copied from interface:RuleEngineServiceSince 6.4 Initializes the given rules module (and ifpropagateToOtherNodesis set totruepropagates aRuleEngineInitializedEventto other nodes).- Specified by:
initializein interfaceRuleEngineService- 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
public void initialize(AbstractRulesModuleModel module, String deployedMvnVersion, boolean propagateToOtherNodes, boolean enableIncrementalUpdate, RuleEngineActionResult result, ExecutionContext executionContext) Description copied from interface:RuleEngineServiceSince 18.08 Initializes the given rules module (and ifpropagateToOtherNodesis set totruepropagates aRuleEngineInitializedEventto other nodes).- Specified by:
initializein interfaceRuleEngineService- 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
-
initializeNonBlocking
public void initializeNonBlocking(AbstractRulesModuleModel module, String deployedReleaseIdVersion, boolean propagateToOtherNodes, boolean enableIncrementalUpdate, RuleEngineActionResult result) Description copied from interface:RuleEngineServiceSince 6.4 Asynchronously initializes the given rules module (and ifpropagateToOtherNodesis set totruepropagates aRuleEngineInitializedEventto other nodes).- Specified by:
initializeNonBlockingin interfaceRuleEngineService- Parameters:
module- the module to be initializeddeployedReleaseIdVersion- 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
public InitializationFuture initialize(List<AbstractRulesModuleModel> modules, boolean propagateToOtherNodes, boolean enableIncrementalUpdate) Description copied from interface:RuleEngineServiceSince 6.4 Initializes the given rules module in blocking/async mode (depending on blocking param) (and ifpropagateToOtherNodesis set totruepropagates aRuleEngineInitializedEventto other nodes).- Specified by:
initializein interfaceRuleEngineService- 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
public InitializationFuture initialize(List<AbstractRulesModuleModel> modules, boolean propagateToOtherNodes, boolean enableIncrementalUpdate, ExecutionContext executionContext) Description copied from interface:RuleEngineServiceSince 6.7 Initializes the given rules module in blocking/async mode (depending on blocking param) (and ifpropagateToOtherNodesis set totruepropagates aRuleEngineInitializedEventto other nodes).- Specified by:
initializein interfaceRuleEngineService- 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
-
evaluate
Description copied from interface:RuleEngineServiceSince 6.0 Executes rule evaluation for given RuleEvaluationContext. Executes all rules contained within the context- Specified by:
evaluatein interfaceRuleEngineService- Parameters:
context- the rule engine context containing data about rule engine execution- Returns:
- results of rule engine execution
-
deactivateRulesModuleEngineRules
public <T extends AbstractRuleEngineRuleModel> void deactivateRulesModuleEngineRules(String moduleName, Collection<T> engineRules) Description copied from interface:RuleEngineServicemake the specified collection of engine rules belonging to a specified module inactive, so that the engine wouln't take them in consideration during init- Specified by:
deactivateRulesModuleEngineRulesin interfaceRuleEngineService- 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
-
logContextFacts
-
getEventListners
-
addRuleEngineResultRAO
Adds a RuleEngineResultRAO to the facts of this context if it doesn't exist already.- Parameters:
context- the rule engine context- Returns:
- the result rao (already added to the context.facts)
-
addDroolsRuleExecutionTracker
protected RuleAndRuleGroupExecutionTracker addDroolsRuleExecutionTracker(RuleEvaluationContext context) -
provideRAOs
-
initializeAllRulesModules
Description copied from interface:RuleEngineServiceInitializes allAbstractRulesModuleModels that are marked as active (in case of cluster mode - on all the nodes).- Specified by:
initializeAllRulesModulesin interfaceRuleEngineService- Returns:
- the results of the initialize action (use
RuleEngineActionResult.isActionFailed()to check if the action succeeded)
-
initializeAllRulesModules
Description copied from interface:RuleEngineServiceInitializes allAbstractRulesModuleModels that are marked as active.- Specified by:
initializeAllRulesModulesin interfaceRuleEngineService- Parameters:
propagateToOtherNodes- if true on all the nodes of cluster- Returns:
- the activation results
-
updateEngineRule
public RuleEngineActionResult updateEngineRule(AbstractRuleEngineRuleModel ruleEngineRule, AbstractRulesModuleModel rulesModule) Description copied from interface:RuleEngineServiceUpdates the given rule if it already exists.- Specified by:
updateEngineRulein interfaceRuleEngineService- 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
public <T extends DroolsRuleModel> Optional<InitializationFuture> archiveRules(Collection<T> engineRules) Description copied from interface:RuleEngineServiceArchive a collection of rules- Specified by:
archiveRulesin interfaceRuleEngineService- Type Parameters:
T- subtype ofDroolsRuleModel- Parameters:
engineRules- collection ofDroolsRuleModelinstances- Returns:
- optional of
InitializationFuturekeeping the status of initialization
-
getRuleForCodeAndModule
Description copied from interface:RuleEngineServiceFinds AbstractRuleEngineRuleModel for given code and module.- Specified by:
getRuleForCodeAndModulein interfaceRuleEngineService- Parameters:
code- the rule codemoduleName- the rules module name- Returns:
- AbstractRuleEngineRuleModel for given code.
-
getRuleForUuid
Description copied from interface:RuleEngineServiceFinds AbstractRuleEngineRuleModel for given uuid.- Specified by:
getRuleForUuidin interfaceRuleEngineService- Parameters:
uuid- the rule uuid- Returns:
- AbstractRuleEngineRuleModel for given uuid.
-
getAgendaFilterFactory
-
setAgendaFilterFactory
-
getAgendaEventListenerFactory
-
setAgendaEventListenerFactory
-
getProcessEventListenerFactory
-
setProcessEventListenerFactory
-
getRuleRuntimeEventListenerFactory
-
setRuleRuntimeEventListenerFactory
public void setRuleRuntimeEventListenerFactory(RuleRuntimeEventListenerFactory ruleRuntimeEventListenerFactory) -
getPlatformRuleEngineService
-
getEngineRuleDao
-
setEngineRuleDao
-
setPlatformRuleEngineService
-
getConfigurationService
-
setConfigurationService
-
getFactContextFactory
-
setFactContextFactory
-