Search in sources :

Example 56 with KnowledgeBuilderConfigurationImpl

use of org.drools.compiler.builder.impl.KnowledgeBuilderConfigurationImpl in project drools by kiegroup.

the class PackageBuilderConfigurationTest method testProgrammaticProperties.

@Test
public void testProgrammaticProperties() {
    KnowledgeBuilderConfigurationImpl cfg = new KnowledgeBuilderConfigurationImpl();
    assertTrue(cfg.getDefaultDialect().equals("java"));
    Properties properties = new Properties();
    properties.setProperty("drools.dialect.default", "mvel");
    KnowledgeBuilderConfigurationImpl cfg1 = new KnowledgeBuilderConfigurationImpl(properties);
    assertEquals("mvel", cfg1.getDefaultDialect());
    final KnowledgeBuilderConfigurationImpl cfg2 = new KnowledgeBuilderConfigurationImpl(properties);
    assertEquals(cfg1.getDefaultDialect().getClass(), cfg2.getDefaultDialect().getClass());
}
Also used : KnowledgeBuilderConfigurationImpl(org.drools.compiler.builder.impl.KnowledgeBuilderConfigurationImpl) Properties(java.util.Properties) Test(org.junit.Test)

Example 57 with KnowledgeBuilderConfigurationImpl

use of org.drools.compiler.builder.impl.KnowledgeBuilderConfigurationImpl in project drools by kiegroup.

the class KnowledgeBuilderConfigurationImplTest method testMinusOneParallelRulesBuildThresholdConfiguration.

@Test
public void testMinusOneParallelRulesBuildThresholdConfiguration() {
    try {
        System.getProperties().put(ParallelRulesBuildThresholdOption.PROPERTY_NAME, "-1");
        KnowledgeBuilderConfigurationImpl kbConfigImpl = new KnowledgeBuilderConfigurationImpl();
        assertThat(kbConfigImpl.getParallelRulesBuildThreshold(), is(-1));
    } finally {
        System.getProperties().remove(ParallelRulesBuildThresholdOption.PROPERTY_NAME);
    }
}
Also used : KnowledgeBuilderConfigurationImpl(org.drools.compiler.builder.impl.KnowledgeBuilderConfigurationImpl) Test(org.junit.Test)

Example 58 with KnowledgeBuilderConfigurationImpl

use of org.drools.compiler.builder.impl.KnowledgeBuilderConfigurationImpl in project drools by kiegroup.

the class ImpactAnalysisKieProject method createKnowledgeBuilder.

@Override
protected KnowledgeBuilder createKnowledgeBuilder(KieBaseModelImpl kBaseModel, InternalKieModule kModule) {
    if (getInternalKieModule().getKieModuleModel() != kBaseModel.getKModule()) {
        // if the KieBase belongs to a different kmodule it is not necessary to build it
        return null;
    }
    KnowledgeBuilderConfigurationImpl builderConfiguration = getBuilderConfiguration(kBaseModel, kModule);
    modelBuilder = new ImpactModelBuilderImpl(builderConfiguration, kModule.getReleaseId());
    return modelBuilder;
}
Also used : KnowledgeBuilderConfigurationImpl(org.drools.compiler.builder.impl.KnowledgeBuilderConfigurationImpl)

Example 59 with KnowledgeBuilderConfigurationImpl

use of org.drools.compiler.builder.impl.KnowledgeBuilderConfigurationImpl in project drools by kiegroup.

the class CanonicalKieModule method afterKieBaseCreationUpdate.

@Override
public void afterKieBaseCreationUpdate(String name, InternalKnowledgeBase kBase) {
    KnowledgeBuilder knowledgeBuilderForKieBase = getKnowledgeBuilderForKieBase(name);
    final List<KieBaseUpdaterOptions.OptionEntry> options;
    if (knowledgeBuilderForKieBase instanceof KnowledgeBuilderImpl) {
        // When using executable module in tests
        KnowledgeBuilderImpl knowledgeBuilderForImpl = (KnowledgeBuilderImpl) knowledgeBuilderForKieBase;
        KnowledgeBuilderConfigurationImpl builderConfiguration = knowledgeBuilderForImpl.getBuilderConfiguration();
        options = singletonList(new KieBaseUpdaterOptions.OptionEntry(AlphaNetworkCompilerOption.class, builderConfiguration.getAlphaNetworkCompilerOption()));
    } else if (resourceFileExists(getANCFile(internalKieModule.getReleaseId()))) {
        // executable model with ANC
        options = singletonList(new KieBaseUpdaterOptions.OptionEntry(AlphaNetworkCompilerOption.class, AlphaNetworkCompilerOption.LOAD));
    } else {
        // Default case when loaded from executable model kjar
        options = emptyList();
    }
    KieContainerImpl.CompositeRunnable compositeUpdater = new KieContainerImpl.CompositeRunnable();
    KieBaseUpdaters updaters = KieService.load(KieBaseUpdaters.class);
    updaters.getChildren().stream().map(kbu -> kbu.create(new KieBaseUpdatersContext(new KieBaseUpdaterOptions(options), kBase.getRete(), kBase.getRootClassLoader()))).forEach(compositeUpdater::add);
    compositeUpdater.run();
}
Also used : InternalKieModule(org.drools.compiler.kie.builder.impl.InternalKieModule) KiePath(org.kie.memorycompiler.resources.KiePath) Arrays(java.util.Arrays) ResourceChange(org.kie.internal.builder.ResourceChange) CompositeKnowledgeBuilder(org.kie.internal.builder.CompositeKnowledgeBuilder) MemoryFileSystem(org.drools.compiler.compiler.io.memory.MemoryFileSystem) ChangeType(org.kie.internal.builder.ChangeType) KieBaseUpdatersContext(org.drools.compiler.kie.builder.impl.KieBaseUpdatersContext) KnowledgeBuilderImpl(org.drools.compiler.builder.impl.KnowledgeBuilderImpl) KnowledgeBuilder(org.kie.internal.builder.KnowledgeBuilder) CoreComponentFactory(org.drools.core.reteoo.CoreComponentFactory) StringUtil.fileNameToClass(org.drools.modelcompiler.util.StringUtil.fileNameToClass) ReleaseId(org.kie.api.builder.ReleaseId) DependencyFilter(org.kie.util.maven.support.DependencyFilter) Collections.singletonList(java.util.Collections.singletonList) ModelComponent.areEqualInModel(org.drools.model.impl.ModelComponent.areEqualInModel) Map(java.util.Map) KieBaseUpdaterImplContext(org.drools.compiler.kie.builder.impl.KieBaseUpdaterImplContext) InternalKnowledgePackage(org.drools.core.definitions.InternalKnowledgePackage) MemoryKieModule(org.drools.compiler.kie.builder.impl.MemoryKieModule) KieModuleModelImpl(org.drools.compiler.kproject.models.KieModuleModelImpl) Predicate(java.util.function.Predicate) KieProject(org.drools.compiler.kie.builder.impl.KieProject) KieBaseModelImpl(org.drools.compiler.kproject.models.KieBaseModelImpl) Collections.emptyList(java.util.Collections.emptyList) Collection(java.util.Collection) Process(org.kie.api.definition.process.Process) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) KieBaseUpdaters(org.drools.compiler.kie.builder.impl.KieBaseUpdaters) Set(java.util.Set) Results(org.kie.api.builder.Results) KieBaseModel(org.kie.api.builder.model.KieBaseModel) KieJarChangeSet(org.drools.compiler.kie.util.KieJarChangeSet) Collectors(java.util.stream.Collectors) KieBaseUpdaterOptions(org.drools.compiler.kie.builder.impl.KieBaseUpdaterOptions) Drools(org.drools.core.util.Drools) CanonicalKieBaseUpdater(org.drools.modelcompiler.builder.CanonicalKieBaseUpdater) InvocationTargetException(java.lang.reflect.InvocationTargetException) ResourceConfiguration(org.kie.api.io.ResourceConfiguration) UncheckedIOException(java.io.UncheckedIOException) Resource(org.kie.api.io.Resource) List(java.util.List) Stream(java.util.stream.Stream) BuildContext(org.drools.compiler.kie.builder.impl.BuildContext) KieContainerImpl(org.drools.compiler.kie.builder.impl.KieContainerImpl) StringUtils(org.drools.core.util.StringUtils) KieBaseConfiguration(org.kie.api.KieBaseConfiguration) KnowledgeBuilderFactory(org.kie.internal.builder.KnowledgeBuilderFactory) PomModel(org.kie.util.maven.support.PomModel) ModelSourceClass.getProjectModelClassNameNameWithReleaseId(org.drools.modelcompiler.builder.ModelSourceClass.getProjectModelClassNameNameWithReleaseId) HashMap(java.util.HashMap) ResourceType(org.kie.api.io.ResourceType) AlphaNetworkCompilerOption(org.kie.internal.builder.conf.AlphaNetworkCompilerOption) ArrayList(java.util.ArrayList) ConcurrentMap(java.util.concurrent.ConcurrentMap) HashSet(java.util.HashSet) IoUtils(org.drools.core.util.IoUtils) ResourceProvider(org.drools.wiring.api.ResourceProvider) FileKieModule(org.drools.compiler.kie.builder.impl.FileKieModule) KieBaseUpdater(org.drools.compiler.kie.builder.impl.KieBaseUpdater) KnowledgeBuilderConfigurationImpl(org.drools.compiler.builder.impl.KnowledgeBuilderConfigurationImpl) RuleBaseConfiguration(org.drools.core.RuleBaseConfiguration) NamedModelItem(org.drools.model.NamedModelItem) KieServices(org.kie.api.KieServices) Message(org.kie.api.builder.Message) KiePackage(org.kie.api.definition.KiePackage) InternalKnowledgeBase(org.drools.kiesession.rulebase.InternalKnowledgeBase) Model(org.drools.model.Model) Iterator(java.util.Iterator) InternalResource(org.drools.core.io.internal.InternalResource) KieService(org.kie.api.internal.utils.KieService) ResourceChangeSet(org.kie.internal.builder.ResourceChangeSet) KnowledgeBuilderConfiguration(org.kie.internal.builder.KnowledgeBuilderConfiguration) AbstractKieModule.checkStreamMode(org.drools.compiler.kie.builder.impl.AbstractKieModule.checkStreamMode) IOException(java.io.IOException) DroolsAssemblerContext(org.drools.compiler.builder.DroolsAssemblerContext) ResultsImpl(org.drools.compiler.kie.builder.impl.ResultsImpl) GeneratedFact(org.drools.core.factmodel.GeneratedFact) File(java.io.File) ZipKieModule(org.drools.compiler.kie.builder.impl.ZipKieModule) KieBaseBuilder(org.drools.modelcompiler.builder.KieBaseBuilder) Collectors.toList(java.util.stream.Collectors.toList) KieModuleModel(org.kie.api.builder.model.KieModuleModel) ProjectClassLoader(org.drools.wiring.api.classloader.ProjectClassLoader) Comparator(java.util.Comparator) ResourceType.determineResourceType(org.kie.api.io.ResourceType.determineResourceType) Collections(java.util.Collections) InputStream(java.io.InputStream) KieBaseUpdaterOptions(org.drools.compiler.kie.builder.impl.KieBaseUpdaterOptions) KnowledgeBuilderConfigurationImpl(org.drools.compiler.builder.impl.KnowledgeBuilderConfigurationImpl) KieContainerImpl(org.drools.compiler.kie.builder.impl.KieContainerImpl) KieBaseUpdaters(org.drools.compiler.kie.builder.impl.KieBaseUpdaters) CompositeKnowledgeBuilder(org.kie.internal.builder.CompositeKnowledgeBuilder) KnowledgeBuilder(org.kie.internal.builder.KnowledgeBuilder) KieBaseUpdatersContext(org.drools.compiler.kie.builder.impl.KieBaseUpdatersContext) AlphaNetworkCompilerOption(org.kie.internal.builder.conf.AlphaNetworkCompilerOption) KnowledgeBuilderImpl(org.drools.compiler.builder.impl.KnowledgeBuilderImpl)

Example 60 with KnowledgeBuilderConfigurationImpl

use of org.drools.compiler.builder.impl.KnowledgeBuilderConfigurationImpl in project drools by kiegroup.

the class CanonicalModelKieProject method createKnowledgeBuilder.

@Override
protected KnowledgeBuilder createKnowledgeBuilder(KieBaseModelImpl kBaseModel, InternalKieModule kModule) {
    if (getInternalKieModule().getKieModuleModel() != kBaseModel.getKModule()) {
        // if the KieBase belongs to a different kmodule it is not necessary to build it
        return null;
    }
    KnowledgeBuilderConfigurationImpl builderConfiguration = getBuilderConfiguration(kBaseModel, kModule);
    ModelBuilderImpl<PackageSources> modelBuilder = new ModelBuilderImpl<>(PackageSources::dumpSources, builderConfiguration, kModule.getReleaseId(), false);
    modelBuilders.put(kBaseModel.getName(), modelBuilder);
    return modelBuilder;
}
Also used : KnowledgeBuilderConfigurationImpl(org.drools.compiler.builder.impl.KnowledgeBuilderConfigurationImpl)

Aggregations

KnowledgeBuilderConfigurationImpl (org.drools.compiler.builder.impl.KnowledgeBuilderConfigurationImpl)64 Test (org.junit.Test)34 KnowledgeBuilderImpl (org.drools.compiler.builder.impl.KnowledgeBuilderImpl)23 InternalKnowledgePackage (org.drools.core.definitions.InternalKnowledgePackage)18 DialectCompiletimeRegistry (org.drools.compiler.compiler.DialectCompiletimeRegistry)17 RuleBuildContext (org.drools.compiler.rule.builder.RuleBuildContext)14 PackageRegistry (org.drools.compiler.compiler.PackageRegistry)12 KnowledgeBuilder (org.kie.internal.builder.KnowledgeBuilder)12 ClassObjectType (org.drools.core.base.ClassObjectType)10 Pattern (org.drools.core.rule.Pattern)10 StringReader (java.io.StringReader)9 ArrayList (java.util.ArrayList)9 HashMap (java.util.HashMap)8 RuleDescr (org.drools.compiler.lang.descr.RuleDescr)8 PackageDescr (org.drools.drl.ast.descr.PackageDescr)8 RuleDescr (org.drools.drl.ast.descr.RuleDescr)8 List (java.util.List)7 Process (org.kie.api.definition.process.Process)7 InternalFactHandle (org.drools.core.common.InternalFactHandle)6 KnowledgePackageImpl (org.drools.core.definitions.impl.KnowledgePackageImpl)6