You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by pi...@apache.org on 2001/07/19 01:12:49 UTC

cvs commit: jakarta-tomcat-connectors/webapp/java WarpLogger.java WarpConfigurationHandler.java WarpConnection.java WarpConnector.java

pier        01/07/18 16:12:49

  Modified:    webapp/java WarpConfigurationHandler.java
                        WarpConnection.java WarpConnector.java
  Added:       webapp/java WarpLogger.java
  Log:
  Improved logging/debugging output of private components within the WARP
  connector.
  
  Revision  Changes    Path
  1.6       +8 -4      jakarta-tomcat-connectors/webapp/java/WarpConfigurationHandler.java
  
  Index: WarpConfigurationHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/webapp/java/WarpConfigurationHandler.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- WarpConfigurationHandler.java	2001/07/15 08:40:58	1.5
  +++ WarpConfigurationHandler.java	2001/07/18 23:12:49	1.6
  @@ -64,12 +64,18 @@
   
   public class WarpConfigurationHandler {
   
  +    /* ==================================================================== */
  +    /* Constructor                                                          */
  +    /* ==================================================================== */
  +
       public WarpConfigurationHandler() {
           super();
       }
   
       public boolean handle(WarpConnection connection)
       throws IOException {
  +        WarpLogger logger=new WarpLogger(this);
  +        logger.setContainer(connection.getConnector().getContainer());
           WarpPacket packet=new WarpPacket();
   
           // Prepare the Welcome packet
  @@ -86,11 +92,9 @@
           String path=packet.readString();
           
           if (Constants.DEBUG)
  -            connection.getConnector().debug(this,"Deploying application \""+appl+
  -                "\" under \"http://"+host+":"+port+path);
  +            logger.debug("Deploying application \""+appl+"\" under \"http://"+
  +                         host+":"+port+path);
   
           return(true);
  -        //while (true) {
  -        //    connection.recv(packet);
       }
   }
  
  
  
  1.14      +12 -12    jakarta-tomcat-connectors/webapp/java/WarpConnection.java
  
  Index: WarpConnection.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/webapp/java/WarpConnection.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- WarpConnection.java	2001/07/15 08:40:58	1.13
  +++ WarpConnection.java	2001/07/18 23:12:49	1.14
  @@ -82,6 +82,8 @@
       private boolean started=false;
       /** The local thread. */
       private Thread thread=null;
  +    /** Our logger. */
  +    private WarpLogger logger=null;
   
       /* -------------------------------------------------------------------- */
       /* Bean variables */
  @@ -100,6 +102,7 @@
        */
       public WarpConnection() {
           super();
  +        this.logger=new WarpLogger(this);
       }
   
       /* ==================================================================== */
  @@ -125,6 +128,7 @@
        */
       public void setConnector(WarpConnector connector) {
           this.connector=connector;
  +        this.logger.setContainer(connector.getContainer());
       }
   
       /**
  @@ -166,7 +170,7 @@
                   this.socket.close();
                   this.getConnector().removeLifecycleListener(this);
               } catch (IOException e) {
  -                this.getConnector().log(this,"Cannot close socket",e);
  +                logger.log("Cannot close socket",e);
               }
           }
       }
  @@ -175,8 +179,7 @@
        * Process data from the socket.
        */
       public void run() {
  -        if (Constants.DEBUG)
  -            this.getConnector().debug(this,"Connection starting");
  +        if (Constants.DEBUG) logger.debug("Connection starting");
   
           try {
               this.input=this.socket.getInputStream();
  @@ -185,11 +188,10 @@
   
               this.stop();
           } catch (IOException e) {
  -            this.getConnector().log(this,"Exception on socket",e);
  +            logger.log("Exception on socket",e);
           }
   
  -        if (Constants.DEBUG)
  -            this.getConnector().debug(this,"Connection terminated");
  +        if (Constants.DEBUG) logger.debug("Connection terminated");
       }
   
       /* ==================================================================== */
  @@ -202,9 +204,8 @@
       public void send(WarpPacket packet)
       throws IOException {
           if (Constants.DEBUG) {
  -            this.getConnector().debug(this,">> TYPE="+packet.getType()+
  -                                           " LENGTH="+packet.size);
  -            this.getConnector().debug(this,">> "+packet.dump());
  +            logger.debug(">> TYPE="+packet.getType()+" LENGTH="+packet.size);
  +            logger.debug(">> "+packet.dump());
           }
   
           this.output.write(packet.getType()&0x0ff);
  @@ -244,9 +245,8 @@
           }
               
           if (Constants.DEBUG) {
  -            this.getConnector().debug(this,"<< TYPE="+packet.getType()+
  -                                           " LENGTH="+packet.size);
  -            this.getConnector().debug(this,"<< "+packet.dump());
  +            logger.debug("<< TYPE="+packet.getType()+" LENGTH="+packet.size);
  +            logger.debug("<< "+packet.dump());
           }
       }
   }
  
  
  
  1.14      +23 -120   jakarta-tomcat-connectors/webapp/java/WarpConnector.java
  
  Index: WarpConnector.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/webapp/java/WarpConnector.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- WarpConnector.java	2001/07/13 03:05:24	1.13
  +++ WarpConnector.java	2001/07/18 23:12:49	1.14
  @@ -87,6 +87,8 @@
       private Thread thread=null;
       /** The server socket. */
       private ServerSocket server=null;
  +    /** Our <code>WarpLogger</code>. */
  +    private WarpLogger logger=null;
   
       /* -------------------------------------------------------------------- */
       /* Bean variables */
  @@ -129,7 +131,8 @@
        */
       public WarpConnector() {
           super();
  -        if (Constants.DEBUG) this.debug(this,"Instance created");
  +        this.logger=new WarpLogger(this);
  +        if (Constants.DEBUG) logger.debug("Instance created");
       }
   
       /* ==================================================================== */
  @@ -152,10 +155,11 @@
        */
       public void setContainer(Container container) {
           this.container=container;
  +        this.logger.setContainer(container);
   
           if (Constants.DEBUG) {
  -            if (container==null) this.debug(this,"Setting null container");
  -            else this.debug(this,"Setting container "+container.getClass());
  +            if (container==null) logger.debug("Setting null container");
  +            else logger.debug("Setting container "+container.getClass());
           }
       }
   
  @@ -174,8 +178,7 @@
       public void setEnableLookups(boolean enableLookups) {
           this.enableLookups=enableLookups;
   
  -        if (Constants.DEBUG)
  -            this.debug(this,"Setting lookup to "+enableLookups);
  +        if (Constants.DEBUG) logger.debug("Setting lookup to "+enableLookups);
       }
   
       /**
  @@ -185,7 +188,7 @@
       public ServerSocketFactory getFactory() {
           if (this.factory==null) {
               synchronized(this) {
  -                if (Constants.DEBUG) this.debug(this,"Creating factory");
  +                if (Constants.DEBUG) logger.debug("Creating factory");
                   this.factory=new DefaultServerSocketFactory();
               }
           }
  @@ -203,7 +206,7 @@
           this.factory=factory;
   
           if (Constants.DEBUG)
  -            this.debug(this,"Setting factory "+factory.getClass().getName());
  +            logger.debug("Setting factory "+factory.getClass().getName());
       }
   
       /**
  @@ -226,7 +229,7 @@
           this.redirectPort=redirectPort;
   
           if (Constants.DEBUG)
  -            this.debug(this,"Setting redirection port to "+redirectPort);
  +            logger.debug("Setting redirection port to "+redirectPort);
       }
   
       /**
  @@ -247,7 +250,7 @@
           if (scheme==null) throw new NullPointerException();
           this.scheme=scheme;
   
  -        if (Constants.DEBUG) this.debug(this,"Setting scheme to "+scheme);
  +        if (Constants.DEBUG) logger.debug("Setting scheme to "+scheme);
       }
   
       /**
  @@ -267,7 +270,7 @@
       public void setSecure(boolean secure) {
           this.secure=secure;
   
  -        if (Constants.DEBUG) this.debug(this,"Setting secure to "+secure);
  +        if (Constants.DEBUG) logger.debug("Setting secure to "+secure);
       }
   
       /**
  @@ -290,7 +293,7 @@
           if (info==null) throw new NullPointerException();
           this.info=info;
   
  -        if (Constants.DEBUG) this.debug(this,"Setting info to "+info);
  +        if (Constants.DEBUG) logger.debug("Setting info to "+info);
       }
   
       /**
  @@ -308,7 +311,7 @@
       public void setAddress(String address) {
           this.address=address;
   
  -        if (Constants.DEBUG) this.debug(this,"Setting address to "+address);
  +        if (Constants.DEBUG) logger.debug("Setting address to "+address);
       }
   
       /**
  @@ -328,7 +331,7 @@
               throw new IllegalArgumentException("Invalid port "+redirectPort);
           this.port=port;
   
  -        if (Constants.DEBUG) this.debug(this,"Setting port to "+port);
  +        if (Constants.DEBUG) logger.debug("Setting port to "+port);
       }
   
       /**
  @@ -347,7 +350,7 @@
       public void setAcceptCount(int count) {
           this.acceptCount = count;
   
  -        if (Constants.DEBUG) this.debug(this,"Setting acceptCount to "+count);
  +        if (Constants.DEBUG) logger.debug("Setting acceptCount to "+count);
       }
   
   
  @@ -402,7 +405,7 @@
           if (this.server!=null) try {
               this.server.close();
           } catch (IOException e) {
  -            this.log(this,"Cannot close ServerSocket",e);
  +            logger.log("Cannot close ServerSocket",e);
           }
       }
   
  @@ -450,12 +453,12 @@
                   this.server=fact.createSocket(port,accc,addr);
               }
           } catch (IOException e) {
  -            this.log(this,"Error creating server socket",e);
  +            logger.log("Error creating server socket",e);
           }
   
           // Can't get a hold of a server socket
           if (this.server==null) {
  -            this.log(this,"Unable to create server socket");
  +            logger.log("Unable to create server socket");
               return;
           }
   
  @@ -467,8 +470,8 @@
                   InetAddress laddr=sock.getLocalAddress();
                   int rport=sock.getPort();
                   int lport=sock.getLocalPort();
  -                this.log(this,"Connection from "+raddr+":"+rport+" to "+
  -                         laddr+":"+lport);
  +                logger.log("Connection from "+raddr+":"+rport+" to "+laddr+
  +                           ":"+lport);
                   WarpConnection conn=new WarpConnection();
                   conn.setConnector(this);
                   conn.setSocket(sock);
  @@ -476,107 +479,7 @@
                   conn.start();
               }
           } catch (IOException e) {
  -            this.log(this,"Error accepting requests",e);
  +            logger.log("Error accepting requests",e);
           }
       }
  -
  -    /* ==================================================================== */
  -    /* Logging and debugging methods                                        */
  -    /* ==================================================================== */
  -
  -    /** Log to the container logger with the specified level or to stderr */
  -    private void log(Object src, String msg, Exception exc, int lev) {
  -        Container cont=this.getContainer();
  -        if (cont==null) {
  -            dump(src,msg,exc);
  -            return;
  -        }
  -
  -        Logger logg=cont.getLogger();
  -        if (logg==null) {
  -            dump(src,msg,exc);
  -            return;
  -        }
  -
  -        String cls="["+src.getClass().getName()+"] ";
  -        if (msg==null) msg=cls;
  -        else msg=cls.concat(msg);
  -
  -        if (exc==null) logg.log(msg,lev);
  -        else logg.log(msg,exc,lev);
  -    }
  -
  -    /** Invoked when we can't get a hold on the logger, dump to stderr */
  -    private void dump(Object src, String message, Exception exception) {
  -        String cls="["+src.getClass().getName()+"] ";
  -
  -        if (message!=null) {
  -            System.err.print(cls);
  -            System.err.println(message);
  -        }
  -        if (exception!=null) {
  -            System.err.print(cls);
  -            exception.printStackTrace(System.err);
  -        }
  -    }
  -
  -    /**
  -     * If Constants.DEBUG was set true at compilation time, dump a debug
  -     * message to Standard Error.
  -     *
  -     * @param message The message to dump.
  -     */
  -    protected void debug(Object src, String message) {
  -        if (Constants.DEBUG) this.log(src,message,null,Logger.DEBUG);
  -    }
  -
  -    /**
  -     * If Constants.DEBUG was set true at compilation time, dump an exception
  -     * stack trace to Standard Error.
  -     *
  -     * @param exception The exception to dump.
  -     */
  -    protected void debug(Object src, Exception exception) {
  -        if (Constants.DEBUG) this.log(src,null,exception,Logger.DEBUG);
  -    }
  -
  -    /**
  -     * If Constants.DEBUG was set true at compilation time, dump a debug
  -     * message and a related exception stack trace to Standard Error.
  -     *
  -     * @param exception The exception to dump.
  -     * @param message The message to dump.
  -     */
  -    protected void debug(Object src, String message, Exception exception) {
  -        if (Constants.DEBUG) this.log(src,message,exception,Logger.DEBUG);
  -    }
  -
  -    /**
  -     * Log a message.
  -     *
  -     * @param message The message to log.
  -     */
  -    protected void log(Object src, String message) {
  -        this.log(src,message,null,Logger.ERROR);
  -    }
  -
  -    /**
  -     * Log an exception.
  -     *
  -     * @param exception The exception to log.
  -     */
  -    protected void log(Object src, Exception exception) {
  -        this.log(src,null,exception,Logger.ERROR);
  -    }
  -
  -    /**
  -     * Log an exception and related message.
  -     *
  -     * @param exception The exception to log.
  -     * @param message The message to log.
  -     */
  -    protected void log(Object src, String message, Exception exception) {
  -        this.log(src,message,exception,Logger.ERROR);
  -    }
  -
   }
  
  
  
  1.1                  jakarta-tomcat-connectors/webapp/java/WarpLogger.java
  
  Index: WarpLogger.java
  ===================================================================
  /* ========================================================================= *
   *                                                                           *
   *                 The Apache Software License,  Version 1.1                 *
   *                                                                           *
   *          Copyright (c) 1999-2001 The Apache Software Foundation.          *
   *                           All rights reserved.                            *
   *                                                                           *
   * ========================================================================= *
   *                                                                           *
   * Redistribution and use in source and binary forms,  with or without modi- *
   * fication, are permitted provided that the following conditions are met:   *
   *                                                                           *
   * 1. Redistributions of source code  must retain the above copyright notice *
   *    notice, this list of conditions and the following disclaimer.          *
   *                                                                           *
   * 2. Redistributions  in binary  form  must  reproduce the  above copyright *
   *    notice,  this list of conditions  and the following  disclaimer in the *
   *    documentation and/or other materials provided with the distribution.   *
   *                                                                           *
   * 3. The end-user documentation  included with the redistribution,  if any, *
   *    must include the following acknowlegement:                             *
   *                                                                           *
   *       "This product includes  software developed  by the Apache  Software *
   *        Foundation <http://www.apache.org/>."                              *
   *                                                                           *
   *    Alternately, this acknowlegement may appear in the software itself, if *
   *    and wherever such third-party acknowlegements normally appear.         *
   *                                                                           *
   * 4. The names  "The  Jakarta  Project",  "Tomcat",  and  "Apache  Software *
   *    Foundation"  must not be used  to endorse or promote  products derived *
   *    from this  software without  prior  written  permission.  For  written *
   *    permission, please contact <ap...@apache.org>.                        *
   *                                                                           *
   * 5. Products derived from this software may not be called "Apache" nor may *
   *    "Apache" appear in their names without prior written permission of the *
   *    Apache Software Foundation.                                            *
   *                                                                           *
   * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES *
   * INCLUDING, BUT NOT LIMITED TO,  THE IMPLIED WARRANTIES OF MERCHANTABILITY *
   * AND FITNESS FOR  A PARTICULAR PURPOSE  ARE DISCLAIMED.  IN NO EVENT SHALL *
   * THE APACHE  SOFTWARE  FOUNDATION OR  ITS CONTRIBUTORS  BE LIABLE  FOR ANY *
   * DIRECT,  INDIRECT,   INCIDENTAL,  SPECIAL,  EXEMPLARY,  OR  CONSEQUENTIAL *
   * DAMAGES (INCLUDING,  BUT NOT LIMITED TO,  PROCUREMENT OF SUBSTITUTE GOODS *
   * OR SERVICES;  LOSS OF USE,  DATA,  OR PROFITS;  OR BUSINESS INTERRUPTION) *
   * HOWEVER CAUSED AND  ON ANY  THEORY  OF  LIABILITY,  WHETHER IN  CONTRACT, *
   * STRICT LIABILITY, OR TORT  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN *
   * ANY  WAY  OUT OF  THE  USE OF  THIS  SOFTWARE,  EVEN  IF  ADVISED  OF THE *
   * POSSIBILITY OF SUCH DAMAGE.                                               *
   *                                                                           *
   * ========================================================================= *
   *                                                                           *
   * This software  consists of voluntary  contributions made  by many indivi- *
   * duals on behalf of the  Apache Software Foundation.  For more information *
   * on the Apache Software Foundation, please see <http://www.apache.org/>.   *
   *                                                                           *
   * ========================================================================= */
  package org.apache.catalina.connector.warp;
  
  import org.apache.catalina.Container;
  import org.apache.catalina.Logger;
  
  public class WarpLogger {
  
      /* ==================================================================== */
      /* Variables                                                            */
      /* ==================================================================== */
  
      /* -------------------------------------------------------------------- */
      /* Bean variables */
  
      /** The <code>Container</code> instance processing requests. */
      private Container container=null;
      /** The source of log messages for this logger. */
      private Object source=null;
  
      /* ==================================================================== */
      /* Constructor                                                          */
      /* ==================================================================== */
  
      /** Deny empty construction. */
      private WarpLogger() {
          super();
      }
  
      /**
       * Construct a new instance of a <code>WarpConnector</code>.
       */
      public WarpLogger(Object source) {
          super();
          this.source=source;
      }
  
      /* ==================================================================== */
      /* Bean methods                                                         */
      /* ==================================================================== */
  
      /**
       * Return the <code>Container</code> instance which will process all
       * requests received by this <code>Connector</code>.
       */
      public Container getContainer() {
          return(this.container);
      }
  
      /**
       * Set the <code>Container</code> instance which will process all requests
       * received by this <code>Connector</code>.
       *
       * @param container The new Container to use
       */
      public void setContainer(Container container) {
          this.container=container;
      }
  
      /* ==================================================================== */
      /* Logging and debugging methods                                        */
      /* ==================================================================== */
  
      /** Log to the container logger with the specified level or to stderr */
      private void log(String msg, Exception exc, int lev) {
          if (this.container==null) {
              dump(msg,exc);
              return;
          }
  
          Logger logg=this.container.getLogger();
          if (logg==null) {
              dump(msg,exc);
              return;
          }
  
          String cls="["+this.source.getClass().getName()+"] ";
          if (msg==null) msg=cls;
          else msg=cls.concat(msg);
  
          if (exc==null) logg.log(msg,lev);
          else logg.log(msg,exc,lev);
      }
  
      /** Invoked when we can't get a hold on the logger, dump to stderr */
      private void dump(String message, Exception exception) {
          String cls="["+this.source.getClass().getName()+"] ";
  
          if (message!=null) {
              System.err.print(cls);
              System.err.println(message);
          }
          if (exception!=null) {
              System.err.print(cls);
              exception.printStackTrace(System.err);
          }
      }
  
      /**
       * If Constants.DEBUG was set true at compilation time, dump a debug
       * message to Standard Error.
       *
       * @param message The message to dump.
       */
      protected void debug(String message) {
          if (Constants.DEBUG) this.log(message,null,Logger.DEBUG);
      }
  
      /**
       * If Constants.DEBUG was set true at compilation time, dump an exception
       * stack trace to Standard Error.
       *
       * @param exception The exception to dump.
       */
      protected void debug(Exception exception) {
          if (Constants.DEBUG) this.log(null,exception,Logger.DEBUG);
      }
  
      /**
       * If Constants.DEBUG was set true at compilation time, dump a debug
       * message and a related exception stack trace to Standard Error.
       *
       * @param exception The exception to dump.
       * @param message The message to dump.
       */
      protected void debug(String message, Exception exception) {
          if (Constants.DEBUG) this.log(message,exception,Logger.DEBUG);
      }
  
      /**
       * Log a message.
       *
       * @param message The message to log.
       */
      protected void log(String message) {
          this.log(message,null,Logger.ERROR);
      }
  
      /**
       * Log an exception.
       *
       * @param exception The exception to log.
       */
      protected void log(Exception exception) {
          this.log(null,exception,Logger.ERROR);
      }
  
      /**
       * Log an exception and related message.
       *
       * @param exception The exception to log.
       * @param message The message to log.
       */
      protected void log(String message, Exception exception) {
          this.log(message,exception,Logger.ERROR);
      }
  }