<?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>

	<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="http://www.apache.org/dyn/closer.cgi/openmeetings/2.1.0/KEYS">KEYS</a>.
			</div>
			<p>
				All are available for download as source and binary.
			</p>
			
			<subsection name="Latest Official Release">
				<p>
					Apache Openmeetings 2.1.0
				</p>
				<ul>
					<li>
						Binaries:
						<ul>
							<li>
								<a href="http://www.apache.org/dyn/closer.cgi/openmeetings/2.1.0/bin/apache-openmeetings-2.1.0.zip">apache-openmeetings-2.1.0.zip</a>
								<a href="http://www.apache.org/dist/openmeetings/2.1.0/bin/apache-openmeetings-2.1.0.zip.asc">[SIG]</a>
								<a href="http://www.apache.org/dist/openmeetings/2.1.0/bin/apache-openmeetings-2.1.0.zip.md5">[MD5]</a>
							</li>
							<li>
								<a href="http://www.apache.org/dyn/closer.cgi/openmeetings/2.1.0/bin/apache-openmeetings-2.1.0.tar.gz">apache-openmeetings-2.1.0.tar.gz</a>
								<a href="http://www.apache.org/dist/openmeetings/2.1.0/bin/apache-openmeetings-2.1.0.tar.gz.asc">[SIG]</a>
								<a href="http://www.apache.org/dist/openmeetings/2.1.0/bin/apache-openmeetings-2.1.0.tar.gz.md5">[MD5]</a>
							</li>
						</ul>
					</li>
					<li>
						Sources:
						<ul>
							<li>
								<a href="http://www.apache.org/dyn/closer.cgi/openmeetings/2.1.0/src/apache-openmeetings-2.1.0-src.zip">apache-openmeetings-2.1.0-src.zip</a>
								<a href="http://www.apache.org/dist/openmeetings/2.1.0/src/apache-openmeetings-2.1.0-src.zip.asc">[SIG]</a>
								<a href="http://www.apache.org/dist/openmeetings/2.1.0/src/apache-openmeetings-2.1.0-src.zip.md5">[MD5]</a>
							</li>
							<li>
								<a href="http://www.apache.org/dyn/closer.cgi/openmeetings/2.1.0/src/apache-openmeetings-2.1.0-src.tar.gz">apache-openmeetings-2.1.0-src.tar.gz</a>
								<a href="http://www.apache.org/dist/openmeetings/2.1.0/src/apache-openmeetings-2.1.0-src.tar.gz.asc">[SIG]</a>
								<a href="http://www.apache.org/dist/openmeetings/2.1.0/src/apache-openmeetings-2.1.0-src.tar.gz.md5">[MD5]</a>
							</li>
						</ul>
					</li>
				</ul>
				
			</subsection>

			<subsection name="Previous Official Releases">
				<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>

