<?php
/**
 * Copyright (c) 2014, 2015, 2016, 2018 Eclipse Foundation.
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * Contributors:
 *   Christopher Guindon (Eclipse Foundation) - Initial implementation
 *   Eric Poirier (Eclipse Foundation)
 *
 * SPDX-License-Identifier: EPL-2.0
 */
?>

<!-- Main content area -->
<div id="midcolumn">
  <h1><?php print $pageTitle;?></h1>
  <p>The latest release of Eclipse Jetty is below, earlier minor release versions are available in <a href="https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution">Maven Central.</a></p>
  <table class="frame-all grid-all stretch">
  <caption class="title">Downloads</caption>
  <colgroup>
  <col style="width: 40%;">
  <col style="width: 15%;">
  <col style="width: 15%;">
  <col style="width: 15%;">
  <col style="width: 15%;">
  </colgroup>
  <thead>
  <tr>
  <th class="halign-left valign-top">Release</th>
  <th class="halign-left valign-top"></th>
  <th class="halign-left valign-top"></th>
  <th class="halign-left valign-top"></th>
  <th class="halign-left valign-top"></th>
  </tr>
  </thead>
  <tbody>
  <tr>
  <td class="halign-left valign-top"><p>9.4.14.v20181114</p></td>
  <td class="halign-left valign-top"><p><a href="https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.4.14.v20181114/jetty-distribution-9.4.14.v20181114.zip">.zip</a></p></td>
  <td class="halign-left valign-top"><p><a href="https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.4.14.v20181114/jetty-distribution-9.4.14.v20181114.tar.gz">.tgz</a></p></td>
  <td class="halign-left valign-top"><p><a href="http://www.eclipse.org/jetty/javadoc/9.4.14.v20181114/index.html?overview-summary.html">apidocs </a></p></td>
  <td class="halign-left valign-top"><p><a href="https://github.com/eclipse/jetty.project/tree/jetty-9.4.14.v20181114"> source</a></p></td>
  </tr>
  </tbody>
  </table>

  <p><strong>Note:</strong> Release notes can be found in the <code>VERSION.txt</code> file included with the distribution and on the <a href="https://github.com/eclipse/jetty.project/releases">GitHub Releases</a> page for the Jetty project.
  Release notes are also made available on the <a href="https://www.eclipse.org/jetty/mailinglists.html">jetty-announce@eclipse.org mailing list.</a></p>
  <div class="sect2">
  <h3 id="_prior_versions">Prior Versions</h3>
  <p>The most recent versions of prior Jetty releases can be found <a href="previousversions.html">here, with their associated documentation.</a></p>
  <p>Note: The canonical repository for Jetty is Maven Central.  All releases are always available there first and this download page may lag a bit update wise as post release resources are put into place.  You can always browse for Jetty releases <a href="https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution">here</a>.</p>
  </div>
  <div class="sect2">
  <h3 id="_jetty_p2_provisioning">Jetty P2 Provisioning</h3>
  <p>This provisioning address is not for general use and are provided strictly for OSGI users.</p>
  <div class="ulist">
  <ul>
  <li>
  <p>Composite Jetty 9 P2 Provisioning: http://download.eclipse.org/jetty/updates/jetty-bundles-9.x</p>
  </li>
  </ul>
  </div>
</div>
</div>
<!-- ./end  #midcolumn -->

<!-- Start of the right column -->
<!--
<div id="rightcolumn">
  <div class="sideitem">
    <h2>Related Links</h2>
    <ul>
      <li><a target="_self" href="/eclipse.org-common/themes/solstice/docs/">Documentation</a></li>
    </ul>
  </div>
</div>
-->
<!-- ./end  #rightcolumn -->
