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;
+  }
+  
+}
_______________________________________________
logback-dev mailing list
[email protected]
http://qos.ch/mailman/listinfo/logback-dev

Reply via email to