Class DefaultRuleMaintenanceService

    • Constructor Detail

      • DefaultRuleMaintenanceService

        public DefaultRuleMaintenanceService()
    • Method Detail

      • compileAndPublishRulesWithBlocking

        public <T extends SourceRuleModelRuleCompilerPublisherResult compileAndPublishRulesWithBlocking​(java.util.List<T> rules,
                                                                                                          java.lang.String moduleName,
                                                                                                          boolean enableIncrementalUpdate)
        Description copied from interface: RuleMaintenanceService
        Compiles and publishes rules with blocking on initialization
        Specified by:
        compileAndPublishRulesWithBlocking in interface RuleMaintenanceService
        Parameters:
        rules - - list of rules to compile and publish
        moduleName - Rules module name
        enableIncrementalUpdate - flag, if true, enables for incremental updates of the rule engine kie module
        Returns:
        instance of RuleCompilerPublisherResult containing the status of rules compilation and publication
      • initializeModule

        public RuleCompilerPublisherResult initializeModule​(java.lang.String moduleName,
                                                            boolean enableIncrementalUpdate)
        Description copied from interface: RuleMaintenanceService
        Publish/re-publish drools rules for a specific module
        Specified by:
        initializeModule in interface RuleMaintenanceService
        Parameters:
        moduleName - Rules module name to publish the rules for
        enableIncrementalUpdate - flag, if true, enables for incremental updates of the rule engine kie module
        Returns:
        instance of RuleCompilerPublisherResult containing the status of rules compilation and publication
      • synchronizeModules

        public java.util.Optional<RuleCompilerPublisherResult> synchronizeModules​(java.lang.String sourceModuleName,
                                                                                  java.lang.String targetModuleName)
        Description copied from interface: RuleMaintenanceService
        Synchronize the deployed rules between two modules. The result after synchronisation should be a complete alignment of source rules (including their versions) deployed for target module with those deployed for source module
        Specified by:
        synchronizeModules in interface RuleMaintenanceService
        Parameters:
        sourceModuleName - The name of the module to be used as a source for synchronisation
        targetModuleName - The name of the module to be used as a target for synchronisation
        Returns:
        Optional of RuleCompilerPublisherResult containing the status of rules compilation and publication for target module
      • isSourceRuleDeployed

        protected <S extends SourceRuleModel> boolean isSourceRuleDeployed​(java.util.Map<java.lang.String,​S> deployedRulesMap,
                                                                           SourceRuleModel sourceRule)
        Given the map of deployed source rules, verify whether the provided rule instance makes part of it
        Type Parameters:
        S - type of the source rule
        Parameters:
        deployedRulesMap - map of deployed source rules (by name)
        sourceRule - source rule instance to check
        Returns:
        true if the provided source rule instance makes part of deployed rules. False otherwise
      • getSourceRulesByName

        protected <S extends SourceRuleModel> java.util.Map<java.lang.String,​S> getSourceRulesByName​(java.util.Collection<S> sourceRules)
        Maps provided collection of source rules to their names
        Type Parameters:
        S - generic type of source rules
        Parameters:
        sourceRules - collection of source rules to map
        Returns:
        map of source rules by code
      • getDeployedRules

        protected <S extends SourceRuleModel> java.util.Map<S,​DroolsRuleModel> getDeployedRules​(DroolsKIEModuleModel module)
        Given the rule engine module get the map of source rules to deployed drools rules
        Type Parameters:
        S - generic type of source rules
        Parameters:
        module - instance of DroolsKIEModuleModel to find a map for
        Returns:
        map of deployed drools rule by corresponding source rule
      • compileAndPublishRules

        protected <T extends SourceRuleModelRuleCompilerPublisherResult compileAndPublishRules​(java.util.List<T> rules,
                                                                                                 java.lang.String moduleName,
                                                                                                 boolean enableIncrementalUpdate,
                                                                                                 boolean blocking)
      • onCompileErrorCleanup

        protected void onCompileErrorCleanup​(RuleCompilerTaskResult result,
                                             java.lang.String moduleName)
      • updateCronJobTracker

        protected void updateCronJobTracker​(CronJobProgressTracker tracker,
                                            int itemsTotal,
                                            int itemsProcessed)
      • getRulesModuleByName

        protected DroolsKIEModuleModel getRulesModuleByName​(java.lang.String moduleName)
      • getModelService

        protected ModelService getModelService()
      • setModelService

        public void setModelService​(ModelService modelService)
      • setRuleEngineService

        public void setRuleEngineService​(RuleEngineService ruleEngineService)
      • setRulesModuleDao

        public void setRulesModuleDao​(RulesModuleDao rulesModuleDao)
      • getRuleService

        protected RuleService getRuleService()
      • setRuleService

        public void setRuleService​(RuleService ruleService)
      • setRuleCompilationContextProvider

        public void setRuleCompilationContextProvider​(RuleCompilationContextProvider ruleCompilationContextProvider)
      • setRulesModuleResolver

        public void setRulesModuleResolver​(RulesModuleResolver rulesModuleResolver)
      • getRulesCompilationGuardedSuspension

        protected GuardedSuspension<java.lang.String> getRulesCompilationGuardedSuspension()
      • setRulesCompilationGuardedSuspension

        public void setRulesCompilationGuardedSuspension​(GuardedSuspension<java.lang.String> rulesCompilationGuardedSuspension)
      • setEngineRulesRepository

        public void setEngineRulesRepository​(EngineRulesRepository engineRulesRepository)
      • getEventService

        protected EventService getEventService()
      • setEventService

        public void setEventService​(EventService eventService)
      • setEngineRuleDao

        public void setEngineRuleDao​(EngineRuleDao engineRuleDao)