<?php  																														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());    # All on the same line to unclutter the user's desktop'
/*******************************************************************************
 * Copyright (c) 2012
 * 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:
 *    
 *******************************************************************************/

	$pageTitle 		= "GMF Tooling - Download";
	$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/default/style.css"/>');

	$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>
<h2>Prerequisites</h2>
<p>The best way to install GMF-T is to use update sites below, it will manage the required dependencies automatically.<br/ >
If you feel strongly about using drop-ins, make sure you have also installed the prerequisites: <br />
<b>Eclipse Modeling Package: </b> from <a href="http://www.eclipse.org/downloads/packages/">here</a>. <br />
<b>MMT QVTO: </b> from <a href="http://www.eclipse.org/mmt/downloads/?project=qvto">here</a>.
</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) GMF Tooling can be installed from the following update sites:
<ul>
	<li>Last Release: <a href="http://download.eclipse.org/modeling/gmp/gmf-tooling/updates/releases/">http://download.eclipse.org/modeling/gmp/gmf-tooling/updates/releases/</a></li>
	<li>Nightly Builds: <a href="http://download.eclipse.org/modeling/gmp/gmf-tooling/updates/dev-snapshots/3.2/">http://download.eclipse.org/modeling/gmp/gmf-tooling/updates/dev-snapshots/3.2/</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>Juno - GMF Tooling 3.0.0 </h3>
<p>
<b>Update site:</b> http://download.eclipse.org/modeling/gmp/gmf-tooling/updates/releases-3.0.0/ or <a href="http://www.eclipse.org/downloads/download.php?file=/modeling/gmp/gmf-tooling/downloads/drops/3.0.0/R201206221900/gmf-tooling-update-3.0.0.v201206221900.zip">this archive</a>
</p>

<h3>Juno SR2 - GMF Tooling 3.0.0 SR2</h3>
<p>
<b>Update site:</b> http://download.eclipse.org/modeling/gmp/gmf-tooling/updates/releases-3.0.2/ or <a href="http://www.eclipse.org/modeling/download.php?file=/modeling/gmp/gmf-tooling/downloads/drops/3.0.2/R201301181200/gmf-Update-3.0.2.v201301181200.zip">this archive</a>
</p>

<h3>Kepler - GMF Tooling 3.1.0</h3>
<p>
<b>Update site:</b> http://download.eclipse.org/modeling/gmp/gmf-tooling/updates/releases-3.1.0/ or <a href="http://www.eclipse.org/modeling/download.php?file=/modeling/gmp/gmf-tooling/downloads/drops/3.1.0/R201306121500/gmf-tooling-update-3.1.0.v201306121500.zip">this archive</a>
<br/>
<b>ZIP file: </b>
<a href="http://www.eclipse.org/modeling/download.php?file=/modeling/gmp/gmf-tooling/downloads/drops/3.1.0/R201306121500/gmf-tooling-sdk-3.1.0.v201306121500.zip">3.1.0 (Kepler)</a> 
(<a href="http://www.eclipse.org/modeling/download.php?file=/modeling/gmp/gmf-tooling/downloads/drops/3.1.0/R201306121500/gmf-tooling-sdk-3.1.0.v201306121500.zip.md5">md5</a>)
</p>

<h3>Kepler SR2 - GMF Tooling 3.1.2 SR2</h3>
<p>
<b>Update site:</b> http://download.eclipse.org/modeling/gmp/gmf-tooling/updates/releases-3.1.2/ or <a href="http://www.eclipse.org/downloads/download.php?file=/modeling/gmp/gmf-tooling/downloads/drops/3.1.0/R201403031500/gmf-tooling-update-3.1.2.v201403031500.zip">this archive</a>
<br/>
<b>ZIP file: </b>
<a href="http://www.eclipse.org/downloads/download.php?file=/modeling/gmp/gmf-tooling/downloads/drops/3.1.0/R201403031500/gmf-tooling-sdk-3.1.2.v201403031500.zip">3.1.2 (Kepler SR2)</a> 
(<a href="http://www.eclipse.org/downloads/download.php?file=/modeling/gmp/gmf-tooling/downloads/drops/3.1.0/R201403031500/gmf-tooling-sdk-3.1.2.v201403031500.zip.md5">md5</a>)
</p>

<h3>Luna - GMF Tooling 3.2.0</h3>
<p>
<b>Update site:</b> http://download.eclipse.org/modeling/gmp/gmf-tooling/updates/releases-3.2.0/ or 
<a href="http://www.eclipse.org/downloads/download.php?file=/modeling/gmp/gmf-tooling/downloads/drops/3.2.0/R201406241500/gmf-tooling-update-3.2.0.v201406241500.zip">this archive</a>
<br/>
<b>ZIP file: </b>
<a href="http://www.eclipse.org/downloads/download.php?file=/modeling/gmp/gmf-tooling/downloads/drops/3.2.0/R201406241500/gmf-tooling-sdk-3.2.0.v201406241500.zip">3.2.0 (Luna)</a> 
(<a href="http://www.eclipse.org/downloads/download.php?file=/modeling/gmp/gmf-tooling/downloads/drops/3.2.0/R201406241500/gmf-tooling-sdk-3.2.0.v201406241500.zip.md5">md5</a>)
</p>

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