/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.wicket.examples;
import com.meterware.httpunit.HttpUnitOptions;
import org.eclipse.jetty.server.HttpConfiguration;
import org.eclipse.jetty.server.HttpConnectionFactory;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.webapp.WebAppContext;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
/**
* Test decorator that starts a jetty instance
*
* @author ivaynberg
*/
public class JettyTestCaseDecorator extends Assert
{
private Server server;
private String contextPath;
private String webappLocation;
protected int localPort;
/**
* @throws Exception
*/
@Before
public void before() throws Exception
{
HttpUnitOptions.setExceptionsThrownOnScriptError(false);
System.setProperty("wicket.configuration", "deployment");
server = new Server(0);
HttpConfiguration http_config = new HttpConfiguration();
http_config.setSecureScheme("https");
http_config.setSecurePort(8443);
http_config.setOutputBufferSize(32768);
ServerConnector http = new ServerConnector(server, new HttpConnectionFactory(http_config));
server.addConnector(http);
WebAppContext web = new WebAppContext();
if (contextPath == null)
web.setContextPath("/wicket-examples");
else
web.setContextPath(contextPath);
if (webappLocation == null)
{
String basedir = System.getProperty("basedir");
String path = "";
if (basedir != null)
path = basedir + "/";
path += "src/main/webapp";
web.setWar(path);
}
else
{
web.setWar(webappLocation);
}
server.setHandler(web);
server.start();
localPort = http.getLocalPort();
}
/**
* @throws Exception
*/
@After
public void after() throws Exception
{
contextPath = null;
webappLocation = null;
server.stop();
server.join();
}
public String getContextPath()
{
return contextPath;
}
public void setContextPath(String contextPath)
{
this.contextPath = contextPath;
}
public String getWebappLocation()
{
return webappLocation;
}
public void setWebappLocation(String webappLocation)
{
this.webappLocation = webappLocation;
}
}