Skip to content

Commit

Permalink
improve test stability
Browse files Browse the repository at this point in the history
closes #368
  • Loading branch information
mswiderski committed Dec 17, 2015
1 parent 225029c commit 2e01d51
Show file tree
Hide file tree
Showing 55 changed files with 457 additions and 251 deletions.
1 change: 0 additions & 1 deletion .gitignore
Expand Up @@ -19,7 +19,6 @@ bin/
# Test info # Test info
/settings*.xml /settings*.xml
/lib-jdbc/ /lib-jdbc/
bitronix-default-config.properties
*.db *.db
*.tlog *.tlog


Expand Down
@@ -0,0 +1 @@
bitronix.tm.journal=null
2 changes: 1 addition & 1 deletion jbpm-bpmn2/pom.xml
Expand Up @@ -18,7 +18,7 @@
<description>jBPM BPMN2</description> <description>jBPM BPMN2</description>


<properties> <properties>
<maven.jdbc.url>jdbc:h2:tcp://localhost/target/jbpm-bpmn-db</maven.jdbc.url> <maven.jdbc.url>jdbc:h2:tcp://localhost/target/jbpm-bpmn-db;MVCC=TRUE</maven.jdbc.url>
</properties> </properties>


<dependencies> <dependencies>
Expand Down
Expand Up @@ -20,16 +20,9 @@
import org.junit.Assert; import org.junit.Assert;
import org.junit.BeforeClass; import org.junit.BeforeClass;


import bitronix.tm.TransactionManagerServices;

public abstract class AbstractBaseTest extends Assert { public abstract class AbstractBaseTest extends Assert {


static {
if (!TransactionManagerServices.isTransactionManagerRunning()) {
TransactionManagerServices.getConfiguration().setJournal("null");
}
}

@BeforeClass @BeforeClass
public static void configure() { public static void configure() {
LoggingPrintStream.interceptSysOutSysErr(); LoggingPrintStream.interceptSysOutSysErr();
Expand Down
Expand Up @@ -3,6 +3,9 @@
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;


import org.drools.persistence.TransactionManager;
import org.drools.persistence.TransactionManagerFactory;
import org.drools.persistence.TransactionSynchronization;
import org.kie.api.event.process.DefaultProcessEventListener; import org.kie.api.event.process.DefaultProcessEventListener;
import org.kie.api.event.process.ProcessNodeLeftEvent; import org.kie.api.event.process.ProcessNodeLeftEvent;
import org.slf4j.Logger; import org.slf4j.Logger;
Expand All @@ -24,7 +27,7 @@ public CountDownProcessEventListener(String nodeName, int threads) {
@Override @Override
public void afterNodeLeft(ProcessNodeLeftEvent event) { public void afterNodeLeft(ProcessNodeLeftEvent event) {
if (nodeName.equals(event.getNodeInstance().getNodeName())) { if (nodeName.equals(event.getNodeInstance().getNodeName())) {
latch.countDown(); countDown();
} }
} }


Expand All @@ -43,4 +46,29 @@ public void waitTillCompleted(long timeOut) {
logger.debug("Interrputed thread while waiting for all triggers for node {}", nodeName); logger.debug("Interrputed thread while waiting for all triggers for node {}", nodeName);
} }
} }

protected void countDown() {
try {
TransactionManager tm = TransactionManagerFactory.get().newTransactionManager();
if (tm != null && tm.getStatus() != TransactionManager.STATUS_NO_TRANSACTION
&& tm.getStatus() != TransactionManager.STATUS_ROLLEDBACK
&& tm.getStatus() != TransactionManager.STATUS_COMMITTED) {
tm.registerTransactionSynchronization(new TransactionSynchronization() {

@Override
public void beforeCompletion() {
}

@Override
public void afterCompletion(int status) {
latch.countDown();
}
});
} else {
latch.countDown();
}
} catch (Exception e) {
latch.countDown();
}
}
} }
@@ -0,0 +1 @@
bitronix.tm.journal=null
@@ -0,0 +1 @@
bitronix.tm.journal=null
Expand Up @@ -60,12 +60,6 @@ public abstract class HumanTaskServicesBaseTest {


private static final Logger logger = LoggerFactory.getLogger(HumanTaskServicesBaseTest.class); private static final Logger logger = LoggerFactory.getLogger(HumanTaskServicesBaseTest.class);


static {
if (!TransactionManagerServices.isTransactionManagerRunning()) {
TransactionManagerServices.getConfiguration().setJournal("null");
}
}

protected InternalTaskService taskService; protected InternalTaskService taskService;


@BeforeClass @BeforeClass
Expand Down
Expand Up @@ -16,10 +16,6 @@
package org.jbpm.services.task.jaxb; package org.jbpm.services.task.jaxb;


import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.map.ObjectMapper;
import org.jbpm.services.task.impl.model.ContentImpl;
import org.jbpm.services.task.impl.model.xml.JaxbContent;
import org.junit.Test;
import org.kie.api.task.model.Content;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;


Expand All @@ -31,6 +27,9 @@ public class JsonTaskSerializationTest extends AbstractTaskSerializationTest {


private ObjectMapper mapper = new ObjectMapper(); private ObjectMapper mapper = new ObjectMapper();


public JsonTaskSerializationTest() {
}

public TestType getType() { public TestType getType() {
return TestType.JSON; return TestType.JSON;
} }
Expand Down
@@ -0,0 +1 @@
bitronix.tm.journal=null
@@ -0,0 +1 @@
bitronix.tm.journal=null
@@ -0,0 +1 @@
bitronix.tm.journal=null
@@ -0,0 +1 @@
bitronix.tm.journal=null
@@ -0,0 +1 @@
bitronix.tm.journal=null
@@ -0,0 +1 @@
bitronix.tm.journal=null
1 change: 0 additions & 1 deletion jbpm-runtime-manager/.gitignore
Expand Up @@ -20,7 +20,6 @@ bin/
# Test info # Test info
/settings*.xml /settings*.xml
/lib-jdbc/ /lib-jdbc/
bitronix-default-config.properties
*.db *.db


# modules that don't exist in this branch # modules that don't exist in this branch
Expand Down
Expand Up @@ -18,6 +18,7 @@
import bitronix.tm.resource.jdbc.PoolingDataSource; import bitronix.tm.resource.jdbc.PoolingDataSource;


import org.jbpm.runtime.manager.impl.DefaultRegisterableItemsFactory; import org.jbpm.runtime.manager.impl.DefaultRegisterableItemsFactory;
import org.jbpm.runtime.manager.impl.RuntimeEngineImpl;
import org.jbpm.runtime.manager.util.TestUtil; import org.jbpm.runtime.manager.util.TestUtil;
import org.jbpm.services.task.identity.JBossUserGroupCallbackImpl; import org.jbpm.services.task.identity.JBossUserGroupCallbackImpl;
import org.jbpm.test.util.AbstractBaseTest; import org.jbpm.test.util.AbstractBaseTest;
Expand Down Expand Up @@ -90,7 +91,7 @@ public void testExecuteProcessWithAsyncHandler() throws Exception {
@Override @Override
public Map<String, WorkItemHandler> getWorkItemHandlers(RuntimeEngine runtime) { public Map<String, WorkItemHandler> getWorkItemHandlers(RuntimeEngine runtime) {
Map<String, WorkItemHandler> handlers = super.getWorkItemHandlers(runtime); Map<String, WorkItemHandler> handlers = super.getWorkItemHandlers(runtime);
handlers.put("Log", new AsyncWorkItemHandler(runtime.getKieSession())); handlers.put("Log", new AsyncWorkItemHandler(((RuntimeEngineImpl)runtime).getManager()));
return handlers; return handlers;
} }


Expand Down Expand Up @@ -150,7 +151,7 @@ public void testExecuteHumanTaskWithAsyncHandler() throws Exception {
@Override @Override
public Map<String, WorkItemHandler> getWorkItemHandlers(RuntimeEngine runtime) { public Map<String, WorkItemHandler> getWorkItemHandlers(RuntimeEngine runtime) {
Map<String, WorkItemHandler> handlers = super.getWorkItemHandlers(runtime); Map<String, WorkItemHandler> handlers = super.getWorkItemHandlers(runtime);
handlers.put("Log", new AsyncWorkItemHandler(runtime.getKieSession())); handlers.put("Log", new AsyncWorkItemHandler(((RuntimeEngineImpl)runtime).getManager()));
return handlers; return handlers;
} }


Expand Down Expand Up @@ -211,10 +212,10 @@ public List<ProcessEventListener> getProcessEventListeners(RuntimeEngine runtime


private class AsyncWorkItemHandler implements WorkItemHandler { private class AsyncWorkItemHandler implements WorkItemHandler {


private KieSession ksession; private RuntimeManager runtimeManager;


AsyncWorkItemHandler(KieSession ksession) { AsyncWorkItemHandler(RuntimeManager runtimeManager) {
this.ksession = ksession; this.runtimeManager = runtimeManager;
} }


@Override @Override
Expand All @@ -224,15 +225,20 @@ public void executeWorkItem(final WorkItem workItem, WorkItemManager manager) {


@Override @Override
public void run() { public void run() {
logger.debug("staring a thread....");
ksession.insert("doing it async");
try { try {
Thread.sleep(1000); Thread.sleep(1000);
} catch (InterruptedException e) {

RuntimeEngine engine = runtimeManager.getRuntimeEngine(EmptyContext.get());// only for singleton
logger.debug("staring a thread....");
engine.getKieSession().insert("doing it async");
logger.debug("Completing the work item");

engine.getKieSession().getWorkItemManager().completeWorkItem(workItem.getId(), null);
runtimeManager.disposeRuntimeEngine(engine);
} catch (Exception e) {
logger.error("Error when executing async operation", e);
} }
logger.debug("Completing the work item");
ksession.getWorkItemManager().completeWorkItem(workItem.getId(), null);
} }


}.start(); }.start();
Expand Down
Expand Up @@ -3,6 +3,9 @@
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;


import org.drools.persistence.TransactionManager;
import org.drools.persistence.TransactionManagerFactory;
import org.drools.persistence.TransactionSynchronization;
import org.kie.api.event.process.DefaultProcessEventListener; import org.kie.api.event.process.DefaultProcessEventListener;
import org.kie.api.event.process.ProcessNodeLeftEvent; import org.kie.api.event.process.ProcessNodeLeftEvent;
import org.slf4j.Logger; import org.slf4j.Logger;
Expand All @@ -24,7 +27,7 @@ public CountDownProcessEventListener(String nodeName, int threads) {
@Override @Override
public void afterNodeLeft(ProcessNodeLeftEvent event) { public void afterNodeLeft(ProcessNodeLeftEvent event) {
if (nodeName.equals(event.getNodeInstance().getNodeName())) { if (nodeName.equals(event.getNodeInstance().getNodeName())) {
latch.countDown(); countDown();
} }
} }


Expand Down Expand Up @@ -52,4 +55,29 @@ public void reset(String nodeName, int threads) {
this.nodeName = nodeName; this.nodeName = nodeName;
this.latch = new CountDownLatch(threads); this.latch = new CountDownLatch(threads);
} }

protected void countDown() {
try {
TransactionManager tm = TransactionManagerFactory.get().newTransactionManager();
if (tm != null && tm.getStatus() != TransactionManager.STATUS_NO_TRANSACTION
&& tm.getStatus() != TransactionManager.STATUS_ROLLEDBACK
&& tm.getStatus() != TransactionManager.STATUS_COMMITTED) {
tm.registerTransactionSynchronization(new TransactionSynchronization() {

@Override
public void beforeCompletion() {
}

@Override
public void afterCompletion(int status) {
latch.countDown();
}
});
} else {
latch.countDown();
}
} catch (Exception e) {
latch.countDown();
}
}
} }
@@ -0,0 +1 @@
bitronix.tm.journal=null
1 change: 0 additions & 1 deletion jbpm-services/jbpm-executor-cdi/.gitignore
Expand Up @@ -19,7 +19,6 @@ bin/
# Test info # Test info
/settings*.xml /settings*.xml
/lib-jdbc/ /lib-jdbc/
bitronix-default-config.properties
*.db *.db
*.tlog *.tlog


Expand Down
@@ -0,0 +1 @@
bitronix.tm.journal=null
Expand Up @@ -49,18 +49,10 @@
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;


import bitronix.tm.TransactionManagerServices;

public abstract class BasicExecutorBaseTest { public abstract class BasicExecutorBaseTest {


private static final Logger logger = LoggerFactory.getLogger(BasicExecutorBaseTest.class); private static final Logger logger = LoggerFactory.getLogger(BasicExecutorBaseTest.class);


static {
if (!TransactionManagerServices.isTransactionManagerRunning()) {
TransactionManagerServices.getConfiguration().setJournal("null");
}
}

protected ExecutorService executorService; protected ExecutorService executorService;
public static final Map<String, Object> cachedEntities = new HashMap<String, Object>(); public static final Map<String, Object> cachedEntities = new HashMap<String, Object>();


Expand Down
Expand Up @@ -37,7 +37,6 @@
import org.kie.api.executor.RequestInfo; import org.kie.api.executor.RequestInfo;
import org.kie.api.runtime.query.QueryContext; import org.kie.api.runtime.query.QueryContext;


import bitronix.tm.TransactionManagerServices;
import bitronix.tm.resource.jdbc.PoolingDataSource; import bitronix.tm.resource.jdbc.PoolingDataSource;




Expand All @@ -46,12 +45,6 @@ public class ReconfiguredExecutorTest {
protected ExecutorService executorService; protected ExecutorService executorService;
public static final Map<String, Object> cachedEntities = new HashMap<String, Object>(); public static final Map<String, Object> cachedEntities = new HashMap<String, Object>();


static {
if (!TransactionManagerServices.isTransactionManagerRunning()) {
TransactionManagerServices.getConfiguration().setJournal("null");
}
}

private PoolingDataSource pds; private PoolingDataSource pds;
private EntityManagerFactory emf = null; private EntityManagerFactory emf = null;


Expand Down
Expand Up @@ -51,20 +51,13 @@
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;


import bitronix.tm.TransactionManagerServices;
import bitronix.tm.resource.jdbc.PoolingDataSource; import bitronix.tm.resource.jdbc.PoolingDataSource;
import bitronix.tm.resource.jms.PoolingConnectionFactory; import bitronix.tm.resource.jms.PoolingConnectionFactory;


public class JmsAvaiableJobExecutorTest { public class JmsAvaiableJobExecutorTest {


private static final Logger logger = LoggerFactory.getLogger(JmsAvaiableJobExecutorTest.class); private static final Logger logger = LoggerFactory.getLogger(JmsAvaiableJobExecutorTest.class);


static {
if (!TransactionManagerServices.isTransactionManagerRunning()) {
TransactionManagerServices.getConfiguration().setJournal("null");
}
}

private ConnectionFactory factory; private ConnectionFactory factory;
private Queue queue; private Queue queue;


Expand Down
Expand Up @@ -18,19 +18,13 @@
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;


import bitronix.tm.TransactionManagerServices;
import bitronix.tm.resource.jdbc.PoolingDataSource; import bitronix.tm.resource.jdbc.PoolingDataSource;


public class ExecutorQueryBuilderCoverageTest { public class ExecutorQueryBuilderCoverageTest {


private static final Logger logger = LoggerFactory.getLogger(ExecutorQueryBuilderCoverageTest.class); private static final Logger logger = LoggerFactory.getLogger(ExecutorQueryBuilderCoverageTest.class);


static {
if (!TransactionManagerServices.isTransactionManagerRunning()) {
TransactionManagerServices.getConfiguration().setJournal("null");
}
}

private static PoolingDataSource pds; private static PoolingDataSource pds;
private static EntityManagerFactory emf; private static EntityManagerFactory emf;


Expand Down
Expand Up @@ -22,15 +22,9 @@
import org.junit.AfterClass; import org.junit.AfterClass;
import org.junit.BeforeClass; import org.junit.BeforeClass;


import bitronix.tm.TransactionManagerServices;

public abstract class AbstractExecutorBaseTest { public abstract class AbstractExecutorBaseTest {


static {
if (!TransactionManagerServices.isTransactionManagerRunning()) {
TransactionManagerServices.getConfiguration().setJournal("null");
}
}
@After @After
public void cleanup() { public void cleanup() {
EntityManagerFactoryManager.get().clear(); EntityManagerFactoryManager.get().clear();
Expand Down

0 comments on commit 2e01d51

Please sign in to comment.