{
conn = cf.createTopicConnection();
conn.setClientID("Client1");
TopicSession s = conn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
// Create 2 durable subscription and 2 non-durable subscription
MessageConsumer cons1 = s.createDurableSubscriber(topic, "SubscriberA");
MessageConsumer cons2 = s.createDurableSubscriber(topic, "SubscriberB", "wibble is null", false);
s.createSubscriber(topic);
s.createSubscriber(topic);
MessageProducer prod = s.createProducer(topic);
prod.setDeliveryMode(DeliveryMode.PERSISTENT);
// Send a couple of messages
TextMessage tm1 = s.createTextMessage("message1");
TextMessage tm2 = s.createTextMessage("message2");
prod.send(tm1);
prod.send(tm2);
// There should be 4 subscriptions
ObjectName destObjectName =
new ObjectName("jboss.messaging.destination:service=Topic,name=TopicSubscriptionList");
List list = (List)ServerManagement.invoke(destObjectName, "listAllSubscriptions", null, null);
assertEquals(4, list.size());
SubscriptionInfo sub1 = (SubscriptionInfo)list.get(0);
SubscriptionInfo sub2 = (SubscriptionInfo)list.get(1);
SubscriptionInfo sub3 = (SubscriptionInfo)list.get(2);
SubscriptionInfo sub4 = (SubscriptionInfo)list.get(3);
assertEquals("Client1", sub1.getClientID());
assertEquals(-1, sub1.getMaxSize());
assertEquals(2, sub1.getMessageCount());
assertEquals(null, sub1.getSelector());
assertEquals("SubscriberA", sub1.getName());
assertEquals("Client1", sub2.getClientID());
assertEquals(-1, sub2.getMaxSize());
assertEquals(2, sub2.getMessageCount());
assertEquals("wibble is null", sub2.getSelector());
assertEquals("SubscriberB", sub2.getName());
assertEquals(null, sub3.getClientID());
assertEquals(-1, sub3.getMaxSize());
assertEquals(2, sub3.getMessageCount());
assertEquals(null, sub3.getSelector());
assertEquals(null, sub3.getName());
assertEquals(null, sub4.getClientID());
assertEquals(-1, sub4.getMaxSize());
assertEquals(2, sub4.getMessageCount());
assertEquals(null, sub4.getSelector());
assertEquals(null, sub4.getName());
//Now the durable
list = (List)ServerManagement.invoke(destObjectName, "listDurableSubscriptions", null, null);
assertEquals(2, list.size());
sub1 = (SubscriptionInfo)list.get(0);
sub2 = (SubscriptionInfo)list.get(1);
assertEquals("Client1", sub1.getClientID());
assertEquals(-1, sub1.getMaxSize());
assertEquals(2, sub1.getMessageCount());
assertEquals(null, sub1.getSelector());
assertEquals("SubscriberA", sub1.getName());
assertEquals("Client1", sub2.getClientID());
assertEquals(-1, sub2.getMaxSize());
assertEquals(2, sub2.getMessageCount());
assertEquals("wibble is null", sub2.getSelector());
assertEquals("SubscriberB", sub2.getName());
//and the non durable
list = (List)ServerManagement.invoke(destObjectName, "listNonDurableSubscriptions", null, null);
assertEquals(2, list.size());
sub3 = (SubscriptionInfo)list.get(0);
sub4 = (SubscriptionInfo)list.get(1);
assertEquals(null, sub3.getClientID());
assertEquals(-1, sub3.getMaxSize());
assertEquals(2, sub3.getMessageCount());
assertEquals(null, sub3.getSelector());
assertEquals(null, sub3.getName());
assertEquals(null, sub4.getClientID());
assertEquals(-1, sub4.getMaxSize());
assertEquals(2, sub4.getMessageCount());
assertEquals(null, sub4.getSelector());
assertEquals(null, sub4.getName());
cons1.close();
cons2.close();
s.unsubscribe("SubscriberA");
s.unsubscribe("SubscriberB");
conn.close();
removeAllMessages("TopicSubscriptionList", false, 0);