<?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 Query
********************************************************************************/
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 Query 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 Query can be installed from the following update sites:
<ul>
	<li>Releases: <a href="http://download.eclipse.org/modeling/emf/query/updates/releases/">http://download.eclipse.org/modeling/emf/query/updates/releases/</a></li>
	<li>Milestones: <a href="http://download.eclipse.org/modeling/emf/query/updates/milestones/">http://download.eclipse.org/modeling/emf/query/updates/milestones/</a></li>
	<li>Integration: <a href="http://download.eclipse.org/modeling/emf/query/updates/interim/">http://download.eclipse.org/modeling/emf/query/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/query/job/emf-query-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);
?>