<?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>Eclipse Jetty is managed as an Eclipse project under the <a href="https://www.eclipse.org/rt">Runtime</a> project.  This is a loosely managed grouping of runtime related projects.</p>

  <p>The Eclipse project management tooling provides a summary page which contains general information about the project.  The IPLog is a collection of dependencies that have been approved through the Eclipse CQ process.</p>

  <div class="ulist">
  <ul>
  <li>
  <p><a href="https://projects.eclipse.org/projects/rt.jetty">Project Summary</a></p>
  </li>
  <li>
  <p><a href="http://www.eclipse.org/projects/ip_log.php?projectid=rt.jetty">IP Log</a></p>
  </li>
  </ul>
  </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 -->
