You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by ce...@apache.org on 2005/01/11 21:27:22 UTC
cvs commit: logging-log4j/tests/integration/src/java SampleServlet.java
ceki 2005/01/11 12:27:22
Added: tests/integration build.xml server.properties
client-log4j.xml client.properties
tests/integration/src/webapp/WEB-INF web.xml
tests/integration/src/webapp/WEB-INF/classes test-log4j.xml
tests/integration/test/java TestSampleServlet.java
tests/integration/src/java SampleServlet.java
Log:
Cactus-based integration testing with Tomcat 5.0.x. (Cactus 1.6 does not run with TC 5.5.)
Revision Changes Path
1.1 logging-log4j/tests/integration/build.xml
Index: build.xml
===================================================================
<project name="ceki-cactus" default="build" basedir="." >
<property file="build.properties" />
<property name="project.name.file" value="sample-servlet"/>
<property name="log4j.dir" location="../.."/>
<!-- Directory layout -->
<property name="src.dir" location="src"/>
<property name="src.java.dir" location="${src.dir}/java"/>
<property name="src.webapp.dir" location="${src.dir}/webapp"/>
<property name="src.test.dir" location="test/java"/>
<property name="target.dir" location="target"/>
<property name="target.classes.dir" location="${target.dir}/classes"/>
<property name="target.classes.java.dir" location="${target.classes.dir}/java"/>
<property name="target.classes.cactus.dir" location="${target.classes.dir}/cactus"/>
<property name="target.testreports.dir" location="${target.dir}/report"/>
<property name="servlet.jar" location="/java/lib/servlet.jar"/>
<path id="servlet.cp">
<fileset dir="./otherlib/">
<include name="servlet*.jar"/>
</fileset>
</path>
<path id="log4j.cp">
<fileset dir="${log4j.dir}">
<include name="log4j-1.3*.jar"/>
</fileset>
</path>
<path id="cactus.cp">
<fileset dir="./lib/">
<include name="*.jar"/>
</fileset>
</path>
<!-- Define the Cactus tasks -->
<taskdef resource="cactus.tasks">
<classpath refid="cactus.cp"/>
</taskdef>
<!-- ================================================================= -->
<!-- Default target -->
<!-- ================================================================= -->
<target name="usage">
<echo>
These are the targets supported by this ANT build scpript:
</echo>
</target>
<!-- Initialize the build. Must be called by all targets -->
<target name="init">
</target>
<target name="log4j.jar">
<ant dir="${log4j.dir}" target="log4j.jar" inheritAll="false" inheritRefs="false"/>
</target>
<!-- Compile the Java source -->
<target name="compile.java" depends="init">
<mkdir dir="${target.classes.java.dir}"/>
<javac destdir="${target.classes.java.dir}"
debug="on" deprecation="on">
<src path="${src.java.dir}"/>
<classpath refid="servlet.cp"/>
<classpath refid="log4j.cp"/>
</javac>
</target>
<!-- Create the war file -->
<target name="war" depends="compile">
<war warfile="${target.dir}/${project.name.file}.war"
webxml="${src.webapp.dir}/WEB-INF/web.xml">
<fileset dir="${src.webapp.dir}"/>
<classes dir="${target.classes.java.dir}"/>
</war>
</target>
<!-- Compiles the Cactus test sources -->
<target name="compile.test" depends="compile.java">
<mkdir dir="${target.classes.cactus.dir}"/>
<javac destdir="${target.classes.cactus.dir}"
debug="on" deprecation="on">
<src path="${src.test.dir}"/>
<classpath refid="cactus.cp"/>
<classpath refid="servlet.cp"/>
<classpath path="${target.classes.java.dir}"/>
<classpath refid="log4j.cp"/>
</javac>
</target>
<target name="compile" depends="compile.java, compile.test">
</target>
<target name="test.prepare" depends="war, compile.test, log4j.jar">
<!-- Cactify the web-app archive -->
<cactifywar srcfile="${target.dir}/${project.name.file}.war"
destfile="${target.dir}/test.war">
<classes dir="${target.classes.cactus.dir}"/>
<lib file="${httpunit.jar}"/>
</cactifywar>
<fail unless="tomcat5x.home">tomcat5x.home variable not set</fail>
<delete>
<fileset dir="${tomcat5x.home}/common/lib" includes="log4j-1.3*.jar"/>
</delete>
<!-- Copy log4j.jar to Server -->
<copy todir="${tomcat5x.home}/common/lib">
<fileset dir="${log4j.dir}">
<include name="log4j-1.3alpha*.jar"/>
</fileset>
</copy>
</target>
<target name="test" depends="test.prepare">
<!-- Run the tests -->
<cactus warfile="${target.dir}/test.war" fork="yes"
failureproperty="tests.failed">
<cactusproperty server="false" propertiesFile="client.properties"/>
<cactusproperty server="true" propertiesFile="server.properties"/>
<classpath>
<path refid="servlet.cp"/>
<pathelement location="${target.classes.java.dir}"/>
<pathelement location="${target.classes.cactus.dir}"/>
<fileset dir="${log4j.dir}">
<include name="log4j*.jar"/>
</fileset>
</classpath>
<containerset timeout="60000">
<tomcat5x if="tomcat5x.home"
dir="${tomcat5x.home}"
output="${target.testreports.dir}/tomcat5x.out"
todir="${target.testreports.dir}/tomcat5x"/>
</containerset>
<formatter type="brief" usefile="false"/>
<batchtest>
<fileset dir="${src.test.dir}">
<include name="**/Test*.java"/>
<exclude name="**/Test*All.java"/>
</fileset>
</batchtest>
</cactus>
</target>
</project>
1.1 logging-log4j/tests/integration/server.properties
Index: server.properties
===================================================================
log4j.repositorySelectorClass=JNDI
1.1 logging-log4j/tests/integration/client-log4j.xml
Index: client-log4j.xml
===================================================================
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration>
<configuration debug="false" xmlns='http://logging.apache.org/'>
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %c - %m%n"/>
</layout>
<filter class="org.apache.log4j.filter.StringMatchFilter">
<param name="StringToMatch" value="enter"/>
<param name="AcceptOnMatch" value="false"/>
</filter>
</appender>
<logger name="org.apache.log4j.joran.action"> <level value="INFO"/></logger>
<logger name="org.apache.commons.httpclient.HttpParser"> <level value="INFO"/></logger>
<logger name="org.apache.commons.httpclient.HttpConnection"> <level value="INFO"/></logger>
<logger name="org.apache.cactus.internal"> <level value="INFO"/></logger>
<root>
<level value="DEBUG"/>
<appender-ref ref="CONSOLE" />
</root>
</configuration>
1.1 logging-log4j/tests/integration/client.properties
Index: client.properties
===================================================================
org.apache.commons.logging.Log = org.apache.commons.logging.impl.SimpleLog
# org.apache.commons.logging.Log = org.apache.commons.logging.impl.Log4JLogger
# WORKS
# log4j.configuration=file:client-log4j.xml
1.1 logging-log4j/tests/integration/src/webapp/WEB-INF/web.xml
Index: web.xml
===================================================================
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<env-entry>
<description>JNDI logging context for this app</description>
<env-entry-name>log4j/context-name</env-entry-name>
<env-entry-value>test</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
<env-entry>
<description>URL for configuring log4j context</description>
<env-entry-name>log4j/configuration-resource</env-entry-name>
<env-entry-value>test-log4j.xml</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
<listener>
<listener-class>org.apache.log4j.selector.servlet.ContextDetachingSCL</listener-class>
</listener>
</web-app>
1.1 logging-log4j/tests/integration/src/webapp/WEB-INF/classes/test-log4j.xml
Index: test-log4j.xml
===================================================================
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration>
<configuration debug="false" xmlns='http://logging.apache.org/'>
<appender name="FILE" class="org.apache.log4j.FileAppender">
<param name="File" value="server-side.log"/>
<param name="Append" value="false"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %c - %m%n"/>
</layout>
</appender>
<logger name="org.apache.log4j.joran.action"> <level value="INFO"/></logger>
<logger name="org.apache.cactus.internal.server"> <level value="INFO"/></logger>
<root>
<level value="DEBUG"/>
<appender-ref ref="FILE" />
</root>
</configuration>
1.1 logging-log4j/tests/integration/test/java/TestSampleServlet.java
Index: TestSampleServlet.java
===================================================================
import junit.framework.Test;
import junit.framework.TestSuite;
import org.apache.cactus.ServletTestCase;
import org.apache.cactus.WebRequest;
public class TestSampleServlet extends ServletTestCase {
public TestSampleServlet(String theName) {
super(theName);
}
public static Test suite() {
return new TestSuite(TestSampleServlet.class);
}
//public void beginSaveToSessionOK(WebRequest webRequest) {
//webRequest.addParameter("testparam", "it works!");
//}
//public void testSaveToSessionOK() {
//SampleServlet servlet = new SampleServlet();
//servlet.saveToSession(request);
//assertEquals("it works!", session.getAttribute("testAttribute"));
//}
public void testGetLogger1() throws Exception {
SampleServlet servlet = new SampleServlet();
servlet.getLogger1();
}
}
1.1 logging-log4j/tests/integration/src/java/SampleServlet.java
Index: SampleServlet.java
===================================================================
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import org.apache.log4j.spi.LoggerRepository;
public class SampleServlet extends HttpServlet {
public void getLogger1() throws Exception {
Logger logger = Logger.getLogger(SampleServlet.class);
LoggerRepository lr = logger.getLoggerRepository();
if(lr == null) {
throw new Exception("The LR should not be null");
}
if(!"test".equals(lr.getName())) {
throw new Exception("The name of the returned LR should be 'test'");
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org