remm        02/01/29 07:07:00

  Modified:    webapps/tomcat-docs Tag: tomcat_40_branch
                        class-loader-howto.xml
  Log:
  - Remove lots of deprecated information.
  - Update the list of JARs provided with Tomcat.
  - Fix file (incorrect CRLF).
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.2   +220 -267  jakarta-tomcat-4.0/webapps/tomcat-docs/class-loader-howto.xml
  
  Index: class-loader-howto.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/tomcat-docs/class-loader-howto.xml,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- class-loader-howto.xml    10 Jan 2002 22:17:13 -0000      1.1.2.1
  +++ class-loader-howto.xml    29 Jan 2002 15:07:00 -0000      1.1.2.2
  @@ -1,267 +1,220 @@
  -<?xml version="1.0"?>
  -<!DOCTYPE document [
  -  <!ENTITY project SYSTEM "project.xml">
  -]>
  -<document>
  -
  -    &project;
  -
  -    <properties>
  -        <author email="[EMAIL PROTECTED]">Craig R. McClanahan</author>
  -        <title>Class Loader INFO</title>
  -    </properties>
  -
  -<body>
  -
  -
  -<section name="Quick Start">
  -
  -<p>The following rules cover about 95% of the decisions that application
  -developers and deployers must make about where to place class and resource
  -files to make them available to web applications:</p>
  -<ul>
  -<li>For classes and resources specific to a particular web application,
  -    place unpacked classes and resources under <code>/WEB-INF/classe</code>
  -    of your web application archive, or place JAR files containing those
  -    classes and resources under <code>/WEB-INF/lib</code> of your web
  -    application archive.</li>
  -<li>For classes and resources that must be shared across all web applications,
  -    place unpacked classes and resources under
  -    <code>$CATALINA_HOME/classes</code>, or place JAR files containing those
  -    classes and resources under <code>$CATALINA_HOME/lib</code>.</li>
  -</ul>
  -
  -<p><strong>WARNING</strong> - Unlike Tomcat 3.x, Tomcat 4 does
  -<strong>NOT</strong> make an XML parser visible to web applications by default.
  -If you need to do this, see <a href="#Tomcat 4 and XML Parsers">Tomcat 4 and
  -XML Parsers</a>, below.</p>
  -
  -</section>
  -
  -
  -<section name="Overview">
  -
  -<p>Like many server applications, Tomcat 4 installs a variety of class loaders
  -(that is, classes that implement <code>java.lang.ClassLoader</code>) to allow
  -different portions of the container, and the web applications running on the
  -container, to have access to different repositories of available classes and
  -resources.  This mechanism is used to provide the functionality defined in the
  -Servlet Specification, version 2.3 -- in particular, Sections 9.4 and 9.6.</p>
  -
  -<p>In a Java 2 (that is, JDK 1.2 or later) environment, class loaders are
  -arranged in a parent-child tree.  Normally, when a class loader is asked to
  -load a particular class or resource, it delegates the request to a parent
  -class loader first, and then looks in its own repositories only if the parent
  -class loader(s) cannot find the requested class or resource.  The model for
  -web application class loaders differs slightly from this, as discussed below,
  -but the main principles are the same.</p>
  -
  -<p>When Tomcat 4 is started, it creates a set of class loaders that are
  -organized into the following parent-child relationships, where the parent
  -class loader is above the child class loader:</p>
  -
  -<source>
  -      Bootstrap
  -          |
  -       System
  -          |
  -       Common
  -      /      \
  - Catalina   Shared
  -             /   \
  -        Webapp1  Webapp2 ... 
  -          /         /
  -       Jasper1  Jasper2 ...
  -</source>
  -
  -<p>The characteristics of each of these class loaders, including the source
  -of classes and resources that they make visible, are discussed in detail in
  -the following section.</p>
  -
  -</section>
  -
  -<section name="Class Loader Definitions">
  -
  -<p>As indicated in the diagram above, Tomcat 4 creates the following class
  -loaders as it is initialized:</p>
  -<ul>
  -<li><strong>Bootstrap</strong> - This class loader contains the basic runtime
  -    classes provided by the Java Virtual Machine, plus any classes from JAR
  -    files present in the System Extensions directory
  -    (<code>$JAVA_HOME/jre/lib/ext</code>).  <em>NOTE</em> - Some JVMs may
  -    implement this as more than one class loader, or it may not be visible
  -    (as a class loader) at all.</li>
  -<li><strong>System</strong> - This class loader is normally initialized from
  -    the contents of the <code>CLASSPATH</code> environment variable.  All such
  -    classes are visible to both Tomcat internal classes, and to web
  -    applications.  However, the standard Tomcat 4 startup scripts
  -    (<code>$CATALINA_HOME/bin/catalina.sh</code> or
  -    <code>%CATALINA_HOME%\bin\catalina.bat</code>) totally ignore the contents
  -    of the <code>CLASSPATH</code> environment variable itself, and instead
  -    build the System class loader from the following repositories:
  -    <ul>
  -    <li><em>$CATALINA_HOME/bin/bootstrap.jar</em> - Contains the main() method
  -        that is used to initialize the Tomcat 4 server, and the class loader
  -        implementation classes it depends on.</li>
  -    <li><em>$JAVA_HOME/lib/tools.jar</em> - Contains the "javac" compiler used
  -        to convert JSP pages into servlet classes.</li>
  -    </ul></li>
  -<li><strong>Common</strong> - This class loader contains additional classes
  -    that are made visible to both Tomcat internal classes and to all web
  -    applications.  Normally, application classes should <strong>NOT</strong>
  -    be placed here.  All unpacked classes and resources in
  -    <code>$CATALINA_HOME/common/classes</code>, as well as classes and
  -    resources in JAR files under
  -    <code>$CATALINA_HOME/common/lib</code>, are made visible through this
  -    class loader.  By default, that includes the following:
  -    <ul>
  -    <li><em>jndi.jar</em> - The Java Naming and Directory Interface API
  -        classes (loaded <strong>ONLY</strong> on a JDK 1.2 system, because they
  -        are included automatically on JDK 1.3 and later).</li>
  -    <li><em>naming.jar</em> - The JNDI implementation used by Tomcat 4 to
  -        represent the default JNDI naming context provided to web
  -        applications.</li>
  -    <li><em>resources.jar</em> - Resource factory classes for the JNDI naming
  -        context that is used internally to represent the static resources of
  -        a web application.</li>
  -    <li><em>servlet.jar</em> - The Servlet and JSP API classes.</li>
  -    </ul></li>
  -<li><strong>Catalina</strong> - This class loader is initialized to include
  -    all classes and resources required to implement Tomcat 4 itself.  These
  -    classes and resources are <strong>TOTALLY</strong> invisible to web
  -    applications.  All unpacked classes and resources in
  -    <code>$CATALINA_HOME/server/classes</code>, as well as classes and
  -    resources in JAR files under
  -    <code>$CATALINA_HOME/server/lib</code>, are made visible through
  -    this class loader.  By default, that includes the following:
  -    <ul>
  -    <li><em>catalina.jar</em> - Implementation of the Catalina servlet
  -        container portion of Tomcat 4.</li>
  -    <li><em>crimson.jar</em> - Parser portion of the JAXP/1.1 reference
  -        implementation, used to parse web application deployment descriptor
  -        (<code>web.xml</code>) files, as well as the server configuration file
  -        (<code>$CATALINA_HOME/conf/server.xml</code>).</li>
  -    <li><em>jakarta-regexp-X.Y.jar</em> - The binary distribution of the
  -        <a href="http://jakarta.apache.org/regexp/";>Jakarta Regexp</a>
  -        regular expression processing library, used in the implementation of
  -        request filters.</li>
  -    <li><em>jaxp.jar</em> - JAXP API portion of the JAXP/1.1 reference
  -        implementation, used to parse web application deployment descriptor
  -        (<code>web.xml</code>) files, as well as the server configuration file
  -        (<code>$CATALINA_HOME/conf/server.xml</code>).</li>
  -    <li><em>warp.jar</em> - Classes for the Java portion of the
  -        <code>mod_webapp</code> web server connector, which allows Tomcat to
  -        run behind web servers such as Apache and iPlanet iAS and iWS.</li>
  -    </ul></li>
  -<li><strong>Shared</strong> - This class loader is the place to put classes
  -    and resources that you wish to share across <strong>ALL</strong>
  -    web applications (unless Tomcat internal classes also need access, which
  -    is an unusual case).  All unpacked classes and resources in
  -    <code>$CATALINA_HOME/classes</code>, as well as classes and resources
  -    in JAR files under <code>$CATALINA_HOME/lib</code>, are made visible
  -    through this class loader.  By default, that includes the following:
  -    <ul>
  -    <li><em>jasper-runtime.jar</em> - The runtime support classes required
  -        to execute JSP pages that have already been translated into Java
  -        servlets and then compiled.</li>
  -    <li><em>namingfactory.jar</em> - JNDI object factories for resources
  -        supported by the default JNDI naming context provided to web
  -        applications.</li>
  -    </ul></li>
  -<li><strong>WebappX</strong> - A class loader is created for each web
  -    application that is deployed in a single Tomcat 4 instance.  All unpacked
  -    classes and resources in the <code>/WEB-INF/classes</code> directory of
  -    your web application archive, plus classes and resources in JAR files
  -    under the <code>/WEB-INF/lib</code> directory of your web application
  -    archive, are made visible to the containing web application, but to
  -    no others.</li>
  -<li><strong>JasperX</strong> - If your web application uses JSP pages, Tomcat
  -    also creates an additional class loader for the web application,
  -    containing the JSP compiler and classes it depends on.  It is initialized
  -    to include all JAR files found in <code>$CATALINA_HOME/jasper</code>.
  -    Because this is a child class loader of the web application class loader,
  -    the Jasper compiler (and the pages that it compiles) can see all of the
  -    application bean classes visible in the <code>Webapp</code> class loader.
  -    </li>
  -</ul>
  -
  -<p>As mentioned above, the web application class loader diverges from the
  -default Java 2 delegation model (in accordance with the recommendations in the
  -Servlet Specification, version 2.3, section 9.6).  When a request to load a
  -class from the web application's <em>WebappX</em> class loader is processed,
  -this class loader will look in the local repositories <strong>first</strong>,
  -instead of delegating before looking.  All other class loaders in Tomcat 4
  -follow the usual delegation pattern.</p>
  -
  -<p>Therefore, from the perspective of a web application, class or resource
  -loading looks in the following repositories, in this order:</p>
  -<ul>
  -<li><em>/WEB-INF/classes</em> of your web application</li>
  -<li><em>/WEB-INF/lib/*.jar</em> of your web application</li>
  -<li>Bootstrap classes of your JVM</li>
  -<li>System class loader classses (described above)</li>
  -<li><em>$CATALINA_HOME/common/classes</em></li>
  -<li><em>$CATALINA_HOME/common/lib/*.jar</em></li>
  -<li><em>$CATALINA_HOME/classes</em></li>
  -<li><em>$CATALINA_HOME/lib/*.jar</em></li>
  -</ul>
  -
  -</section>
  -
  -
  -<section name="Tomcat 4 and XML Parsers">
  -
  -<p>Tomcat 4 itself utilizes XML parsing for three processing activities:</p>
  -<ul>
  -<li>Parsing the <code>server.xml</code> configuration file</li>
  -<li>Parsing <code>web.xml</code> deployment descriptors</li>
  -<li>Parsing JSP pages in XML syntax</li>
  -</ul>
  -
  -<p>By default, the Java API for XML Processing (Version 1.1) reference
  -implementation is utilized for all of these purposes.  However, this parser
  -is <strong>not</strong> visible to web applications -- instead, the XML
  -parser stored in <code>$CATALINA_HOME/server/lib</code> is used for parsing
  -<code>web.xml</code> and <code>server.xml</code> files, while the parser
  -stored in <code>$CATALINA_HOME/jasper</code> is used for parsing JSP pages
  -in XML syntax.</p>
  -
  -<p>To make an XML parser available to your web applications, you have several
  -options:</p>
  -<ul>
  -<li>To utilize an XML parser in a single web application, simply include the
  -    parser's JAR files in the <code>/WEB-INF/web.xml</code> directory of that
  -    web application.  This will work, no matter what parser might be used by
  -    Tomcat 4 internally, or by other web applications running in the same
  -    instance of Tomcat 4.</li>
  -<li>If you wish to make the JAXP/1.1 reference implementation parser available
  -    to all web applications, simply move the "jaxp.jar" and "crimson.jar" files
  -    from the <code>$CATALINA_HOME/jasper</code> directory into the
  -    <code>$CATALINA_HOME/lib</code> directory.  Jasper will continue to use
  -    this parser for processing JSP pages in XML syntax.</li>
  -<li>If you wish to make another XML parser that is JAXP/1.1 compatible
  -    (such as Xerces 1.3.1 or later), install that parser's JAR files into the
  -    <code>$CATALINA_HOME/lib</code> directory, and remove "jaxp.jar" and
  -    "crimson.jar" from the <code>$CATALINA_HOME/jasper</code> directory.
  -    Jasper will then utilize the new XML parser as well.</li>
  -</ul>
  -
  -<p><strong>WARNING</strong> - Do not attempt to use a JAXP/1.0 (rather than
  -JAXP/1.1) compliant parser with Tomcat 4.  Tomcat relies on the extra features
  -that were added in JAXP/1.1 to perform its parsing activities.</p>
  -
  -<p><strong>WARNING</strong> - The final release of the JAXP/1.1 reference
  -implementation includes JAR files with the <code>sealed</code> attribute.
  -This causes class loading problems (most commonly visible through "package
  -sealing violation" exceptions) on JDK 1.3 and later platforms.  To avoid
  -these problems, <em>modified</em> versions of "jaxp.jar" and "crimson.jar"
  -are shipped with Tomcat 4.  You must <strong>NOT</strong> replace these files
  -with standard JAXP/1.1 JAR files, until a subsequent JAXP release occurs that
  -has the "sealed" attribute removed.</p>
  -
  -</section>
  -
  -
  -</body>
  -
  -</document>
  +<?xml version="1.0"?>
  +<!DOCTYPE document [
  +  <!ENTITY project SYSTEM "project.xml">
  +]>
  +<document>
  +
  +    &project;
  +
  +    <properties>
  +        <author email="[EMAIL PROTECTED]">Craig R. McClanahan</author>
  +        <title>Class Loader INFO</title>
  +    </properties>
  +
  +<body>
  +
  +
  +<section name="Quick Start">
  +
  +<p>The following rules cover about 95% of the decisions that application
  +developers and deployers must make about where to place class and resource
  +files to make them available to web applications:</p>
  +<ul>
  +<li>For classes and resources specific to a particular web application,
  +    place unpacked classes and resources under <code>/WEB-INF/classe</code>
  +    of your web application archive, or place JAR files containing those
  +    classes and resources under <code>/WEB-INF/lib</code> of your web
  +    application archive.</li>
  +<li>For classes and resources that must be shared across all web applications,
  +    place unpacked classes and resources under
  +    <code>$CATALINA_HOME/classes</code>, or place JAR files containing those
  +    classes and resources under <code>$CATALINA_HOME/lib</code>.</li>
  +</ul>
  +
  +</section>
  +
  +
  +<section name="Overview">
  +
  +<p>Like many server applications, Tomcat 4 installs a variety of class loaders
  +(that is, classes that implement <code>java.lang.ClassLoader</code>) to allow
  +different portions of the container, and the web applications running on the
  +container, to have access to different repositories of available classes and
  +resources.  This mechanism is used to provide the functionality defined in the
  +Servlet Specification, version 2.3 -- in particular, Sections 9.4 and 9.6.</p>
  +
  +<p>In a Java 2 (that is, JDK 1.2 or later) environment, class loaders are
  +arranged in a parent-child tree.  Normally, when a class loader is asked to
  +load a particular class or resource, it delegates the request to a parent
  +class loader first, and then looks in its own repositories only if the parent
  +class loader(s) cannot find the requested class or resource.  The model for
  +web application class loaders differs slightly from this, as discussed below,
  +but the main principles are the same.</p>
  +
  +<p>When Tomcat 4 is started, it creates a set of class loaders that are
  +organized into the following parent-child relationships, where the parent
  +class loader is above the child class loader:</p>
  +
  +<source>
  +      Bootstrap
  +          |
  +       System
  +          |
  +       Common
  +      /      \
  + Catalina   Shared
  +             /   \
  +        Webapp1  Webapp2 ... 
  +          /         /
  +       Jasper1  Jasper2 ...
  +</source>
  +
  +<p>The characteristics of each of these class loaders, including the source
  +of classes and resources that they make visible, are discussed in detail in
  +the following section.</p>
  +
  +</section>
  +
  +<section name="Class Loader Definitions">
  +
  +<p>As indicated in the diagram above, Tomcat 4 creates the following class
  +loaders as it is initialized:</p>
  +<ul>
  +<li><strong>Bootstrap</strong> - This class loader contains the basic runtime
  +    classes provided by the Java Virtual Machine, plus any classes from JAR
  +    files present in the System Extensions directory
  +    (<code>$JAVA_HOME/jre/lib/ext</code>).  <em>NOTE</em> - Some JVMs may
  +    implement this as more than one class loader, or it may not be visible
  +    (as a class loader) at all.</li>
  +<li><strong>System</strong> - This class loader is normally initialized from
  +    the contents of the <code>CLASSPATH</code> environment variable.  All such
  +    classes are visible to both Tomcat internal classes, and to web
  +    applications.  However, the standard Tomcat 4 startup scripts
  +    (<code>$CATALINA_HOME/bin/catalina.sh</code> or
  +    <code>%CATALINA_HOME%\bin\catalina.bat</code>) totally ignore the contents
  +    of the <code>CLASSPATH</code> environment variable itself, and instead
  +    build the System class loader from the following repositories:
  +    <ul>
  +    <li><em>$CATALINA_HOME/bin/bootstrap.jar</em> - Contains the main() 
  +        method that is used to initialize the Tomcat 4 server, and 
  +        the class loader implementation classes it depends on.</li>
  +    <li><em>$JAVA_HOME/lib/tools.jar</em> - Contains the "javac" 
  +        compiler used to convert JSP pages into servlet classes.</li>
  +    </ul></li>
  +<li><strong>Common</strong> - This class loader contains additional classes
  +    that are made visible to both Tomcat internal classes and to all web
  +    applications.  Normally, application classes should <strong>NOT</strong>
  +    be placed here.  All unpacked classes and resources in
  +    <code>$CATALINA_HOME/common/classes</code>, as well as classes and
  +    resources in JAR files under
  +    <code>$CATALINA_HOME/common/lib</code>, are made visible through this
  +    class loader.  By default, that includes the following:
  +    <ul>
  +    <li><em>activation.jar</em> - The Java activation framework.</li>
  +    <li><em>jdbc2_0-stdext.jar</em> - JDBC 2.0 standard extension 
  +        (included as a standard part of JDBC 3.0).</li>
  +    <li><em>jndi.jar</em> - The Java Naming and Directory Interface API
  +        classes (loaded <strong>ONLY</strong> on a JDK 1.2 system, because 
  +        they are included automatically on JDK 1.3 and later).</li>
  +    <li><em>jta-spec.jar</em> - The Java Transaction API interfaces.</li>
  +    <li><em>mail.jar</em> - Java Mail.</li>
  +    <li><em>naming-common.jar</em> - The JNDI implementation used 
  +        by Tomcat 4 to represent the default JNDI naming context provided 
  +        to web applications.</li>
  +    <li><em>naming-resources.jar</em> - JNDI Directory Context 
  +        implementations which are used to abstract access to the static 
  +        resources of a web application.</li>
  +    <li><em>servlet.jar</em> - The Servlet and JSP API classes.</li>
  +    <li><em>tyrex-0.9.7.jar</em> - JTA/JTS/OTS compliant transaction
  +        manager and DataSource connection pool implementation.</li>
  +    <li><em>xerces.jar</em> - The Xerces 1.x XML parser (also includes the
  +        JAXP 1.1 interfaces).</li>
  +    </ul></li>
  +<li><strong>Catalina</strong> - This class loader is initialized to include
  +    all classes and resources required to implement Tomcat 4 itself.  These
  +    classes and resources are <strong>TOTALLY</strong> invisible to web
  +    applications.  All unpacked classes and resources in
  +    <code>$CATALINA_HOME/server/classes</code>, as well as classes and
  +    resources in JAR files under
  +    <code>$CATALINA_HOME/server/lib</code>, are made visible through
  +    this class loader.  By default, that includes the following:
  +    <ul>
  +    <li><em>catalina.jar</em> - Implementation of the Catalina servlet
  +        container portion of Tomcat 4.</li>
  +    <li><em>jakarta-regexp-X.Y.jar</em> - The binary distribution of the
  +        <a href="http://jakarta.apache.org/regexp/";>Jakarta Regexp</a>
  +        regular expression processing library, used in the implementation of
  +        request filters.</li>
  +    <li><em>servlets-xxxx.jar</em> - The standard suite of servlets
  +        which provide basic services, like static page serving, WebDAV support,
  +        CGI, SSI, and more.</li>
  +    <li><em>tomcat-util.jar</em> - Utility components used by modules from
  +        the jakarta-tomcat-connectors subproject.</li>
  +    <li><em>tomcat-ajp.jar</em> - The Java portion of the AJP 1.x connector
  +        (also know as the JK connector), which provides support for
  +        connecting native webservers, and load balancing between multiple
  +        Tomcat instances.</li>
  +    <li><em>warp.jar</em> - Classes for the Java portion of the
  +        <code>mod_webapp</code> web server connector, which allows Tomcat to
  +        run behind web servers such as Apache and iPlanet iAS and iWS.</li>
  +    </ul></li>
  +<li><strong>Shared</strong> - This class loader is the place to put classes
  +    and resources that you wish to share across <strong>ALL</strong>
  +    web applications (unless Tomcat internal classes also need access, which
  +    is an unusual case).  All unpacked classes and resources in
  +    <code>$CATALINA_HOME/classes</code>, as well as classes and resources
  +    in JAR files under <code>$CATALINA_HOME/lib</code>, are made visible
  +    through this class loader.  By default, that includes the following:
  +    <ul>
  +    <li><em>jasper-compiler.jar</em> - The Jasper JSP page compiler.</li>
  +    <li><em>jasper-runtime.jar</em> - The runtime support classes required
  +        to execute JSP pages that have already been translated into Java
  +        servlets and then compiled.</li>
  +    <li><em>naming-factory.jar</em> - JNDI object factories for resources
  +        supported by the default JNDI naming context provided to web
  +        applications.</li>
  +    </ul></li>
  +<li><strong>WebappX</strong> - A class loader is created for each web
  +    application that is deployed in a single Tomcat 4 instance.  All unpacked
  +    classes and resources in the <code>/WEB-INF/classes</code> directory of
  +    your web application archive, plus classes and resources in JAR files
  +    under the <code>/WEB-INF/lib</code> directory of your web application
  +    archive, are made visible to the containing web application, but to
  +    no others.</li>
  +<li><strong>JasperX</strong> - If your web application uses JSP pages, Tomcat
  +    also creates an additional class loader for the web application,
  +    containing the JSP compiler and classes it depends on.  It is initialized
  +    to include all JAR files found in <code>$CATALINA_HOME/jasper</code>.
  +    Because this is a child class loader of the web application class loader,
  +    the Jasper compiler (and the pages that it compiles) can see all of the
  +    application bean classes visible in the <code>Webapp</code> class loader.
  +    </li>
  +</ul>
  +
  +<p>As mentioned above, the web application class loader diverges from the
  +default Java 2 delegation model (in accordance with the recommendations in the
  +Servlet Specification, version 2.3, section 9.6).  When a request to load a
  +class from the web application's <em>WebappX</em> class loader is processed,
  +this class loader will look in the local repositories <strong>first</strong>,
  +instead of delegating before looking.  All other class loaders in Tomcat 4
  +follow the usual delegation pattern.</p>
  +
  +<p>Therefore, from the perspective of a web application, class or resource
  +loading looks in the following repositories, in this order:</p>
  +<ul>
  +<li><em>/WEB-INF/classes</em> of your web application</li>
  +<li><em>/WEB-INF/lib/*.jar</em> of your web application</li>
  +<li>Bootstrap classes of your JVM</li>
  +<li>System class loader classses (described above)</li>
  +<li><em>$CATALINA_HOME/common/classes</em></li>
  +<li><em>$CATALINA_HOME/common/lib/*.jar</em></li>
  +<li><em>$CATALINA_HOME/classes</em></li>
  +<li><em>$CATALINA_HOME/lib/*.jar</em></li>
  +</ul>
  +
  +</section>
  +
  +
  +</body>
  +
  +</document>
  
  
  

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

Reply via email to