package org.objectweb.jtests.jms.framework;
import org.objectweb.jtests.jms.admin.*;
import junit.framework.*;
import javax.naming.*;
import javax.jms.*;
public class PubSubTestCase extends JMSTestCase {
private Admin admin;
private InitialContext ctx;
private static final String TCF_NAME = "testTCF";
private static final String TOPIC_NAME = "testTopic";
protected Topic publisherTopic;
protected TopicPublisher publisher;
protected TopicConnectionFactory publisherTCF;
protected TopicConnection publisherConnection;
protected TopicSession publisherSession;
protected Topic subscriberTopic;
protected TopicSubscriber subscriber;
protected TopicConnectionFactory subscriberTCF;
protected TopicConnection subscriberConnection;
protected TopicSession subscriberSession;
protected void setUp() {
try {
admin = AdminFactory.getAdmin();
admin.createTopicConnectionFactory(TCF_NAME);
admin.createTopic(TOPIC_NAME);
ctx = admin.createInitialContext();
publisherTCF = (TopicConnectionFactory)ctx.lookup(TCF_NAME);
publisherTopic = (Topic)ctx.lookup(TOPIC_NAME);
publisherConnection = publisherTCF.createTopicConnection();
if (publisherConnection.getClientID() == null) {
publisherConnection.setClientID("publisherConnection");
}
publisherSession = publisherConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
publisher = publisherSession.createPublisher(publisherTopic);
subscriberTCF = (TopicConnectionFactory)ctx.lookup(TCF_NAME);
subscriberTopic = (Topic)ctx.lookup(TOPIC_NAME);
subscriberConnection = subscriberTCF.createTopicConnection();
if (subscriberConnection.getClientID() == null) {
subscriberConnection.setClientID("subscriberConnection");
}
subscriberSession = subscriberConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
subscriber = subscriberSession.createSubscriber(subscriberTopic);
publisherConnection.start();
subscriberConnection.start();
} catch (Exception e) {
e.printStackTrace();
}
}
protected void tearDown() {
try {
publisherConnection.close();
subscriberConnection.close();
admin.deleteTopicConnectionFactory(TCF_NAME);
admin.deleteTopic(TOPIC_NAME);
ctx.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
publisherTopic = null;
publisher = null;
publisherTCF = null;
publisherSession = null;
publisherConnection = null;
subscriberTopic = null;
subscriber = null;
subscriberTCF = null;
subscriberSession = null;
subscriberConnection = null;
}
}
public PubSubTestCase (String name) {
super(name);
}
}