Author: carnold
Date: Thu Apr 12 15:22:34 2007
New Revision: 528259

URL: http://svn.apache.org/viewvc?view=rev&rev=528259
Log:
Bug 42102: Should be functional with current SVN log4j 1.2

Added:
    
logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/SocketNode13.java
      - copied, changed from r528221, 
logging/log4j/trunk/src/java/org/apache/log4j/net/SocketNode.java
Modified:
    
logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/SocketHubReceiver.java
    
logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/SocketReceiver.java
    
logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/xml/UtilLoggingXMLDecoder.java
    
logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/xml/XMLDecoder.java

Modified: 
logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/SocketHubReceiver.java
URL: 
http://svn.apache.org/viewvc/logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/SocketHubReceiver.java?view=diff&rev=528259&r1=528258&r2=528259
==============================================================================
--- 
logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/SocketHubReceiver.java
 (original)
+++ 
logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/SocketHubReceiver.java
 Thu Apr 12 15:22:34 2007
@@ -312,7 +312,7 @@
   private synchronized void setSocket(final Socket newSocket) {
     connector = null;
     socket = newSocket;
-    SocketNode node = new SocketNode(socket, this);
+    SocketNode13 node = new SocketNode13(socket, this);
     node.addSocketNodeEventListener(this);
 
     synchronized (listenerList) {
@@ -395,293 +395,4 @@
 
     // This method does nothing.
   }
-
-    /**
-       Read [EMAIL PROTECTED] org.apache.log4j.spi.LoggingEvent}
-     objects sent from a remote client using
-       Sockets (TCP). These logging events are logged according to local
-       policy, as if they were generated locally.
-
-       <p>For example, the socket node might decide to log events to a
-       local file and also resent them to a second socket node.
-
-        This class is a replica of org.apache.log4j.net.SocketNode
-        from log4j 1.3 which is substantially different from
-        the log4j 1.2 implementation.  The class was made a
-        member of SocketHubReceiver to avoid potential collisions.
-
-        @author  Ceki G&uuml;lc&uuml;
-        @author  Paul Smith ([EMAIL PROTECTED])
-    */
-    private static final class SocketNode
-            extends ComponentBase implements Runnable, Pauseable {
-
-        /**
-         * Paused state.
-         */
-      private boolean paused;
-        /**
-         * Socket.
-         */
-      private Socket socket;
-        /**
-         * Receiver.
-         */
-      private Receiver receiver;
-        /**
-         * List of listeners.
-         */
-      private List listenerList = Collections.synchronizedList(new 
ArrayList());
-
-        /**
-         * Method descriptor for LoggingEvent.setProperty
-         *   which does not exist in log4j 1.2.14.
-         */
-      private static final Method LOGGING_EVENT_SET_PROPERTY =
-              getLoggingEventSetProperty();
-
-        /**
-         * Get method descriptor for LoggingEvent.setProperty
-         *   which does not exist in log4j 1.2.14.
-         * @return method descriptor or null if not supported.
-         */
-      private static Method getLoggingEventSetProperty() {
-          Method m = null;
-          try {
-              m = LoggingEvent.class.getMethod("setProperty",
-                              new Class[] {
-                                      String.class, String.class
-                              });
-          } catch (NoSuchMethodException e) {
-              return null;
-          }
-          return m;
-      }
-
-      /**
-        Constructor for socket and logger repository.
-       @param s socket
-       @param hierarchy logger repository
-       */
-      public SocketNode(final Socket s,
-                        final LoggerRepository hierarchy) {
-        super();
-        this.socket = s;
-        this.repository = hierarchy;
-      }
-
-      /**
-        Constructor for socket and receiver.
-       @param s socket
-       @param r receiver
-       */
-      public SocketNode(final Socket s, final Receiver r) {
-        super();
-        this.socket = s;
-        this.receiver = r;
-      }
-
-      /**
-       * Set the event listener on this node.
-       *
-       * @deprecated Now supports mutliple listeners, this method
-       * simply invokes the removeSocketNodeEventListener() to remove
-       * the listener, and then readds it.
-       * @param l listener
-       */
-      public void setListener(final SocketNodeEventListener l) {
-        removeSocketNodeEventListener(l);
-        addSocketNodeEventListener(l);
-      }
-
-      /**
-       * Adds the listener to the list of listeners to be notified of the
-       * respective event.
-       * @param listener the listener to add to the list
-       */
-      public void addSocketNodeEventListener(
-              final SocketNodeEventListener listener) {
-        listenerList.add(listener);
-      }
-
-      /**
-       * Removes the registered Listener from this instances list of
-       * listeners.  If the listener has not been registered, then invoking
-       * this method has no effect.
-       *
-       * @param listener the SocketNodeEventListener to remove
-       */
-      public void removeSocketNodeEventListener(
-              final SocketNodeEventListener listener) {
-        listenerList.remove(listener);
-      }
-
-        /**
-         * Set property in event.
-         * @param event event, may not be null.
-         * @param propName property name
-         * @param propValue property value
-         * @return true if property was set
-         */
-      private static boolean setEventProperty(
-              final LoggingEvent event,
-              final String propName,
-              final String propValue) {
-          if (LOGGING_EVENT_SET_PROPERTY != null) {
-              try {
-                  LOGGING_EVENT_SET_PROPERTY.invoke(event,
-                          new Object[] {
-                                  propName, propValue
-                          });
-                  return true;
-              } catch (Exception e) {
-                  return false;
-              }
-          }
-          return false;
-      }
-
-        /**
-         * Deserialize events from socket until interrupted.
-         */
-      public void run() {
-        LoggingEvent event;
-        Logger remoteLogger;
-        Exception listenerException = null;
-        ObjectInputStream ois = null;
-
-        try {
-          ois =
-            new ObjectInputStream(
-              new BufferedInputStream(socket.getInputStream()));
-        } catch (Exception e) {
-          ois = null;
-          listenerException = e;
-          getLogger().error(
-                  "Exception opening ObjectInputStream to " + socket, e);
-        }
-
-        if (ois != null) {
-          String remoteInfo =
-            socket.getInetAddress().getHostName() + ":" + socket.getPort();
-
-          /**
-           * notify the listener that the socket has been
-           * opened and this SocketNode is ready and waiting
-           */
-          fireSocketOpened(remoteInfo);
-
-          try {
-            while (true) {
-              // read an event from the wire
-              event = (LoggingEvent) ois.readObject();
-
-              // store the known remote info in an event property
-              setEventProperty(event, "log4j.remoteSourceInfo", remoteInfo);
-
-              // if configured with a receiver, tell it to post the event
-              if (!isPaused()) {
-                if ((receiver != null)) {
-                  receiver.doPost(event);
-
-                  // else post it via the hierarchy
-                } else {
-                  // get a logger from the hierarchy. The name of the logger
-                  // is taken to be the name contained in the event.
-                  remoteLogger = repository.getLogger(event.getLoggerName());
-
-                  //event.logger = remoteLogger;
-                  // apply the logger-level filter
-                  if (event
-                    .getLevel()
-                    .isGreaterOrEqual(remoteLogger.getEffectiveLevel())) {
-                    // finally log the event as if was generated locally
-                    remoteLogger.callAppenders(event);
-                  }
-                }
-              } else {
-                //we simply discard this event.
-              }
-            }
-          } catch (java.io.EOFException e) {
-            getLogger().info("Caught java.io.EOFException closing 
connection.");
-            listenerException = e;
-          } catch (java.net.SocketException e) {
-            getLogger().info(
-                    "Caught java.net.SocketException closing connection.");
-            listenerException = e;
-          } catch (IOException e) {
-            getLogger().info("Caught java.io.IOException: " + e);
-            getLogger().info("Closing connection.");
-            listenerException = e;
-          } catch (Exception e) {
-            getLogger().error("Unexpected exception. Closing connection.", e);
-            listenerException = e;
-          }
-        }
-
-        // close the socket
-        try {
-          if (ois != null) {
-            ois.close();
-          }
-        } catch (Exception e) {
-          //getLogger().info("Could not close connection.", e);
-        }
-
-        // send event to listener, if configured
-        if (listenerList.size() > 0) {
-          fireSocketClosedEvent(listenerException);
-        }
-      }
-
-      /**
-       * Notifies all registered listeners regarding the closing of the Socket.
-       * @param listenerException listener exception
-       */
-      private void fireSocketClosedEvent(final Exception listenerException) {
-        synchronized (listenerList) {
-            for (Iterator iter = listenerList.iterator(); iter.hasNext();) {
-                SocketNodeEventListener snel =
-                        (SocketNodeEventListener) iter.next();
-                if (snel != null) {
-                    snel.socketClosedEvent(listenerException);
-                }
-            }
-        }
-      }
-
-      /**
-       * Notifies all registered listeners regarding the opening of a Socket.
-       * @param remoteInfo remote info
-       */
-      private void fireSocketOpened(final String remoteInfo) {
-        synchronized (listenerList) {
-            for (Iterator iter = listenerList.iterator(); iter.hasNext();) {
-                SocketNodeEventListener snel =
-                        (SocketNodeEventListener) iter.next();
-                if (snel != null) {
-                    snel.socketOpened(remoteInfo);
-                }
-            }
-        }
-      }
-
-        /**
-         * Sets if node is paused.
-         * @param b new value
-         */
-      public void setPaused(final boolean b) {
-        this.paused = b;
-      }
-
-        /**
-         * Get if node is paused.
-         * @return true if pause.
-         */
-      public boolean isPaused() {
-        return this.paused;
-      }
-    }
-
 }

Copied: 
logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/SocketNode13.java
 (from r528221, 
logging/log4j/trunk/src/java/org/apache/log4j/net/SocketNode.java)
URL: 
http://svn.apache.org/viewvc/logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/SocketNode13.java?view=diff&rev=528259&p1=logging/log4j/trunk/src/java/org/apache/log4j/net/SocketNode.java&r1=528221&p2=logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/SocketNode13.java&r2=528259
==============================================================================
--- logging/log4j/trunk/src/java/org/apache/log4j/net/SocketNode.java (original)
+++ 
logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/SocketNode13.java
 Thu Apr 12 15:22:34 2007
@@ -44,12 +44,16 @@
    <p>For example, the socket node might decide to log events to a
    local file and also resent them to a second socket node.
 
+    Implementation lifted from org.apache.log4j.net.SocketNode
+    in log4j 1.3 and renamed to prevent collision with
+    log4j 1.2 implementation.
+
     @author  Ceki G&uuml;lc&uuml;
     @author  Paul Smith ([EMAIL PROTECTED])
 
-    @since 0.8.4
+
 */
-public class SocketNode extends ComponentBase implements Runnable, Pauseable {
+public class SocketNode13 extends ComponentBase implements Runnable, Pauseable 
{
 
     /**
      * Paused state.
@@ -68,12 +72,14 @@
      */
   private List listenerList = Collections.synchronizedList(new ArrayList());
 
+
+
   /**
     Constructor for socket and logger repository.
    @param s socket
    @param hierarchy logger repository
    */
-  public SocketNode(final Socket s,
+  public SocketNode13(final Socket s,
                     final LoggerRepository hierarchy) {
     super();
     this.socket = s;
@@ -85,7 +91,7 @@
    @param s socket
    @param r receiver
    */
-  public SocketNode(final Socket s, final Receiver r) {
+  public SocketNode13(final Socket s, final Receiver r) {
     super();
     this.socket = s;
     this.receiver = r;
@@ -125,6 +131,7 @@
           final SocketNodeEventListener listener) {
     listenerList.remove(listener);
   }
+
 
     /**
      * Deserialize events from socket until interrupted.

Modified: 
logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/SocketReceiver.java
URL: 
http://svn.apache.org/viewvc/logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/SocketReceiver.java?view=diff&rev=528259&r1=528258&r2=528259
==============================================================================
--- 
logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/SocketReceiver.java
 (original)
+++ 
logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/net/SocketReceiver.java
 Thu Apr 12 15:22:34 2007
@@ -256,7 +256,7 @@
                   "socket not null - creating and starting socketnode");
           socketList.add(socket);
 
-          SocketNode node = new SocketNode(socket, this);
+          SocketNode13 node = new SocketNode13(socket, this);
           synchronized (listenerList) {
             for (Iterator iter = listenerList.iterator();
                  iter.hasNext();) {
@@ -311,7 +311,7 @@
             ) {
       Socket socket = (Socket) enumeration.nextElement();
       details.add(
-        new SocketDetail(socket, (SocketNode) socketMap.get(socket)));
+        new SocketDetail(socket, (SocketNode13) socketMap.get(socket)));
     }
 
     return details;
@@ -380,7 +380,7 @@
     /**
      * Socket detail.
      */
-  public static final class SocketDetail implements AddressBased, PortBased,
+  private static final class SocketDetail implements AddressBased, PortBased,
     Pauseable {
       /**
        * Address.
@@ -393,7 +393,7 @@
       /**
        * Socket node.
        */
-    private SocketNode socketNode;
+    private SocketNode13 socketNode;
 
       /**
        * Create new instance.
@@ -401,7 +401,7 @@
        * @param node socket node
        */
     private SocketDetail(final Socket socket,
-                         final SocketNode node) {
+                         final SocketNode13 node) {
       super();
       this.address = socket.getInetAddress().getHostName();
       this.port = socket.getPort();

Modified: 
logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/xml/UtilLoggingXMLDecoder.java
URL: 
http://svn.apache.org/viewvc/logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/xml/UtilLoggingXMLDecoder.java?view=diff&rev=528259&r1=528258&r2=528259
==============================================================================
--- 
logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/xml/UtilLoggingXMLDecoder.java
 (original)
+++ 
logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/xml/UtilLoggingXMLDecoder.java
 Thu Apr 12 15:22:34 2007
@@ -417,16 +417,13 @@
           exception = new String[]{""};
       }
 
-      LoggingEvent loggingEvent = new LoggingEvent();
-      loggingEvent.setLogger(logger);
-      loggingEvent.setTimeStamp(timeStamp);
-      loggingEvent.setLevel(level);
-      loggingEvent.setThreadName(threadName);
-      loggingEvent.setMessage(message);
-      loggingEvent.setNDC(ndc);
-      loggingEvent.setThrowableInformation(new 
ThrowableInformation(exception));
-      loggingEvent.setLocationInformation(info);
-      loggingEvent.setProperties(properties);
+        LoggingEvent loggingEvent = new LoggingEvent(null,
+                logger, timeStamp, level, message,
+                threadName,
+                new ThrowableInformation(exception),
+                ndc,
+                info,
+                properties);
 
       events.add(loggingEvent);
 

Modified: 
logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/xml/XMLDecoder.java
URL: 
http://svn.apache.org/viewvc/logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/xml/XMLDecoder.java?view=diff&rev=528259&r1=528258&r2=528259
==============================================================================
--- 
logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/xml/XMLDecoder.java
 (original)
+++ 
logging/sandbox/log4j/receivers/src/main/java/org/apache/log4j/xml/XMLDecoder.java
 Thu Apr 12 15:22:34 2007
@@ -435,16 +435,14 @@
           exception = new String[]{""};
       }
 
-      LoggingEvent loggingEvent = new LoggingEvent();
-      loggingEvent.setLogger(logger);
-      loggingEvent.setTimeStamp(timeStamp);
-      loggingEvent.setLevel(levelImpl);
-      loggingEvent.setThreadName(threadName);
-      loggingEvent.setMessage(message);
-      loggingEvent.setNDC(ndc);
-      loggingEvent.setThrowableInformation(new 
ThrowableInformation(exception));
-      loggingEvent.setLocationInformation(info);
-      loggingEvent.setProperties(properties);
+        LoggingEvent loggingEvent = new LoggingEvent(null,
+                logger, timeStamp, levelImpl, message,
+                threadName,
+                new ThrowableInformation(exception),
+                ndc,
+                info,
+                properties);
+
 
       events.add(loggingEvent);
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to