package org.mortbay.jetty.webapp.logging;
import org.eclipse.jetty.toolchain.test.JettyDistro;
import org.eclipse.jetty.toolchain.test.SimpleRequest;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
public class MultiLoggingDistroTest
{
private static JettyDistro jetty;
private static final String[] CONTEXTS =
{ "test-war-commons_logging_1.0.3", "test-war-commons_logging_1.1", "test-war-java_util_logging", "test-war-log4j_1.2.15", "test-war-log4j_1.1.3",
"test-war-slf4j_1.2", "test-war-slf4j_1.5.6", "test-war-slf4j_1.6.1" };
@BeforeClass
public static void initJetty() throws Exception
{
jetty = new JettyDistro(MultiLoggingDistroTest.class);
// Eliminate Distribution Test & Javadoc Webapps
jetty.delete("webapps/test.war");
jetty.delete("contexts/test.d");
jetty.delete("contexts/javadoc.xml");
jetty.delete("contexts/test.xml");
jetty.delete("resources/log4j.properties");
// Copy Test Wars & Configs
for (String context : CONTEXTS)
{
jetty.copyTestWar(context + ".war");
jetty.unpackConfig(context + "-config.jar");
}
// Copy Slf4j Libs
jetty.copyLib("slf4j-api.jar","lib/logging/slf4j-api.jar");
jetty.copyLib("jcl-over-slf4j.jar","lib/logging/jcl-over-slf4j.jar");
jetty.copyLib("jul-to-slf4j.jar","lib/logging/jul-to-slf4j.jar");
jetty.copyLib("log4j-over-slf4j.jar","lib/logging/log4j-over-slf4j.jar");
// Copy Logback Libs
jetty.copyLib("logback-core.jar","lib/logging/logback-core.jar");
jetty.copyLib("logback-classic.jar","lib/logging/logback-classic.jar");
jetty.copyLib("jetty-logback.jar","lib/logging/jetty-logback.jar");
// Unpack Logback Config
jetty.unpackConfig("jetty-logback-config.jar");
// Copy Project Config
jetty.copyProjectMainConfig();
jetty.createProjectLib("jetty-webapp-logging.jar");
// Overlay Manual Config
jetty.overlayConfig("multi");
jetty.setDebug(false);
jetty.start();
}
@AfterClass
public static void shutdownJetty() throws Exception
{
if (jetty != null)
{
jetty.stop();
}
}
@Test
public void testLogging() throws Exception
{
SimpleRequest request = new SimpleRequest(jetty.getBaseUri());
for (String context : CONTEXTS)
{
request.getString("/" + context + "/logging");
}
LogAssert.assertContainsEntries(jetty, "logs/jetty-central.log", "expected-multi.txt");
}
}