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 ca...@apache.org on 2007/06/06 00:07:59 UTC

svn commit: r544657 - in /logging/log4j/companions/receivers/trunk: ./ src/main/java/org/apache/log4j/db/ src/main/java/org/apache/log4j/net/ src/main/java/org/apache/log4j/xml/ src/test/java/org/apache/log4j/ src/test/java/org/apache/log4j/db/ src/tes...

Author: carnold
Date: Tue Jun  5 15:07:58 2007
New Revision: 544657

URL: http://svn.apache.org/viewvc?view=rev&rev=544657
Log:
Bug 42102: Added missing parseUnrecElement's for DBAppender, UDP and MulticastAppender ports

Added:
    logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/net/MulticastAppender.java
      - copied, changed from r544496, logging/log4j/trunk/src/java/org/apache/log4j/net/MulticastAppender.java
    logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/net/UDPAppender.java
      - copied, changed from r544496, logging/log4j/trunk/src/java/org/apache/log4j/net/UDPAppender.java
    logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java
      - copied unchanged from r544496, logging/log4j/trunk/src/java/org/apache/log4j/xml/LogFileXMLReceiver.java
    logging/log4j/companions/receivers/trunk/src/test/java/org/apache/log4j/VectorAppender.java
      - copied unchanged from r544602, logging/log4j/trunk/tests/src/java/org/apache/log4j/VectorAppender.java
    logging/log4j/companions/receivers/trunk/src/test/java/org/apache/log4j/db/
    logging/log4j/companions/receivers/trunk/src/test/java/org/apache/log4j/db/FullCycleDBTest.java
      - copied, changed from r544601, logging/log4j/trunk/tests/src/java/org/apache/log4j/db/FullCycleDBTest.java
    logging/log4j/companions/receivers/trunk/src/test/resources/org/
    logging/log4j/companions/receivers/trunk/src/test/resources/org/apache/
    logging/log4j/companions/receivers/trunk/src/test/resources/org/apache/log4j/
    logging/log4j/companions/receivers/trunk/src/test/resources/org/apache/log4j/db/
    logging/log4j/companions/receivers/trunk/src/test/resources/org/apache/log4j/db/append-with-drivermanager1.xml
      - copied, changed from r544602, logging/log4j/trunk/tests/input/db/append-with-drivermanager1.xml
    logging/log4j/companions/receivers/trunk/src/test/resources/org/apache/log4j/db/read-with-drivermanager1.xml
      - copied, changed from r544602, logging/log4j/trunk/tests/input/db/read-with-drivermanager1.xml
Modified:
    logging/log4j/companions/receivers/trunk/pom.xml
    logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/CustomSQLDBReceiver.java
    logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DBAppender.java
    logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DBReceiver.java
    logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DBReceiverJob.java
    logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DataSourceConnectionSource.java
    logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/net/SocketHubReceiver.java

Modified: logging/log4j/companions/receivers/trunk/pom.xml
URL: http://svn.apache.org/viewvc/logging/log4j/companions/receivers/trunk/pom.xml?view=diff&rev=544657&r1=544656&r2=544657
==============================================================================
--- logging/log4j/companions/receivers/trunk/pom.xml (original)
+++ logging/log4j/companions/receivers/trunk/pom.xml Tue Jun  5 15:07:58 2007
@@ -176,9 +176,15 @@
       <scope>test</scope>
     </dependency>
     <dependency>
+      <groupId>hsqldb</groupId>
+      <artifactId>hsqldb</artifactId>
+      <version>1.8.0.7</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
       <groupId>log4j</groupId>
       <artifactId>log4j</artifactId>
-      <version>1.2.15</version>
+      <version>1.2.15-SNAPSHOT</version>
     </dependency>    
     <dependency>
       <groupId>log4j</groupId>

Modified: logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/CustomSQLDBReceiver.java
URL: http://svn.apache.org/viewvc/logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/CustomSQLDBReceiver.java?view=diff&rev=544657&r1=544656&r2=544657
==============================================================================
--- logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/CustomSQLDBReceiver.java (original)
+++ logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/CustomSQLDBReceiver.java Tue Jun  5 15:07:58 2007
@@ -23,9 +23,12 @@
 import java.sql.Statement;
 import java.util.Hashtable;
 import java.util.StringTokenizer;
+import java.util.Properties;
 
 import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
+import org.apache.log4j.xml.UnrecognizedElementHandler;
+import org.apache.log4j.xml.DOMConfigurator;
 import org.apache.log4j.plugins.Pauseable;
 import org.apache.log4j.plugins.Receiver;
 import org.apache.log4j.scheduler.Job;
@@ -34,6 +37,8 @@
 import org.apache.log4j.spi.LoggerRepositoryEx;
 import org.apache.log4j.spi.ThrowableInformation;
 import org.apache.log4j.spi.LocationInfo;
+import org.apache.log4j.spi.OptionHandler;
+import org.w3c.dom.Element;
 
 /**
  * Converts log data stored in a database into LoggingEvents.
@@ -126,7 +131,7 @@
  * @author Scott Deboy <sd...@apache.org>
  * <p>
  */
-public class CustomSQLDBReceiver extends Receiver implements Pauseable {
+public class CustomSQLDBReceiver extends Receiver implements Pauseable, UnrecognizedElementHandler {
 
     protected volatile Connection connection = null;
 
@@ -444,4 +449,20 @@
             }
         }
     }
+
+    /**
+     * @{inheritDoc}
+     */
+  public boolean parseUnrecognizedElement(Element element, Properties props) throws Exception {
+        if ("connectionSource".equals(element.getNodeName())) {
+            OptionHandler instance =
+                    DOMConfigurator.parseElement(element, props, ConnectionSource.class);
+            if (instance instanceof ConnectionSource) {
+               setConnectionSource((ConnectionSource) instance);
+            }
+            return true;
+        }
+        return false;
+  }
+    
 }

Modified: logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DBAppender.java
URL: http://svn.apache.org/viewvc/logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DBAppender.java?view=diff&rev=544657&r1=544656&r2=544657
==============================================================================
--- logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DBAppender.java (original)
+++ logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DBAppender.java Tue Jun  5 15:07:58 2007
@@ -21,18 +21,22 @@
 import org.apache.log4j.db.dialect.SQLDialect;
 import org.apache.log4j.db.dialect.Util;
 import org.apache.log4j.helpers.LogLog;
-import org.apache.log4j.spi.LoggingEvent;
 import org.apache.log4j.spi.LocationInfo;
+import org.apache.log4j.spi.LoggingEvent;
+import org.apache.log4j.xml.DOMConfigurator;
+import org.apache.log4j.xml.UnrecognizedElementHandler;
+import org.w3c.dom.Element;
 
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
-
 import java.util.Iterator;
+import java.util.Properties;
 import java.util.Set;
-import java.lang.reflect.*;
 
 
 /**
@@ -106,14 +110,14 @@
  *
  * <p>
  * <b>Configuration </b> DBAppender can be configured programmatically, or using
- * {@link org.apache.log4j.joran.JoranConfigurator JoranConfigurator}. Example
+ * {@link org.apache.log4j.xml.DOMConfigurator JoranConfigurator}. Example
  * scripts can be found in the <em>tests/input/db</em> directory.
  *
  * @author Ceki G&uuml;lc&uuml;
  * @author Ray DeCampo
  * @since 1.3
  */
-public class DBAppender extends AppenderSkeleton {
+public class DBAppender extends AppenderSkeleton implements UnrecognizedElementHandler {
   static final String insertPropertiesSQL =
     "INSERT INTO  logging_event_property (event_id, mapped_key, mapped_value) VALUES (?, ?, ?)";
   static final String insertExceptionSQL =
@@ -163,7 +167,7 @@
   }
 
   public void activateOptions() {
-    getLogger().debug("DBAppender.activateOptions called");
+    LogLog.debug("DBAppender.activateOptions called");
 
     if (connectionSource == null) {
       throw new IllegalStateException(
@@ -198,7 +202,7 @@
    *          The connectionSource to set.
    */
   public void setConnectionSource(ConnectionSource connectionSource) {
-    getLogger().debug("setConnectionSource called for DBAppender");
+    LogLog.debug("setConnectionSource called for DBAppender");
     this.connectionSource = connectionSource;
   }
 
@@ -237,7 +241,7 @@
           
           int updateCount = insertStatement.executeUpdate();
           if (updateCount != 1) {
-              getLogger().warn("Failed to insert loggingEvent");
+              LogLog.warn("Failed to insert loggingEvent");
           }
           
           ResultSet rs = null;
@@ -254,7 +258,7 @@
                   }
                   throw ex; 
               } catch(IllegalAccessException ex) {
-                  getLogger().warn("IllegalAccessException invoking PreparedStatement.getGeneratedKeys", ex);
+                  LogLog.warn("IllegalAccessException invoking PreparedStatement.getGeneratedKeys", ex);
               }
           }
           
@@ -318,7 +322,7 @@
           String[] strRep = event.getThrowableStrRep();
           
           if (strRep != null) {
-              getLogger().debug("Logging an exception");
+              LogLog.debug("Logging an exception");
               
               PreparedStatement insertExceptionStatement =
                   connection.prepareStatement(insertExceptionSQL);
@@ -342,7 +346,7 @@
           
           connection.commit();
       } catch (Throwable sqle) {
-          getLogger().error("problem appending event", sqle);
+          LogLog.error("problem appending event", sqle);
       } finally {
           DBHelper.closeConnection(connection);
       }
@@ -377,30 +381,20 @@
       return false;
   }
 
- /** Here Be Dragons. 
-   * This code is necessary because this class originally came from the log4j 1.3 area, before being backported to 1.3
-   * In 1.3, Appenders had their own logger, but 1.2 does not have this, so instead we embed a 'compatible' mechanism here
-   * The goal was to keep the code as similar as possible, to avoid as many conflicts as possble.
-   * Code suggested by Curt Arnold (and not Curty Arnold... ;) )
-  */
-
-   private static final class LogLogger {
-        public void debug(final String msg) {
-             LogLog.debug(msg);
+    /**
+     * @{inheritDoc}
+     */
+  public boolean parseUnrecognizedElement(Element element, Properties props) throws Exception {
+        if ("connectionSource".equals(element.getNodeName())) {
+            Object instance =
+                    DOMConfigurator.parseElement(element, props, ConnectionSource.class);
+            if (instance instanceof ConnectionSource) {
+               ConnectionSource source = (ConnectionSource) instance;
+               source.activateOptions();
+               setConnectionSource(source);
+            }
+            return true;
         }
-       public void warn(final String msg, final Throwable ex) {
-             LogLog.warn(msg, ex);
-       }
-       public void warn(final String msg) {
-             LogLog.warn(msg);
-       }
-      public void error(final String msg, final Throwable ex) {
-            LogLog.error(msg, ex);
-     }
-  }
-
-  private static final LogLogger getLogger() {
-     return new LogLogger();
+        return false;
   }
-    
 }

Modified: logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DBReceiver.java
URL: http://svn.apache.org/viewvc/logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DBReceiver.java?view=diff&rev=544657&r1=544656&r2=544657
==============================================================================
--- logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DBReceiver.java (original)
+++ logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DBReceiver.java Tue Jun  5 15:07:58 2007
@@ -20,8 +20,12 @@
 import org.apache.log4j.plugins.Pauseable;
 import org.apache.log4j.plugins.Receiver;
 import org.apache.log4j.scheduler.Scheduler;
-import org.apache.log4j.spi.LoggerRepository;
 import org.apache.log4j.spi.LoggerRepositoryEx;
+import org.apache.log4j.xml.DOMConfigurator;
+import org.apache.log4j.xml.UnrecognizedElementHandler;
+import org.w3c.dom.Element;
+
+import java.util.Properties;
 
 /**
  *
@@ -29,7 +33,7 @@
  * @author Ceki G&uuml;lc&uuml;
  *
  */
-public class DBReceiver extends Receiver implements Pauseable {
+public class DBReceiver extends Receiver implements Pauseable, UnrecognizedElementHandler {
   /**
    * By default we refresh data every 1000 milliseconds.
    * @see #setRefreshMillis
@@ -115,4 +119,22 @@
   public boolean isPaused() {
     return paused;
   }
+
+    /**
+     * @{inheritDoc}
+     */
+  public boolean parseUnrecognizedElement(Element element, Properties props) throws Exception {
+        if ("connectionSource".equals(element.getNodeName())) {
+            Object instance =
+                    DOMConfigurator.parseElement(element, props, ConnectionSource.class);
+            if (instance instanceof ConnectionSource) {
+                ConnectionSource source = (ConnectionSource) instance;
+                source.activateOptions();
+                setConnectionSource(source);
+            }
+            return true;
+        }
+        return false;
+  }
+
 }

Modified: logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DBReceiverJob.java
URL: http://svn.apache.org/viewvc/logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DBReceiverJob.java?view=diff&rev=544657&r1=544656&r2=544657
==============================================================================
--- logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DBReceiverJob.java (original)
+++ logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DBReceiverJob.java Tue Jun  5 15:07:58 2007
@@ -21,16 +21,14 @@
 import org.apache.log4j.Logger;
 import org.apache.log4j.scheduler.Job;
 import org.apache.log4j.spi.ComponentBase;
-import org.apache.log4j.spi.LoggerRepository;
+import org.apache.log4j.spi.LocationInfo;
 import org.apache.log4j.spi.LoggingEvent;
 import org.apache.log4j.spi.ThrowableInformation;
-import org.apache.log4j.spi.LocationInfo;
 
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
-import java.sql.Statement;
 import java.util.Hashtable;
 import java.util.Vector;
 
@@ -54,7 +52,7 @@
     "WHERE event_id > ?  ORDER BY event_id ASC";
 
 
-  long lastId = 0;
+  long lastId = Short.MIN_VALUE;
 
   DBReceiver parentDBReceiver;
 
@@ -197,7 +195,6 @@
    * 
    * @param connection
    * @param id
-   * @param event
    * @throws SQLException
    */
   ThrowableInformation getException(Connection connection, long id)

Modified: logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DataSourceConnectionSource.java
URL: http://svn.apache.org/viewvc/logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DataSourceConnectionSource.java?view=diff&rev=544657&r1=544656&r2=544657
==============================================================================
--- logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DataSourceConnectionSource.java (original)
+++ logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/db/DataSourceConnectionSource.java Tue Jun  5 15:07:58 2007
@@ -18,10 +18,14 @@
 package org.apache.log4j.db;
 
 
-import java.sql.Connection;
-import java.sql.SQLException;
+import org.apache.log4j.xml.DOMConfigurator;
+import org.apache.log4j.xml.UnrecognizedElementHandler;
+import org.w3c.dom.Element;
 
 import javax.sql.DataSource;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.Properties;
 
 
 /**
@@ -33,7 +37,8 @@
  *  @author Ray DeCampo
  *  @author Ceki G&uuml;lc&uuml;
  */
-public class DataSourceConnectionSource extends ConnectionSourceSkeleton {
+public class DataSourceConnectionSource extends ConnectionSourceSkeleton
+        implements UnrecognizedElementHandler {
 
   private DataSource dataSource;
 
@@ -82,5 +87,19 @@
     this.dataSource = dataSource;
   }
 
+    /**
+     * @{inheritDoc}
+     */
+  public boolean parseUnrecognizedElement(Element element, Properties props) throws Exception {
+        if ("dataSource".equals(element.getNodeName())) {
+            Object instance =
+                    DOMConfigurator.parseElement(element, props, DataSource.class);
+            if (instance instanceof DataSource) {
+               setDataSource((DataSource) instance);
+            }
+            return true;
+        }
+        return false;
+  }
 
 }

Copied: logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/net/MulticastAppender.java (from r544496, logging/log4j/trunk/src/java/org/apache/log4j/net/MulticastAppender.java)
URL: http://svn.apache.org/viewvc/logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/net/MulticastAppender.java?view=diff&rev=544657&p1=logging/log4j/trunk/src/java/org/apache/log4j/net/MulticastAppender.java&r1=544496&p2=logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/net/MulticastAppender.java&r2=544657
==============================================================================
--- logging/log4j/trunk/src/java/org/apache/log4j/net/MulticastAppender.java (original)
+++ logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/net/MulticastAppender.java Tue Jun  5 15:07:58 2007
@@ -26,6 +26,7 @@
 import org.apache.log4j.AppenderSkeleton;
 import org.apache.log4j.helpers.Constants;
 import org.apache.log4j.spi.LoggingEvent;
+import org.apache.log4j.helpers.LogLog;
 
 
 /**
@@ -99,7 +100,7 @@
       address = getAddressByName(remoteHost);
     } else {
       String err = "The RemoteHost property is required for SocketAppender named "+ name;
-      getLogger().error(err);
+      LogLog.error(err);
       throw new IllegalStateException(err);
     }
     
@@ -130,7 +131,7 @@
       try {
         outSocket.close();
       } catch (Exception e) {
-        getLogger().error("Could not close outSocket.", e);
+        LogLog.error("Could not close outSocket.", e);
       }
 
       outSocket = null;
@@ -148,7 +149,7 @@
       outSocket = new MulticastSocket();
       outSocket.setTimeToLive(timeToLive);
     } catch (IOException e) {
-      getLogger().error("Error in connect method of MulticastAppender named "+name, e);
+      LogLog.error("Error in connect method of MulticastAppender named "+name, e);
     }
   }
 
@@ -187,7 +188,7 @@
         event.setProperty(Constants.APPLICATION_KEY, null);
       } catch (IOException e) {
         outSocket = null;
-        getLogger().warn("Detected problem with Multicast connection: " + e);
+        LogLog.warn("Detected problem with Multicast connection: " + e);
       }
     }
   }
@@ -196,7 +197,7 @@
     try {
       return InetAddress.getByName(host);
     } catch (Exception e) {
-      getLogger().error("Could not find address of [" + host + "].", e);
+      LogLog.error("Could not find address of [" + host + "].", e);
       return null;
     }
   }

Modified: logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/net/SocketHubReceiver.java
URL: http://svn.apache.org/viewvc/logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/net/SocketHubReceiver.java?view=diff&rev=544657&r1=544656&r2=544657
==============================================================================
--- logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/net/SocketHubReceiver.java (original)
+++ logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/net/SocketHubReceiver.java Tue Jun  5 15:07:58 2007
@@ -17,23 +17,16 @@
 
 package org.apache.log4j.net;
 
+import org.apache.log4j.plugins.Plugin;
+import org.apache.log4j.plugins.Receiver;
+import org.apache.log4j.spi.LoggerRepository;
+
 import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.BufferedInputStream;
 import java.net.Socket;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
-import java.lang.reflect.Method;
-
-import org.apache.log4j.plugins.Plugin;
-import org.apache.log4j.plugins.Receiver;
-import org.apache.log4j.plugins.Pauseable;
-import org.apache.log4j.spi.LoggerRepository;
-import org.apache.log4j.spi.ComponentBase;
-import org.apache.log4j.spi.LoggingEvent;
-import org.apache.log4j.Logger;
 
 /**
   SocketHubReceiver receives a remote logging event on a configured

Copied: logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/net/UDPAppender.java (from r544496, logging/log4j/trunk/src/java/org/apache/log4j/net/UDPAppender.java)
URL: http://svn.apache.org/viewvc/logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/net/UDPAppender.java?view=diff&rev=544657&p1=logging/log4j/trunk/src/java/org/apache/log4j/net/UDPAppender.java&r1=544496&p2=logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/net/UDPAppender.java&r2=544657
==============================================================================
--- logging/log4j/trunk/src/java/org/apache/log4j/net/UDPAppender.java (original)
+++ logging/log4j/companions/receivers/trunk/src/main/java/org/apache/log4j/net/UDPAppender.java Tue Jun  5 15:07:58 2007
@@ -17,15 +17,17 @@
 
 package org.apache.log4j.net;
 
+import org.apache.log4j.AppenderSkeleton;
+import org.apache.log4j.helpers.Constants;
+import org.apache.log4j.spi.LoggingEvent;
+import org.apache.log4j.helpers.LogLog;
+
 import java.io.IOException;
 import java.net.DatagramPacket;
 import java.net.DatagramSocket;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 
-import org.apache.log4j.AppenderSkeleton;
-import org.apache.log4j.helpers.*;
-import org.apache.log4j.spi.LoggingEvent;
 
 
 /**
@@ -124,7 +126,7 @@
       connect(address, port);
     } else {
       String err = "The RemoteHost property is required for SocketAppender named "+ name;
-      getLogger().error(err);
+      LogLog.error(err);
       throw new IllegalStateException(err);
     }
     super.activateOptions();
@@ -153,7 +155,7 @@
       try {
         outSocket.close();
       } catch (Exception e) {
-        getLogger().error("Could not close outSocket.", e);
+        LogLog.error("Could not close outSocket.", e);
       }
 
       outSocket = null;
@@ -171,7 +173,7 @@
       outSocket = new DatagramSocket();
       outSocket.connect(address, port);
     } catch (IOException e) {
-      getLogger().error(
+      LogLog.error(
         "Could not open UDP Socket for sending.", e);
       inError = true;
     }
@@ -221,7 +223,7 @@
         event.setProperty(Constants.APPLICATION_KEY, null);
       } catch (IOException e) {
         outSocket = null;
-        getLogger().warn("Detected problem with UDP connection: " + e);
+        LogLog.warn("Detected problem with UDP connection: " + e);
       }
     }
   }
@@ -234,7 +236,7 @@
     try {
       return InetAddress.getByName(host);
     } catch (Exception e) {
-      getLogger().error("Could not find address of [" + host + "].", e);
+      LogLog.error("Could not find address of [" + host + "].", e);
       return null;
     }
   }

Copied: logging/log4j/companions/receivers/trunk/src/test/java/org/apache/log4j/db/FullCycleDBTest.java (from r544601, logging/log4j/trunk/tests/src/java/org/apache/log4j/db/FullCycleDBTest.java)
URL: http://svn.apache.org/viewvc/logging/log4j/companions/receivers/trunk/src/test/java/org/apache/log4j/db/FullCycleDBTest.java?view=diff&rev=544657&p1=logging/log4j/trunk/tests/src/java/org/apache/log4j/db/FullCycleDBTest.java&r1=544601&p2=logging/log4j/companions/receivers/trunk/src/test/java/org/apache/log4j/db/FullCycleDBTest.java&r2=544657
==============================================================================
--- logging/log4j/trunk/tests/src/java/org/apache/log4j/db/FullCycleDBTest.java (original)
+++ logging/log4j/companions/receivers/trunk/src/test/java/org/apache/log4j/db/FullCycleDBTest.java Tue Jun  5 15:07:58 2007
@@ -16,25 +16,32 @@
  */
 package org.apache.log4j.db;
 
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Vector;
-
 import junit.framework.Test;
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
-
 import org.apache.log4j.Hierarchy;
 import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
 import org.apache.log4j.MDC;
 import org.apache.log4j.VectorAppender;
+import org.apache.log4j.LoggerRepositoryExImpl;
 import org.apache.log4j.helpers.Constants;
-import org.apache.log4j.joran.JoranConfigurator;
-import org.apache.log4j.spi.LoggerRepository;
+import org.apache.log4j.xml.DOMConfigurator;
+import org.apache.log4j.spi.LocationInfo;
 import org.apache.log4j.spi.LoggingEvent;
 import org.apache.log4j.spi.RootLogger;
-import org.apache.log4j.spi.LocationInfo;
+import org.apache.log4j.spi.LoggerRepository;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Vector;
+import java.util.HashMap;
+import java.io.InputStream;
+import java.io.IOException;
 
 
 /**
@@ -54,7 +61,7 @@
   
   Vector witnessEvents;
   Hierarchy lrWrite;
-  Hierarchy lrRead;
+  LoggerRepository lrRead;
   String appendConfigFile = null;
   String readConfigFile = null;
   
@@ -65,16 +72,54 @@
   protected void setUp()
          throws Exception {
     super.setUp();
-    appendConfigFile = System.getProperty("appendConfigFile");
-    assertNotNull("[appendConfigFile] property must be set for this test", appendConfigFile);
-    readConfigFile = System.getProperty("readConfigFile");
-    assertNotNull("[readConfigFile] property must be set for this test", readConfigFile);
-    
+    appendConfigFile = "append-with-drivermanager1.xml";
+    readConfigFile = "read-with-drivermanager1.xml";
+
     witnessEvents = new Vector();
     lrWrite = new Hierarchy(new RootLogger(Level.DEBUG));
-    lrWrite.setName("lrWrite");
-    lrRead = new Hierarchy(new RootLogger(Level.DEBUG));
-    lrRead.setName("lrRead");
+    lrRead = new LoggerRepositoryExImpl(new Hierarchy(new RootLogger(Level.DEBUG)));
+
+
+    //
+    //   attempt to define tables in in-memory database
+    //      will throw exception if already defined.
+    //
+        Class.forName("org.hsqldb.jdbcDriver");
+        Connection connection = DriverManager.getConnection("jdbc:hsqldb:mem:testdb");
+        try {
+            Statement s = connection.createStatement();
+            s.executeUpdate("CREATE TABLE logging_event " +
+              "( sequence_number   BIGINT NOT NULL, " +
+               " timestamp         BIGINT NOT NULL, " +
+               " rendered_message  LONGVARCHAR NOT NULL, " +
+               " logger_name       VARCHAR NOT NULL, " +
+               " level_string      VARCHAR NOT NULL, " +
+               " ndc               LONGVARCHAR, " +
+               " thread_name       VARCHAR, " +
+               " reference_flag    SMALLINT, " +
+               " caller_filename   VARCHAR, " +
+               " caller_class      VARCHAR, " +
+               " caller_method     VARCHAR, " +
+               " caller_line       CHAR(4), " +
+               " event_id          INT NOT NULL IDENTITY)");
+            s.executeUpdate("CREATE TABLE logging_event_property " +
+              "( event_id	      INT NOT NULL, " +
+               " mapped_key        VARCHAR(254) NOT NULL, " +
+               " mapped_value      LONGVARCHAR, " +
+               " PRIMARY KEY(event_id, mapped_key), " +
+               " FOREIGN KEY (event_id) REFERENCES logging_event(event_id))");
+            s.executeUpdate("CREATE TABLE logging_event_exception" +
+                    "  ( event_id         INT NOT NULL, " +
+                    "    i                SMALLINT NOT NULL," +
+                    "    trace_line       VARCHAR NOT NULL," +
+                    "    PRIMARY KEY(event_id, i)," +
+                    "    FOREIGN KEY (event_id) REFERENCES logging_event(event_id))");
+        } catch(SQLException ex) {
+            String s = ex.toString();
+        } finally {
+            connection.close();
+        }
+
   }
 
 
@@ -106,12 +151,14 @@
    */
   public void testSingleOutput()
          throws Exception {
-    JoranConfigurator jc1 = new JoranConfigurator();
-    jc1.doConfigure(appendConfigFile, lrWrite);
+    DOMConfigurator jc1 = new DOMConfigurator();
+    InputStream is = FullCycleDBTest.class.getResourceAsStream(appendConfigFile);
+    jc1.doConfigure(is, lrWrite);
+    is.close();
   
     long startTime = System.currentTimeMillis();
     System.out.println("***startTime is  "+startTime);
-    
+
     // Write out just one log message
     Logger out = lrWrite.getLogger("testSingleOutput.out");
     out.debug("some message"+startTime);
@@ -138,21 +185,22 @@
    * DB related information is specified within the configuration files.
    * @throws Exception
    */
-  public void testAllFields() {
-    JoranConfigurator jc1 = new JoranConfigurator();
-    jc1.doConfigure(appendConfigFile, lrWrite);
+  public void testAllFields() throws IOException {
+    DOMConfigurator jc1 = new DOMConfigurator();
+    InputStream is = FullCycleDBTest.class.getResourceAsStream(appendConfigFile);
+    jc1.doConfigure(is, lrWrite);
+    is.close();
   
     long startTime = System.currentTimeMillis();
     
     // Write out just one log message
-    lrWrite.setProperty("key1", "value1-"+startTime);
+    MDC.put("key1", "value1-"+startTime);
     MDC.put("key2", "value2-"+startTime);
     Map mdcMap = MDC.getContext();
 //    LogLog.info("**********"+mdcMap.size());
     
     // Write out just one log message
     Logger out = lrWrite.getLogger("out"+startTime);
-    long sn = LoggingEvent.getSequenceCount();
 
     out.debug("some message"+startTime);
     MDC.put("key3", "value2-"+startTime);
@@ -160,7 +208,9 @@
     
     // we clear the MDC to avoid interference with the events read back from
     // the db
-    MDC.clear();
+    MDC.remove("key1");
+    MDC.remove("key2");
+    MDC.remove("key3");
 
     VectorAppender witnessAppender = (VectorAppender) lrWrite.getRootLogger().getAppender("VECTOR");
     witnessEvents = witnessAppender.getVector();
@@ -173,9 +223,11 @@
   }
 
 
-  void readBack(String configfile, long startTime) {
-    JoranConfigurator jc2 = new JoranConfigurator();
-    jc2.doConfigure(configfile, lrRead);
+  void readBack(String configfile, long startTime) throws IOException {
+    DOMConfigurator jc2 = new DOMConfigurator();
+    InputStream is = FullCycleDBTest.class.getResourceAsStream(configfile);
+    jc2.doConfigure(is, lrRead);
+    is.close();
     
     // wait a little to allow events to be read
     try { Thread.sleep(3100); } catch(Exception e) {}
@@ -194,25 +246,30 @@
       LoggingEvent le = (LoggingEvent) l.get(i);
       LoggingEvent re = (LoggingEvent) r.get(i);
       assertEquals(le.getMessage(),        re.getMessage());
-      assertEquals(le.getSequenceNumber(), re.getSequenceNumber());
       assertEquals(le.getLoggerName(),     re.getLoggerName());
       assertEquals(le.getLevel(),          re.getLevel());
       assertEquals(le.getThreadName(), re.getThreadName());
       if(re.getTimeStamp() < le.getTimeStamp()) {
         fail("Returned event cannot preceed witness timestamp");
       }
-      
-      if((re.getProperties() != null) && re.getProperties().containsKey(Constants.LOG4J_ID_KEY)) {
-        re.getProperties().remove(Constants.LOG4J_ID_KEY);
+
+      Map sourceMap = re.getProperties();
+      Map remap;
+      if (sourceMap == null) {
+          remap = new HashMap();
+      } else {
+          remap = new HashMap(sourceMap);
+          if (remap.containsKey(Constants.LOG4J_ID_KEY)) {
+              remap.remove(Constants.LOG4J_ID_KEY);
+          }
       }
-      
       if(le.getProperties() == null || le.getProperties().size() == 0) {
-        if(!(re.getProperties() == null || re.getProperties().size() == 0)) {
-          System.out.println("properties are "+re.getProperties());
+        if(remap.size() != 0) {
+          System.out.println("properties are "+remap);
           fail("Returned event should have been empty");
         }
       } else {
-        assertEquals(le.getProperties(), re.getProperties());
+        assertEquals(le.getProperties(), remap);
       }
       comprareStringArrays( le.getThrowableStrRep(),  re.getThrowableStrRep());
       compareLocationInfo(le, re);
@@ -231,7 +288,7 @@
   
   void compareLocationInfo(LoggingEvent l, LoggingEvent r) {
     if(l.locationInformationExists()) {
-      assertEquals(l.getLocationInformation(), r.getLocationInformation());
+      assertEquals(l.getLocationInformation().fullInfo, r.getLocationInformation().fullInfo);
     } else {
       assertEquals(LocationInfo.NA_LOCATION_INFO, r.getLocationInformation());
     }

Copied: logging/log4j/companions/receivers/trunk/src/test/resources/org/apache/log4j/db/append-with-drivermanager1.xml (from r544602, logging/log4j/trunk/tests/input/db/append-with-drivermanager1.xml)
URL: http://svn.apache.org/viewvc/logging/log4j/companions/receivers/trunk/src/test/resources/org/apache/log4j/db/append-with-drivermanager1.xml?view=diff&rev=544657&p1=logging/log4j/trunk/tests/input/db/append-with-drivermanager1.xml&r1=544602&p2=logging/log4j/companions/receivers/trunk/src/test/resources/org/apache/log4j/db/append-with-drivermanager1.xml&r2=544657
==============================================================================
--- logging/log4j/trunk/tests/input/db/append-with-drivermanager1.xml (original)
+++ logging/log4j/companions/receivers/trunk/src/test/resources/org/apache/log4j/db/append-with-drivermanager1.xml Tue Jun  5 15:07:58 2007
@@ -1,17 +1,32 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE log4j:configuration>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<!DOCTYPE log4j:configuration SYSTEM 'http://logging.apache.org/log4j/1.2/log4j.dtd'>
 	  
-<log4j:configuration xmlns:log4j='http://logging.apache.org/' debug="true">
+<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/' debug="true">
 	  
-  <substitutionProperty file="input/db/db.properties"/>
-	    
   <appender name="DB" class="org.apache.log4j.db.DBAppender">
      <param name="locationInfo" value="true"/>
      <connectionSource class="org.apache.log4j.db.DriverManagerConnectionSource">
-       <param name="driverClass" value="${driverClass}"/>
-       <param name="url" value="${url}"/>
-       <param name="user" value="${user}"/>
-       <param name="password" value="${password}"/>
+       <param name="driverClass" value="org.hsqldb.jdbcDriver"/>
+       <param name="url" value="jdbc:hsqldb:mem:testdb"/>
+       <param name="user" value="sa"/>
+       <param name="password" value=""/>
      </connectionSource>
   </appender>
 

Copied: logging/log4j/companions/receivers/trunk/src/test/resources/org/apache/log4j/db/read-with-drivermanager1.xml (from r544602, logging/log4j/trunk/tests/input/db/read-with-drivermanager1.xml)
URL: http://svn.apache.org/viewvc/logging/log4j/companions/receivers/trunk/src/test/resources/org/apache/log4j/db/read-with-drivermanager1.xml?view=diff&rev=544657&p1=logging/log4j/trunk/tests/input/db/read-with-drivermanager1.xml&r1=544602&p2=logging/log4j/companions/receivers/trunk/src/test/resources/org/apache/log4j/db/read-with-drivermanager1.xml&r2=544657
==============================================================================
--- logging/log4j/trunk/tests/input/db/read-with-drivermanager1.xml (original)
+++ logging/log4j/companions/receivers/trunk/src/test/resources/org/apache/log4j/db/read-with-drivermanager1.xml Tue Jun  5 15:07:58 2007
@@ -1,20 +1,25 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE configuration>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
 
-<configuration xmlns='http://logging.apache.org/' debug="true">
-	  
-  <substitutionProperty file="input/db/db.properties"/>
-	  
-  <plugin name="DB" class="org.apache.log4j.db.DBReceiver">
-     <connectionSource class="org.apache.log4j.db.DriverManagerConnectionSource">
-       <param name="driverClass" value="${driverClass}"/>
-       <param name="url" value="${url}"/>
-       <param name="user" value="${user}"/>
-       <param name="password" value="${password}"/>
-     </connectionSource>
-  </plugin>
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
 
+-->
+<!DOCTYPE log4j:configuration SYSTEM 'http://logging.apache.org/log4j/1.2/log4j.dtd'>
 
+<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/' debug="true">
+	  
   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
      <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="READING %relative %level %logger - %message%n"/>
@@ -23,6 +28,16 @@
   
   <appender name="VECTOR" class="org.apache.log4j.VectorAppender">
   </appender>
+  
+  <plugin name="DB" class="org.apache.log4j.db.DBReceiver">
+     <connectionSource class="org.apache.log4j.db.DriverManagerConnectionSource">
+       <param name="driverClass" value="org.hsqldb.jdbcDriver"/>
+       <param name="url" value="jdbc:hsqldb:mem:testdb"/>
+       <param name="user" value="sa"/>
+       <param name="password" value=""/>
+     </connectionSource>
+  </plugin>
+  
 
   <!-- Prevent internal log4j DEBUG messages from polluting the output. -->
   <logger name="org.apache.log4j.joran"><level value="INFO" /></logger>
@@ -34,7 +49,7 @@
     <appender-ref ref="VECTOR" />
     <appender-ref ref="CONSOLE" />
   </root>  
-</configuration>
+</log4j:configuration>
 
 
 



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org