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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]