Search in sources :

Example 11 with QueueSession

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));
}
Also used : DefaultQueueConfiguration(org.mule.runtime.core.api.util.queue.DefaultQueueConfiguration) Queue(org.mule.runtime.core.api.util.queue.Queue) QueueSession(org.mule.runtime.core.api.util.queue.QueueSession) QueueManager(org.mule.runtime.core.api.util.queue.QueueManager) Test(org.junit.Test)

Example 12 with QueueSession

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();
}
Also used : DefaultQueueConfiguration(org.mule.runtime.core.api.util.queue.DefaultQueueConfiguration) QueueSession(org.mule.runtime.core.api.util.queue.QueueSession) QueueManager(org.mule.runtime.core.api.util.queue.QueueManager)

Example 13 with QueueSession

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();
}
Also used : DefaultQueueConfiguration(org.mule.runtime.core.api.util.queue.DefaultQueueConfiguration) QueueSession(org.mule.runtime.core.api.util.queue.QueueSession) QueueManager(org.mule.runtime.core.api.util.queue.QueueManager) Test(org.junit.Test)

Example 14 with QueueSession

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");
    }
}
Also used : Queue(org.mule.runtime.core.api.util.queue.Queue) QueueSession(org.mule.runtime.core.api.util.queue.QueueSession) AbstractQueueManager(org.mule.runtime.core.internal.util.queue.AbstractQueueManager) Test(org.junit.Test)

Example 15 with QueueSession

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();
}
Also used : Latch(org.mule.runtime.api.util.concurrent.Latch) Queue(org.mule.runtime.core.api.util.queue.Queue) QueueSession(org.mule.runtime.core.api.util.queue.QueueSession) QueueManager(org.mule.runtime.core.api.util.queue.QueueManager) AbstractQueueManager(org.mule.runtime.core.internal.util.queue.AbstractQueueManager) Test(org.junit.Test)

Aggregations

QueueSession (org.mule.runtime.core.api.util.queue.QueueSession)22 Test (org.junit.Test)20 Queue (org.mule.runtime.core.api.util.queue.Queue)20 AbstractQueueManager (org.mule.runtime.core.internal.util.queue.AbstractQueueManager)18 QueueManager (org.mule.runtime.core.api.util.queue.QueueManager)16 Latch (org.mule.runtime.api.util.concurrent.Latch)7 DefaultQueueConfiguration (org.mule.runtime.core.api.util.queue.DefaultQueueConfiguration)5 Serializable (java.io.Serializable)2 Random (java.util.Random)2