<?xml version="1.0"?>

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

<site xmlns="http://maven.apache.org/SITE/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/SITE/2.0.0 https://maven.apache.org/xsd/site-2.0.0.xsd"
      name="Core ITs">
  <bannerLeft href="https://maven.apache.org/">
    <image src="https://maven.apache.org/images/apache-maven-project.png" alt="Apache Maven" />
  </bannerLeft>

  <edit>${project.scm.url}</edit>

  <body>
    <menu name="Overview">
      <item name="Introduction" href="index.html"/>
      <!--item name="FAQ" href="faq.html"/-->
      <item name="License" href="http://www.apache.org/licenses/"/>
      <item name="Bootstrap" href="core-it-suite/bootstrap.html"/>
    </menu>

    <menu ref="modules"/>
    <menu ref="reports"/>
  </body>
</site>
