org.apache.activemq.artemis.jms.client.ActiveMQQueue

Here are the examples of the java api class org.apache.activemq.artemis.jms.client.ActiveMQQueue taken from open source projects.

1. JMSQueueControlTest#testRetryMessage()

Project: activemq-artemis
File: JMSQueueControlTest.java
/**
    * Test retrying a specific message on DLQ.
    * Expected to be sent back to original queue.
    * @throws Exception
    */
@Test
public void testRetryMessage() throws Exception {
    ActiveMQQueue dlq = createDLQ(RandomUtil.randomString());
    ActiveMQQueue testQueue = createTestQueueWithDLQ(RandomUtil.randomString(), dlq);
    String messageID = JMSUtil.sendMessages(testQueue, 1)[0];
    Connection connection = createConnection();
    connection.start();
    Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
    MessageConsumer consumer = session.createConsumer(testQueue);
    consumer.receive(500L);
    // All <numMessagesToTest> messages should now be on DLQ
    session.rollback();
    JMSQueueControl testQueueControl = createManagementControl(testQueue);
    JMSQueueControl dlqQueueControl = createManagementControl(dlq);
    Assert.assertEquals(0, getMessageCount(testQueueControl));
    Assert.assertEquals(1, getMessageCount(dlqQueueControl));
    dlqQueueControl.retryMessage(messageID);
    Assert.assertEquals(1, getMessageCount(testQueueControl));
    Assert.assertEquals(0, getMessageCount(dlqQueueControl));
}

2. ReferenceableTest#testReferenceQueue()

Project: activemq-artemis
File: ReferenceableTest.java
@Test
public void testReferenceQueue() throws Exception {
    Reference queueRef = ((Referenceable) queue1).getReference();
    String factoryName = queueRef.getFactoryClassName();
    Class<?> factoryClass = Class.forName(factoryName);
    DestinationObjectFactory factory = (DestinationObjectFactory) factoryClass.newInstance();
    Object instance = factory.getObjectInstance(queueRef, null, null, null);
    ProxyAssertSupport.assertTrue(instance instanceof ActiveMQDestination);
    ActiveMQQueue queue2 = (ActiveMQQueue) instance;
    ProxyAssertSupport.assertEquals(queue1.getQueueName(), queue2.getQueueName());
    simpleSendReceive(cf, queue2);
}

3. JMSServerManagerImpl#addQueueToBindingRegistry()

Project: activemq-artemis
File: JMSServerManagerImpl.java
@Override
public boolean addQueueToBindingRegistry(final String queueName, final String registryBinding) throws Exception {
    checkInitialised();
    checkBindings(registryBinding);
    ActiveMQQueue destination = queues.get(queueName);
    if (destination == null) {
        throw new IllegalArgumentException("Queue does not exist");
    }
    if (destination.getQueueName() == null) {
        throw new IllegalArgumentException(queueName + " is not a queue");
    }
    boolean added = bindToBindings(registryBinding, destination);
    if (added) {
        addToBindings(queueBindings, queueName, registryBinding);
        storage.addBindings(PersistedType.Queue, queueName, registryBinding);
    }
    return added;
}

4. JMSQueueControlTest#testRetryMessages()

Project: activemq-artemis
File: JMSQueueControlTest.java
/**
    * Test retrying all messages put on DLQ - i.e. they should appear on the original queue.
    * @throws Exception
    */
@Test
public void testRetryMessages() throws Exception {
    ActiveMQQueue dlq = createDLQ(RandomUtil.randomString());
    ActiveMQQueue testQueue = createTestQueueWithDLQ(RandomUtil.randomString(), dlq);
    final int numMessagesToTest = 10;
    JMSUtil.sendMessages(testQueue, numMessagesToTest);
    Connection connection = createConnection();
    connection.start();
    Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
    MessageConsumer consumer = session.createConsumer(testQueue);
    for (int i = 0; i < numMessagesToTest; i++) {
        Message msg = consumer.receive(500L);
    }
    // All <numMessagesToTest> messages should now be on DLQ
    session.rollback();
    JMSQueueControl testQueueControl = createManagementControl(testQueue);
    JMSQueueControl dlqQueueControl = createManagementControl(dlq);
    Assert.assertEquals(0, getMessageCount(testQueueControl));
    Assert.assertEquals(numMessagesToTest, getMessageCount(dlqQueueControl));
    Assert.assertEquals(10, getMessageCount(dlqQueueControl));
    dlqQueueControl.retryMessages();
    Assert.assertEquals(numMessagesToTest, getMessageCount(testQueueControl));
    Assert.assertEquals(0, getMessageCount(dlqQueueControl));
    connection.close();
}

5. TopicControlUsingJMSTest#setUp()

Project: activemq-artemis
File: TopicControlUsingJMSTest.java
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
@Override
@Before
public void setUp() throws Exception {
    super.setUp();
    Configuration config = createDefaultInVMConfig().setJMXManagementEnabled(true);
    server = addServer(ActiveMQServers.newActiveMQServer(config, mbeanServer, false));
    server.start();
    serverManager = new JMSServerManagerImpl(server);
    serverManager.start();
    serverManager.setRegistry(new JndiBindingRegistry(new InVMNamingContext()));
    serverManager.activated();
    clientID = RandomUtil.randomString();
    subscriptionName = RandomUtil.randomString();
    String topicName = RandomUtil.randomString();
    serverManager.createTopic(false, topicName, topicBinding);
    topic = (ActiveMQTopic) ActiveMQJMSClient.createTopic(topicName);
    ActiveMQConnectionFactory cf = ActiveMQJMSClient.createConnectionFactoryWithoutHA(JMSFactoryType.CF, new TransportConfiguration(INVM_CONNECTOR_FACTORY));
    connection = cf.createQueueConnection();
    session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
    connection.start();
    ActiveMQQueue managementQueue = (ActiveMQQueue) ActiveMQJMSClient.createQueue("activemq.management");
    proxy = new JMSMessagingProxy(session, managementQueue, ResourceNames.JMS_TOPIC + topic.getTopicName());
}

6. JMSQueueControlTest#testQueueAddJndiWithRealData()

Project: activemq-artemis
File: JMSQueueControlTest.java
/**
    * on this testContaining WithRealData will use real data on the journals
    *
    * @throws Exception
    */
@Test
public void testQueueAddJndiWithRealData() throws Exception {
    String testQueueName = "testQueueAddJndi";
    serverManager.createQueue(true, testQueueName, null, true, testQueueName);
    ActiveMQQueue testQueue = (ActiveMQQueue) ActiveMQJMSClient.createQueue(testQueueName);
    JMSQueueControl queueControl = createManagementControl(testQueue);
    String[] bindings = queueControl.getRegistryBindings();
    String newJndi = "newTestQueueAddJndi";
    for (String b : bindings) {
        assertFalse(b.equals(newJndi));
    }
    queueControl.addBinding(newJndi);
    bindings = queueControl.getRegistryBindings();
    boolean newBindingAdded = false;
    for (String b : bindings) {
        if (b.equals(newJndi)) {
            newBindingAdded = true;
        }
    }
    assertTrue(newBindingAdded);
    serverManager.stop();
    serverManager.start();
    testQueue = (ActiveMQQueue) ActiveMQJMSClient.createQueue(testQueueName);
    queueControl = createManagementControl(testQueue);
    bindings = queueControl.getRegistryBindings();
    newBindingAdded = false;
    for (String b : bindings) {
        if (b.equals(newJndi)) {
            newBindingAdded = true;
        }
    }
    assertTrue(newBindingAdded);
}

7. JMSQueueControlTest#testDeleteWithPagingAndFilter()

Project: activemq-artemis
File: JMSQueueControlTest.java
@Test
public void testDeleteWithPagingAndFilter() throws Exception {
    AddressSettings pagedSetting = new AddressSettings().setAddressFullMessagePolicy(AddressFullMessagePolicy.PAGE).setPageSizeBytes(10 * 1024).setMaxSizeBytes(100 * 1024);
    server.getAddressSettingsRepository().addMatch("#", pagedSetting);
    serverManager.createQueue(true, "pagedTest", null, true, "/queue/pagedTest");
    ActiveMQQueue pagedQueue = (ActiveMQQueue) context.lookup("/queue/pagedTest");
    ServerLocator locator = createInVMNonHALocator();
    ClientSessionFactory sf = createSessionFactory(locator);
    ClientSession session = sf.createSession(true, true);
    ClientProducer prod = session.createProducer(pagedQueue.getAddress());
    for (int i = 0; i < 200; i++) {
        ClientMessage msg = session.createMessage(true);
        msg.getBodyBuffer().writeBytes(new byte[90 * 1024]);
        msg.putBooleanProperty("even", i % 2 == 0);
        prod.send(msg);
    }
    JMSQueueControl control = createManagementControl(pagedQueue);
    assertEquals(100, control.removeMessages("even=true"));
    session.start();
    ClientConsumer consumer = session.createConsumer(pagedQueue.getAddress());
    for (int i = 0; i < 100; i++) {
        ClientMessage msg = consumer.receive(1000);
        assertNotNull(msg);
        msg.acknowledge();
        assertFalse(msg.getBooleanProperty("even").booleanValue());
    }
    assertNull(consumer.receive(300));
    session.close();
    sf.close();
    locator.close();
}

8. JMSQueueControlTest#testDeleteWithPaging()

Project: activemq-artemis
File: JMSQueueControlTest.java
@Test
public void testDeleteWithPaging() throws Exception {
    AddressSettings pagedSetting = new AddressSettings().setAddressFullMessagePolicy(AddressFullMessagePolicy.PAGE).setPageSizeBytes(10 * 1024).setMaxSizeBytes(100 * 1024);
    server.getAddressSettingsRepository().addMatch("#", pagedSetting);
    serverManager.createQueue(true, "pagedTest", null, true, "/queue/pagedTest");
    ActiveMQQueue pagedQueue = (ActiveMQQueue) context.lookup("/queue/pagedTest");
    ServerLocator locator = createInVMNonHALocator();
    ClientSessionFactory sf = createSessionFactory(locator);
    ClientSession session = sf.createSession(true, true);
    ClientProducer prod = session.createProducer(pagedQueue.getAddress());
    ClientMessage msg = session.createMessage(true);
    msg.getBodyBuffer().writeBytes(new byte[90 * 1024]);
    for (int i = 0; i < 100; i++) {
        prod.send(msg);
    }
    JMSQueueControl control = createManagementControl(pagedQueue);
    assertEquals(100, control.removeMessages("     "));
    session.start();
    ClientConsumer consumer = session.createConsumer(pagedQueue.getAddress());
    assertNull(consumer.receive(300));
    session.close();
    sf.close();
    locator.close();
}

9. JMSQueueControlTest#testRetryMessagesOnTopic()

Project: activemq-artemis
File: JMSQueueControlTest.java
/**
    * Test retrying all messages put on DLQ - i.e. they should appear on the original queue.
    * @throws Exception
    */
@Test
public void testRetryMessagesOnTopic() throws Exception {
    ActiveMQQueue dlq = createDLQ(RandomUtil.randomString());
    ActiveMQTopic testTopic = createTestTopicWithDLQ(RandomUtil.randomString(), dlq);
    Connection connectionConsume = createConnection();
    connectionConsume.setClientID("ID");
    Session sessionConsume = connectionConsume.createSession(true, Session.SESSION_TRANSACTED);
    MessageConsumer cons1 = sessionConsume.createDurableSubscriber(testTopic, "sub1");
    MessageConsumer cons2 = sessionConsume.createDurableSubscriber(testTopic, "sub2");
    final int numMessagesToTest = 10;
    JMSUtil.sendMessages(testTopic, numMessagesToTest);
    connectionConsume.start();
    for (int i = 0; i < numMessagesToTest; i++) {
        Assert.assertNotNull(cons1.receive(500));
    }
    sessionConsume.commit();
    Assert.assertNull(cons1.receiveNoWait());
    connectionConsume.start();
    for (int i = 0; i < numMessagesToTest; i++) {
        cons2.receive(500);
    }
    sessionConsume.rollback();
    Assert.assertNull(cons2.receiveNoWait());
    JMSQueueControl dlqQueueControl = createManagementControl(dlq);
    dlqQueueControl.retryMessages();
    Assert.assertNull("Retry is sending back to cons1 even though it succeeded", cons1.receiveNoWait());
    for (int i = 0; i < numMessagesToTest; i++) {
        Assert.assertNotNull(cons2.receive(500));
    }
    sessionConsume.commit();
    Assert.assertNull(cons1.receiveNoWait());
    connectionConsume.close();
}

10. JMSQueueControlTest#createTestQueueWithDLQ()

Project: activemq-artemis
File: JMSQueueControlTest.java
protected ActiveMQQueue createTestQueueWithDLQ(final String queueName, final ActiveMQQueue dlq) throws Exception {
    serverManager.createQueue(false, queueName, null, true, queueName);
    ActiveMQQueue testQueue = (ActiveMQQueue) ActiveMQJMSClient.createQueue(queueName);
    AddressSettings addressSettings = new AddressSettings();
    addressSettings.setDeadLetterAddress(new SimpleString(dlq.getAddress()));
    addressSettings.setMaxDeliveryAttempts(1);
    server.getAddressSettingsRepository().addMatch(testQueue.getAddress(), addressSettings);
    return testQueue;
}

11. JMSQueueControlTest#testSendMessagesToDeadLetterAddress()

Project: activemq-artemis
File: JMSQueueControlTest.java
@Test
public void testSendMessagesToDeadLetterAddress() throws Exception {
    String key = "key";
    long matchingValue = RandomUtil.randomLong();
    long unmatchingValue = matchingValue + 1;
    String filter = "key = " + matchingValue;
    String deadLetterQueue = RandomUtil.randomString();
    serverManager.createQueue(false, deadLetterQueue, null, true, deadLetterQueue);
    ActiveMQQueue dlq = (ActiveMQQueue) ActiveMQJMSClient.createQueue(deadLetterQueue);
    AddressSettings addressSettings = new AddressSettings().setDeadLetterAddress(new SimpleString(dlq.getAddress()));
    server.getAddressSettingsRepository().addMatch(queue.getAddress(), addressSettings);
    Connection conn = createConnection();
    Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
    // send 2 messages on queue
    JMSUtil.sendMessageWithProperty(sess, queue, key, matchingValue);
    JMSUtil.sendMessageWithProperty(sess, queue, key, unmatchingValue);
    JMSQueueControl queueControl = createManagementControl();
    JMSQueueControl dlqControl = ManagementControlHelper.createJMSQueueControl(dlq, mbeanServer);
    Assert.assertEquals(2, getMessageCount(queueControl));
    Assert.assertEquals(0, getMessageCount(dlqControl));
    //      queueControl.setDeadLetterAddress(dlq.getAddress());
    int deadMessageCount = queueControl.sendMessagesToDeadLetterAddress(filter);
    Assert.assertEquals(1, deadMessageCount);
    Assert.assertEquals(1, getMessageCount(queueControl));
    Assert.assertEquals(1, getMessageCount(dlqControl));
    conn.start();
    MessageConsumer consumer = sess.createConsumer(queue);
    Message message = consumer.receive(500);
    Assert.assertNotNull(message);
    Assert.assertEquals(unmatchingValue, message.getLongProperty(key));
    // check there is a single message to consume from deadletter queue
    JMSUtil.consumeMessages(1, dlq);
    conn.close();
    serverManager.destroyQueue(deadLetterQueue);
}

12. JMSQueueControlTest#testSendMessageToDeadLetterAddress()

Project: activemq-artemis
File: JMSQueueControlTest.java
@Test
public void testSendMessageToDeadLetterAddress() throws Exception {
    String deadLetterQueue = RandomUtil.randomString();
    serverManager.createQueue(false, deadLetterQueue, null, true, deadLetterQueue);
    ActiveMQQueue dlq = (ActiveMQQueue) ActiveMQJMSClient.createQueue(deadLetterQueue);
    AddressSettings addressSettings = new AddressSettings().setDeadLetterAddress(new SimpleString(dlq.getAddress()));
    server.getAddressSettingsRepository().addMatch(queue.getAddress(), addressSettings);
    Connection conn = createConnection();
    Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
    MessageProducer producer = sess.createProducer(queue);
    // send 2 messages on queue
    Message message = sess.createMessage();
    producer.send(message);
    producer.send(sess.createMessage());
    conn.close();
    JMSQueueControl queueControl = createManagementControl();
    JMSQueueControl dlqControl = ManagementControlHelper.createJMSQueueControl(dlq, mbeanServer);
    Assert.assertEquals(2, getMessageCount(queueControl));
    Assert.assertEquals(0, getMessageCount(dlqControl));
    //      queueControl.setDeadLetterAddress(dlq.getAddress());
    boolean movedToDeadLetterAddress = queueControl.sendMessageToDeadLetterAddress(message.getJMSMessageID());
    Assert.assertTrue(movedToDeadLetterAddress);
    Assert.assertEquals(1, getMessageCount(queueControl));
    Assert.assertEquals(1, getMessageCount(dlqControl));
    // check there is a single message to consume from queue
    JMSUtil.consumeMessages(1, queue);
    // check there is a single message to consume from deadletter queue
    JMSUtil.consumeMessages(1, dlq);
    serverManager.destroyQueue(deadLetterQueue);
}

13. JMSQueueControlTest#testExpireMessage()

Project: activemq-artemis
File: JMSQueueControlTest.java
@Test
public void testExpireMessage() throws Exception {
    JMSQueueControl queueControl = createManagementControl();
    String expiryQueueName = RandomUtil.randomString();
    ActiveMQQueue expiryQueue = (ActiveMQQueue) ActiveMQJMSClient.createQueue(expiryQueueName);
    serverManager.createQueue(false, expiryQueueName, null, true, expiryQueueName);
    AddressSettings addressSettings = new AddressSettings().setExpiryAddress(new SimpleString(expiryQueue.getAddress()));
    server.getAddressSettingsRepository().addMatch(queue.getAddress(), addressSettings);
    //      queueControl.setExpiryAddress(expiryQueue.getAddress());
    JMSQueueControl expiryQueueControl = ManagementControlHelper.createJMSQueueControl(expiryQueue, mbeanServer);
    String[] messageIDs = JMSUtil.sendMessages(queue, 1);
    Assert.assertEquals(1, getMessageCount(queueControl));
    Assert.assertEquals(0, getMessageCount(expiryQueueControl));
    Assert.assertTrue(queueControl.expireMessage(messageIDs[0]));
    Assert.assertEquals(0, getMessageCount(queueControl));
    Assert.assertEquals(1, getMessageCount(expiryQueueControl));
    Connection connection = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
    connection.start();
    MessageConsumer consumer = JMSUtil.createConsumer(connection, expiryQueue);
    Message message = consumer.receive(500);
    Assert.assertNotNull(message);
    Assert.assertEquals(messageIDs[0], message.getJMSMessageID());
    connection.close();
}