1 package org.objectweb.celtix.testutil.common; 2 3 import java.io.IOException ; 4 import java.util.ArrayList ; 5 import java.util.List ; 6 import java.util.Map ; 7 8 9 import junit.extensions.TestSetup; 10 import junit.framework.Test; 11 12 public abstract class AbstractClientServerSetupBase extends TestSetup { 13 private final List <ServerLauncher> launchers = new ArrayList <ServerLauncher>(); 14 15 public AbstractClientServerSetupBase(Test arg0) { 16 super(arg0); 17 } 18 19 public void setUp() throws Exception { 20 startServers(); 21 } 22 23 public abstract void startServers() throws Exception ; 24 25 public void tearDown() throws Exception { 26 boolean serverPassed = stopAllServers(); 27 launchers.clear(); 28 System.gc(); 29 assertTrue("server failed", serverPassed); 30 } 31 32 protected boolean stopAllServers() { 33 boolean passed = true; 34 for (ServerLauncher sl : launchers) { 35 try { 36 sl.signalStop(); 37 } catch (IOException ex) { 38 ex.printStackTrace(); 39 } 40 } 41 for (ServerLauncher sl : launchers) { 42 try { 43 passed = passed && sl.stopServer(); 44 } catch (IOException ex) { 45 ex.printStackTrace(); 46 } 47 } 48 launchers.clear(); 49 return passed; 50 } 51 52 public boolean launchServer(Class <?> clz) { 53 boolean ok = false; 54 try { 55 ServerLauncher sl = new ServerLauncher(clz.getName()); 56 ok = sl.launchServer(); 57 assertTrue("server failed to launch", ok); 58 launchers.add(sl); 59 } catch (IOException ex) { 60 ex.printStackTrace(); 61 fail("failed to launch server " + clz); 62 } 63 64 return ok; 65 } 66 public boolean launchServer(Class <?> clz, boolean inProcess) { 67 boolean ok = false; 68 try { 69 ServerLauncher sl = new ServerLauncher(clz.getName(), inProcess); 70 ok = sl.launchServer(); 71 assertTrue("server failed to launch", ok); 72 launchers.add(sl); 73 } catch (IOException ex) { 74 ex.printStackTrace(); 75 fail("failed to launch server " + clz); 76 } 77 78 return ok; 79 } 80 public boolean launchServer(Class <?> clz, Map <String , String > props, String [] args) { 81 return launchServer(clz, props, args, false); 82 } 83 public boolean launchServer(Class <?> clz, Map <String , String > props, String [] args, 84 boolean inProcess) { 85 boolean ok = false; 86 try { 87 ServerLauncher sl = new ServerLauncher(clz.getName(), props, args, inProcess); 88 ok = sl.launchServer(); 89 assertTrue("server failed to launch", ok); 90 launchers.add(sl); 91 } catch (IOException ex) { 92 ex.printStackTrace(); 93 fail("failed to launch server " + clz); 94 } 95 96 return ok; 97 } 98 99 } 100 | Popular Tags |