no.difi.oxalis.test.jetty.AbstractJettyServerTest Maven / Gradle / Ivy
/*
* Copyright 2010-2018 Norwegian Agency for Public Management and eGovernment (Difi)
*
* Licensed under the EUPL, Version 1.1 or – as soon they
* will be approved by the European Commission - subsequent
* versions of the EUPL (the "Licence");
*
* You may not use this work except in compliance with the Licence.
*
* You may obtain a copy of the Licence at:
*
* https://joinup.ec.europa.eu/community/eupl/og_page/eupl
*
* Unless required by applicable law or agreed to in
* writing, software distributed under the Licence is
* distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied.
* See the Licence for the specific language governing
* permissions and limitations under the Licence.
*/
package no.difi.oxalis.test.jetty;
import com.google.inject.Injector;
import com.google.inject.servlet.GuiceFilter;
import com.google.inject.servlet.GuiceServletContextListener;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import javax.servlet.DispatcherType;
import java.util.EnumSet;
public abstract class AbstractJettyServerTest {
protected Injector injector;
protected Server server;
public abstract Injector getInjector();
@BeforeClass
public void beforeClass() throws Exception {
injector = getInjector();
server = new Server(8080);
ServletContextHandler handler = new ServletContextHandler(server, "/");
handler.addFilter(GuiceFilter.class, "/*", EnumSet.allOf(DispatcherType.class));
handler.addEventListener(new GuiceServletContextListener() {
@Override
protected Injector getInjector() {
return injector;
}
});
handler.addServlet(DefaultServlet.class, "/");
server.start();
}
@AfterClass
public void afterClass() throws Exception {
server.stop();
}
}