<?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:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="project.xsd"
	name="Apache OpenMeetings Project"
    href="http://openmeetings.apache.org/">

    <title>Apache OpenMeetings</title>
    <!--  -->
    <logo href="/images/logo-2.jpg">Apache OpenMeetings</logo>
	
    <body>

    <menu name="General">
        <item name="Home"                   href="/index.html"/>
        <item name="License"                href="/license.html"/>
        <item name="ASF"                    href="http://www.apache.org/"/>
        <item name="Downloads"              href="/downloads.html"/>
        <item name="Commercial Support"     href="/commercial-support.html"/>
    </menu>
    
    <menu name="Installation and Upgrade">
    	<item name="Installation"           href="/installation.html"/>
    	<item name="Upgrade"           		href="/Upgrade.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-list.html"/>
        <item name="Mailing Lists"          href="/mail-lists.html"/>
    	<item name="Wiki"                   href="http://cwiki.apache.org/confluence/display/OPENMEETINGS/" />
    </menu>

    <menu name="Development">
        <item name="Source Code"            href="/svn.html"/>
        <item name="Bugs / Issues (JIRA)"   href="http://issues.apache.org/jira/browse/OPENMEETINGS"/>
        <item name="Dependencies"           href="/dependencies.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>
    
    <menu name="Integration">
        <item name="SOAP/REST API"          href="/SoapRestAPI.html" />
        <item name="REST API Sample"        href="/RestAPISample.html" />
        <item name="Ldap and ADS"           href="/LdapAndADS.html" />
        <item name="VoIP and SIP"           href="/voip-sip-integration.html" />
        <item name="Errors table"           href="/ErrorsTable.html" />
    </menu>
    
    <menu name="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" />
    </menu>
    
    <menu name="Configuration">
    	<item name="DB Sample Configurations" >
    		<subitem name="Apache Derby" href="/ApacheDerbyConfig.html" />
    		<subitem name="IBM DB2" href="/IBMDB2Config.html" />
    		<subitem name="Oracle" href="/OracleConfig.html" />
    		<subitem name="MySQL" href="/MySQLConfig.html" />
    		<subitem name="Postgres" href="/PostgresConfig.html" />
    		<subitem name="MSSQL" href="/MSSQLConfig.html" />
    	</item>
    	<item name="Localization and languages" >
    		<subitem name="Internationalisation" href="/Internationalisation.html" />
    		<subitem name="LanguageEditor" href="/LanguageEditor.html" />
    		<subitem name="TimeZoneHandling" href="/TimeZoneHandling.html" />
    		<subitem name="EditTemplates" href="/EditTemplates.html" />
    	</item>
    	<item name="NAT Port Settings" >
    		<subitem name="Port settings" href="/PortSettings.html" />
    	</item>
    	<item name="Performance" >
    		<subitem name="JVM performance tuning" href="/JVMPerformanceTuning.html" />
    	</item>
    	<item name="User Interface">
    		<subitem name="Themes" href="/themes-and-branding.html" />
    		<subitem name="Dashboard" href="/Dashboard.html" />
    		<subitem name="Webcam resolutions" href="/WebcamResolutions.html" />
    		<subitem name="Room layout options" href="/ConferenceRoomLayoutOptions.html" />
    		<subitem name="Hot Keys" href="/HotKeys.html" />
    	</item>
    	<item name="Customization" >
    		<subitem name="Webapp name/path" href="/WebappNamePath.html" />
    		<subitem name="Navigation" href="/Navigation.html" />
    		<subitem name="Calendar and timezone" href="/CalendarAndTimezone.html" />
    		<subitem name="Custom room type" href="/CustomRoomTypeHowTo.html" />
    		<subitem name="Custom ctypt mechanism" href="/CustomCryptMechanism.html" />
    		<subitem name="General Configuration" href="/GeneralConfiguration.html" />
    	</item>
    	<item name="Security" >
    		<subitem name="Restricted Access" href="/RestrictedAccess.html" />
    		<subitem name="RTMPS and HTTPS" href="/RTMPSAndHTTPS.html" />
    	</item>
    	<item name="Converters" >
    		<subitem name="OpenOffice Converter" href="/OpenOfficeConverter.html" />
            <subitem name="FFMPEG Version Switch" href="/FFMPEGVersionSwitch.html" />
        </item>
    	<item name="Clustering" >
    		<subitem name="Clustering" href="/Clustering.html" />
    	</item>
    	<item name="Misc" >
    		<subitem name="Get version info" href="/GetVersionInfo.html" />
    	</item>
    </menu>
    
    <!-- 
    <menu name="Integration">
        <item name="SOAP/REST API"          href="/integration_api.html"/>
        <item name="LDAP and ADS"           href="/integration_ldap.html"/>
        <item name="VoIP and SIP"           href="/integration_voip.html"/>
        <item name="Moodle Plugin"          href="/moodle_plugin.html"/>
        <item name="SugarCRM Plugin"        href="/sugarcrm_plugin.html"/>
    </menu>
     -->
     
    

    </body>
</project>
