<?php  																														
/*******************************************************************************
 * Copyright (c) 2009, 2016 Eclipse Foundation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*		Eclipse Foundation - Initial version
*		Anthony Hunter - changes for EMF Validation
********************************************************************************/
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");
$App = new App();
$Nav = new Nav();
$Menu = new Menu();
include($App->getProjectCommon());

$pageTitle = "EMF Validation Downloads";

$html  = <<<EOHTML
<div id="midcolumn">
<h2>$pageTitle</h2>
<p>All downloads are provided under the terms and conditions of the
<a href="/legal/epl/notice.php">Eclipse Foundation Software User Agreement</a>
unless otherwise specified.</p>

<h3>Installation via Eclipse Update Manager</h3>
<p>Using the Eclipse Update Manager (see <a href="http://help.eclipse.org/juno/index.jsp?topic=/org.eclipse.platform.doc.user/tasks/tasks-129.htm">Eclipse Help</a> for detailed instructions) EMF Validation can be installed from the following update sites:
<ul>
	<li>Releases: <a href="http://download.eclipse.org/modeling/emf/validation/updates/releases/">http://download.eclipse.org/modeling/emf/validation/updates/releases/</a></li>
	<li>Milestones: <a href="http://download.eclipse.org/modeling/emf/validation/updates/milestones/">http://download.eclipse.org/modeling/emf/validation/updates/milestones/</a></li>
	<li>Integration: <a href="http://download.eclipse.org/modeling/emf/validation/updates/interim/">http://download.eclipse.org/modeling/emf/validation/updates/interim/</a></li>
</ul>

<h3>Downloadable P2 Repositories and SDK dropins</h3>
<p>If you prefer an update-site or an SDK archive, you can download it from <a href="downloads/index.php">here directly</a>.</p>

<h3>Nightly Builds</h3>
<p>The nightly builds can also be used as a P2 repository. The nightly builds for the Mars simultaneous release can be accessed from <a href="https://hudson.eclipse.org/validation/job/emf-validation-master/">Hudson</a>.</p>

<h3>Translations</h3>
<p>Translations packages can be downloaded from the <a href="http://www.eclipse.org/babel/downloads.php">Babel project downloads page</a>.</p>

</div>
EOHTML;

# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>