public void initStartDisposeAndLoadSession() { try { EntityManager em = txm.getEntityManagerFactory().createEntityManager(); // create new ksession with kstore KieSession ksession = kstore.newKieSession(kbase, null, getEnvironment()); sessionId = ksession.getId(); logger.info("\n\tSession id: " + sessionId + "\n"); ksession.getWorkItemManager().registerWorkItemHandler("testWorkItemHandler", workItemHandler); ksession.startProcess("timer-flow", null); Thread.sleep(4000); ksession.dispose(); } catch (Exception ex) { throw new IllegalStateException("The endTheProcess method has been interrupted", ex); } }
public void endTheProcess() { try { KieSession ksession = kstore.loadKieSession(sessionId, kbase, null, getEnvironment()); // Sleep to check if the timer continues executing. logger.info("\n\nSleeping to check that the timer is still running"); Thread.sleep(5000); ksession .getWorkItemManager() .completeWorkItem(TestWorkItemHandler.getWorkItem().getId(), null); logger.info("\n\nSleeping to check that the timer is no longer running"); Thread.sleep(3000); logger.info("Ok"); ksession.dispose(); } catch (InterruptedException ex) { throw new IllegalStateException("The endTheProcess method has been interrupted", ex); } }