<?xml version="1.0" encoding="UTF-8"?>
<!--
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 xmlns="http://maven.apache.org/DECORATION/1.7.0" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.7.0 
                             http://maven.apache.org/xsd/decoration-1.7.0.xsd" 
         name="Apache Syncope">

  <publishDate position="none"/>
  <version position="none"/>
 
  <skin>
    <groupId>org.apache.maven.skins</groupId>
    <artifactId>maven-fluido-skin</artifactId>
    <version>1.5</version>
  </skin>
  <custom>
    <fluidoSkin>
      <topBarEnabled>false</topBarEnabled>
      <sideBarEnabled>true</sideBarEnabled>
      <leftColumnClass>span2</leftColumnClass>
      <bodyColumnClass>span10</bodyColumnClass>
      <sourceLineNumbersEnabled>false</sourceLineNumbersEnabled>
      <skipGenerationDate>true</skipGenerationDate>
      <twitter>
        <user>syncopeidm</user>
        <showUser>true</showUser>
        <showFollowers>false</showFollowers>
      </twitter>
      <facebookLike/>
      <googlePlusOne/>
    </fluidoSkin>
  </custom>
  
  <body>
    <breadcrumbs>
      <item name="Apache" href="http://www.apache.org/"/>
      <item name="Apache Syncope" href="http://syncope.apache.org/"/>
    </breadcrumbs>
        
    <menu name="Apache Syncope™" inherit="top">
      <item name="IAM Scenario" href="iam-scenario"/>
      <item name="Architecture" href="architecture"/>
      <item name="Demo" href="demo"/>
      <item name="Downloads" href="downloads"/>
      <item name="Security" href="https://syncope.apache.org/security"/>
      <item name="Documentation" href="docs/"/>
      <item name="Mailing Lists" href="mailing-lists"/>
      <item name="Project Team" href="team-list"/>
      <item name="License" href="https://www.apache.org/licenses/"/>
      <item name="Professional Services" href="professional-services"/>
    </menu>
        
    <menu name="Development">
      <item name="Roadmap" href="http://cwiki.apache.org/confluence/display/SYNCOPE/Roadmap"/>
      <item name="How to contribute?" href="contributing"/>
      <item name="Source Repository" href="source-repository"/>
      <item name="Continuous Integration" href="integration"/>
      <item name="Issue Tracking" href="issue-tracking"/>
      <item name="Building" href="building"/>
      <item name="Release Process" href="release-process"/>
    </menu>

    <menu name="ASF">
      <item name="How Apache Works" href="http://www.apache.org/foundation/how-it-works"/>
      <item name="Foundation" href="http://www.apache.org/foundation/"/>
      <item name="Sponsoring Apache" href="http://www.apache.org/foundation/sponsorship"/>
      <item name="Thanks" href="http://www.apache.org/foundation/thanks"/>
    </menu>

    <footer>
      <![CDATA[
Copyright &copy; 2020, the Apache Software Foundation.<br/>
Apache, Syncope, Apache Syncope, the Apache feather logo and the Apache Syncope project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
    
    <div class="pull-right">
      <script type="text/javascript" src="https://www.ohloh.net/p/syncope/widgets/project_thin_badge.js"></script>
      <a href="https://bestpractices.coreinfrastructure.org/projects/154">
        <img src="https://bestpractices.coreinfrastructure.org/projects/154/badge" style="vertical-align: top"/>
      </a>
      <img src="https://img.shields.io/maven-central/v/org.apache.syncope/syncope.png" style="vertical-align: top"/>
      <a href="https://travis-ci.org/apache/syncope">
        <img src="https://api.travis-ci.org/apache/syncope.png" style="vertical-align: top"/>
      </a>
      <a href="https://ci.appveyor.com/project/ApacheSoftwareFoundation/syncope">
        <img src="https://ci.appveyor.com/api/projects/status/k3moao48iilrq2pw?svg=true" style="vertical-align: top"/>
      </a>
    </div>
      ]]>
    </footer>
  </body>

</project>
