ceki        01/09/06 15:40:39

  Modified:    src/java/org/apache/log4j Category.java Hierarchy.java
                        Logger.java MDC.java PropertyConfigurator.java
               src/java/org/apache/log4j/xml DOMConfigurator.java
               src/sgml intro.sgml manual.sgml
  Log:
  - Added getLogger and getRootLogger static methods to Logger class.
  
  - Javadoc changes.
  
  - Docbook changes.
  
  Revision  Changes    Path
  1.50      +33 -8     jakarta-log4j/src/java/org/apache/log4j/Category.java
  
  Index: Category.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/Category.java,v
  retrieving revision 1.49
  retrieving revision 1.50
  diff -u -r1.49 -r1.50
  --- Category.java     2001/09/05 08:33:11     1.49
  +++ Category.java     2001/09/06 22:40:39     1.50
  @@ -44,12 +44,37 @@
   
   
   /**
  -  This is the central class in the log4j package. One of the
  -  distintive features of log4j are hierarchical categories and their
  -  evaluation.
  +   <font color="#AA2222"><b>This class has been deprecated and
  +   replaced by the {@link Logger} <em>subclass</em>.</b></font> It
  +   will be kept around to preserve backward compatibility until early
  +   2003.
  +   
  +   <p><code>Logger</code> is a subclass of Category, i.e. it extends
  +   Category. In other words, a logger <em>is</em> a category. Thus,
  +   all operations that can be performed on a category can be performed
  +   on a logger. Whenever log4j is asked to produce a Category object,
  +   it will instead produce a Logger object. However, methods that
  +   previously accepted cateogry objects still continue to accept
  +   category objects.
  +   
  +   <p>For example, the following are all legal and will work as expected.
  +
  +   <pre>
  +   &nbsp;&nbsp;&nbsp;// Deprecated forms:
  +   &nbsp;&nbsp;&nbsp;Category cat = Category.getInstance("foo.bar")
  +   &nbsp;&nbsp;&nbsp;Logger logger = Logger.getInstance("foo.bar")
  +   &nbsp;&nbsp;&nbsp;Category cat = Logger.getLogger("foo.bar")
  +
  +   &nbsp;&nbsp;&nbsp;// Preferred form for retrieving loggers:
  +   &nbsp;&nbsp;&nbsp;Logger logger = Logger.getLogger("foo.bar")
  +   </pre>
   
  -  <p>See the <a href="../../../../manual.html">user manual</a> for an
  -  introduction on this class. 
  +   <p>The first tree forms are deprecated and should be avoided.
  +  
  +   <p><b>There is absolutely no need for new client code to use or
  +   refer to the <code>Category</code> class.</b> Please avoid
  +   referring to it.
  +   
   
     @author Ceki G&uuml;lc&uuml;
     @author Anders Kristensen */
  @@ -596,7 +621,7 @@
        it from the hierarchy. This is one of the central features of
        log4j.
   
  -     @deprecated Please use {@link LogManager#getLogger(String)} instead.
  +     @deprecated Please use {@link Logger#getLogger(String)} instead.
   
        @param name The name of the category to retrieve.  */
     public
  @@ -612,7 +637,7 @@
       name of the category to retrieve.  See {@link
       #getInstance(String)} for more detailed information.
   
  -    @deprecated Please use {@link LogManager#getLogger(Class)} instead.
  +    @deprecated Please use {@link Logger#getLogger(Class)} instead.
   
       @since 1.0 */
     public
  @@ -698,7 +723,7 @@
        Category.getInstance("root")} does not retrieve the root category 
        but a category just under root named "root".
        
  -     @deprecated Use {@link LogManager#getRootLogger()} instead.
  +     @deprecated Use {@link Logger#getRootLogger()} instead.
      */
     final
     public
  
  
  
  1.32      +49 -55    jakarta-log4j/src/java/org/apache/log4j/Hierarchy.java
  
  Index: Hierarchy.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/Hierarchy.java,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- Hierarchy.java    2001/09/05 06:45:28     1.31
  +++ Hierarchy.java    2001/09/06 22:40:39     1.32
  @@ -34,17 +34,16 @@
   import org.apache.log4j.helpers.OptionConverter;
   
   /**
  -   This class is specialized in retrieving categories by name and
  -   also maintaining the category hierarchy.
  +   This class is specialized in retrieving loggers by name and also
  +   maintaining the logger hierarchy.
   
  -   <p><em>The casual user should not have to deal with this class
  -   directly.</em> In fact, up until version 0.9.0, this class had
  -   default package access. 
  +   <p><em>The casual user does not have to deal with this class
  +   directly.</em>
   
  -   <p>The structure of the category hierarchy is maintained by the
  +   <p>The structure of the logger hierarchy is maintained by the
      {@link #getLogger} method. The hierarchy is such that children link
      to their parent but parents do not have any pointers to their
  -   children. Moreover, categories can be instantiated in any order, in
  +   children. Moreover, loggers can be instantiated in any order, in
      particular descendant before ancestor.
   
      <p>In case a descendant is created before a particular ancestor,
  @@ -71,7 +70,7 @@
     boolean emittedNoResourceBundleWarning = false;  
   
     /**
  -     Create a new Category hierarchy.
  +     Create a new logger hierarchy.
   
        @param root The root of the new hierarchy.
   
  @@ -106,9 +105,9 @@
     }
   
     /**
  -     This call will clear all category definitions from the internal
  +     This call will clear all logger definitions from the internal
        hashtable. Invoking this method will irrevocably mess up the
  -     category hierarchy.
  +     logger hierarchy.
        
        <p>You should <em>really</em> know what you are doing before
        invoking this method.
  @@ -124,7 +123,7 @@
     void emitNoAppenderWarning(Category cat) {
       // No appenders in hierarchy, warn user only once.
       if(this.emittedNoAppenderWarning) {
  -      LogLog.error("No appenders could be found for category (" +
  +      LogLog.error("No appenders could be found for logger (" +
                   cat.getName() + ").");
         LogLog.error("Please initialize the log4j system properly.");
         this.emittedNoAppenderWarning = true;
  @@ -132,10 +131,10 @@
     }
   
     /**
  -     Check if the named category exists in the hierarchy. If so return
  +     Check if the named logger exists in the hierarchy. If so return
        its reference, otherwise returns <code>null</code>.
        
  -     @param name The name of the category to search for.
  +     @param name The name of the logger to search for.
        
     */
     public
  @@ -168,23 +167,23 @@
   
   
     /**
  -     Disable all logging requests of level <em>equal to or
  -     below</em> the level parameter <code>p</code>, for
  -     <em>all</em> categories in this hierarchy. Logging requests of
  -     higher level then <code>p</code> remain unaffected.
  +     Disable all logging requests of level <em>equal to or below</em>
  +     the level parameter <code>p</code>, for <em>all</em> loggers in
  +     this hierarchy. Logging requests of higher level then
  +     <code>p</code> remain unaffected.
   
        <p>The "disable" family of methods are there for speed. They
        allow printing methods such as debug, info, etc. to return
        immediately after an integer comparison without walking the
  -     category hierarchy. In most modern computers an integer
  -     comparison is measured in nanoseconds where as a category walk is
  -     measured in units of microseconds.
  +     logger hierarchy. In most modern computers an integer comparison
  +     is measured in nanoseconds where as a logger walk is measured in
  +     units of microseconds.
   
        <p>Other configurators define alternate ways of overriding the
        disable override flag. See {@link PropertyConfigurator} and
        {@link org.apache.log4j.xml.DOMConfigurator}.
   
  -     @deprecated Please use the {@link #enable} familiy of methods instead.
  +     @deprecated Please use the {@link #enable} family of methods instead.
   
        @since 0.8.5 */
     public
  @@ -204,11 +203,11 @@
     }
     
     /**
  -     Disable all logging requests regardless of category and level.
  +     Disable all logging requests regardless of logger and level.
        This method is equivalent to calling {@link #disable} with the
        argument {@link Level#FATAL}, the highest possible level.
   
  -     @deprecated Please use the {@link #enable} familiy of methods instead.
  +     @deprecated Please use the {@link #enable} family of methods instead.
   
        @since 0.8.5 */
     public
  @@ -218,13 +217,12 @@
   
   
     /**
  -     Disable all logging requests of level DEBUG regardless of
  -     category.  Invoking this method is equivalent to calling {@link
  +     Disable all logging requests of level DEBUG regardless of the
  +     logger.  Invoking this method is equivalent to calling {@link
        #disable} with the argument {@link Level#DEBUG}.
   
  -     @deprecated Please use the {@link #enable} familiy of methods instead.
  -
  -     @since 0.8.5 */
  +     @deprecated Please use the {@link #enable} family of methods instead.
  +  */
     public
     void disableDebug() {
       disable(Level.DEBUG);
  @@ -233,13 +231,13 @@
   
     /**
        Disable all logging requests of level INFO and below
  -     regardless of category. Note that DEBUG messages are also
  +     regardless of logger. Note that DEBUG messages are also
        disabled.  
   
        <p>Invoking this method is equivalent to calling {@link
        #disable(Level)} with the argument {@link Level#INFO}.
   
  -     @deprecated Please use the {@link #enable} familiy of methods instead.
  +     @deprecated Please use the {@link #enable} family of methods instead.
   
        @since 0.8.5 */
     public
  @@ -248,29 +246,26 @@
     }  
   
     /**
  -     Undoes the effect of calling any of {@link #disable}, {@link
  -     #disableAll}, {@link #disableDebug} and {@link #disableInfo}
  -     methods. More precisely, invoking this method sets the Category
  -     class internal variable called <code>disable</code> to its
  -     default "off" value.
  -
  -     @since 0.8.5 */
  +     Equivalent to calling <code>enable(Level.ALL)</code>.
  +     
  +     By default all levels are enabled.
  +  */
     public
     void enableAll() {
       enable(Level.ALL);
     }
   
     /**
  -     Enable logging for events with level p or higher.
  +     Enable logging for logging requests with level <code>l</code> or
  +     higher. By default all levels are enabled.
   
  -       @param p the minimum level for which events are sent to
  -              their appenders.
  -       @since 1.1.3 */
  +     @param l The minimum level for which logging requests are sent to
  +     their appenders.  */
     public 
  -  void enable(Level p) {
  -    if(p != null) {
  -      enableInt = p.level;
  -      enable = p;
  +  void enable(Level l) {
  +    if(l != null) {
  +      enableInt = l.level;
  +      enable = l;
       }
     }
   
  @@ -298,11 +293,10 @@
     }
   
     /**
  -     Returns a {@link Level} representation of the
  -     <code>enable</code> state.  
  +     Returns a {@link Level} representation of the <code>enable</code>
  +     state.
   
  -     @since 1.2
  -  */
  +     @since 1.2 */
     public
     Level getEnable() {
       return enable;
  @@ -336,16 +330,16 @@
     }
   
    /**
  -     Return a new category instance named as the first parameter using
  +     Return a new logger instance named as the first parameter using
        <code>factory</code>.
        
  -     <p>If a category of that name already exists, then it will be
  -     returned.  Otherwise, a new category will be instantiated by the
  +     <p>If a logger of that name already exists, then it will be
  +     returned.  Otherwise, a new logger will be instantiated by the
        <code>factory</code> parameter and linked with its existing
        ancestors as well as children.
        
  -     @param name The name of the category to retrieve.
  -     @param factory The factory that will make the new category instance.
  +     @param name The name of the logger to retrieve.
  +     @param factory The factory that will make the new logger instance.
   
    */
     public
  @@ -613,7 +607,7 @@
     /** 
         We update the links for all the children that placed themselves
         in the provision node 'pn'. The second argument 'cat' is a
  -      reference for the newly created Category, parent of all the
  +      reference for the newly created Logger, parent of all the
         children in 'pn'
   
         We loop on all the children 'c' in 'pn':
  
  
  
  1.5       +33 -5     jakarta-log4j/src/java/org/apache/log4j/Logger.java
  
  Index: Logger.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/Logger.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Logger.java       2001/09/04 18:44:47     1.4
  +++ Logger.java       2001/09/06 22:40:39     1.5
  @@ -29,19 +29,47 @@
   
   
   /**
  -  This is the central class in the log4j package. One of the
  -  distintive features of log4j are hierarchical categories and their
  -  evaluation.
  +  This is the central class in the log4j package. Most logging
  +  operations, except configuration, are done through this class.
   
     <p>See the <a href="../../../../manual.html">user manual</a> for an
     introduction on this class. 
   
  -  @author Ceki G&uuml;lc&uuml;
  -  @author Anders Kristensen */
  +  @author Ceki G&uuml;lc&uuml; */
   public class Logger extends Category {
   
     protected 
     Logger(String name) {
       super(name);
     }
  +
  +  /**
  +     Same as calling {@link LogManager#getLogger(String)}.
  +  */
  +  static
  +  public
  +  Logger getLogger(String name) {
  +    return LogManager.getLogger(name);
  +  }
  +
  +
  +  /**
  +     Same as calling {@link LogManager#getLogger(Class)}.
  +   */
  +  static
  +  public
  +  Logger getLogger(Class clazz) {
  +    return LogManager.getLogger(clazz.getName());
  +  }
  +
  +  /**
  +     Same as calling {@link LogManager#getRootLogger()}.     
  +   */
  +  public
  +  static 
  +  Logger getRootLogger() {
  +    return LogManager.getRootLogger();
  +  }
  +
  +
   }
  
  
  
  1.9       +8 -8      jakarta-log4j/src/java/org/apache/log4j/MDC.java
  
  Index: MDC.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/MDC.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- MDC.java  2001/08/13 10:22:10     1.8
  +++ MDC.java  2001/09/06 22:40:39     1.9
  @@ -13,20 +13,20 @@
   import org.apache.log4j.helpers.ThreadLocalMap;
   
   /**
  -   The MDC class supercedes the {@link NDC} class. It provides
  -   <em>mapped diagnostic contexts</em>. A <em>Mapped Diagnostic
  -   Context</em>, or MDC in short, is an instrument for distinguishing
  -   interleaved log output from different sources. Log output is
  -   typically interleaved when a server handles multiple clients
  -   near-simultaneously.
  +   The MDC class is similar to the {@link NDC} class except that it is
  +   based on a map instead of a stack. It provides <em>mapped
  +   diagnostic contexts</em>. A <em>Mapped Diagnostic Context</em>, or
  +   MDC in short, is an instrument for distinguishing interleaved log
  +   output from different sources. Log output is typically interleaved
  +   when a server handles multiple clients near-simultaneously.
   
      <p><b><em>The MDC is managed on a per thread basis</em></b>. A
      child thread automatically inherits a <em>copy</em> of the mapped
      diagnostic context of its parent.
     
      <p>The MDC class requires JDK 1.2 or above. Under JDK 1.1 the MDC
  -   will always return empty values but others will not harm your
  -   application.
  +   will always return empty values but otherwise will not affect or
  +   harm your application.
      
      @since 1.2
   
  
  
  
  1.37      +3 -3      
jakarta-log4j/src/java/org/apache/log4j/PropertyConfigurator.java
  
  Index: PropertyConfigurator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/PropertyConfigurator.java,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- PropertyConfigurator.java 2001/09/05 06:45:28     1.36
  +++ PropertyConfigurator.java 2001/09/06 22:40:39     1.37
  @@ -38,7 +38,7 @@
   
   /**
      Extends {@link BasicConfigurator} to provide configuration from an
  -   external file.  See <b>{@link #doConfigure(String, Hierarchy)}</b> for the
  +   external file.  See <b>{@link #doConfigure(String, LoggerRepository)}</b> for the
      expected format.
   
      <p>It is sometimes useful to see how log4j is reading configuration
  @@ -336,7 +336,7 @@
     /**
        Read configuration options from <code>properties</code>.
   
  -     See {@link #doConfigure(String, Hierarchy)} for the expected format.
  +     See {@link #doConfigure(String, LoggerRepository)} for the expected format.
     */
     static
     public
  @@ -383,7 +383,7 @@
     /**
        Read configuration options from <code>properties</code>.
   
  -     See {@link #doConfigure(String, Hierarchy)} for the expected format.
  +     See {@link #doConfigure(String, LoggerRepository)} for the expected format.
     */
     public
     void doConfigure(Properties properties, LoggerRepository hierarchy) {
  
  
  
  1.34      +2 -2      jakarta-log4j/src/java/org/apache/log4j/xml/DOMConfigurator.java
  
  Index: DOMConfigurator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/xml/DOMConfigurator.java,v
  retrieving revision 1.33
  retrieving revision 1.34
  diff -u -r1.33 -r1.34
  --- DOMConfigurator.java      2001/09/05 06:45:29     1.33
  +++ DOMConfigurator.java      2001/09/06 22:40:39     1.34
  @@ -651,7 +651,7 @@
   
     
     /**
  -     A static version of {@link #doConfigure(String, Hierarchy)}.  */
  +     A static version of {@link #doConfigure(String, LoggerRepository)}.  */
     static
     public
     void configure(String filename) throws FactoryConfigurationError {
  @@ -659,7 +659,7 @@
     }
   
     /**
  -     A static version of {@link #doConfigure(URL, Hierarchy)}.
  +     A static version of {@link #doConfigure(URL, LoggerRepository)}.
      */
     static
     public
  
  
  
  1.2       +87 -12    jakarta-log4j/src/sgml/intro.sgml
  
  Index: intro.sgml
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/sgml/intro.sgml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- intro.sgml        2001/09/06 21:09:00     1.1
  +++ intro.sgml        2001/09/06 22:40:39     1.2
  @@ -13,7 +13,7 @@
   <ulink url="http://www.opensource.org";>open source</ulink>
   initiative. The latest log4j version, including full-source code,
   class files and documentation can be found at <ulink
  
-url="http://jakarta.apache.org/log4j/";><b>http://jakarta.apache.org/log4j/</b></ulink>.
  +url="http://jakarta.apache.org/log4j/";>http://jakarta.apache.org/log4j/</ulink>.
   </para>
   
   <para>Igor Poteryaev, an independent author, has ported log4j to the
  @@ -29,18 +29,18 @@
   multithreaded applications and distributed applications at large.
   </para>
   
  -<para>Experience indicated that logging was an important component of the
  -development cycle. It offered several advantages. It could provide
  -precise <em>context</em> about a run of the application. Once inserted
  -into the code, the generation of logging output required no human
  -intervention.  Moreover, log output could be saved in persistent
  -medium to be studied at a later time. In addition to its use in the
  -development cycle, a sufficiently rich logging package could also be
  -viewed as an auditing tool.
  +<para>Experience indicated that logging was an important component of
  +the development cycle. It offered several advantages. It could provide
  +precise <emphasis>context</emphasis> about a run of the
  +application. Once inserted into the code, the generation of logging
  +output required no human intervention.  Moreover, log output could be
  +saved in persistent medium to be studied at a later time. In addition
  +to its use in the development cycle, a sufficiently rich logging
  +package could also be viewed as an auditing tool.
   </para>
   
   <para>As Brian W. Kernigan and Rob Pike put it in their truly excellent
  -book <i>"The Practice of Programming"</i>
  +book <emphasis>"The Practice of Programming"</emphasis>
   <blockquote>
   <literallayout>
     As personal choice, we tend not to use debuggers beyond getting a
  @@ -80,9 +80,10 @@
   <para>Releases are available in two formats: <filename>zip<filename>
   and <filename>tar.gz</filename>. After unpacking the distribution, you
   should have the file
  -<filename>$LOG4J_HOME/dist/lib/log4j-version.jar</filename> where
  +<filename>$LOG4J_HOME/dist/lib/log4j-VERSION.jar</filename> where
   <varname>$LOG4J_HOME</varname> is the directory where you unpacked the
  -log4j distribution.
  +log4j distribution and <varname>VERSION</varname> is the version of
  +the log4j distibution you downloaded.
   
   <para>To start using log4j simply add this jar file to your
   <varname>CLASSPATH</varname>.</para>
  @@ -91,5 +92,79 @@
   
   <sect1>
   <title>First run</title> <para></para>
  +
  +<para>After you have installed <filename>log4j-VERSION.jar</filename>
  +in your <varname>CLASSPATH</varname>, we can try to write a small
  +program that uses log4j.
  +
  +Please also see <xref linkend="faq-threadSafe">.
  +
  +<example>
  +<title>First attempt</title>
  +<programlisting>  
  +  package my.com;
  +  
  +  import org.apache.log4j.Logger;
  +
  +  public class MyApp {
  +    static final Logger logger = Logger.getLogger(MyApp.class);
  +
  +    static public void main(String[] args) {
  +      logger.debug("Hello world.");
  +    }
  +  }
  +</programlisting>
  +</example>
  +
  +
  +<example id="sample-catalog">
  +  <title>Catalog Sample</title>
  +  <programlistingco>
  +    <areaspec>
  +      <area coords="1" id="ex.catalogue.comment">
  +      <area coords="5" id="ex.catalogue.definition">
  +      <area coords="11" id="ex.catalogue.eof">
  +    </areaspec>
  +        <programlisting>
  +-- Catalogues for the Conectiva S.A. Style --
  +
  +OVERRIDE YES
  + 
  +PUBLIC "-//Conectiva SA//DTD books V1.0//EN" "/home/ldp/estilos/livros.dtd" 
  +
  +DELEGATE "-//OASIS" "/home/ldp/SGML/dtds/catalog.dtd"
  +
  +DOCTYPE BOOK /home/ldp/SGML/dtds/docbook/db31/docbook.dtd
  + 
  +-- EOF -- 
  +        </programlisting>
  +    <calloutlist>
  +      <callout arearefs="ex.catalogue.comment">
  +        <to> Comment. Comments begin with <quote>--</quote> 
  +        and follows to the end of the line. </to> 
  +      </callout>
  +      <callout arearefs="ex.catalogue.definition">
  +        <to> The public type association 
  +           <parameter class="option">"-//Conectiva SA//DTD books 
V1.0//EN"</parameter> 
  +           with the file <filename>books.dtd</filename> on the directory
  +           <filename class="directory">/home/ldp/estilos</filename>. </para> 
  +      </callout>
  +      <callout arearefs="ex.catalogue.eof">
  +        <para> Comment informing the end of the file. </para>
  +      </callout>
  +    </calloutlist>
  +  </programlistingco>
  +</example>
  +    
  +
  +
  +<computeroutput>
  +aasdasd
  +afasfd
  +</computeroutput>
  +
  +
  +</para>
  +
   </sect1>
   </chapter>
  
  
  
  1.3       +20 -8     jakarta-log4j/src/sgml/manual.sgml
  
  Index: manual.sgml
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/sgml/manual.sgml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- manual.sgml       2001/09/06 21:09:00     1.2
  +++ manual.sgml       2001/09/06 22:40:39     1.3
  @@ -127,15 +127,27 @@
   <chapter>
   <title>Frequently Asked Questions</title>
   
  -<sect1>
  -<title>Installation requirements</title>
  -<para></para>
  -</sect1>
  +<qandaset>
   
  -<sect1>
  -<title>Exception</title>
  -<para></para>
  -</sect1>
  +<qandaentry>
  +<question>
  +<para>What are the installation requirements for log4j?</para>
  +</question>
  +<answer>
  +<para>Log4j requires JDK 1.1.</para>
  +</answer>
  +</qandaentry>
  +
  +<qandaentry>
  +<question id="faq-threadSafe">
  +<para>Is log4j thread safe?</para>
  +</question>
  +<answer>
  +<para>Yes it is.</para>
  +</answer>
  +</qandaentry>
  +</qandaset> 
  +
   
   
   </chapter>
  
  
  

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

Reply via email to