<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation Maven//EN" "http://maven.apache.org/dtd/xdoc_1_0.dtd">
<document>
  <properties>
    <title>The Apache Velocity Project</title>
    <author email="dev@velocity.apache.org">
      Velocity Documentation Team
    </author>
  </properties>

  <body>
    <section name="Downloads"> 
      <p>
        You can download sources and binaries for all Velocity projects from here.
      </p>

      <a name="mirror" />
      <subsection name="Mirror Selection">
        <p>
          [if-any logo]
          <a href="[link]"><img align="right" src="[logo]" border="0" alt="logo"/></a>
          [end]
          The currently selected mirror is <b>[preferred]</b>.
          If you encounter a problem with this mirror,
          please select another mirror.
          If all mirrors are failing, there are <i>backup</i> mirrors
          (at the end of the mirrors list) that should be available.
        </p>

        <form action="[location]" method="get" id="SelectMirror">
          <p>
            Other mirrors:
            <select name="Preferred">
              [if-any http]
                [for http]
                  <option value="[http]">[http]</option>
                 [end]
              [end]
              [if-any ftp]
                [for ftp]
                  <option value="[ftp]">[ftp]</option>
                [end]
              [end]
              [if-any backup]
                [for backup]
                  <option value="[backup]">[backup] (backup)</option>
                [end]
              [end]
            </select>
            <input type="submit" value="Change" />
          </p>
        </form>
 
        <p>
          You may also consult the <a href="http://www.apache.org/mirrors/">complete list of mirrors</a>.
        </p>
      </subsection>
    </section>

    <section name="Production releases">
      <p>
        These releases are considered stable and suitable for production.
      </p>
      <table>
        <tr>
          <th>Project</th>
          <th>Source distribution</th>
          <th>Binary distribution</th>
        </tr>
        <tr>
          <td>Engine</td>
          <td>(The binary distribution contains the source)</td>
          <td><a href="[preferred]/velocity/engine/release/velocity-1.4/velocity-1.4.zip">velocity-1.4.zip</a>
                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.4/velocity-1.4.zip.asc">PGP</a>]
                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.4/velocity-1.4.zip.md5">MD5</a>]
          </td>
        </tr>
        <tr>
          <td />
          <td>(The binary distribution contains the source)</td>
          <td><a href="[preferred]/velocity/engine/release/velocity-1.4/velocity-1.4.tar.gz">velocity-1.4.tar.gz</a>
                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.4/velocity-1.4.tar.gz.asc">PGP</a>]
                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.4/velocity-1.4.tar.gz.md5">MD5</a>]
          </td>
        </tr>
        <tr>
          <td>Tools</td>
          <td><a href="[preferred]/velocity/tools/release/velocity-tools-1.2/velocity-tools-1.2-src.zip">velocity-tools-1.2-src.zip</a>
                          [<a href="http://www.apache.org/velocity/tools/release/velocity-tools-1.2/velocity-tools-1.2-src.zip.asc">PGP</a>]
                          [<a href="http://www.apache.org/velocity/tools/release/velocity-tools-1.2/velocity-tools-1.2-src.zip.md5">MD5</a>]
          </td>
          <td><a href="[preferred]/velocity/tools/release/velocity-tools-1.2/velocity-tools-1.2.zip">velocity-tools-1.2.zip</a>
                          [<a href="http://www.apache.org/velocity/tools/release/velocity-tools-1.2/velocity-tools-1.2.zip.asc">PGP</a>]
                          [<a href="http://www.apache.org/velocity/tools/release/velocity-tools-1.2/velocity-tools-1.2.zip.md5">MD5</a>]
          </td>
        </tr>
        <tr>
          <td/>
          <td><a href="[preferred]/velocity/tools/release/velocity-tools-1.2/velocity-tools-1.2-src.tar.gz">velocity-tools-1.2-src.tar.gz</a>
                          [<a href="http://www.apache.org/velocity/tools/release/velocity-tools-1.2/velocity-tools-1.2-src.tar.gz.asc">PGP</a>]
                          [<a href="http://www.apache.org/velocity/tools/release/velocity-tools-1.2/velocity-tools-1.2-src.tar.gz.md5">MD5</a>]
          </td>
          <td><a href="[preferred]/velocity/tools/release/velocity-tools-1.2/velocity-tools-1.2.tar.gz">velocity-tools-1.2.tar.gz</a>
                          [<a href="http://www.apache.org/velocity/tools/release/velocity-tools-1.2/velocity-tools-1.2.tar.gz.asc">PGP</a>]
                          [<a href="http://www.apache.org/velocity/tools/release/velocity-tools-1.2/velocity-tools-1.2.tar.gz.md5">MD5</a>]
          </td>
        </tr>
      </table>
    </section>

    <section name="Alpha/Beta releases">
      <p>
        These releases are not considered production-ready but they might contain new features or bug fixes that are not yet in the 
        production release.
      </p>
      <table>
        <tr>
          <th>Project</th>
          <th>Source distribution</th>
          <th>Binary distribution</th>
        </tr>
        <tr>
          <td>Engine</td>
          <td>(The binary distribution contains the source)</td>
          <td><a href="[preferred]/velocity/engine/release/velocity-1.5-beta2/velocity-1.5-beta2.zip">velocity-1.5-beta2.zip</a>
                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.5-beta2/velocity-1.5-beta2.zip.asc">PGP</a>]
                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.5-beta2/velocity-1.5-beta2.zip.md5">MD5</a>]
                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.5-beta2/velocity-1.5-beta2.zip.sha1">SHA1</a>]
          </td>
        </tr>
        <tr>
          <td />
          <td>(The binary distribution contains the source)</td>
          <td><a href="[preferred]/velocity/engine/release/velocity-1.5-beta2/velocity-1.5-beta2.tar.gz">velocity-1.5-beta2.tar.gz</a>
                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.5-beta2/velocity-1.5-beta2.tar.gz.asc">PGP</a>]
                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.5-beta2/velocity-1.5-beta2.tar.gz.md5">MD5</a>]
                          [<a href="http://www.apache.org/velocity/engine/release/velocity-1.5-beta2/velocity-1.5-beta2.tar.gz.sha1">SHA1</a>]
          </td>
        </tr>
      </table>
    </section>

    <section name="Nightly builds">
      <p>
       The nightly builds are generated automatically and there is no guarantee that these archives even build or work. They
       are intended if you want to keep up-to-date with the development of a project and can not for any reason download the
       source code straight from the Subversion repository and build it yourself.
      </p>
    </section>
   
    <section name="Source code repository">
      <p>
       You can download the source code to each Apache Velocity project directly from our public subversion repository. Here
       you get logs, change histories and all the information necessary to follow the development process. If you are interested
       in the project development, please join the Apache Velocity development list.
      </p>
      <table>
        <tr>
          <th>Project</th>
          <th>Repository URL</th>
          <th>ViewVC Subversion browser</th>
        </tr>
      </table>
    </section>
  </body>
</document>
