Search in sources :

Example 1 with InternalKieContainer

use of org.drools.core.impl.InternalKieContainer in project drools by kiegroup.

the class KieContainerTest method testUpdateToNonExistingRelease.

@Test
public void testUpdateToNonExistingRelease() {
    // DROOLS-1562
    KieServices ks = KieServices.Factory.get();
    ReleaseId releaseId = ks.newReleaseId("org.kie", "test-release", "1.0.0");
    createAndDeployJar(ks, releaseId, createDRL("ruleA"));
    KieContainer kieContainer = ks.newKieContainer(releaseId);
    Results results = kieContainer.updateToVersion(ks.newReleaseId("org.kie", "test-release", "1.0.1"));
    assertEquals(1, results.getMessages(Level.ERROR).size());
    assertEquals("1.0.0", ((InternalKieContainer) kieContainer).getContainerReleaseId().getVersion());
}
Also used : Results(org.kie.api.builder.Results) KieServices(org.kie.api.KieServices) InternalKieContainer(org.drools.core.impl.InternalKieContainer) ReleaseId(org.kie.api.builder.ReleaseId) InternalKieContainer(org.drools.core.impl.InternalKieContainer) KieContainer(org.kie.api.runtime.KieContainer) Test(org.junit.Test)

Example 2 with InternalKieContainer

use of org.drools.core.impl.InternalKieContainer in project drools by kiegroup.

the class KieContainerDefaultsTest method testTwoKieSessionsOneDefault.

/**
 * This test checks if default KieSessions behave as expected.
 */
@Test
public void testTwoKieSessionsOneDefault() {
    final KieModuleModel kieModule = kieServices.newKieModuleModel();
    kieModule.newKieBaseModel("firstKBase").setDefault(true).newKieSessionModel("firstKSession").setDefault(true);
    kieModule.newKieBaseModel("secondKBase").setDefault(true).newKieSessionModel("secondKSession");
    buildKieModule(kieModule);
    final KieContainer kieContainer = kieServices.newKieContainer(RELEASE_ID);
    final KieSession firstKSession = kieContainer.newKieSession("firstKSession");
    final KieSession secondKSession = kieContainer.newKieSession("secondKSession");
    try {
        Assertions.assertThat(firstKSession).isEqualTo(((InternalKieContainer) kieContainer).getKieSession());
        Assertions.assertThat(secondKSession).isNotEqualTo(((InternalKieContainer) kieContainer).getKieSession());
    } finally {
        firstKSession.dispose();
        secondKSession.dispose();
    }
}
Also used : KieModuleModel(org.kie.api.builder.model.KieModuleModel) StatelessKieSession(org.kie.api.runtime.StatelessKieSession) KieSession(org.kie.api.runtime.KieSession) InternalKieContainer(org.drools.core.impl.InternalKieContainer) KieContainer(org.kie.api.runtime.KieContainer) Test(org.junit.Test)

Example 3 with InternalKieContainer

use of org.drools.core.impl.InternalKieContainer in project drools by kiegroup.

the class KieContainerDefaultsTest method testTwoStatelessKieSessionsOneDefault.

/**
 * This test checks if default StatelessKieSessions behave as expected.
 */
@Test
public void testTwoStatelessKieSessionsOneDefault() {
    final KieModuleModel kieModule = kieServices.newKieModuleModel();
    kieModule.newKieBaseModel("firstKBase").setDefault(true).newKieSessionModel("firstKSession").setType(KieSessionModel.KieSessionType.STATELESS).setDefault(true);
    kieModule.newKieBaseModel("secondKBase").setDefault(true).newKieSessionModel("secondKSession").setType(KieSessionModel.KieSessionType.STATELESS).setDefault(false);
    buildKieModule(kieModule);
    final KieContainer kieContainer = kieServices.newKieContainer(RELEASE_ID);
    final StatelessKieSession firstKSession = kieContainer.newStatelessKieSession("firstKSession");
    final StatelessKieSession secondKSession = kieContainer.newStatelessKieSession("secondKSession");
    Assertions.assertThat(firstKSession).isEqualTo(((InternalKieContainer) kieContainer).getStatelessKieSession());
    Assertions.assertThat(secondKSession).isNotEqualTo(((InternalKieContainer) kieContainer).getStatelessKieSession());
}
Also used : KieModuleModel(org.kie.api.builder.model.KieModuleModel) StatelessKieSession(org.kie.api.runtime.StatelessKieSession) InternalKieContainer(org.drools.core.impl.InternalKieContainer) KieContainer(org.kie.api.runtime.KieContainer) Test(org.junit.Test)

Example 4 with InternalKieContainer

use of org.drools.core.impl.InternalKieContainer in project drools by kiegroup.

the class KieContainerTest method testMainKieModule.

@Test
public void testMainKieModule() {
    KieServices ks = KieServices.Factory.get();
    // Create an in-memory jar for version 1.0.0
    ReleaseId releaseId = ks.newReleaseId("org.kie", "test-delete", "1.0.0");
    createAndDeployJar(ks, releaseId, createDRL("ruleA"));
    KieContainer kieContainer = ks.newKieContainer(releaseId);
    KieModule kmodule = ((InternalKieContainer) kieContainer).getMainKieModule();
    assertEquals(releaseId, kmodule.getReleaseId());
}
Also used : KieServices(org.kie.api.KieServices) InternalKieContainer(org.drools.core.impl.InternalKieContainer) ReleaseId(org.kie.api.builder.ReleaseId) MemoryKieModule(org.drools.compiler.kie.builder.impl.MemoryKieModule) KieModule(org.kie.api.builder.KieModule) InternalKieContainer(org.drools.core.impl.InternalKieContainer) KieContainer(org.kie.api.runtime.KieContainer) Test(org.junit.Test)

Example 5 with InternalKieContainer

use of org.drools.core.impl.InternalKieContainer in project drools by kiegroup.

the class KieContainerTest method testReleaseIdGetters.

@Test
public void testReleaseIdGetters() {
    KieServices ks = KieServices.Factory.get();
    ReleaseId releaseId = ks.newReleaseId("org.kie", "test-delete-v", "1.0.1");
    createAndDeployJar(ks, releaseId, createDRL("ruleA"));
    ReleaseId configuredReleaseId = ks.newReleaseId("org.kie", "test-delete-v", "RELEASE");
    KieContainer kieContainer = ks.newKieContainer(configuredReleaseId);
    InternalKieContainer iKieContainer = (InternalKieContainer) kieContainer;
    assertEquals(configuredReleaseId, iKieContainer.getConfiguredReleaseId());
    assertEquals(releaseId, iKieContainer.getResolvedReleaseId());
    assertEquals(releaseId, iKieContainer.getReleaseId());
    // demonstrate internal API behavior, in the future shall this be enforced?
    assertEquals(configuredReleaseId, iKieContainer.getContainerReleaseId());
    ReleaseId newReleaseId = ks.newReleaseId("org.kie", "test-delete-v", "1.0.2");
    createAndDeployJar(ks, newReleaseId, createDRL("ruleA"));
    iKieContainer.updateToVersion(newReleaseId);
    assertEquals(configuredReleaseId, iKieContainer.getConfiguredReleaseId());
    assertEquals(newReleaseId, iKieContainer.getResolvedReleaseId());
    assertEquals(newReleaseId, iKieContainer.getReleaseId());
    // demonstrate internal API behavior, in the future shall this be enforced?
    assertEquals(newReleaseId, iKieContainer.getContainerReleaseId());
}
Also used : KieServices(org.kie.api.KieServices) InternalKieContainer(org.drools.core.impl.InternalKieContainer) ReleaseId(org.kie.api.builder.ReleaseId) InternalKieContainer(org.drools.core.impl.InternalKieContainer) KieContainer(org.kie.api.runtime.KieContainer) Test(org.junit.Test)

Aggregations

InternalKieContainer (org.drools.core.impl.InternalKieContainer)8 Test (org.junit.Test)8 KieContainer (org.kie.api.runtime.KieContainer)8 KieServices (org.kie.api.KieServices)5 ReleaseId (org.kie.api.builder.ReleaseId)5 KieModuleModel (org.kie.api.builder.model.KieModuleModel)4 StatelessKieSession (org.kie.api.runtime.StatelessKieSession)3 MemoryKieModule (org.drools.compiler.kie.builder.impl.MemoryKieModule)2 KieModule (org.kie.api.builder.KieModule)2 KieSession (org.kie.api.runtime.KieSession)2 StringReader (java.io.StringReader)1 MBeanServer (javax.management.MBeanServer)1 ObjectName (javax.management.ObjectName)1 Folder (org.drools.compiler.compiler.io.Folder)1 MemoryFileSystem (org.drools.compiler.compiler.io.memory.MemoryFileSystem)1 KieBase (org.kie.api.KieBase)1 Results (org.kie.api.builder.Results)1 KieBaseModel (org.kie.api.builder.model.KieBaseModel)1 KieSessionModel (org.kie.api.builder.model.KieSessionModel)1 Resource (org.kie.api.io.Resource)1