1 /*** 2 * 3 * Copyright 2004 Protique Ltd 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 **/ 18 package org.codehaus.activemq; 19 20 import org.codehaus.activemq.util.IndentPrinter; 21 22 import javax.jms.Connection; 23 import javax.jms.DeliveryMode; 24 import javax.jms.JMSException; 25 import javax.jms.MessageConsumer; 26 import javax.jms.Session; 27 import javax.jms.Topic; 28 29 /*** 30 * @version $Revision: 1.15 $ 31 */ 32 public class JmsTopicSendReceiveTest extends JmsSendReceiveTestSupport { 33 protected Connection connection; 34 35 protected void setUp() throws Exception { 36 super.setUp(); 37 38 connectionFactory = createConnectionFactory(); 39 connection = createConnection(); 40 if (durable) { 41 connection.setClientID(getClass().getName()); 42 } 43 44 System.out.println("Created connection: " + connection); 45 46 session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 47 48 System.out.println("Created session: " + session); 49 producer = session.createProducer(null); 50 producer.setDeliveryMode(deliveryMode); 51 52 System.out.println("Created producer: " + producer + " delivery mode = " + 53 (deliveryMode == DeliveryMode.PERSISTENT ? "PERSISTENT" : "NON_PERSISTENT")); 54 55 if (topic) { 56 consumerDestination = session.createTopic(getConsumerSubject()); 57 producerDestination = session.createTopic(getProducerSubject()); 58 } 59 else { 60 consumerDestination = session.createQueue(getConsumerSubject()); 61 producerDestination = session.createQueue(getProducerSubject()); 62 } 63 64 System.out.println("Created consumer destination: " + consumerDestination + " of type: " + consumerDestination.getClass()); 65 System.out.println("Created producer destination: " + producerDestination + " of type: " + producerDestination.getClass()); 66 consumer = createConsumer(); 67 consumer.setMessageListener(this); 68 connection.start(); 69 70 System.out.println("Created connection: " + connection); 71 } 72 73 protected MessageConsumer createConsumer() throws JMSException { 74 if (durable) { 75 System.out.println("Creating durable consumer"); 76 return session.createDurableSubscriber((Topic) consumerDestination, getName()); 77 } 78 return session.createConsumer(consumerDestination); 79 } 80 81 protected void tearDown() throws Exception { 82 System.out.println("Dumping stats..."); 83 connectionFactory.getFactoryStats().dump(new IndentPrinter()); 84 85 System.out.println("Closing down connection"); 86 87 /*** TODO we should be able to shut down properly */ 88 session.close(); 89 connection.close(); 90 } 91 92 }