Class RuleBaseConfiguration

  • All Implemented Interfaces:
    Externalizable, Serializable, org.kie.api.conf.KieBaseOptionsConfiguration, org.kie.api.KieBaseConfiguration, org.kie.api.PropertiesConfiguration

    public class RuleBaseConfiguration
    extends Object
    implements org.kie.api.KieBaseConfiguration, Externalizable
    Available configuration options:
     drools.maintainTms = <true|false>
     drools.sequential = <true|false>
     drools.sequential.agenda = <sequential|dynamic>
     drools.removeIdentities = <true|false>
     drools.shareAlphaNodes  = <true|false>
     drools.shareBetaNodes = <true|false>
     drools.alphaNodeHashingThreshold = <1...n>
     drools.alphaNodeRangeIndexThreshold = <1...n>
     drools.betaNodeRangeIndexEnabled = <true|false>
     drools.sessionPool = <1...n>
     drools.compositeKeyDepth = <1..3>
     drools.indexLeftBetaMemory = <true/false>
     drools.indexRightBetaMemory = <true/false>
     drools.equalityBehavior = <identity|equality>
     drools.conflictResolver = <qualified class name>
     drools.consequenceExceptionHandler = <qualified class name>
     drools.ruleBaseUpdateHandler = <qualified class name>
     drools.sessionClock = <qualified class name>
     drools.mbeans = <enabled|disabled>
     drools.classLoaderCacheEnabled = <true|false>
     drools.declarativeAgendaEnabled =  <true|false>
     drools.permgenThreshold = <1...n>
     drools.jittingThreshold = <1...n>
     
    See Also:
    Serialized Form
    • Field Detail

      • DEFAULT_SESSION_CACHE

        public static final boolean DEFAULT_SESSION_CACHE
        See Also:
        Constant Field Values
      • logger

        protected static final transient org.slf4j.Logger logger
    • Constructor Detail

      • RuleBaseConfiguration

        public RuleBaseConfiguration​(Properties properties)
        Creates a new rulebase configuration using the provided properties as configuration options. Also, if a Thread.currentThread().getContextClassLoader() returns a non-null class loader, it will be used as the parent classloader for this rulebase class loaders, otherwise, the RuleBaseConfiguration.class.getClassLoader() class loader will be used.
        Parameters:
        properties -
      • RuleBaseConfiguration

        public RuleBaseConfiguration()
        Creates a new rulebase with a default parent class loader set according to the following algorithm: If a Thread.currentThread().getContextClassLoader() returns a non-null class loader, it will be used as the parent class loader for this rulebase class loaders, otherwise, the RuleBaseConfiguration.class.getClassLoader() class loader will be used.
      • RuleBaseConfiguration

        public RuleBaseConfiguration​(ClassLoader... classLoaders)
        A constructor that sets the parent classloader to be used while dealing with this rule base
        Parameters:
        classLoaders -
      • RuleBaseConfiguration

        public RuleBaseConfiguration​(Properties properties,
                                     ClassLoader... classLoaders)
        A constructor that sets the classloader to be used as the parent classloader of this rule base classloaders, and the properties to be used as base configuration options
        Parameters:
        classLoaders -
        properties -
    • Method Detail

      • setProperty

        public void setProperty​(String name,
                                String value)
        Specified by:
        setProperty in interface org.kie.api.PropertiesConfiguration
      • getProperty

        public String getProperty​(String name)
        Specified by:
        getProperty in interface org.kie.api.PropertiesConfiguration
      • makeImmutable

        public void makeImmutable()
        Makes the configuration object immutable. Once it becomes immutable, there is no way to make it mutable again. This is done to keep consistency.
      • isImmutable

        public boolean isImmutable()
        Returns true if this configuration object is immutable or false otherwise.
        Returns:
      • setSequential

        public void setSequential​(boolean sequential)
      • isSequential

        public boolean isSequential()
      • isMaintainTms

        public boolean isMaintainTms()
      • setMaintainTms

        public void setMaintainTms​(boolean maintainTms)
      • isRemoveIdentities

        public boolean isRemoveIdentities()
      • setRemoveIdentities

        public void setRemoveIdentities​(boolean removeIdentities)
      • isShareAlphaNodes

        public boolean isShareAlphaNodes()
      • setShareAlphaNodes

        public void setShareAlphaNodes​(boolean shareAlphaNodes)
      • isShareBetaNodes

        public boolean isShareBetaNodes()
      • setShareBetaNodes

        public void setShareBetaNodes​(boolean shareBetaNodes)
      • getPermGenThreshold

        public int getPermGenThreshold()
      • setPermGenThreshold

        public void setPermGenThreshold​(int permGenThreshold)
      • getJittingThreshold

        public int getJittingThreshold()
      • setJittingThreshold

        public void setJittingThreshold​(int jittingThreshold)
      • getAlphaNodeHashingThreshold

        public int getAlphaNodeHashingThreshold()
      • setAlphaNodeHashingThreshold

        public void setAlphaNodeHashingThreshold​(int alphaNodeHashingThreshold)
      • getAlphaNodeRangeIndexThreshold

        public int getAlphaNodeRangeIndexThreshold()
      • setAlphaNodeRangeIndexThreshold

        public void setAlphaNodeRangeIndexThreshold​(int alphaNodeRangeIndexThreshold)
      • isBetaNodeRangeIndexEnabled

        public boolean isBetaNodeRangeIndexEnabled()
      • setBetaNodeRangeIndexEnabled

        public void setBetaNodeRangeIndexEnabled​(boolean betaNodeRangeIndexEnabled)
      • getSessionPoolSize

        public int getSessionPoolSize()
      • setSessionPoolSize

        public void setSessionPoolSize​(int sessionPoolSize)
      • getEventProcessingMode

        public org.kie.api.conf.EventProcessingOption getEventProcessingMode()
      • setEventProcessingMode

        public void setEventProcessingMode​(org.kie.api.conf.EventProcessingOption mode)
      • getCompositeKeyDepth

        public int getCompositeKeyDepth()
      • setCompositeKeyDepth

        public void setCompositeKeyDepth​(int compositeKeyDepth)
      • isIndexLeftBetaMemory

        public boolean isIndexLeftBetaMemory()
      • setIndexLeftBetaMemory

        public void setIndexLeftBetaMemory​(boolean indexLeftBetaMemory)
      • isIndexRightBetaMemory

        public boolean isIndexRightBetaMemory()
      • setIndexRightBetaMemory

        public void setIndexRightBetaMemory​(boolean indexRightBetaMemory)
      • getIndexPrecedenceOption

        public org.kie.internal.conf.IndexPrecedenceOption getIndexPrecedenceOption()
      • setIndexPrecedenceOption

        public void setIndexPrecedenceOption​(org.kie.internal.conf.IndexPrecedenceOption precedence)
      • getConsequenceExceptionHandler

        public String getConsequenceExceptionHandler()
      • setConsequenceExceptionHandler

        public void setConsequenceExceptionHandler​(String consequenceExceptionHandler)
      • getRuleBaseUpdateHandler

        public String getRuleBaseUpdateHandler()
      • setRuleBaseUpdateHandler

        public void setRuleBaseUpdateHandler​(String ruleBaseUpdateHandler)
      • setMultithreadEvaluation

        public void setMultithreadEvaluation​(boolean enableMultithread)
        Defines if the RuleBase should be executed using a pool of threads for evaluating the rules ("true"), or if the rulebase should work in classic single thread mode ("false").
        Parameters:
        enableMultithread - true for multi-thread or false for single-thread. Default is false.
      • enforceSingleThreadEvaluation

        public void enforceSingleThreadEvaluation()
      • isMultithreadEvaluation

        public boolean isMultithreadEvaluation()
        Returns true if the partitioning of the rulebase is enabled and false otherwise. Default is false.
        Returns:
      • setMaxThreads

        public void setMaxThreads​(int maxThreads)
        If multi-thread evaluation is enabled, this parameter configures the maximum number of threads each session can use for concurrent Rete propagation.
        Parameters:
        maxThreads - the maximum number of threads to use. If 0 or a negative number is set, the engine will use number of threads equal to the number of partitions in the rule base. Default number of threads is 0.
      • getMaxThreads

        public int getMaxThreads()
        Returns the configured number of maximum threads to use for concurrent propagation when multi-thread evaluation is enabled. Default is zero.
        Returns:
      • isDeclarativeAgenda

        public boolean isDeclarativeAgenda()
      • setDeclarativeAgendaEnabled

        public void setDeclarativeAgendaEnabled​(boolean enabled)
        Enable declarative agenda
        Parameters:
        enabled -
      • isAdvancedProcessRuleIntegration

        public boolean isAdvancedProcessRuleIntegration()
      • setAdvancedProcessRuleIntegration

        public void setAdvancedProcessRuleIntegration​(boolean advancedProcessRuleIntegration)
      • setClassLoader

        public void setClassLoader​(ClassLoader classLoader)
      • setMBeansEnabled

        public void setMBeansEnabled​(boolean mbeansEnabled)
        Defines if the RuleBase should expose management and monitoring MBeans
        Parameters:
        mbeansEnabled - true for multi-thread or false for single-thread. Default is false.
      • isMBeansEnabled

        public boolean isMBeansEnabled()
        Returns true if the management and monitoring through MBeans is active
        Returns:
      • setMutabilityEnabled

        public void setMutabilityEnabled​(boolean mutabilityEnabled)
      • isMutabilityEnabled

        public boolean isMutabilityEnabled()
      • getOption

        public <T extends org.kie.api.conf.SingleValueKieBaseOption> T getOption​(Class<T> option)
        Specified by:
        getOption in interface org.kie.api.conf.KieBaseOptionsConfiguration
      • setOption

        public <T extends org.kie.api.conf.KieBaseOption> void setOption​(T option)
        Specified by:
        setOption in interface org.kie.api.conf.KieBaseOptionsConfiguration
      • getOption

        public <T extends org.kie.api.conf.MultiValueKieBaseOption> T getOption​(Class<T> option,
                                                                                String key)
        Specified by:
        getOption in interface org.kie.api.conf.KieBaseOptionsConfiguration
      • getChainedProperties

        public org.kie.internal.utils.ChainedProperties getChainedProperties()