<?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'

	#*****************************************************************************
	#
	# index.php
	#
	# Author: 		Markus Knauer
	# Date:			2007-02-20
	#
	# Description: Entry page of the Eclipse Packaging Project
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Eclipse Packaging Project (EPP)";
	$pageKeywords	= "eclipse, download, packages, packaging, udc";
	$pageAuthor		= "Markus Knauer";
	
	# Add page-specific Nav bars here
	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);

	# End: page-specific settings
	#
		
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

<div id="maincontent">


<!-- MIDCOLUMN START -->
<div id="midcolumn">

<h1>$pageTitle</h1>

<h2>Project Scope</h2>

<ul>
	<li><b>Create entry level downloads based on defined user
	profiles.</b> The project defined and created the EPP downloads of
    Java Developer,	Java EE Developer, C/C++ Developer and RCP Developer.
    These downloads are available from the main Eclipse download page.
    Please follow 
    <a href="http://wiki.eclipse.org/EPP/How_to_create_a_package">this</a> 
    description if you want to be a package maintainer.</li>
	
	<li><b>Provide and integrate the EPP Usage Data Collector.</b> The
	The Usage Data Collector collects information about how individuals 
	are using the Eclipse platform. The intent is to use this data to help 
	committers and organizations better understand how developers are 
	using Eclipse.</li>

	<li><b>Provide an installer that improves the install experience 
    of new users of Eclipse.</b></li>

	<li><b>Provide a platform that allows the creation of packages
	(zip/tar downloads) from an update site.</b> The core technology of the
	project will enable the creation of download packages that are created
	by bundling Eclipse features from one or multiple Eclipse update sites.</li>
</ul>

<hr class="clearer" />

<table border="0" width="100%">
  <tr>
    <td align="center" valign="middle" width="33%">
      <a href="http://www.eclipse.org/downloads/">
        <img src="resources/downloadrelease.gif" alt="Download Release" width="200" height="38">
      </a>
    </td>
    <td align="center" valign="middle" width="33%">
      <a href="http://www.eclipse.org/downloads/packages/release/galileo/rc3">
        <img src="resources/downloadmilestone.gif" alt="Download Milestones" width="200" height="38">
      </a>
      <br>
      <a href="http://build.eclipse.org/eppwizard/go">
        <img src="resources/eppwizard.gif" alt="EPP Dynamic Download Wizard" width="200" height="38">
      </a>
    </td>
    <td align="center" valign="middle" width="33%">
      <a href="download.php">
        <img src="resources/downloadnightly.gif" alt="Download Nightly Builds" width="200" height="38">
      </a>
    </td>
  </tr>
</table>

<hr class="clearer" />

<div class="homeitem">
<h3>Project News</h3>
<ul>
  <li>2009-06-08 <a href="http://www.eclipse.org/downloads/packages/release/galileo/rc3">EPP packages for Galileo RC3</a> are available!</li>
  <li>2008-09-28 <a href="http://build.eclipse.org/eppwizard/go">EPP Download Wizard</a> is available</li>
  <li>2008-03-28 Send us your feedback about the new <a href="http://www.eclipse.org/downloads/packages/">Community Packages page</a>.</li>
</ul>
</div>

<div class="homeitem">
<h3>Meet the Eclipse Packaging team</h3>
<ul>
  <li><a href="http://www.eclipsecon.org/2009/">EclipseCon 2009, Santa Clara, Mar 23-26</a>
  <span>
    <ul>
    <li><a href="http://www.eclipsecon.org/2009/sessions?id=434">
         Galileo: delivering the next major release</a></li>
    <li><a href="http://www.eclipsecon.org/2009/sessions?id=433">
         Using the Usage Data Collector in RAP and RCP Applications</a></li>
    <li><a href="http://www.eclipsecon.org/2009/sessions?id=426">
         EPP Wizard - The Future for Custom Eclipse Downloads </a></li>
      </ul>
  </span></li>
  <li><a href="http://www.eclipsecon.org/summiteurope2008/">Eclipse Summit Europe 2008, Esslingen, Nov 19-20</a>
  <span>
    <ul>
    <li><a href="http://www.eclipsecon.org/summiteurope2008/sessions?id=81">
         News from EPP: The custom Eclipse download and extending the Usage Data Collector</a></li>
      </ul>
  </span></li>
  <li><a href="http://www.eclipsecon.org/2008/">EclipseCon 2008, Santa Clara, Mar 17-20</a>
  <span>
    <ul>
    <li><a href="http://www.eclipsecon.org/2008/index.php?page=sub/&id=89">
         From Europa to Ganymede: Eclipse Packaging and Ganymatic</a></li>
      </ul>
  </span></li>
</ul>
</div>
<hr class="clearer" />
</div>
<!-- MIDCOLUMN END -->

<!-- RIGHTCOLUMN START -->
<div id="rightcolumn">
<div class="sideitem">
<h6>Project Links</h6>
<ul>
	<li><a href="/proposals/packaging/">Project Proposal</a></li>
</ul>
</div>
<div class="sideitem">
<h6>Active Contributors</h6>
<ul>
	<li><a href="http://www.eclipsesource.com">EclipseSource</a></li>
	<li><a href="http://www.cloudsmith.com">Cloudsmith</a></li>
	<li><a href="http://www.code9.com">Code 9</a></li>
	<li><a href="http://www.instantiations.com">Instantiations, Inc.</a></li>
	<li><a href="http://www.xored.com">xored software</a></li>
</ul>
</div>
</div>
<!-- RIGHTCOLUMN END -->

</div>

EOHTML;


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