<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
 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.
-->
<project name="OpenJPA">
    <bannerLeft>
        <name>OpenJPA</name>
    </bannerLeft>
    <publishDate format="dd MMM yyyy HH:mm z"/>
    <body>
        <menu name="OpenJPA">
            <item name="Home" href="index.html"/>
            <item name="Main Site" href="http://openjpa.apache.org"/>
            <item name="Downloads" href="downloads/"/>
        </menu>

        <menu name="Community">
            <item name="Issue Tracker"
                href="https://issues.apache.org/jira/browse/OPENJPA"/>
        </menu>

        <menu ref="parent"/>
        <menu ref="reports"/>

        <!-- <menu ref="modules"/> -->
    </body>

    <!--
    <skin>
        <groupId>org.apache.maven.skins</groupId>
        <artifactId>maven-stylus-skin</artifactId>
        <version>1.0</version>
    </skin>
    -->
</project>
