<?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'
  $pageTitle     = "m2e-wtp - Downloads";

  $html = <<<EOHTML
<div id="midcolumn">
  <h3>Installing m2e-wtp</h3>

    <p>m2e-wtp requires an Eclipse Java EE distribution, and can be installed from the releases update site.
       m2e-wtp is generally compatible with Eclipse Luna (4.4) and Mars(4.5).
    </p>

   <p><strong>Latest release : 1.2.1 </strong></p>
        <ul>
        <li>
            Luna (e4.4) / Mars (e4.5): <a href="http://download.eclipse.org/m2e-wtp/releases/mars/">http://download.eclipse.org/m2e-wtp/releases/mars/</a>
        </li>
        </ul>

    <p><strong>Latest Milestone : 1.3.0.M2</strong></p>
    <ul>
        <li>
            Mars (e4.5) / Neon (e4.6): <a href="http://download.eclipse.org/m2e-wtp/milestones/neon/1.3/">http://download.eclipse.org/m2e-wtp/milestones/neon/1.3/</a>
        </li>
    </ul>

  <p><strong>Latest m2e-wtp dev build</strong></p>
      <ul>
        <li>
          Neon (e4.6) : <a href="http://download.eclipse.org/m2e-wtp/snapshots/neon">http://download.eclipse.org/m2e-wtp/snapshots/neon</a>
        </li>
      </ul>
</div>
EOHTML;

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