use of org.apache.cxf.wsn.client.Subscription in project cxf by apache.
the class WsnBrokerTest method testPublisher.
@Test
public void testPublisher() throws Exception {
TestConsumer consumerCallback = new TestConsumer();
Consumer consumer = new Consumer(consumerCallback, "http://localhost:" + port2 + "/test/consumer");
Subscription subscription = notificationBroker.subscribe(consumer, "myTopic");
PublisherCallback publisherCallback = new PublisherCallback();
Publisher publisher = new Publisher(publisherCallback, "http://localhost:" + port2 + "/test/publisher");
Registration registration = notificationBroker.registerPublisher(publisher, "myTopic");
synchronized (consumerCallback.notifications) {
notificationBroker.notify(publisher, "myTopic", new JAXBElement<String>(new QName("urn:test:org", "foo"), String.class, "bar"));
consumerCallback.notifications.wait(1000000);
}
assertEquals(1, consumerCallback.notifications.size());
NotificationMessageHolderType message = consumerCallback.notifications.get(0);
assertEquals(WSNHelper.getInstance().getWSAAddress(subscription.getEpr()), WSNHelper.getInstance().getWSAAddress(message.getSubscriptionReference()));
assertEquals(WSNHelper.getInstance().getWSAAddress(publisher.getEpr()), WSNHelper.getInstance().getWSAAddress(message.getProducerReference()));
subscription.unsubscribe();
registration.destroy();
publisher.stop();
consumer.stop();
}
use of org.apache.cxf.wsn.client.Subscription in project cxf by apache.
the class WsnBrokerTest method testPublisherOnDemand.
@Test
public void testPublisherOnDemand() throws Exception {
TestConsumer consumerCallback = new TestConsumer();
Consumer consumer = new Consumer(consumerCallback, "http://localhost:" + port2 + "/test/consumer");
PublisherCallback publisherCallback = new PublisherCallback();
Publisher publisher = new Publisher(publisherCallback, "http://localhost:" + port2 + "/test/publisher");
Registration registration = notificationBroker.registerPublisher(publisher, Arrays.asList("myTopic1", "myTopic2"), true);
Subscription subscription = notificationBroker.subscribe(consumer, "myTopic1");
assertTrue(publisherCallback.subscribed.await(5, TimeUnit.SECONDS));
synchronized (consumerCallback.notifications) {
notificationBroker.notify(publisher, "myTopic1", new JAXBElement<String>(new QName("urn:test:org", "foo"), String.class, "bar"));
consumerCallback.notifications.wait(1000000);
}
subscription.unsubscribe();
assertTrue(publisherCallback.unsubscribed.await(5, TimeUnit.SECONDS));
registration.destroy();
publisher.stop();
consumer.stop();
}
use of org.apache.cxf.wsn.client.Subscription in project cxf by apache.
the class WsnBrokerTest method testNullPublisherReference.
@Test
public void testNullPublisherReference() throws Exception {
TestConsumer consumerCallback = new TestConsumer();
Consumer consumer = new Consumer(consumerCallback, "http://localhost:" + port2 + "/test/consumer");
Subscription subscription = notificationBroker.subscribe(consumer, "myTopicNullEPR");
Publisher publisher = new Publisher(null, null);
Registration registration = notificationBroker.registerPublisher(publisher, "myTopicNullEPR", false);
synchronized (consumerCallback.notifications) {
notificationBroker.notify(publisher, "myTopicNullEPR", new JAXBElement<String>(new QName("urn:test:org", "foo"), String.class, "bar"));
consumerCallback.notifications.wait(1000000);
}
assertEquals(1, consumerCallback.notifications.size());
NotificationMessageHolderType message = consumerCallback.notifications.get(0);
assertEquals(WSNHelper.getInstance().getWSAAddress(subscription.getEpr()), WSNHelper.getInstance().getWSAAddress(message.getSubscriptionReference()));
subscription.unsubscribe();
registration.destroy();
publisher.stop();
consumer.stop();
}
use of org.apache.cxf.wsn.client.Subscription in project cxf by apache.
the class WsnBrokerTest method testPullPointWithQueueName.
@Test
public void testPullPointWithQueueName() throws Exception {
PullPoint pullPoint = createPullPoint.create("testQueue");
Subscription subscription = notificationBroker.subscribe(pullPoint, "myTopic");
notificationBroker.notify("myTopic", new JAXBElement<String>(new QName("urn:test:org", "foo"), String.class, "bar"));
boolean received = false;
for (int i = 0; i < 50; i++) {
List<NotificationMessageHolderType> messages = pullPoint.getMessages(10);
if (!messages.isEmpty()) {
received = true;
break;
}
Thread.sleep(100);
}
assertTrue(received);
subscription.unsubscribe();
pullPoint.destroy();
}
Aggregations