<?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'
	ob_start();
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "BPEL Project downloads";
	$pageKeywords	= "BPEL, process, designer, download";
	$pageAuthor		= "BPEL Team";
	
	# 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);
?>		

<div id="maincontent">
	<div id="midcolumn">
		<div align="center"><h1>BPEL Project</h1></div>
		<h2>Downloads</h2>
		<p>We have activated a download site for the Eclipse BPEL designer. 
		<p>
		Check the 
		<a href="http://download.eclipse.org/technology/bpel/update-site/" target="download">BPEL Editor Update Site</a>
		for instructions on how to download and install the designer directly into Eclipse.
		<p>
		The build available on the update site currently (as of December 21, 2006) is the M2
		build (version 0.2.0).
		
		<hr class="clearer" />
	</div>


	<div id="rightcolumn">
	    <?php include("items/incubation.html"); ?>     
        <?php include("items/links.html"); ?>
	</div>
	
</div>

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