<?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.
 -->
<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

	<properties>
		<title>Downloads</title>
		<author email="sebawagner@apache.org">
			Podling Documentation Team
		</author>
	</properties>

	<body>

		<section name="Downloads">
			<div>
				All downloads can be verified using the Apache OpenMeetings code
				signing <a href="https://www.apache.org/dist/openmeetings/3.0.0/KEYS">KEYS</a>.
			</div>
			<p>
				All are available for download as source and binary.
			</p>
			
			<subsection name="Latest Official Release">
				<p>
					Apache Openmeetings 3.0.0
				</p>
				<ul>
					<li>
						Binaries:
						<ul>
							<li>
								<a href="http://www.apache.org/dyn/closer.cgi/openmeetings/3.0.0/bin/apache-openmeetings-3.0.0.zip">apache-openmeetings-3.0.0.zip</a>
								<a href="http://www.apache.org/dist/openmeetings/3.0.0/bin/apache-openmeetings-3.0.0.zip.asc">[SIG]</a>
								<a href="http://www.apache.org/dist/openmeetings/3.0.0/bin/apache-openmeetings-3.0.0.zip.md5">[MD5]</a>
							</li>
							<li>
								<a href="http://www.apache.org/dyn/closer.cgi/openmeetings/3.0.0/bin/apache-openmeetings-3.0.0.tar.gz">apache-openmeetings-3.0.0.tar.gz</a>
								<a href="http://www.apache.org/dist/openmeetings/3.0.0/bin/apache-openmeetings-3.0.0.tar.gz.asc">[SIG]</a>
								<a href="http://www.apache.org/dist/openmeetings/3.0.0/bin/apache-openmeetings-3.0.0.tar.gz.md5">[MD5]</a>
							</li>
						</ul>
					</li>
					<li>
						Sources:
						<ul>
							<li>
								<a href="http://www.apache.org/dyn/closer.cgi/openmeetings/3.0.0/src/apache-openmeetings-3.0.0-src.zip">apache-openmeetings-3.0.0-src.zip</a>
								<a href="http://www.apache.org/dist/openmeetings/3.0.0/src/apache-openmeetings-3.0.0-src.zip.asc">[SIG]</a>
								<a href="http://www.apache.org/dist/openmeetings/3.0.0/src/apache-openmeetings-3.0.0-src.zip.md5">[MD5]</a>
							</li>
							<li>
								<a href="http://www.apache.org/dyn/closer.cgi/openmeetings/3.0.0/src/apache-openmeetings-3.0.0-src.tar.gz">apache-openmeetings-3.0.0-src.tar.gz</a>
								<a href="http://www.apache.org/dist/openmeetings/3.0.0/src/apache-openmeetings-3.0.0-src.tar.gz.asc">[SIG]</a>
								<a href="http://www.apache.org/dist/openmeetings/3.0.0/src/apache-openmeetings-3.0.0-src.tar.gz.md5">[MD5]</a>
							</li>
						</ul>
					</li>
				</ul>
				
			</subsection>

			<subsection name="Previous Official Releases">
				<p>
					Apache Openmeetings releases available here:
					<a href="http://archive.apache.org/dist/openmeetings/">http://archive.apache.org/dist/openmeetings/</a>
				</p>
				<p>
					Apache Openmeetings Incubating 2.0 is available here:
					<a href="http://archive.apache.org/dist/incubator/openmeetings/2.0-incubating/">http://archive.apache.org/dist/incubator/openmeetings/2.0-incubating</a>
				</p>
			</subsection>

			<subsection name="Plugins / Non ASF downloads">
			
				<p>
					If you are looking for more plugins for 3th party applications (Moodle, Drupal, Joomla, ...) check out <a href="http://code.google.com/a/apache-extras.org/hosting/search?q=openmeetings" target="_BLANK" rel="nofollow">apache-extras.org</a>.
				</p>
			
				<p>
					OpenMeetings releases that are not part of the ASF can be downloaded from the
					old
					<a href="http://code.google.com/p/openmeetings/downloads/list"
						target="_BLANK">GoogleCode website</a>
				</p>
			</subsection>

		</section>
	</body>
</document>

