org.apache.activemq.broker.jmx.TopicViewMBean

Here are the examples of the java api class org.apache.activemq.broker.jmx.TopicViewMBean taken from open source projects.

1. JmsTopicPublisherTest#testCreateTopicPublisher()

Project: qpid-jms
File: JmsTopicPublisherTest.java
@Test
public void testCreateTopicPublisher() throws Exception {
    JmsConnectionFactory factory = new JmsConnectionFactory(getBrokerAmqpConnectionURI());
    TopicConnection connection = factory.createTopicConnection();
    assertNotNull(connection);
    TopicSession session = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
    assertNotNull(session);
    Topic topic = session.createTopic(name.getMethodName());
    TopicPublisher publisher = session.createPublisher(topic);
    assertNotNull(publisher);
    TopicViewMBean proxy = getProxyToTopic(name.getMethodName());
    assertEquals(0, proxy.getEnqueueCount());
    connection.close();
}

2. JmsAnonymousProducerTest#testAnonymousSendToTopic()

Project: qpid-jms
File: JmsAnonymousProducerTest.java
@Test(timeout = 60000)
public void testAnonymousSendToTopic() throws Exception {
    connection = createAmqpConnection();
    assertNotNull(connection);
    connection.start();
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    Topic topic = session.createTopic(name.getMethodName());
    assertNotNull(session);
    MessageProducer producer = session.createProducer(null);
    assertNotNull(producer);
    MessageConsumer consumer = session.createConsumer(topic);
    assertNotNull(consumer);
    Message message = session.createMessage();
    producer.send(topic, message);
    TopicViewMBean proxy = getProxyToTopic(name.getMethodName());
    assertEquals(1, proxy.getEnqueueCount());
}

3. JmsMessageConsumerTest#testSyncConsumeFromTopic()

Project: qpid-jms
File: JmsMessageConsumerTest.java
@Test(timeout = 60000)
public void testSyncConsumeFromTopic() throws Exception {
    connection = createAmqpConnection();
    connection.start();
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    assertNotNull(session);
    Topic topic = session.createTopic(name.getMethodName());
    MessageConsumer consumer = session.createConsumer(topic);
    sendToAmqTopic(1);
    final TopicViewMBean proxy = getProxyToTopic(name.getMethodName());
    assertEquals(1, proxy.getEnqueueCount());
    assertNotNull("Failed to receive any message.", consumer.receive(3000));
    assertTrue("Published message not consumed.", Wait.waitFor(new Wait.Condition() {

        @Override
        public boolean isSatisified() throws Exception {
            return proxy.getQueueSize() == 0;
        }
    }));
}

4. JmsDurableSubscriberTest#testCreateDurableSubscriber()

Project: qpid-jms
File: JmsDurableSubscriberTest.java
@Test(timeout = 60000)
public void testCreateDurableSubscriber() throws Exception {
    connection = createAmqpConnection();
    connection.setClientID("DURABLE-AMQP");
    connection.start();
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    assertNotNull(session);
    Topic topic = session.createTopic(name.getMethodName());
    MessageConsumer consumer = session.createDurableSubscriber(topic, getSubscriptionName());
    TopicViewMBean proxy = getProxyToTopic(name.getMethodName());
    assertEquals(0, proxy.getQueueSize());
    assertEquals(1, brokerService.getAdminView().getDurableTopicSubscribers().length);
    assertEquals(0, brokerService.getAdminView().getInactiveDurableTopicSubscribers().length);
    consumer.close();
    assertEquals(0, brokerService.getAdminView().getDurableTopicSubscribers().length);
    assertEquals(1, brokerService.getAdminView().getInactiveDurableTopicSubscribers().length);
}

5. SimpleAuthenticationPluginTest#testTempDestinations()

Project: activemq-artemis
File: SimpleAuthenticationPluginTest.java
public void testTempDestinations() throws Exception {
    Connection conn = factory.createConnection("guest", "password");
    Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
    String name = "org.apache.activemq:BrokerName=localhost,Type=TempTopic";
    try {
        conn.start();
        TemporaryTopic temp = sess.createTemporaryTopic();
        name += ",Destination=" + temp.getTopicName().replaceAll(":", "_");
        fail("Should have failed creating a temp topic");
    } catch (Exception ignore) {
    }
    ObjectName objName = new ObjectName(name);
    TopicViewMBean mbean = (TopicViewMBean) broker.getManagementContext().newProxyInstance(objName, TopicViewMBean.class, true);
    try {
        System.out.println(mbean.getName());
        fail("Shouldn't have created a temp topic");
    } catch (Exception ignore) {
    }
}

6. QpidJmsTestSupport#getProxyToTemporaryTopic()

Project: qpid-jms
File: QpidJmsTestSupport.java
protected TopicViewMBean getProxyToTemporaryTopic(BrokerService broker, String name) throws MalformedObjectNameException, JMSException {
    name = JMXSupport.encodeObjectNamePart(name);
    ObjectName topicViewMBeanName = new ObjectName(broker.getBrokerObjectName() + ",destinationType=TempTopic,destinationName=" + name);
    TopicViewMBean proxy = (TopicViewMBean) brokerService.getManagementContext().newProxyInstance(topicViewMBeanName, TopicViewMBean.class, true);
    return proxy;
}

7. QpidJmsTestSupport#getProxyToTopic()

Project: qpid-jms
File: QpidJmsTestSupport.java
protected TopicViewMBean getProxyToTopic(BrokerService broker, String name) throws MalformedObjectNameException, JMSException {
    ObjectName topicViewMBeanName = new ObjectName(broker.getBrokerObjectName() + ",destinationType=Topic,destinationName=" + name);
    TopicViewMBean proxy = (TopicViewMBean) brokerService.getManagementContext().newProxyInstance(topicViewMBeanName, TopicViewMBean.class, true);
    return proxy;
}

8. JmsDurableSubscriberTest#testOfflineSubscriberGetsItsMessages()

Project: qpid-jms
File: JmsDurableSubscriberTest.java
@Test(timeout = 60000)
public void testOfflineSubscriberGetsItsMessages() throws Exception {
    connection = createAmqpConnection();
    connection.setClientID("DURABLE-AMQP");
    connection.start();
    final int MSG_COUNT = 5;
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    assertNotNull(session);
    Topic topic = session.createTopic(name.getMethodName());
    TopicSubscriber subscriber = session.createDurableSubscriber(topic, getSubscriptionName());
    TopicViewMBean proxy = getProxyToTopic(name.getMethodName());
    assertEquals(0, proxy.getQueueSize());
    assertEquals(1, brokerService.getAdminView().getDurableTopicSubscribers().length);
    assertEquals(0, brokerService.getAdminView().getInactiveDurableTopicSubscribers().length);
    subscriber.close();
    assertEquals(0, brokerService.getAdminView().getDurableTopicSubscribers().length);
    assertEquals(1, brokerService.getAdminView().getInactiveDurableTopicSubscribers().length);
    MessageProducer producer = session.createProducer(topic);
    for (int i = 0; i < MSG_COUNT; i++) {
        producer.send(session.createTextMessage("Message: " + i));
    }
    producer.close();
    LOG.info("Bringing offline subscription back online.");
    subscriber = session.createDurableSubscriber(topic, getSubscriptionName());
    assertEquals(1, brokerService.getAdminView().getDurableTopicSubscribers().length);
    assertEquals(0, brokerService.getAdminView().getInactiveDurableTopicSubscribers().length);
    final CountDownLatch messages = new CountDownLatch(MSG_COUNT);
    subscriber.setMessageListener(new MessageListener() {

        @Override
        public void onMessage(Message message) {
            LOG.info("Consumer got a message: {}", message);
            messages.countDown();
        }
    });
    assertTrue("Only recieved messages: " + messages.getCount(), messages.await(30, TimeUnit.SECONDS));
}

9. JmsDurableSubscriberTest#testDurableGoesOfflineAndReturns()

Project: qpid-jms
File: JmsDurableSubscriberTest.java
@Test(timeout = 60000)
public void testDurableGoesOfflineAndReturns() throws Exception {
    connection = createAmqpConnection();
    connection.setClientID("DURABLE-AMQP");
    connection.start();
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    assertNotNull(session);
    Topic topic = session.createTopic(name.getMethodName());
    TopicSubscriber subscriber = session.createDurableSubscriber(topic, getSubscriptionName());
    TopicViewMBean proxy = getProxyToTopic(name.getMethodName());
    assertEquals(0, proxy.getQueueSize());
    assertEquals(1, brokerService.getAdminView().getDurableTopicSubscribers().length);
    assertEquals(0, brokerService.getAdminView().getInactiveDurableTopicSubscribers().length);
    subscriber.close();
    assertEquals(0, brokerService.getAdminView().getDurableTopicSubscribers().length);
    assertEquals(1, brokerService.getAdminView().getInactiveDurableTopicSubscribers().length);
    subscriber = session.createDurableSubscriber(topic, getSubscriptionName());
    assertEquals(1, brokerService.getAdminView().getDurableTopicSubscribers().length);
    assertEquals(0, brokerService.getAdminView().getInactiveDurableTopicSubscribers().length);
}

10. DurableSubscriptionOffline2Test#testJMXCountersWithOfflineSubs()

Project: activemq-artemis
File: DurableSubscriptionOffline2Test.java
@Test(timeout = 60 * 1000)
public void testJMXCountersWithOfflineSubs() throws Exception {
    // create durable subscription 1
    Connection con = createConnection("cliId1");
    Session session = con.createSession(false, Session.AUTO_ACKNOWLEDGE);
    session.createDurableSubscriber(topic, "SubsId", null, true);
    session.close();
    con.close();
    // restart broker
    broker.stop();
    createBroker(false);
    // send messages
    con = createConnection();
    session = con.createSession(false, Session.AUTO_ACKNOWLEDGE);
    MessageProducer producer = session.createProducer(null);
    int sent = 0;
    for (int i = 0; i < 10; i++) {
        sent++;
        Message message = session.createMessage();
        producer.send(topic, message);
    }
    session.close();
    con.close();
    // consume some messages
    con = createConnection("cliId1");
    session = con.createSession(false, Session.AUTO_ACKNOWLEDGE);
    MessageConsumer consumer = session.createDurableSubscriber(topic, "SubsId", null, true);
    for (int i = 0; i < sent / 2; i++) {
        Message m = consumer.receive(4000);
        assertNotNull("got message: " + i, m);
        LOG.info("Got :" + i + ", " + m);
    }
    // check some counters while active
    ObjectName activeDurableSubName = broker.getAdminView().getDurableTopicSubscribers()[0];
    LOG.info("active durable sub name: " + activeDurableSubName);
    final DurableSubscriptionViewMBean durableSubscriptionView = (DurableSubscriptionViewMBean) broker.getManagementContext().newProxyInstance(activeDurableSubName, DurableSubscriptionViewMBean.class, true);
    assertTrue("is active", durableSubscriptionView.isActive());
    assertEquals("all enqueued", keepDurableSubsActive ? 10 : 0, durableSubscriptionView.getEnqueueCounter());
    assertTrue("correct waiting acks", Wait.waitFor(new Wait.Condition() {

        @Override
        public boolean isSatisified() throws Exception {
            return 5 == durableSubscriptionView.getMessageCountAwaitingAcknowledge();
        }
    }));
    assertEquals("correct dequeue", 5, durableSubscriptionView.getDequeueCounter());
    ObjectName destinationName = broker.getAdminView().getTopics()[0];
    TopicViewMBean topicView = (TopicViewMBean) broker.getManagementContext().newProxyInstance(destinationName, TopicViewMBean.class, true);
    assertEquals("correct enqueue", 10, topicView.getEnqueueCount());
    assertEquals("still zero dequeue, we don't decrement on each sub ack to stop exceeding the enqueue count with multiple subs", 0, topicView.getDequeueCount());
    assertEquals("inflight", 5, topicView.getInFlightCount());
    session.close();
    con.close();
    // check some counters when inactive
    ObjectName inActiveDurableSubName = broker.getAdminView().getInactiveDurableTopicSubscribers()[0];
    LOG.info("inactive durable sub name: " + inActiveDurableSubName);
    DurableSubscriptionViewMBean durableSubscriptionView1 = (DurableSubscriptionViewMBean) broker.getManagementContext().newProxyInstance(inActiveDurableSubName, DurableSubscriptionViewMBean.class, true);
    assertTrue("is not active", !durableSubscriptionView1.isActive());
    assertEquals("all enqueued", keepDurableSubsActive ? 10 : 0, durableSubscriptionView1.getEnqueueCounter());
    assertEquals("correct awaiting ack", 0, durableSubscriptionView1.getMessageCountAwaitingAcknowledge());
    assertEquals("correct dequeue", keepDurableSubsActive ? 5 : 0, durableSubscriptionView1.getDequeueCounter());
    // destination view
    assertEquals("correct enqueue", 10, topicView.getEnqueueCount());
    assertEquals("still zero dequeue, we don't decrement on each sub ack to stop exceeding the enqueue count with multiple subs", 0, topicView.getDequeueCount());
    assertEquals("inflight back to 0 after deactivate", 0, topicView.getInFlightCount());
    // consume the rest
    con = createConnection("cliId1");
    session = con.createSession(false, Session.AUTO_ACKNOWLEDGE);
    consumer = session.createDurableSubscriber(topic, "SubsId", null, true);
    for (int i = 0; i < sent / 2; i++) {
        Message m = consumer.receive(30000);
        assertNotNull("got message: " + i, m);
        LOG.info("Got :" + i + ", " + m);
    }
    activeDurableSubName = broker.getAdminView().getDurableTopicSubscribers()[0];
    LOG.info("durable sub name: " + activeDurableSubName);
    final DurableSubscriptionViewMBean durableSubscriptionView2 = (DurableSubscriptionViewMBean) broker.getManagementContext().newProxyInstance(activeDurableSubName, DurableSubscriptionViewMBean.class, true);
    assertTrue("is active", durableSubscriptionView2.isActive());
    assertEquals("all enqueued", keepDurableSubsActive ? 10 : 0, durableSubscriptionView2.getEnqueueCounter());
    assertTrue("correct dequeue", Wait.waitFor(new Wait.Condition() {

        @Override
        public boolean isSatisified() throws Exception {
            long val = durableSubscriptionView2.getDequeueCounter();
            LOG.info("dequeue count:" + val);
            return 10 == val;
        }
    }));
}