TopicSession session1 = con.createTopicSession(false, AMQSession.NO_ACKNOWLEDGE);
TopicSubscriber noLocal = session1.createDurableSubscriber(topic, "noLocal", "", true);
TopicSubscriber select = session1.createDurableSubscriber(topic, "select", "Selector = 'select'", false);
TopicSubscriber normal = session1.createDurableSubscriber(topic, "normal");
TopicPublisher publisher = session1.createPublisher(topic);
con.start();
TextMessage m;
TextMessage message;
//send message to all consumers
publisher.publish(session1.createTextMessage("hello-new2"));
//test normal subscriber gets message
m = (TextMessage) normal.receive(5000);
assertNotNull(m);
//test selector subscriber doesn't message
m = (TextMessage) select.receive(2000);
assertNull(m);
//test nolocal subscriber doesn't message
m = (TextMessage) noLocal.receive(2000);
if (m != null)
{
System.out.println("Message:" + m.getText());
}
assertNull(m);
//send message to all consumers
message = session1.createTextMessage("hello2");
message.setStringProperty("Selector", "select");
publisher.publish(message);
//test normal subscriber gets message
m = (TextMessage) normal.receive(5000);
assertNotNull(m);
//test selector subscriber does get message
m = (TextMessage) select.receive(2000);
assertNotNull(m);
//test nolocal subscriber doesn't message
m = (TextMessage) noLocal.receive(1000);
assertNull(m);
AMQConnection con2 = new AMQConnection(BROKER + "?retries='0'", "guest", "guest", "test2", "test");
TopicSession session2 = con2.createTopicSession(false, AMQSession.NO_ACKNOWLEDGE);
TopicPublisher publisher2 = session2.createPublisher(topic);
message = session2.createTextMessage("hello2");
message.setStringProperty("Selector", "select");
publisher2.publish(message);
//test normal subscriber gets message
m = (TextMessage) normal.receive(2000);
assertNotNull(m);