<?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 10 and 11 are dual licensed under the Apache License 2.0 and Eclipse Public License 2.0.</p>
    <p>Eclipse Jetty 7, 8 and 9 are dual licensed under the Apache License 2.0 and Eclipse Public License 1.0.</p>
    <p>Eclipse Jetty is free for commercial use and distribution under the terms of either license, with exceptions listed in the NOTICE file.</p>
    <p>Jetty 6 was distributed solely under the Apache License 2.0 with details and exceptions listed in the NOTICE file.</p>
</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 -->
