<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed 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.6.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xsi:schemaLocation="http://maven.apache.org/DECORATION/1.6.0 http://maven.apache.org/xsd/decoration-1.6.0.xsd"
		name="Apache OpenMeetings Project">
	<body>
		<menu name="General">
			<item name="Home" href="/index.html"/>
			<item name="License" href="https://www.apache.org/licenses/"/>
			<item name="ASF" href="https://www.apache.org/"/>
			<item name="Sponsorship" href="https://www.apache.org/foundation/sponsorship" />
			<item name="Thanks" href="https://www.apache.org/foundation/thanks" />
			<item name="Call For Logo" href="/CallForLogo.html"/>
			<item name="News archive" href="/NewsArchive.html"/>
			<item name="Security" href="/security.html"/>
			<item name="Commercial Support" href="/commercial-support.html"/>
		</menu>
		<menu name="Installation">
			<item name="Installation" href="/installation.html" />
			<item name="Upgrade" href="/Upgrade.html" />
			<item name="Media Server Installation" href="/InstallMediaServer.html" />
			<item name="Tutorials" href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/Tutorials+for+installing+OpenMeetings+and+Tools" />
			<item name="Command Line Admin" href="/CommandLineAdmin.html" />
		</menu>
		<menu name="Community">
			<item name="Get Involved" href="/get-involved.html" />
			<item name="Committers" href="/team.html" />
			<item name="Our Users" href="/OurUsers.html" />
			<item name="Mailing Lists" href="/mailing-lists.html" />
			<item name="Wiki" href="https://cwiki.apache.org/confluence/display/OPENMEETINGS/" />
		</menu>
		<menu name="Configuration">
			<item name="Integration" href="#integration">
				<item name="REST API Swagger" href="/swagger" target="_blank"/>
				<item name="SOAP/REST API JavaDoc" href="/openmeetings-webservice/apidocs/index.html" target="_blank"/>
				<item name="REST API Sample" href="/RestAPISample.html" />
				<item name="Ldap and ADS" href="/LdapAndADS.html" />
				<item name="OAuth2" href="/oauth2.html" />
				<item name="VoIP and SIP" href="/AsteriskIntegration.html" />
				<item name="Errors table" href="/errorvalues.html" />
				<item name="CalDAV and Google Calendar integration" href="/CalDAVandGCal.html" />
				<item name="External Video/Camera" href="/ExternalVideo.html" />
			</item>
			<item name="Plugins" href="#plugins">
				<item name="Moodle Plugin" href="/MoodlePlugin.html" />
				<item name="Sakai Plugin" href="/SakaiPlugin.html" />
				<item name="Jira Plugin" href="/JiraPlugin.html" />
				<item name="Joomla Plugin" href="/JoomlaPlugin.html" />
				<item name="Drupal Plugin" href="/DrupalPlugin.html" />
				<item name="Bitrix Plugin" href="/BitrixPlugin.html" />
				<item name="Confluence Plugin" href="/ConfluencePlugin.html" />
				<item name="SugarCRM Plugin" href="/SugarCRMPlugin.html" />
				<item name="Redmine Plugin" href="/RedminePlugin.html" />
			</item>
			<item name="DB Sample Configurations" href="#db">
				<item name="H2" href="/H2Config.html" />
				<item name="IBM DB2" href="/IBMDB2Config.html" />
				<item name="Oracle" href="/OracleConfig.html" />
				<item name="MySQL" href="/MySQLConfig.html" />
				<item name="Postgres" href="/PostgresConfig.html" />
				<item name="MSSQL" href="/MSSQLConfig.html" />
			</item>
			<item name="Localization and languages" href="#localization">
				<item name="Internationalisation" href="/Internationalisation.html" />
				<item name="LanguageEditor" href="/LanguageEditor.html" />
				<item name="TimeZoneHandling" href="/TimeZoneHandling.html" />
				<item name="EditTemplates" href="/EditTemplates.html" />
			</item>
			<item name="NAT Port Settings" href="#port">
				<item name="Port settings" href="/PortSettings.html" />
			</item>
			<item name="Performance" href="#performance">
				<item name="JVM performance tuning" href="/JVMPerformanceTuning.html" />
				<item name="Network bandwidth calculator" href="/NetworkCalculator.html" />
			</item>
			<item name="User Interface" href="#interface">
				<item name="Logo and icons" href="/LogoAndIcons.html" />
				<item name="Themes" href="/themes-and-branding.html" />
				<item name="Dashboard" href="/Dashboard.html" />
				<item name="Webcam resolutions" href="/WebcamResolutions.html" />
				<item name="Room layout options" href="/ConferenceRoomLayoutOptions.html" />
				<item name="Hot Keys" href="/HotKeys.html" />
			</item>
			<item name="Customization" href="#customize">
				<item name="Webapp name/path" href="/WebappNamePath.html" />
				<item name="Calendar and timezone" href="/CalendarAndTimezone.html" />
				<item name="Custom room type" href="/CustomRoomTypeHowTo.html" />
				<item name="Custom crypt mechanism" href="/CustomCryptMechanism.html" />
				<item name="General Configuration" href="/GeneralConfiguration.html" />
				<item name="Privacy Statement" href="/PrivacyStatement.html" />
			</item>
			<item name="Security" href="#security">
				<item name="Restricted Access" href="/RestrictedAccess.html" />
				<item name="HTTPS" href="/HTTPS.html" />
			</item>
			<item name="Converters" href="#convert">
				<item name="OpenOffice Converter" href="/OpenOfficeConverter.html" />
			</item>
			<item name="Clustering" href="#cluster">
				<item name="Clustering" href="/Clustering.html" />
			</item>
			<item name="Misc" href="#misc">
				<item name="Get version info" href="/GetVersionInfo.html" />
			</item>
		</menu>
		<menu name="Development">
			<item name="Source Code" href="/scm.html" />
			<item name="Bugs / Issues" href="/issue-management.html" />
			<item name="Dependencies" href="/dependencies.html" />
			<item name="Continuous Integration" href="/ci-management.html" />
			<item name="Build Instructions" href="/BuildInstructions.html" />
			<item name="JUnit Testing" href="/JUnitTesting.html" />
			<item name="Manual Testing" href="/ManualTesting.html" />
			<item name="Release Guide" href="/ReleaseGuide.html" />
			<item name="Website Guide" href="/WebsiteGuide.html" />
		</menu>
	</body>
	<custom>
		<reflowSkin>
			<pages>
				<index>
					<sections>
						<carousel/>
					</sections>
				</index>
			</pages>
			<endContent>
				<script src="https://www.apachecon.com/event-images/snippet.js"></script>
				<script type="text/javascript" src="$resourcePath/js/site.js"></script>
				<script type="text/javascript" src="$resourcePath/js/jquery-ui.min.js"></script>
				<script type="text/javascript" src="$resourcePath/js/netcalc.js"></script>
			</endContent>
		</reflowSkin>
	</custom>
</project>
