svn commit: r1873 - in logback/trunk/logback-access: . src/main/java/ch/qos/logback/access/db/dialect src/test/input src/test/input/integration src/test/input/integration/db src/test/java/ch/qos/logback/access/db

Author: ceki Date: Fri Oct 24 23:22:21 2008 New Revision: 1873 Added: logback/trunk/logback-access/src/main/java/ch/qos/logback/access/db/dialect/msSQLServer.sql - copied, changed from r1859, /logback/trunk/logback-access/src/main/java/ch/qos/logback/access/db/dialect/mssql.sql logback/trunk/logback-access/src/test/input/ logback/trunk/logback-access/src/test/input/integration/ logback/trunk/logback-access/src/test/input/integration/db/ logback/trunk/logback-access/src/test/input/integration/db/mysql-with-driver.xml logback/trunk/logback-access/src/test/input/integration/db/oracle10g-with-driver.xml logback/trunk/logback-access/src/test/input/integration/db/oracle11g-with-driver.xml logback/trunk/logback-access/src/test/input/integration/db/postgresql-with-driver.xml logback/trunk/logback-access/src/test/input/integration/db/sqlserver-with-driver.xml logback/trunk/logback-access/src/test/java/ch/qos/logback/access/db/DBAppenderIntegrationTest.java Removed: logback/trunk/logback-access/src/main/java/ch/qos/logback/access/db/dialect/mssql.sql Modified: logback/trunk/logback-access/pom.xml Log: Related to LBCORE-15 - doing integration tests with various databases for logback-access Modified: logback/trunk/logback-access/pom.xml ============================================================================== --- logback/trunk/logback-access/pom.xml (original) +++ logback/trunk/logback-access/pom.xml Fri Oct 24 23:22:21 2008 @@ -1,4 +1,6 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <parent> <groupId>ch.qos.logback</groupId> @@ -21,7 +23,8 @@ a line return in the description. The generated jar will contain a corrupt MANIFEST file. --> - Logback: the generic, reliable, fast and flexible logging library for Java. + Logback: the generic, reliable, fast and flexible logging + library for Java. </description> <licenses> <license> @@ -48,28 +51,28 @@ <groupId>tomcat</groupId> <artifactId>catalina</artifactId> <scope>compile</scope> - <optional>true</optional> + <optional>true</optional> </dependency> <dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty</artifactId> <scope>compile</scope> - <optional>true</optional> + <optional>true</optional> </dependency> <dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>servlet-api-2.5</artifactId> <scope>compile</scope> - <optional>true</optional> + <optional>true</optional> </dependency> <dependency> <groupId>janino</groupId> <artifactId>janino</artifactId> <scope>compile</scope> - <optional>true</optional> + <optional>true</optional> </dependency> <dependency> @@ -77,14 +80,14 @@ <artifactId>hsqldb</artifactId> <scope>test</scope> </dependency> - + <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <scope>compile</scope> - <optional>true</optional> + <optional>true</optional> </dependency> - + </dependencies> <build> @@ -103,9 +106,9 @@ <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> - <fork>once</fork> - <reportFormat>plain</reportFormat> - <disableXmlReport>true</disableXmlReport> + <fork>once</fork> + <reportFormat>plain</reportFormat> + <disableXmlReport>true</disableXmlReport> <excludes> <exclude>**/AllTest.java</exclude> <exclude>**/PackageTest.java</exclude> @@ -129,7 +132,47 @@ </executions> </plugin> </plugins> - </build> + + + <profiles> + <profile> + <!-- Integration tests require the host-orion profile --> + <id>host-orion</id> + + <dependencies> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>5.0.8</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>postgresql</groupId> + <artifactId>postgresql</artifactId> + <version>8.2-507.jdbc3</version> + </dependency> + + <!-- locally installed artifact --> + <dependency> + <groupId>com.microsoft.sqlserver</groupId> + <artifactId>sqljdbc</artifactId> + <version>2.0</version> + <scope>test</scope> + </dependency> + <!-- locally installed artifact --> + <dependency> + <groupId>com.oracle</groupId> + <artifactId>ojdbc14</artifactId> + <version>10.2.0.1</version> + <scope>test</scope> + </dependency> + </dependencies> + + </profile> + + </profiles> + </project> \ No newline at end of file Copied: logback/trunk/logback-access/src/main/java/ch/qos/logback/access/db/dialect/msSQLServer.sql (from r1859, /logback/trunk/logback-access/src/main/java/ch/qos/logback/access/db/dialect/mssql.sql) ============================================================================== --- /logback/trunk/logback-access/src/main/java/ch/qos/logback/access/db/dialect/mssql.sql (original) +++ logback/trunk/logback-access/src/main/java/ch/qos/logback/access/db/dialect/msSQLServer.sql Fri Oct 24 23:22:21 2008 @@ -4,7 +4,7 @@ DROP TABLE access_event_header DROP TABLE access_event -CREATE TABLE logging_event +CREATE TABLE access_event ( timestmp BIGINT NOT NULL, requestURI VARCHAR(254), Added: logback/trunk/logback-access/src/test/input/integration/db/mysql-with-driver.xml ============================================================================== --- (empty file) +++ logback/trunk/logback-access/src/test/input/integration/db/mysql-with-driver.xml Fri Oct 24 23:22:21 2008 @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<configuration> + + <appender name="DB" class="ch.qos.logback.access.db.DBAppender"> + <connectionSource + class="ch.qos.logback.core.db.DriverManagerConnectionSource"> + <driverClass>com.mysql.jdbc.Driver</driverClass> + <url>jdbc:mysql://localhost:3306/logback</url> + <user>root</user> + <password></password> + </connectionSource> + </appender> + + + <appender-ref ref="DB" /> +</configuration> Added: logback/trunk/logback-access/src/test/input/integration/db/oracle10g-with-driver.xml ============================================================================== --- (empty file) +++ logback/trunk/logback-access/src/test/input/integration/db/oracle10g-with-driver.xml Fri Oct 24 23:22:21 2008 @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<configuration> + + <appender name="DB" class="ch.qos.logback.access.db.DBAppender"> + <connectionSource + class="ch.qos.logback.core.db.DriverManagerConnectionSource"> + <driverClass>oracle.jdbc.OracleDriver</driverClass> + <url>jdbc:oracle:thin:@localhost:1522:xe</url> + <user>hr</user> + <password>hr</password> + </connectionSource> + </appender> + + + <appender-ref ref="DB" /> +</configuration> Added: logback/trunk/logback-access/src/test/input/integration/db/oracle11g-with-driver.xml ============================================================================== --- (empty file) +++ logback/trunk/logback-access/src/test/input/integration/db/oracle11g-with-driver.xml Fri Oct 24 23:22:21 2008 @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<configuration> + + <appender name="DB" class="ch.qos.logback.access.db.DBAppender"> + <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource"> + <driverClass>oracle.jdbc.OracleDriver</driverClass> + <url>jdbc:oracle:thin:@localhost:1521:orcl</url> + <user>SCOTT</user> + <password>SCOTT</password> + </connectionSource> + </appender> + + + <appender-ref ref="DB" /> + +</configuration> Added: logback/trunk/logback-access/src/test/input/integration/db/postgresql-with-driver.xml ============================================================================== --- (empty file) +++ logback/trunk/logback-access/src/test/input/integration/db/postgresql-with-driver.xml Fri Oct 24 23:22:21 2008 @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<configuration> + + <appender name="DB" class="ch.qos.logback.access.db.DBAppender"> + <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource"> + <driverClass>org.postgresql.Driver</driverClass> + <url>jdbc:postgresql://192.168.1.5:5432/test</url> + <user>logback</user> + <password>logback</password> + </connectionSource> + </appender> + + <appender-ref ref="DB" /> + +</configuration> Added: logback/trunk/logback-access/src/test/input/integration/db/sqlserver-with-driver.xml ============================================================================== --- (empty file) +++ logback/trunk/logback-access/src/test/input/integration/db/sqlserver-with-driver.xml Fri Oct 24 23:22:21 2008 @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<configuration> + + <appender name="DB" class="ch.qos.logback.access.db.DBAppender"> + <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource"> + <driverClass>com.microsoft.sqlserver.jdbc.SQLServerDriver</driverClass> + <url>jdbc:sqlserver://localhost:1987;databaseName=logback;</url> + <user>logback</user> + <password>logback</password> + </connectionSource> + </appender> + + + <appender-ref ref="DB" /> +</configuration> Added: logback/trunk/logback-access/src/test/java/ch/qos/logback/access/db/DBAppenderIntegrationTest.java ============================================================================== --- (empty file) +++ logback/trunk/logback-access/src/test/java/ch/qos/logback/access/db/DBAppenderIntegrationTest.java Fri Oct 24 23:22:21 2008 @@ -0,0 +1,136 @@ +package ch.qos.logback.access.db; + +import static org.junit.Assert.assertEquals; + +import java.net.InetAddress; +import java.util.Random; + +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; + +import ch.qos.logback.access.dummy.DummyRequest; +import ch.qos.logback.access.dummy.DummyResponse; +import ch.qos.logback.access.dummy.DummyServerAdapter; +import ch.qos.logback.access.joran.JoranConfigurator; +import ch.qos.logback.access.spi.AccessContext; +import ch.qos.logback.access.spi.AccessEvent; +import ch.qos.logback.core.Appender; +import ch.qos.logback.core.joran.spi.JoranException; +import ch.qos.logback.core.status.Status; +import ch.qos.logback.core.util.StatusPrinter; + +public class DBAppenderIntegrationTest { + + static String LOCAL_HOST_NAME; + static String[] CONFORMING_HOST_LIST = new String[] { "Orion" }; + + int diff = new Random(System.nanoTime()).nextInt(10000); + AccessContext context = new AccessContext(); + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + InetAddress localhostIA = InetAddress.getLocalHost(); + LOCAL_HOST_NAME = localhostIA.getHostName(); + } + + @AfterClass + public static void tearDownAfterClass() throws Exception { + } + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + + } + + public void doTest(String configFile) throws JoranException { + JoranConfigurator configurator = new JoranConfigurator(); + configurator.setContext(context); + configurator.doConfigure(configFile); + + Appender<AccessEvent> appender = context.getAppender("DB"); + + for (int i = 0; i < 10; i++) { + AccessEvent event = createAccessEvent(); + appender.doAppend(event); + } + + StatusPrinter.print(context); + + // check that there were no errors + assertEquals(Status.INFO, context.getStatusManager().getLevel()); + + } + + static boolean isConformingHost() { + for (String conformingHost : CONFORMING_HOST_LIST) { + if (conformingHost.equalsIgnoreCase(LOCAL_HOST_NAME)) { + return true; + } + } + return false; + } + + @Test + public void sqlserver() throws Exception { + // perform test only on conforming hosts + if (!isConformingHost()) { + return; + } + doTest("src/test/input/integration/db/sqlserver-with-driver.xml"); + } + + @Test + public void oracle10g() throws Exception { + // perform test only on conforming hosts + if (!isConformingHost()) { + return; + } + doTest("src/test/input/integration/db/oracle10g-with-driver.xml"); + } + + @Test + @Ignore + public void oracle11g() throws Exception { + // perform test only on conforming hosts + if (!isConformingHost()) { + return; + } + doTest("src/test/input/integration/db/oracle11g-with-driver.xml"); + } + + @Test + public void mysql() throws Exception { + // perform test only on conforming hosts + if (!isConformingHost()) { + return; + } + doTest("src/test/input/integration/db/mysql-with-driver.xml"); + } + + @Test + public void postgres() throws Exception { + // perform test only on conforming hosts + if (!isConformingHost()) { + return; + } + doTest("src/test/input/integration/db/postgresql-with-driver.xml"); + } + + private AccessEvent createAccessEvent() { + DummyRequest request = new DummyRequest(); + DummyResponse response = new DummyResponse(); + DummyServerAdapter adapter = new DummyServerAdapter(request, response); + + AccessEvent ae = new AccessEvent(request, response, adapter); + return ae; + } + +}
participants (1)
-
noreply.ceki@qos.ch