<!--

    Copyright 2004 The Apache Software Foundation

    Licensed 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.
-->

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<!-- $Rev$ $Date$ -->

<html>
<head>
</head>
<body>


<h1>Certified Downloads</h1>

<p>
Currently, Apache Geronimo has no certified releases.
</p>

<h1>Milestone Downloads</h1>

<p>
The
following non-certified milestone releases are available.  These milestone
releases are 'technology demonstrations' and not offered as a J2EE-compatible
server.
</p>

<h2>Release Notes</h2>

<p><strong>Milestone 3</strong></p>
<p>Release Date: November 10, 2004</p>
<ul>
<li>
   <a href="http://cvs.apache.org/dist/geronimo/v1.0-M3/RELEASE-NOTES-1.0-M3.txt">Release Notes</a>
</li>
</ul>

<p><strong>Milestone 2</strong></p>
<p>Release Date: September 09, 2004</p>
<ul>
<li>
   <a href="http://cvs.apache.org/dist/geronimo/v1.0-M2/RELEASE-NOTES-1.0-M2.txt">Release Notes</a>
</li>
</ul>

<h2>Binaries</h2>
<p>As of Milestone 3, we have an installer that you can run to install
Geronimo.  If you install from the zip file, you can just unzip and go.
If you install from the installer, you get a traditional wizard-style
interface.  The important difference is that the installer lets you change
the default ports and administrative login, while the zip install does
not.</p>

<p><strong>Milestone 3</strong></p>
<ul>
<li><a href="http://cvs.apache.org/dist/geronimo/v1.0-M3/geronimo-1.0-M3.zip">1.0-M3 zip</a>
    &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M3/geronimo-1.0-M3.zip.asc">PGP</a>
    &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M3/geronimo-1.0-M3.zip.sha">SHA</a>
    &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M3/geronimo-1.0-M3.zip.md5">MD5</a>
</li>
<li>
    <a href="http://cvs.apache.org/dist/geronimo/v1.0-M3/geronimo-1.0-M3.tar.gz">1.0-M3 tar.gz</a>
    &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M3/geronimo-1.0-M3.tar.gz.asc">PGP</a>
    &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M3/geronimo-1.0-M3.tar.gz.sha">SHA</a>
    &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M3/geronimo-1.0-M3.tar.gz.md5">MD5</a>
</li>
<li><a href="http://cvs.apache.org/dist/geronimo/v1.0-M3/geronimo-1.0-M3-installer.jar">Geronimo 1.0 M3 Installer</a> -- this is a test release of the installer.  It's an executable JAR, so install it using <tt>java -jar geronimo-1.0-M3-installer.jar</tt></li>
</ul>
<p><strong>Note:</strong> The Milestone 3 release did not include an updated
<tt>README</tt> file, and as a result, the instructions included in the README
are incorrect.  Please use the following:</p>
<ul>
  <li><a href="http://svn.apache.org/viewcvs.cgi/*checkout*/geronimo/trunk/README.txt?rev=106435">Corrected Milestone 3 README.txt</a></li>
</ul>

<p><strong>Milestone 2</strong></p>
<ul>
<li><a href="http://cvs.apache.org/dist/geronimo/v1.0-M2/geronimo-1.0-M2.zip">1.0-M2 zip</a>
    &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M2/geronimo-1.0-M2.zip.asc">PGP</a>
    &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M2/geronimo-1.0-M2.zip.sha">SHA</a>
    &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M2/geronimo-1.0-M2.zip.md5">MD5</a>
</li>
<li>
    <a href="http://cvs.apache.org/dist/geronimo/v1.0-M2/geronimo-1.0-M2.tar.gz">1.0-M2 tar.gz</a>
    &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M2/geronimo-1.0-M2.tar.gz.asc">PGP</a>
    &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M2/geronimo-1.0-M2.tar.gz.sha">SHA</a>
    &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M2/geronimo-1.0-M2.tar.gz.md5">MD5</a>
</li>
</ul>

<h2>Source Code</h2>
<p><strong>Milestone 3</strong></p>
<ul>
<li>
   <a href="http://cvs.apache.org/dist/geronimo/v1.0-M3/geronimo-1.0-M3-src.zip">1.0-M3 zip</a>
   &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M3/geronimo-1.0-M3-src.zip.asc">PGP</a>
   &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M3/geronimo-1.0-M3-src.zip.sha">SHA</a>
   &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M3/geronimo-1.0-M3-src.zip.md5">MD5</a>
</li>
<li>
    <a href="http://cvs.apache.org/dist/geronimo/v1.0-M3/geronimo-1.0-M3-src.tar.gz">1.0-M3 tar.gz</a>
    &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M3/geronimo-1.0-M3-src.tar.gz.asc">PGP</a>
    &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M3/geronimo-1.0-M3-src.tar.gz.sha">SHA</a>
    &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M3/geronimo-1.0-M3-src.tar.gz.md5">MD5</a>
</li>
</ul>

<p><strong>Milestone 2</strong></p>
<ul>
<li>
   <a href="http://cvs.apache.org/dist/geronimo/v1.0-M2/geronimo-1.0-M2-src.zip">1.0-M2 zip</a>
   &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M2/geronimo-1.0-M2-src.zip.asc">PGP</a>
   &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M2/geronimo-1.0-M2-src.zip.sha">SHA</a>
   &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M2/geronimo-1.0-M2-src.zip.md5">MD5</a>
</li>
<li>
    <a href="http://cvs.apache.org/dist/geronimo/v1.0-M2/geronimo-1.0-M2-src.tar.gz">1.0-M2 tar.gz</a>
    &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M2/geronimo-1.0-M2-src.tar.gz.asc">PGP</a>
    &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M2/geronimo-1.0-M2-src.tar.gz.sha">SHA</a>
    &nbsp;<a href="http://cvs.apache.org/dist/geronimo/v1.0-M2/geronimo-1.0-M2-src.tar.gz.md5">MD5</a>
</li>
</ul>

<br/>
<a href="http://cvs.apache.org/dist/geronimo/KEYS">KEYS</a>

</body>
</html>
