@Override public org.kie.api.runtime.manager.RuntimeEnvironmentBuilder newClasspathKmoduleDefaultBuilder(String kbaseName, String ksessionName) { return setupClasspathKmoduleBuilder( KieServices.Factory.get().newKieClasspathContainer(), kbaseName, ksessionName ); }
@Test public void testNewKieClasspathIDs() { KieContainer c1 = ks.newKieClasspathContainer("id1"); KieContainer c2 = ks.newKieClasspathContainer("id2"); try { ks.newKieClasspathContainer("id2"); fail("should not allow repeated container IDs."); } catch (IllegalStateException is) { // ok. } }
@Test public void testDisposeClearTheIDReference() { ReleaseId releaseId = ks.newReleaseId("org.kie", "test-delete", "1.0.0"); createAndDeployJar( ks, releaseId, createDRL("ruleA") ); KieContainer c1 = ks.newKieContainer("id1", releaseId); try { ks.newKieClasspathContainer("id1"); fail("should not allow repeated container IDs."); } catch (IllegalStateException is) { // ok. } ((KieContainerImpl) c1).dispose(); ks.newKieClasspathContainer("id1"); // now OK. }
@Override public KieContainer newKieClasspathContainer() { return kieServices.newKieClasspathContainer(); }
@Override public KieContainer newKieClasspathContainer(ClassLoader arg0) { return kieServices.newKieClasspathContainer(arg0); }
@Test public void testNewKieContainerIDs() { ReleaseId releaseId = ks.newReleaseId("org.kie", "test-delete", "1.0.0"); createAndDeployJar( ks, releaseId, createDRL("ruleA") ); KieContainer c1 = ks.newKieContainer("id1", releaseId); KieContainer c2 = ks.newKieClasspathContainer("id2"); try { ks.newKieContainer("id2", releaseId); fail("should not allow repeated container IDs."); } catch (IllegalStateException is) { // ok. } try { ks.newKieClasspathContainer("id1"); fail("should not allow repeated container IDs."); } catch (IllegalStateException is) { // ok. } }
@Override public org.kie.api.runtime.manager.RuntimeEnvironmentBuilder newClasspathKmoduleDefaultBuilder(String kbaseName, String ksessionName) { return setupClasspathKmoduleBuilder( KieServices.Factory.get().newKieClasspathContainer(), kbaseName, ksessionName ); }
@Override public org.kie.api.runtime.manager.RuntimeEnvironmentBuilder newClasspathKmoduleDefaultBuilder(String kbaseName, String ksessionName) { return setupClasspathKmoduleBuilder(KieServices.Factory.get().newKieClasspathContainer(), kbaseName, ksessionName); }
@Override public org.kie.api.runtime.manager.RuntimeEnvironmentBuilder newClasspathKmoduleDefaultBuilder(String kbaseName, String ksessionName) { return setupClasspathKmoduleBuilder(KieServices.Factory.get().newKieClasspathContainer(), kbaseName, ksessionName); }
/** * Drools expects to find the 'kmodule.xml' file in src/main/resources/META-INF. * It must contain a definition of kbase and kession with same base name exemple : * * <?xml version="1.0" encoding="UTF-8"?> * <kmodule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://jboss.org/kie/6.0.0/kmodule"> * <kbase name="whatever_you_want" packages="org..."> * <ksession name="ff4jDroolsStrategy"/> * </kbase> * </kmodule> */ public static synchronized void initFromBaseName(String baseName) { if (isInitialized()) { throw new IllegalStateException("This Factory has already be initialized once"); } _instance = new FF4jDroolsService(); _instance.basename = baseName; _instance.kieServices = KieServices.Factory.get(); _instance.kieContainer = _instance.kieServices.newKieClasspathContainer(); _instance.ksession = _instance.kieContainer.newKieSession(baseName); if (_instance.ksession == null) { throw new IllegalArgumentException("Cannot find kName " + baseName + " , check kmodule.xml file."); } }
KieContainer kc = ks.newKieClasspathContainer(); Results messages = kc.verify();
KieContainer kc = ks.newKieClasspathContainer(); Results messages = kc.verify();
@Override public void start(BundleContext context) throws Exception { KieServices ks = KieServices.Factory.get(); KieContainer kcont = ks.newKieClasspathContainer(getClass() .getClassLoader()); KieBase kbase = kcont.getKieBase("SimpleRuleKBase"); logger.info("KieSession newKieSession."); ksession = kbase.newKieSession(); ksession.addEventListener(new DebugAgendaEventListener()); ksession.addEventListener(new DebugRuleRuntimeEventListener()); Customer customer = customerPoor(); logger.info("KieSession fireAllRules. {}", customer); FactHandle fh = ksession.insert(customer); ksession.fireAllRules(); ksession.delete(fh); logger.info("After rule {}", customer); customer = customerNormal(); logger.info("KieSession fireAllRules. {}", customer); fh = ksession.insert(customer); ksession.fireAllRules(); ksession.delete(fh); logger.info("After rule {}", customer); customer = customerVip(); logger.info("KieSession fireAllRules. {}", customer); fh = ksession.insert(customer); ksession.fireAllRules(); ksession.delete(fh); logger.info("After rule {}", customer); }
KieContainer kc2 = ks.newKieClasspathContainer("myID2"); KieContainerMonitorMXBean c2Monitor = JMX.newMXBeanProxy( mbserver,