<?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="Maven">

    <!-- Use the nicer lookinf fluido skin instead of the default -->
    <skin>
        <groupId>org.apache.maven.skins</groupId>
        <artifactId>maven-fluido-skin</artifactId>
        <version>1.5</version>
    </skin>

    <bannerLeft>
        <name>Apache Royale</name>
        <src>http://royale.apache.org/images/logo_01_fullcolor-sm.png</src>
        <href>http://royale.apache.org/</href>
    </bannerLeft>

    <!--bannerRight>
        <src>http://maven.apache.org/images/maven-small.gif</src>
    </bannerRight-->

    <body>
        <links>
            <item name="Apache Royale Homepage" href="http://royale.apache.org/" />
            <item name="Apache Royale Wiki" href="https://github.com/apache/royale-compiler/wiki"/>
        </links>

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

    </body>
</project>
