/**
* Copyright (C) 2008 Progress Software, Inc. All rights reserved.
* http://fusesource.com
*
* The software in this package is published under the terms of the AGPL license
* a copy of which has been included with this distribution in the license.txt file.
*/
package org.fusesource.cloudmix.controller;
import junit.framework.TestCase;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.fusesource.cloudmix.common.jetty.WebServer;
/**
* @version $Revision$
*/
public abstract class RuntimeTestSupport extends TestCase {
protected static final Log LOG = LogFactory.getLog(RuntimeTestSupport.class);
protected WebServer webServer;
@Override
protected void setUp() throws Exception {
super.setUp();
webServer = new WebServer();
webServer.start();
}
@Override
protected void tearDown() throws Exception {
webServer.stop();
}
/**
* Let stop and restart a clean webserver from scratch to simulate failover
*/
protected void restartWebServer() throws Exception {
// lets preserve the port!
// we could instead force the recreation of each agent/client/controller to associate the new port
int port = 0;
if (webServer != null) {
port = webServer.getLocalPort();
LOG.info("Stopping the web server");
webServer.stop();
}
webServer = new WebServer();
if (port > 0) {
webServer.setPort(port);
}
webServer.start();
LOG.info("Web Server restarted");
}
protected int getPort() {
return webServer.getLocalPort();
}
protected String getRootUrl() {
return webServer.getRootUrl();
}
}