@Override protected StatefulKnowledgeSession createSession(KieBase kbase) { EnvironmentBuilder envBuilder = new ProcessStorageEnvironmentBuilder( storage ); Environment env = KieServices.get().newEnvironment(); env.set( EnvironmentName.TRANSACTION_MANAGER, envBuilder.getTransactionManager() ); env.set( EnvironmentName.PERSISTENCE_CONTEXT_MANAGER, envBuilder.getPersistenceContextManager() ); return JPAKnowledgeService.newStatefulKnowledgeSession( kbase, null, env ); }
protected KieContainer getKieContainer(){ KieServices kieServices = KieServices.get(); KieContainer kieContainer = kieServices.getKieClasspathContainer(); return kieContainer; }
@Test public void testMarshallWithTimer() throws Exception { // DROOLS-2210 String drl = "declare String @role(event) end\n" + "\n" + "rule R1 when\n" + " $s : String( ) over window:time( 5s )\n" + " then\n" + " delete( $s );\n" + "end\n"; KieBase kBase = initializeKnowledgeBase( drl ); KieSession ksession = kBase.newKieSession(); ksession.insert( "test" ); assertEquals( 1, ksession.fireAllRules() ); Marshaller marshaller = KieServices.get().getMarshallers().newMarshaller(kBase); ByteArrayOutputStream baos = new ByteArrayOutputStream(); marshaller.marshall( baos, ksession ); ksession.dispose(); ByteArrayInputStream bais = new ByteArrayInputStream( baos.toByteArray() ); ksession = marshaller.unmarshall( bais ); assertEquals( 0, ksession.fireAllRules() ); } }
" end"; final KieServices kieServices = KieServices.get(); final Resource drlResource = kieServices.getResources().newByteArrayResource( rule.getBytes(StandardCharsets.UTF_8.name()), StandardCharsets.UTF_8.name());
KieContainer getKieContainer() { return KieServices.get().getKieClasspathContainer(); }
@Override protected StatefulKnowledgeSession disposeAndReloadSession(StatefulKnowledgeSession ksession, long ksessionId, KieBase kbase) { ksession.dispose(); EnvironmentBuilder envBuilder = new ProcessStorageEnvironmentBuilder( storage ); Environment env = KieServices.get().newEnvironment(); env.set( EnvironmentName.TRANSACTION_MANAGER, envBuilder.getTransactionManager() ); env.set( EnvironmentName.PERSISTENCE_CONTEXT_MANAGER, envBuilder.getPersistenceContextManager() ); return JPAKnowledgeService.loadStatefulKnowledgeSession( ksessionId, kbase, null, env ); }
protected KieSession getKieSession() { KieServices kieServices = KieServices.get(); KieContainer kieContainer = kieServices.getKieClasspathContainer(); KieSession kieSession = kieContainer.newKieSession("all-rules"); return kieSession; }
private void readWrite(KieBase knowledgeBase, KieSession ksession, KieSessionConfiguration config) { try { Marshaller marshaller = MarshallerFactory.newMarshaller( knowledgeBase ); ByteArrayOutputStream o = new ByteArrayOutputStream(); marshaller.marshall( o, ksession ); ksession = marshaller.unmarshall( new ByteArrayInputStream( o.toByteArray() ), config, KieServices.get().newEnvironment() ); ksession.fireAllRules(); //scheduler = ksession.<SessionClock>getSessionClock(); } catch ( Exception e ) { throw new RuntimeException( e ); } }
protected KieSession getKieSession(){ KieServices kieServices = KieServices.get(); KieContainer kieContainer = kieServices.getKieClasspathContainer(); KieSession kieSession = kieContainer.newKieSession("all-rules"); return kieSession; } }
@Override public void init(Config.Scope config) { this.ks = KieServices.get(); }
@Test public void testHelloWorldWithSpace() throws Exception { // DROOLS-2338 final KieServices kieServices = KieServices.get(); final Path dir = Paths.get("/tmp/t tt"); Files.createDirectories(dir); final String text = "rule \"Hello world rule\"\n" + "when\n" + "then\n" + " System.out.println(\"Hello world\");" + "end\n"; final Path filePath = dir.resolve("one.drl"); Files.write(filePath, text.getBytes()); final KieFileSystem fs = kieServices.newKieFileSystem(); fs.write( ResourceFactory.newUrlResource("file:/tmp/t%20tt/one.drl")); KieBuilder kieBuilder = kieServices.newKieBuilder(fs); kieBuilder.buildAll(); KieModule kieModule = kieBuilder.getKieModule(); KieSession ksession = kieServices.newKieContainer(kieModule.getReleaseId()).newKieSession(); ksession.insert(new Object()); int count = ksession.fireAllRules(); assertEquals( 1, count ); }
SessionConfiguration config = SessionConfiguration.newInstance(); config.setClockType( ClockType.PSEUDO_CLOCK ); KieSession ksession = knowledgeBase.newKieSession( config, KieServices.get().newEnvironment() ); PseudoClockScheduler scheduler = (PseudoClockScheduler) ksession.<SessionClock> getSessionClock(); Marshaller marshaller = MarshallerFactory.newMarshaller( knowledgeBase );
private Environment mergeEnvironment(Environment env) { if (env == null) { env = KieServices.get().newEnvironment(); } if (env.get(EnvironmentName.PERSISTENCE_CONTEXT_MANAGER) == null) { try { Class<?> clazz = Class.forName("org.jbpm.persistence.InfinispanProcessPersistenceContextManager"); Constructor<?> c = clazz.getConstructor(Environment.class); env.set(EnvironmentName.PERSISTENCE_CONTEXT_MANAGER, c.newInstance(env)); } catch (ClassNotFoundException e) { env.set(EnvironmentName.PERSISTENCE_CONTEXT_MANAGER, new InfinispanPersistenceContextManager(env)); } catch (Exception e) { e.printStackTrace(); env.set(EnvironmentName.PERSISTENCE_CONTEXT_MANAGER, new InfinispanPersistenceContextManager(env)); } } Object tm = env.get(EnvironmentName.TRANSACTION_MANAGER); if (tm instanceof javax.transaction.TransactionManager) { Object ut = env.get(EnvironmentName.TRANSACTION); if (ut == null && tm instanceof javax.transaction.UserTransaction) { env.set(EnvironmentName.TRANSACTION, tm); } env.set(EnvironmentName.TRANSACTION_MANAGER, TransactionManagerFactory.get().newTransactionManager(env)); } return env; }
@Test public void testPersistenceTimer2() throws Exception { KieBase kBase = (KieBase) ctx.getBean("kb_persistence"); //KieSession service = kBase.newKieSession();//(KieSession) ctx.getBean("jpaSingleSessionCommandService"); KieSession service = (KieSession) ctx.getBean("jpaSingleSessionCommandService"); long sessionId = service.getIdentifier(); ProcessInstance processInstance = service.startProcess("org.drools.test.ProcessTimer2"); log.debug("Started process instance {}", processInstance.getId()); waitForTimer(); // wait for timer process to complete Thread.sleep(500); Environment env = KieServices.get().newEnvironment(); env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, ctx.getBean("myEmf")); env.set(EnvironmentName.TRANSACTION_MANAGER, ctx.getBean("txManager")); KieStoreServices kstore = (KieStoreServices) ctx.getBean("kstore1"); KieBase kbase1 = (KieBase) ctx.getBean("kb_persistence"); service = kstore.loadKieSession(sessionId, kbase1, null, env); processInstance = service.getProcessInstance(processInstance.getId()); assertNull(processInstance); }
@Test public void testPersistenceTimer2() throws Exception { KieBase kBase = (KieBase) ctx.getBean("kb_persistence"); //KieSession service = kBase.newKieSession();//(KieSession) ctx.getBean("jpaSingleSessionCommandService"); KieSession service = (KieSession) ctx.getBean("jpaSingleSessionCommandService"); long sessionId = service.getIdentifier(); ProcessInstance processInstance = service.startProcess("org.drools.test.ProcessTimer2"); log.debug("Started process instance {}", processInstance.getId()); waitForTimer(); // wait for timer process to complete Thread.sleep(500); Environment env = KieServices.get().newEnvironment(); env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, ctx.getBean("myEmf")); env.set(EnvironmentName.TRANSACTION_MANAGER, ctx.getBean("txManager")); KieStoreServices kstore = (KieStoreServices) ctx.getBean("kstore1"); KieBase kbase1 = (KieBase) ctx.getBean("kb_persistence"); service = kstore.loadKieSession(sessionId, kbase1, null, env); processInstance = service.getProcessInstance(processInstance.getId()); assertNull(processInstance); }
private Environment getEnvironment() { Environment environment = KieServices.get().newEnvironment(); environment.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf); environment.set(EnvironmentName.TRANSACTION_MANAGER, txm); environment.set(EnvironmentName.GLOBALS, new MapGlobalResolver()); return environment; }
private Environment getEnvironment() { Environment environment = KieServices.get().newEnvironment(); environment.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf); environment.set(EnvironmentName.TRANSACTION_MANAGER, txm); environment.set(EnvironmentName.GLOBALS, new MapGlobalResolver()); return environment; }
private void testComplexDMNModel(final boolean useExecutableModel) throws Exception { if (useExecutableModel) { buildKJarProject(KJAR_NAME, getMavenGoalsAndOptions(true)); } else { buildKJarProject(KJAR_NAME, getMavenGoalsAndOptions(false)); } final KieServices kieServices = KieServices.get(); final ReleaseId releaseId = kieServices.newReleaseId(GROUP_ID, ARTIFACT_ID, VERSION); final KieContainer kieContainer = kieServices.newKieContainer(releaseId); final KieSession kieSession = kieContainer.newKieSession(); try { final DMNRuntime dmnRuntime = kieSession.getKieRuntime(DMNRuntime.class); final DMNModel dmnModel = dmnRuntime.getModel("http://www.trisotech.com/definitions/_3068644b-d2c7-4b81-ab9d-64f011f81f47", "DMN Specification Chapter 11 Example"); assertThat(dmnModel).isNotNull(); assertThat(dmnModel.getMessages()).isEmpty(); final DMNContext context = DMNFactory.newContext(); context.set("Applicant data", getApplicantData()); context.set("Bureau data", getBureauData()); context.set("Requested product", getRequestedProduct()); context.set("Supporting documents", null); final DMNResult dmnResult = dmnRuntime.evaluateAll(dmnModel, context); assertThat(dmnModel.getMessages()).isEmpty(); final DMNContext result = dmnResult.getContext(); assertThat(result.get("Strategy")).isEqualTo("THROUGH"); assertThat(result.get("Routing")).isEqualTo("ACCEPT"); } finally { kieSession.dispose(); } }
@Test public void testSimulationCommand() { PathFinder finder = PathFinderFactory.getInstance(this.getClass().getResourceAsStream("/BPMN2-ExclusiveSplit.bpmn2")); List<SimulationPath> paths = finder.findPaths(new SimulationFilterPathFormatConverter()); SimulationContext context = SimulationContextFactory.newContext(new HardCodedSimulationDataProvider()); KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder(); builder.add(ResourceFactory.newClassPathResource("BPMN2-ExclusiveSplit.bpmn2"), ResourceType.BPMN2); KieBase kbase = builder.newKieBase(); KieSessionConfiguration config = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(); config.setOption(ClockTypeOption.get("pseudo") ); for (SimulationPath sp : paths) { KieSession session = kbase.newKieSession(config, KieServices.get().newEnvironment()); ((SessionPseudoClock) session.getSessionClock()).advanceTime(System.currentTimeMillis(), TimeUnit.MILLISECONDS); session.execute(new SimulateProcessPathCommand("com.sample.test", context, sp)); } } }
@Test public void testSimulationCommand() { PathFinder finder = PathFinderFactory.getInstance(this.getClass().getResourceAsStream("/BPMN2-ExclusiveSplit.bpmn2")); List<SimulationPath> paths = finder.findPaths(new SimulationFilterPathFormatConverter()); SimulationContext context = SimulationContextFactory.newContext(new HardCodedSimulationDataProvider()); KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder(); builder.add(ResourceFactory.newClassPathResource("BPMN2-ExclusiveSplit.bpmn2"), ResourceType.BPMN2); KieBase kbase = builder.newKieBase(); KieSessionConfiguration config = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(); config.setOption(ClockTypeOption.get("pseudo") ); for (SimulationPath sp : paths) { KieSession session = kbase.newKieSession(config, KieServices.get().newEnvironment()); ((SessionPseudoClock) session.getSessionClock()).advanceTime(System.currentTimeMillis(), TimeUnit.MILLISECONDS); session.execute(new SimulateProcessPathCommand("com.sample.test", context, sp)); } } }