<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.

-->
<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">

  <properties>
    <title>Apache DirectMemory Downloads</title>
    <author email="dev@directmemory.apache.org">Apache DirectMemory Documentation Team</author>
  </properties>

  <body>
    <div class="toc_container">
      <macro name="toc">
        <param name="class" value="toc"/>
      </macro>
    </div>
    
    <section name="Introduction">
      <p>Apache DirectMemory artifacts are distributed in source and binary form under the terms of the
        <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
        See the included <tt>LICENSE</tt> and <tt>NOTICE</tt> files included in each artifact for additional license 
        information.
      </p>
      <p>Use the links below to download a source distribution of Apache DirectMemory.
      It is good practice to <a href="#Verifying_Releases">verify the integrity</a> of the distribution files.</p>
    </section>

    <section name="Current Releases">
      <subsection name="${currentRelease}">
        <p>Release date: ?</p>
        <p><a href="releases/release-notes-${currentRelease}.html">Release notes</a></p>
        <table>
          <thead>
            <tr>
              <th>Artifact</th>
              <th>Signatures</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>
                <a href="http://www.apache.org/dyn/closer.cgi/directmemory/${currentRelease}/apache-directmemory-${currentRelease}-source-release.zip">apache-directmemory-0.1-incubating-source-release.zip</a>
              </td>
              <td>
                <a href="http://www.apache.org/dist/directmemory/${currentRelease}/apache-directmemory-${currentRelease}-source-release.zip.asc">asc</a>
                <a href="http://www.apache.org/dist/directmemory/${currentRelease}/apache-directmemory-${currentRelease}-source-release.zip.md5">md5</a>
                <a href="http://www.apache.org/dist/directmemory/${currentRelease}/apache-directmemory-${currentRelease}-source-release.zip.sha1">sha1</a>
              </td>
            </tr>
          </tbody>
        </table>
      </subsection>
    </section>

<!--    <section name="Older Releases">
    </section>-->

    <section name="Verifying Releases">
      <p>We strongly recommend you verify the integrity of the downloaded files with both PGP and MD5.</p>
      
      <p>The PGP signatures can be verified using <a href="http://www.pgpi.org/">PGP</a> or 
      <a href="http://www.gnupg.org/">GPG</a>. 
      First download the <a href="http://apache.org/dist/directmemory/KEYS">KEYS</a> as well as the
      <tt>*.asc</tt> signature file for the particular distribution. Make sure you get these files from the main 
      distribution directory, rather than from a mirror. Then verify the signatures using one of the following sets of
      commands:
      
        <source>$ pgpk -a KEYS
$ pgpv directmemory-*.tar.gz.asc
$ pgpv directmemory-*.zip.asc</source>
        
        <source>$ pgp -ka KEYS
$ pgp directmemory-*.tar.gz.asc
$ pgp directmemory-*.zip.asc</source>
      
        <source>$ gpg --import KEYS
$ gpg --verify directmemory-*.tar.gz.asc
$ gpg --verify directmemory-*.zip.asc</source>
       </p>
    <p>Alternatively, you can verify the MD5 signature on the files. A Unix/Linux program called  
      <code>md5</code> or 
      <code>md5sum</code> is included in most distributions.  It is also available as part of
      <a href="http://www.gnu.org/software/textutils/textutils.html">GNU Textutils</a>.
      Windows users can get binary md5 programs from these (and likely other) places:
      <ul>
        <li>
          <a href="http://www.md5summer.org/">http://www.md5summer.org/</a>
        </li>
        <li>
          <a href="http://www.fourmilab.ch/md5/">http://www.fourmilab.ch/md5/</a>
        </li>
        <li>
          <a href="http://www.pc-tools.net/win32/md5sums/">http://www.pc-tools.net/win32/md5sums/</a>
        </li>
      </ul>
    </p>
    </section>
  </body>
</document>
