<?xml version="1.0" encoding="iso-8859-1"?>
<!--
  ~  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.
  ~
  -->
<document xmlns="http://maven.apache.org/XDOC/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
	<properties>
	    <title>Apache Bigtop downloads</title>
	</properties>
	<body>
		<section name="Software downloads">
			<subsection name="Releases" id="releases"></subsection>
			<p>
				You can download the latest most stable release of Apache Bigtop project.
				Source code of the framework will allow you to build, deploy, test, and
				work with distributed (cluster) software for processing of large amounts
				of data.
				<br />
			</p>
			<ul>
				<li>
					The latest release of Apache Bigtop software framework <br/>
					<a href="http://www.apache.org/dyn/closer.lua/bigtop/bigtop-1.2.0/">Bigtop 1.2.0</a>
				</li>
				<li>
					Repositories of instsallable binary packages built with latest release
					of the Apache Bitop project <br/>
					<a href="https://www.apache.org/dist/bigtop/bigtop-1.2.0/repos/">Installable binary artifacts</a>
				</li>
			</ul>
		</section>
	</body>
</document>
