<?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.10.0</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/>
    </fluidoSkin>
  </custom>
  
  <body>
    <breadcrumbs>
      <item name="Apache" href="https://www.apache.org/"/>
      <item name="Apache Syncope" href="https://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="Team" href="team"/>
      <item name="License" href="https://www.apache.org/licenses/"/>
      <item name="Professional Services" href="professional-services"/>
    </menu>
        
    <menu name="Development">
      <item name="Roadmap" href="https://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 Management" href="issue-management"/>
      <item name="Building" href="building"/>
      <item name="Release Process" href="release-process"/>
    </menu>

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

    <footer>
      <![CDATA[
Copyright &copy; 2023, 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">
      <a href="https://www.openhub.net/p/syncope"><img src="https://www.openhub.net/p/syncope/widgets/project_thin_badge.gif"/></a>
      <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://github.com/apache/syncope/actions/workflows/crosschecks.yml">
        <img src="https://github.com/apache/syncope/actions/workflows/crosschecks.yml/badge.svg" style="max-width:100%;vertical-align: top">
      </a>
      <a href="https://github.com/apache/syncope/actions/workflows/codeql-analysis.yml">
        <img src="https://github.com/apache/syncope/actions/workflows/codeql-analysis.yml/badge.svg" style="max-width:100%;vertical-align: top">
      </a>
    </div>
      ]]>
    </footer>
  </body>

</project>
