<?xml version="1.0" encoding="UTF-8"?>
<!--
 Copyright 2006 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.
-->
<document>
    <properties>
        <title>OpenJPA Downloads</title>
    </properties>
    <body>
        <section name="Certified Downloads">
            <p>
            Currently, Apache OpenJPA has no certified releases.
            </p>
        </section>

        <section name="Milestone Downloads">
            <p>
            The following non-certified milestone releases are available.
            These milestone releases are 'technology demonstrations' and not
            offered as a J2EE-compatible JPA implementation.
            </p>

            <p><strong>0.9.0</strong> - <i>July 25, 2006</i></p>
            <ul>
                <li>
                    <a href="openjpa-project/downloads/openjpa-0.9.0.zip">binary zip</a>
                    -
                    <a href="openjpa-project/downloads/openjpa-0.9.0-sources.zip">source zip</a>
                </li>
            </ul>

        </section>
    </body>
</document>

