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.transport; 19 20 import junit.framework.TestCase; 21 import org.codehaus.activecluster.ClusterException; 22 23 import javax.jms.JMSException; 24 import java.util.HashMap; 25 import java.util.Map; 26 27 /*** 28 * @version $Revision: 1.1 $ 29 */ 30 public abstract class DiscoveryAgentTestSupport extends TestCase implements DiscoveryListener { 31 protected boolean waitForever = false; 32 33 protected DiscoveryAgent agent; 34 protected Map localDetails = new HashMap(); 35 protected String type = "_activemq_testcase."; 36 37 public void testDiscovery() throws Exception { 38 localDetails.put("cheese", "Cheddar"); 39 localDetails.put("location", "London"); 40 41 agent.setDiscoveryListener(this); 42 agent.start(); 43 agent.registerService(createName(), localDetails); 44 45 if (waitForever) { 46 synchronized (this) { 47 this.wait(); 48 } 49 } 50 51 agent.stop(); 52 } 53 54 protected String createName() { 55 return getName() + "@" + System.currentTimeMillis(); 56 } 57 58 protected void setUp() throws Exception { 59 super.setUp(); 60 agent = createDiscoveryAgent(); 61 if (System.getProperty("waitForever") != null) { 62 waitForever = true; 63 } 64 } 65 66 protected abstract DiscoveryAgent createDiscoveryAgent() throws JMSException, ClusterException; 67 68 public void addService(DiscoveryEvent event) { 69 System.out.println("Added service: " + event + " with details: " + event.getServiceDetails() + " name: " + event.getServiceName()); 70 } 71 72 public void removeService(DiscoveryEvent event) { 73 System.out.println("Removed service: " + event); 74 } 75 }