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