@Test public void testAsyncAuditProducer() throws Exception { Environment env = createEnvironment(context); // load the process KieBase kbase = createKnowledgeBase(); // create a new session KieSession session = createSession(kbase, env); Map<String, Object> jmsProps = new HashMap<String, Object>(); jmsProps.put("jbpm.audit.jms.transacted", false); jmsProps.put("jbpm.audit.jms.connection.factory", factory); jmsProps.put("jbpm.audit.jms.queue", queue); AbstractAuditLogger logger = AuditLoggerFactory.newInstance(Type.JMS, session, jmsProps); Assertions.assertThat(logger).isNotNull(); Assertions.assertThat((logger instanceof AsyncAuditLogProducer)).isTrue(); // start process instance long processInstanceId = session.startProcess("com.sample.ruleflow").getId(); // setup listener MessageReceiver receiver = new MessageReceiver(); List<Message> messages = receiver.receive(queue); Assertions.assertThat(messages).isNotNull(); Assertions.assertThat(messages.size()).isEqualTo(11); }
@Test public void testAsyncAuditProducerTransactionalWithRollback() throws Exception { UserTransaction ut = InitialContext.doLookup("java:comp/UserTransaction"); ut.begin(); Environment env = createEnvironment(context); // load the process KieBase kbase = createKnowledgeBase(); // create a new session KieSession session = createSession(kbase, env); Map<String, Object> jmsProps = new HashMap<String, Object>(); jmsProps.put("jbpm.audit.jms.transacted", true); jmsProps.put("jbpm.audit.jms.connection.factory", factory); jmsProps.put("jbpm.audit.jms.queue", queue); AbstractAuditLogger logger = AuditLoggerFactory.newInstance(Type.JMS, session, jmsProps); Assertions.assertThat(logger).isNotNull(); Assertions.assertThat((logger instanceof AsyncAuditLogProducer)).isTrue(); // start process instance long processInstanceId = session.startProcess("com.sample.ruleflow").getId(); ut.rollback(); MessageReceiver receiver = new MessageReceiver(); List<Message> messages = receiver.receive(queue); Assertions.assertThat(messages).isNotNull(); Assertions.assertThat(messages.size()).isEqualTo(0); }
@Test public void testAsyncAuditProducerNonTransactionalWithRollback() throws Exception { UserTransaction ut = InitialContext.doLookup("java:comp/UserTransaction"); ut.begin(); Environment env = createEnvironment(context); // load the process KieBase kbase = createKnowledgeBase(); // create a new session KieSession session = createSession(kbase, env); Map<String, Object> jmsProps = new HashMap<String, Object>(); jmsProps.put("jbpm.audit.jms.transacted", false); jmsProps.put("jbpm.audit.jms.connection.factory", jmsServer.lookup("ConnectionFactory")); jmsProps.put("jbpm.audit.jms.queue", queue); AbstractAuditLogger logger = AuditLoggerFactory.newInstance(Type.JMS, session, jmsProps); Assertions.assertThat(logger).isNotNull(); Assertions.assertThat((logger instanceof AsyncAuditLogProducer)).isTrue(); // start process instance long processInstanceId = session.startProcess("com.sample.ruleflow").getId(); ut.rollback(); MessageReceiver receiver = new MessageReceiver(); List<Message> messages = receiver.receive(queue); Assertions.assertThat(messages).isNotNull(); Assertions.assertThat(messages.size()).isEqualTo(11); }
@Test public void testAsyncAuditProducerTransactional() throws Exception { UserTransaction ut = InitialContext.doLookup("java:comp/UserTransaction"); ut.begin(); Environment env = createEnvironment(context); // load the process KieBase kbase = createKnowledgeBase(); // create a new session KieSession session = createSession(kbase, env); Map<String, Object> jmsProps = new HashMap<String, Object>(); jmsProps.put("jbpm.audit.jms.transacted", true); jmsProps.put("jbpm.audit.jms.connection.factory", factory); jmsProps.put("jbpm.audit.jms.queue", queue); AbstractAuditLogger logger = AuditLoggerFactory.newInstance(Type.JMS, session, jmsProps); Assertions.assertThat(logger).isNotNull(); Assertions.assertThat((logger instanceof AsyncAuditLogProducer)).isTrue(); // start process instance long processInstanceId = session.startProcess("com.sample.ruleflow").getId(); ut.commit(); MessageReceiver receiver = new MessageReceiver(); List<Message> messages = receiver.receive(queue); Assertions.assertThat(messages).isNotNull(); Assertions.assertThat(messages.size()).isEqualTo(11); }
jmsProps.put("jbpm.audit.jms.connection.factory", factory); jmsProps.put("jbpm.audit.jms.queue", queue); AbstractAuditLogger logger = AuditLoggerFactory.newInstance(Type.JMS, session, jmsProps); Assertions.assertThat(logger).isNotNull(); Assertions.assertThat((logger instanceof AsyncAuditLogProducer)).isTrue();
jmsProps.put("jbpm.audit.jms.connection.factory", factory); jmsProps.put("jbpm.audit.jms.queue", queue); AbstractAuditLogger logger = AuditLoggerFactory.newInstance(Type.JMS, session, jmsProps); Assertions.assertThat(logger).isNotNull(); Assertions.assertThat((logger instanceof AsyncAuditLogProducer)).isTrue();
jmsProps.put("jbpm.audit.jms.connection.factory", factory); jmsProps.put("jbpm.audit.jms.queue", queue); AbstractAuditLogger logger = AuditLoggerFactory.newInstance(Type.JMS, session, jmsProps); Assertions.assertThat(logger).isNotNull(); Assertions.assertThat((logger instanceof AsyncAuditLogProducer)).isTrue();
result = JPAKnowledgeService.newStatefulKnowledgeSession(kbase, conf, env); AuditLoggerFactory.newInstance(Type.JPA, result, null); logService = new JPAAuditLogService(env); } else {
@Test @Ignore("beta4 phreak") public void testStartTimerCycleFromDiscDRL() throws Exception { KieBase kbase = createKnowledgeBaseFromDisc("rules-timer.drl"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); long sessionId = ksession.getIdentifier(); Environment env = ksession.getEnvironment(); final List<String> list = new ArrayList<String>(); ksession.setGlobal("list", list); ( (SingleSessionCommandService) ( (CommandBasedStatefulKnowledgeSession) ksession ).getRunner() ).getKieSession() .addEventListener(new TriggerRulesEventListener(ksession)); ksession.fireAllRules(); Thread.sleep(5000); assertEquals(2, list.size()); logger.info("dispose"); ksession.dispose(); ksession = JPAKnowledgeService.loadStatefulKnowledgeSession(sessionId, kbase, null, env); AuditLoggerFactory.newInstance(Type.JPA, ksession, null); final List<String> list2 = new ArrayList<String>(); ksession.setGlobal("list", list2); ( (SingleSessionCommandService) ( (CommandBasedStatefulKnowledgeSession) ksession ).getRunner() ).getKieSession() .addEventListener(new TriggerRulesEventListener(ksession)); ksession.fireAllRules(); Thread.sleep(6000); assertEquals(3, list2.size()); }
@Test @Ignore("beta4 phreak") public void testStartTimerCycleFromClasspathDRL() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("rules-timer.drl"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); long sessionId = ksession.getIdentifier(); Environment env = ksession.getEnvironment(); final List<String> list = new ArrayList<String>(); ksession.setGlobal("list", list); ( (SingleSessionCommandService) ( (CommandBasedStatefulKnowledgeSession) ksession ).getRunner() ).getKieSession() .addEventListener(new TriggerRulesEventListener(ksession)); ksession.fireAllRules(); Thread.sleep(5000); assertEquals(2, list.size()); logger.info("dispose"); ksession.dispose(); ksession = JPAKnowledgeService.loadStatefulKnowledgeSession(sessionId, kbase, null, env); AuditLoggerFactory.newInstance(Type.JPA, ksession, null); final List<String> list2 = new ArrayList<String>(); ksession.setGlobal("list", list2); ( (SingleSessionCommandService) ( (CommandBasedStatefulKnowledgeSession) ksession ).getRunner() ).getKieSession() .addEventListener(new TriggerRulesEventListener(ksession)); ksession.fireAllRules(); Thread.sleep(5000); assertEquals(3, list2.size()); }
@Before public void setUp() throws Exception { context = setupWithPoolingDataSource(JBPM_PERSISTENCE_UNIT_NAME); // load the process KieBase kbase = createKnowledgeBase(); // create a new session Environment env = createEnvironment(context); session = createKieSession(kbase, env); // working memory logger AbstractAuditLogger dblogger = AuditLoggerFactory.newInstance(Type.JPA, session, null); assertNotNull(dblogger); assertTrue(dblogger instanceof JPAWorkingMemoryDbLogger); auditLogService = new CommandBasedAuditLogService(session); }
protected KieSession restoreSession(KieSession ksession, boolean noCache) { if (sessionPersistence) { long id = ksession.getIdentifier(); KieBase kbase = ksession.getKieBase(); Environment env = null; if (noCache) { env = createEnvironment(emf); } else { env = ksession.getEnvironment(); } if( pessimisticLocking ) { env.set(USE_PESSIMISTIC_LOCKING, true); } KieSessionConfiguration config = ksession.getSessionConfiguration(); config.setOption(ForceEagerActivationOption.YES); ksession.dispose(); StatefulKnowledgeSession result = JPAKnowledgeService.loadStatefulKnowledgeSession(id, kbase, config, env); AuditLoggerFactory.newInstance(Type.JPA, result, null); return result; } else { return ksession; } }
kbase, null, env); ksession.addEventListener(countDownListener); AuditLoggerFactory.newInstance(Type.JPA, ksession, null);
kbase, null, env); ksession.addEventListener(countDownListener); AuditLoggerFactory.newInstance(Type.JPA, ksession, null);
@Test public void testAsyncAuditProducer() throws Exception { Environment env = createEnvironment(context); // load the process KieBase kbase = createKnowledgeBase(); // create a new session KieSession session = createSession(kbase, env); Map<String, Object> jmsProps = new HashMap<String, Object>(); jmsProps.put("jbpm.audit.jms.transacted", false); jmsProps.put("jbpm.audit.jms.connection.factory", factory); jmsProps.put("jbpm.audit.jms.queue", queue); AbstractAuditLogger logger = AuditLoggerFactory.newInstance(Type.JMS, session, jmsProps); Assertions.assertThat(logger).isNotNull(); Assertions.assertThat((logger instanceof AsyncAuditLogProducer)).isTrue(); // start process instance long processInstanceId = session.startProcess("com.sample.ruleflow").getId(); // setup listener MessageReceiver receiver = new MessageReceiver(); List<Message> messages = receiver.receive(queue); Assertions.assertThat(messages).isNotNull(); Assertions.assertThat(messages.size()).isEqualTo(11); }
@Test public void testAsyncAuditProducerTransactionalWithRollback() throws Exception { UserTransaction ut = InitialContext.doLookup("java:comp/UserTransaction"); ut.begin(); Environment env = createEnvironment(context); // load the process KieBase kbase = createKnowledgeBase(); // create a new session KieSession session = createSession(kbase, env); Map<String, Object> jmsProps = new HashMap<String, Object>(); jmsProps.put("jbpm.audit.jms.transacted", true); jmsProps.put("jbpm.audit.jms.connection.factory", factory); jmsProps.put("jbpm.audit.jms.queue", queue); AbstractAuditLogger logger = AuditLoggerFactory.newInstance(Type.JMS, session, jmsProps); Assertions.assertThat(logger).isNotNull(); Assertions.assertThat((logger instanceof AsyncAuditLogProducer)).isTrue(); // start process instance long processInstanceId = session.startProcess("com.sample.ruleflow").getId(); ut.rollback(); MessageReceiver receiver = new MessageReceiver(); List<Message> messages = receiver.receive(queue); Assertions.assertThat(messages).isNotNull(); Assertions.assertThat(messages.size()).isEqualTo(0); }
@Test public void testAsyncAuditProducerNonTransactionalWithRollback() throws Exception { UserTransaction ut = InitialContext.doLookup("java:comp/UserTransaction"); ut.begin(); Environment env = createEnvironment(context); // load the process KieBase kbase = createKnowledgeBase(); // create a new session KieSession session = createSession(kbase, env); Map<String, Object> jmsProps = new HashMap<String, Object>(); jmsProps.put("jbpm.audit.jms.transacted", false); jmsProps.put("jbpm.audit.jms.connection.factory", jmsServer.lookup("ConnectionFactory")); jmsProps.put("jbpm.audit.jms.queue", queue); AbstractAuditLogger logger = AuditLoggerFactory.newInstance(Type.JMS, session, jmsProps); Assertions.assertThat(logger).isNotNull(); Assertions.assertThat((logger instanceof AsyncAuditLogProducer)).isTrue(); // start process instance long processInstanceId = session.startProcess("com.sample.ruleflow").getId(); ut.rollback(); MessageReceiver receiver = new MessageReceiver(); List<Message> messages = receiver.receive(queue); Assertions.assertThat(messages).isNotNull(); Assertions.assertThat(messages.size()).isEqualTo(11); }
@Test @Ignore("beta4 phreak") public void testStartTimerCycleFromDiscDRL() throws Exception { KieBase kbase = createKnowledgeBaseFromDisc("rules-timer.drl"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); long sessionId = ksession.getIdentifier(); Environment env = ksession.getEnvironment(); final List<String> list = new ArrayList<String>(); ksession.setGlobal("list", list); ( (SingleSessionCommandService) ( (CommandBasedStatefulKnowledgeSession) ksession ).getRunner() ).getKieSession() .addEventListener(new TriggerRulesEventListener(ksession)); ksession.fireAllRules(); Thread.sleep(5000); assertEquals(2, list.size()); logger.info("dispose"); ksession.dispose(); ksession = JPAKnowledgeService.loadStatefulKnowledgeSession(sessionId, kbase, null, env); AuditLoggerFactory.newInstance(Type.JPA, ksession, null); final List<String> list2 = new ArrayList<String>(); ksession.setGlobal("list", list2); ( (SingleSessionCommandService) ( (CommandBasedStatefulKnowledgeSession) ksession ).getRunner() ).getKieSession() .addEventListener(new TriggerRulesEventListener(ksession)); ksession.fireAllRules(); Thread.sleep(6000); assertEquals(3, list2.size()); }
@Before public void setUp() throws Exception { context = setupWithPoolingDataSource(JBPM_PERSISTENCE_UNIT_NAME); // load the process KieBase kbase = createKnowledgeBase(); // create a new session Environment env = createEnvironment(context); session = createKieSession(kbase, env); // working memory logger AbstractAuditLogger dblogger = AuditLoggerFactory.newInstance(Type.JPA, session, null); assertNotNull(dblogger); assertTrue(dblogger instanceof JPAWorkingMemoryDbLogger); auditLogService = new CommandBasedAuditLogService(session); }
protected KieSession restoreSession(KieSession ksession, boolean noCache) { if (sessionPersistence) { long id = ksession.getIdentifier(); KieBase kbase = ksession.getKieBase(); Environment env = null; if (noCache) { env = createEnvironment(emf); } else { env = ksession.getEnvironment(); } if( pessimisticLocking ) { env.set(USE_PESSIMISTIC_LOCKING, true); } KieSessionConfiguration config = ksession.getSessionConfiguration(); config.setOption(ForceEagerActivationOption.YES); ksession.dispose(); StatefulKnowledgeSession result = JPAKnowledgeService.loadStatefulKnowledgeSession(id, kbase, config, env); AuditLoggerFactory.newInstance(Type.JPA, result, null); return result; } else { return ksession; } }