Search in sources :

Example 1 with JpaPersistenceContextManager

use of org.drools.persistence.jpa.JpaPersistenceContextManager in project drools by kiegroup.

the class JtaTransactionManagerTest method testSingleSessionCommandServiceAndJtaTransactionManagerTogether.

@Test
public void testSingleSessionCommandServiceAndJtaTransactionManagerTogether() throws Exception {
    // Initialize drools environment stuff
    Environment env = createEnvironment(context);
    KieBase kbase = initializeKnowledgeBase(simpleRule);
    KieSession commandKSession = KieServices.get().getStoreServices().newKieSession(kbase, null, env);
    // StatefulKnowledgeSession commandKSession = JPAKnowledgeService.newStatefulKnowledgeSession( kbase, null, env );
    // initialize CSEM
    commandKSession.getIdentifier();
    PersistableRunner commandService = (PersistableRunner) ((CommandBasedStatefulKnowledgeSession) commandKSession).getRunner();
    JpaPersistenceContextManager jpm = (JpaPersistenceContextManager) getValueOfField("jpm", commandService);
    TransactionTestObject mainObject = new TransactionTestObject();
    mainObject.setName("mainCommand");
    TransactionTestObject subObject = new TransactionTestObject();
    subObject.setName("subCommand");
    mainObject.setSubObject(subObject);
    UserTransaction ut = InitialContext.doLookup("java:comp/UserTransaction");
    ut.begin();
    HashMap<String, Object> emEnv = new HashMap<String, Object>();
    emEnv.put(COMMAND_ENTITY_MANAGER_FACTORY, emf);
    emEnv.put(COMMAND_ENTITY_MANAGER, jpm.getCommandScopedEntityManager());
    TransactionTestCommand txTestCmd = new TransactionTestCommand(mainObject, subObject, emEnv);
    commandKSession.execute(txTestCmd);
    ut.commit();
}
Also used : UserTransaction(javax.transaction.UserTransaction) HashMap(java.util.HashMap) KieBase(org.kie.api.KieBase) DroolsPersistenceUtil.createEnvironment(org.drools.persistence.util.DroolsPersistenceUtil.createEnvironment) Environment(org.kie.api.runtime.Environment) KieSession(org.kie.api.runtime.KieSession) PersistableRunner(org.drools.persistence.PersistableRunner) JpaPersistenceContextManager(org.drools.persistence.jpa.JpaPersistenceContextManager) Test(org.junit.Test)

Aggregations

HashMap (java.util.HashMap)1 UserTransaction (javax.transaction.UserTransaction)1 PersistableRunner (org.drools.persistence.PersistableRunner)1 JpaPersistenceContextManager (org.drools.persistence.jpa.JpaPersistenceContextManager)1 DroolsPersistenceUtil.createEnvironment (org.drools.persistence.util.DroolsPersistenceUtil.createEnvironment)1 Test (org.junit.Test)1 KieBase (org.kie.api.KieBase)1 Environment (org.kie.api.runtime.Environment)1 KieSession (org.kie.api.runtime.KieSession)1