use of org.mule.runtime.core.api.util.queue.QueueSession in project mule by mulesoft.
the class TransactionalQueueManagerTestCase method allowChangingConfigurationOnDisposedQueue.
@Test
public void allowChangingConfigurationOnDisposedQueue() throws Exception {
QueueManager queueManager = muleContext.getQueueManager();
queueManager.setQueueConfiguration(TEST_QUEUE_NAME, new DefaultQueueConfiguration(0, true));
QueueSession queueSession = queueManager.getQueueSession();
Queue queue = queueSession.getQueue(TEST_QUEUE_NAME);
queue.dispose();
queueManager.setQueueConfiguration(TEST_QUEUE_NAME, new DefaultQueueConfiguration(0, false));
}
use of org.mule.runtime.core.api.util.queue.QueueSession in project mule by mulesoft.
the class TransactionalQueueManagerTestCase method createDanglingTx.
private void createDanglingTx() throws InterruptedException, MuleException {
QueueManager queueManager = muleContext.getQueueManager();
queueManager.setDefaultQueueConfiguration(new DefaultQueueConfiguration(0, true));
QueueSession queueSession = queueManager.getQueueSession();
queueSession.getQueue(TEST_QUEUE_NAME).put("value");
queueSession.begin();
queueSession.getQueue(TEST_QUEUE_NAME).poll(10);
queueManager.stop();
}
use of org.mule.runtime.core.api.util.queue.QueueSession in project mule by mulesoft.
the class TransactionalQueueManagerTestCase method clearRecoveryQueuesAfterRecovery.
@Test
public void clearRecoveryQueuesAfterRecovery() throws Exception {
createDanglingTx();
QueueManager queueManager = muleContext.getQueueManager();
QueueSession queueSession = queueManager.getQueueSession();
queueSession.getQueue(TEST_QUEUE_NAME).dispose();
queueManager.setQueueConfiguration(TEST_QUEUE_NAME, new DefaultQueueConfiguration());
queueManager.start();
}
use of org.mule.runtime.core.api.util.queue.QueueSession in project mule by mulesoft.
the class AbstractTransactionQueueManagerTestCase method testPutWithPersistence.
@Test
public void testPutWithPersistence() throws Exception {
if (isPersistent()) {
AbstractQueueManager mgr = createQueueManager();
try {
QueueSession s = mgr.getQueueSession();
mgr.start();
Queue q = s.getQueue("queue1");
q.put("String1");
assertEquals("Queue size", 1, q.size());
q = s.getQueue("queue1");
assertEquals("Queue size", 1, q.size());
} finally {
mgr.stop();
mgr.dispose();
}
mgr = createQueueManager();
try {
QueueSession s = mgr.getQueueSession();
mgr.start();
Queue q = s.getQueue("queue1");
assertEquals("Queue size", 1, q.size());
} finally {
mgr.stop();
mgr.dispose();
}
} else {
logger.info("Ignoring test because queue manager is not persistent");
}
}
use of org.mule.runtime.core.api.util.queue.QueueSession in project mule by mulesoft.
the class AbstractTransactionQueueManagerTestCase method testTakePutRollbackPut.
@Test
public void testTakePutRollbackPut() throws Exception {
final QueueManager mgr = createQueueManager();
mgr.start();
final Latch latch = new Latch();
Thread t = new Thread() {
@Override
public void run() {
try {
latch.countDown();
Thread.sleep(200);
QueueSession s = mgr.getQueueSession();
Queue q = s.getQueue("queue1");
assertEquals("Queue size", 0, q.size());
s.begin();
q.put("String1");
s.rollback();
s.begin();
q.put("String2");
s.commit();
} catch (Exception e) {
// ignore, let test fail
}
}
};
t.start();
latch.await();
long t0 = System.currentTimeMillis();
QueueSession s = mgr.getQueueSession();
Queue q = s.getQueue("queue1");
assertEquals("Queue size", 0, q.size());
Object o = q.take();
long t1 = System.currentTimeMillis();
t.join();
assertNotNull(o);
assertEquals("Queue content", "String2", o);
assertEquals("Queue size", 0, q.size());
assertTrue(t1 - t0 > 100);
mgr.stop();
}
Aggregations