This class configures the knowledge package builder and compiler.
Dialects and their DialectConfigurations are handled by the DialectRegistry
Normally you will not need to look at this class, unless you want to override the defaults.
This class will automatically load default values from a number of places, accumulating properties from each location.
This list of locations, in given priority is:
System properties, home directory, working directory, META-INF/ of optionally provided classLoader
META-INF/ of Thread.currentThread().getContextClassLoader() and META-INF/ of ClassLoader.getSystemClassLoader()
So if you want to set a default configuration value for all your new KnowledgeBuilder, you can simply set the property as
a System property.
This class is not thread safe and it also contains state. After the KnowledgeBuilder is created, it makes the configuration
immutable and there is no way to make it mutable again. This is to avoid inconsistent behaviour inside KnowledgeBuilder.
- drools.dialect.default = <String>
- drools.accumulate.function.<function name> = <qualified class>
- drools.evaluator.<ident> = <qualified class>
- drools.dump.dir = <String>
- drools.parser.processStringEscapes = <true|false>
Two dialects are supported, Java and MVEL. Java is the default dialect.
The Java dialect supports the following configurations:
- drools.dialect.java.compiler = <ECLIPSE|JANINO>
- drools.dialect.java.compiler.lnglevel = <1.5|1.6>
And MVEL supports the following configurations:
- drools.dialect.mvel.strict = <true|false>
So for example if we wanted to create a new KnowledgeBuilder that used Janino as the default compiler we would do the following:
KnowledgeBuilderConfiguration config = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder( config );
Remember the KnowledgeBuilderConfiguration could have taken a Properties instance with that setting in it at constructor time,
or it could also discover from a disk based properties file too.
Available pre-configured Accumulate functions are:
- drools.accumulate.function.average = org.drools.core.base.accumulators.AverageAccumulateFunction
- drools.accumulate.function.max = org.drools.core.base.accumulators.MaxAccumulateFunction
- drools.accumulate.function.min = org.drools.core.base.accumulators.MinAccumulateFunction
- drools.accumulate.function.count = org.drools.core.base.accumulators.CountAccumulateFunction
- drools.accumulate.function.sum = org.drools.core.base.accumulators.SumAccumulateFunction
- drools.accumulate.function.collectSet = org.drools.core.base.accumulators.CollectSetAccumulateFunction
- drools.accumulate.function.collectList = org.drools.core.base.accumulators.CollectListAccumulateFunction