<?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());

	$pageTitle 		= "SWTBot &ndash; Downloads";

 	$ganymede_dev_version = file_get_contents($App->getDownloadBasePath()."/technology/swtbot/ganymede/dev-build/version.txt");
 	$galileo_dev_version = file_get_contents($App->getDownloadBasePath()."/technology/swtbot/galileo/dev-build/version.txt");
 	$helios_dev_version = file_get_contents($App->getDownloadBasePath()."/technology/swtbot/helios/dev-build/version.txt");
	# Paste your HTML content between the ob_start/ob_end_clean markers!
	ob_start();
?>
	<div id="midcolumn">
		<p>We recommend that you use the update site for your downloads. It's easier to install and allows you to stay up to date with the latest versions of SWTBot using the eclipse update manager.</p>

		<p>SWTBot comes in two flavors, one that works with SWT and one that builds on top of SWT and works with Eclipse.</p>

		<p>If you are a plugin developer you should be downloading 'SWTBot for Eclipse Testing'. If you don't know what that means, you should be downloading 'SWTBot for SWT Testing'</p>

	<!-- downloads -->
		<div class="homeitem3col">

			<p><strong>The current latest version of SWTBot is <? echo preg_replace('/(\d+)\.(\d+)\.(\d+)\..*/', '\1.\2.\3', $helios_dev_version); ?>. Please upgrade if you're on an older version.</strong></p>
			<p>Be sure to read the <a href="http://download.eclipse.org/technology/swtbot/helios/dev-build/RELEASE_NOTES.txt">Release Notes</a> if you're upgrading.</p>

			<h4>Supports Eclipse 3.6 (Helios) and Eclipse 3.7 (Indigo)</h4>

			<ul>
				<li>
					<a title="Update Site Zip" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/helios/dev-build/swtbot-update-site-<? echo $helios_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a>
					<a href="http://download.eclipse.org/technology/swtbot/helios/dev-build/update-site">http://download.eclipse.org/technology/swtbot/helios/dev-build/update-site</a>
				</li>

				<li>
					<a title="SWTBot for SWT Testing" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/helios/dev-build/org.eclipse.swtbot-<? echo $helios_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a> <b>SWTBot for SWT Testing</b>
				</li>


				<li>
					<a title="SWTBot for Eclipse Testing" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/helios/dev-build/org.eclipse.swtbot.eclipse-<? echo $helios_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a> <b>SWTBot for Eclipse Testing</b>
				</li>

				<li>
					<a title="SWTBot IDE Features" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/helios/dev-build/org.eclipse.swtbot.ide-<? echo $helios_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a> <b>SWTBot IDE Features</b>
				</li>

				<li>
					<a title="SWTBot for GEF Testing" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/helios/dev-build/org.eclipse.swtbot.eclipse.gef-<? echo $helios_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a> <b>SWTBot for GEF Testing (Requires GEF runtime >= v3.4.2)</b>
				</li>

				<li>
					<a title="SWTBot for SWT Testing" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/helios/dev-build/org.eclipse.swtbot.eclipse.test.junit3-<? echo $helios_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a> <b>Headless JUnit 3.x Testing Framework (for running tests from within ant)</b>
				</li>

				<li>
					<a title="SWTBot for SWT Testing" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/helios/dev-build/org.eclipse.swtbot.eclipse.test.junit4-<? echo $helios_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a> <b>Headless JUnit 4.x Testing Framework (for running tests from within ant)</b>
				</li>

			</ul>

			<h4>Supports Eclipse 3.5 (Galileo)</h4>

			<ul>
				<li>
					<a title="Update Site Zip" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/galileo/dev-build/swtbot-update-site-<? echo $galileo_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a>
					<a href="http://download.eclipse.org/technology/swtbot/galileo/dev-build/update-site">http://download.eclipse.org/technology/swtbot/galileo/dev-build/update-site</a>
				</li>

				<li>
					<a title="SWTBot for SWT Testing" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/galileo/dev-build/org.eclipse.swtbot-<? echo $galileo_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a> <b>SWTBot for SWT Testing</b>
				</li>


				<li>
					<a title="SWTBot for Eclipse Testing" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/galileo/dev-build/org.eclipse.swtbot.eclipse-<? echo $galileo_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a> <b>SWTBot for Eclipse Testing</b>
				</li>
				
				<li>
					<a title="SWTBot IDE Features" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/galileo/dev-build/org.eclipse.swtbot.ide-<? echo $galileo_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a> <b>SWTBot IDE Features</b>
				</li>

				<li>
					<a title="SWTBot for GEF Testing" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/galileo/dev-build/org.eclipse.swtbot.eclipse.gef-<? echo $galileo_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a> <b>SWTBot for GEF Testing (Requires GEF runtime >= v3.4.2)</b>
				</li>

				<li>
					<a title="SWTBot for SWT Testing" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/galileo/dev-build/org.eclipse.swtbot.eclipse.test.junit3-<? echo $galileo_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a> <b>Headless JUnit 3.x Testing Framework (for running tests from within ant)</b>
				</li>

				<li>
					<a title="SWTBot for SWT Testing" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/galileo/dev-build/org.eclipse.swtbot.eclipse.test.junit4-<? echo $galileo_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a> <b>Headless JUnit 4.x Testing Framework (for running tests from within ant)</b>
				</li>
			</ul>

			<h4>Supports Eclipse 3.4 (Ganymede)</h4>

			<ul>
				<li>
					<a title="Update Site Zip" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/ganymede/dev-build/swtbot-update-site-<? echo $ganymede_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a>
					<a href="http://download.eclipse.org/technology/swtbot/ganymede/dev-build/update-site">http://download.eclipse.org/technology/swtbot/ganymede/dev-build/update-site</a>
				</li>

				<li>
					<a title="SWTBot for SWT Testing" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/ganymede/dev-build/org.eclipse.swtbot-<? echo $ganymede_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a> <b>SWTBot for SWT Testing</b>
				</li>


				<li>
					<a title="SWTBot for Eclipse Testing" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/ganymede/dev-build/org.eclipse.swtbot.eclipse-<? echo $ganymede_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a> <b>SWTBot for Eclipse Testing</b>
				</li>
				
				<li>
					<a title="SWTBot IDE Features" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/ganymede/dev-build/org.eclipse.swtbot.ide-<? echo $ganymede_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a> <b>SWTBot IDE Features</b>
				</li>

				<li>
					<a title="SWTBot for GEF Testing" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/ganymede/dev-build/org.eclipse.swtbot.eclipse.gef-<? echo $ganymede_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a> <b>SWTBot for GEF Testing (Requires GEF runtime >= v3.4.2)</b>
				</li>

				<li>
					<a title="SWTBot for SWT Testing" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/ganymede/dev-build/org.eclipse.swtbot.eclipse.test.junit3-<? echo $ganymede_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a> <b>Headless JUnit 3.x Testing Framework (for running tests from within ant)</b>
				</li>

				<li>
					<a title="SWTBot for SWT Testing" href="http://www.eclipse.org/downloads/download.php?file=/technology/swtbot/ganymede/dev-build/org.eclipse.swtbot.eclipse.test.junit4-<? echo $ganymede_dev_version; ?>.zip"><img border=0 src="/swtbot/images/download_button.png"></a> <b>Headless JUnit 4.x Testing Framework (for running tests from within ant)</b>
				</li>

			</ul>

			<h4>Nightly builds</h4>

			<p>Nightly builds of SWTBot are extremely stable, since SWTBot has a large number of tests, providing very good test coverage. The following update sites always refer to the last sucessful SWTBot build.</p>

			
			<ul>
			<li> <a href="https://hudson.eclipse.org/hudson/view/SWTBot/job/swtbot-e37/lastSuccessfulBuild/artifact/org.eclipse.swtbot.releng/artifacts/update-site/">Update site for eclipse 3.7 (Indigo)</a></li>
                        <li> <a href="https://hudson.eclipse.org/hudson/view/SWTBot/job/swtbot-e36/lastSuccessfulBuild/artifact/org.eclipse.swtbot.releng/artifacts/update-site/">Update site for eclipse 3.6 (Helios)</a></li>
			<li> <a href="https://hudson.eclipse.org/hudson/view/SWTBot/job/swtbot-e35/lastSuccessfulBuild/artifact/org.eclipse.swtbot.releng/artifacts/update-site/">Update site for eclipse 3.5 (Galileo)</a></li>
			<li> <a href="https://hudson.eclipse.org/hudson/view/SWTBot/job/swtbot-e34/lastSuccessfulBuild/artifact/org.eclipse.swtbot.releng/artifacts/update-site/">Update site for eclipse 3.4 (Ganymede)</a></li>
			</ul>

			<h4>Older archived versions of SWTBot <a href="http://download.eclipse.org/technology/swtbot/archives/">available here</a></h4>

			<h4>Javadocs</h4>

			<p></p>

			<p><a href="http://download.eclipse.org/technology/swtbot/galileo/dev-build/apidocs">API docs For SWTBot</a>

			<h4>Test Coverage reports</h4>

			<p></p>

			<p><a href="http://download.eclipse.org/technology/swtbot/galileo/dev-build/coverage/org.eclipse.swtbot.swt.finder.test/">Test Coverage Results for SWTBot</a>
			<br/>
			<a href="http://download.eclipse.org/technology/swtbot/galileo/dev-build/coverage/index.html">Test Coverage Results for other plugins</a></p>

			<h4>JUnit reports</h4>

			<p></p>

			<p><a href="http://download.eclipse.org/technology/swtbot/galileo/dev-build/junit/org.eclipse.swtbot.swt.finder.test"><img src="/swtbot/images/junit.gif" />JUnit tests for SWTBot</a>
			<br/>
			<a href="http://download.eclipse.org/technology/swtbot/galileo/dev-build/junit/org.eclipse.swtbot.eclipse.finder.test/index.html"><img src="/swtbot/images/junit.gif" />JUnit tests for SWTBot For Eclipse testing</a></p>

		</div>
	</div>

<?php
include("website/parts/incubation.php");
$html = ob_get_contents();
ob_end_clean();

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