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.usecases; 19 20 import org.codehaus.activemq.JmsTopicSendReceiveWithTwoConnectionsTest; 21 import org.codehaus.activemq.message.ActiveMQTopic; 22 23 import javax.jms.Destination; 24 import javax.jms.Message; 25 26 /*** 27 * @version $Revision: 1.2 $ 28 */ 29 public class CompositeConsumeTest extends JmsTopicSendReceiveWithTwoConnectionsTest { 30 31 public void testSendReceive() throws Exception { 32 messages.clear(); 33 34 Destination[] destinations = getDestinations(); 35 int destIdx = 0; 36 37 for (int i = 0; i < data.length; i++) { 38 Message message = session.createTextMessage(data[i]); 39 40 if (verbose) { 41 System.out.println("About to send a message: " + message + " with text: " + data[i]); 42 } 43 44 producer.send(destinations[destIdx], message); 45 46 if (++destIdx >= destinations.length) { 47 destIdx = 0; 48 } 49 } 50 51 assertMessagesAreReceived(); 52 } 53 54 /*** 55 * Returns the subscription subject 56 */ 57 protected String getSubject() { 58 return getPrefix() + "FOO.BAR," + getPrefix() + "FOO.X.Y," + getPrefix() + "BAR.>"; 59 } 60 61 /*** 62 * Returns the destinations on which we publish 63 */ 64 protected Destination[] getDestinations() { 65 return new Destination[]{new ActiveMQTopic(getPrefix() + "FOO.BAR"), new ActiveMQTopic(getPrefix() + "BAR.WHATNOT.XYZ"), new ActiveMQTopic(getPrefix() + "FOO.X.Y")}; 66 } 67 68 protected String getPrefix() { 69 return super.getSubject() + "."; 70 } 71 }