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

	#*****************************************************************************
	#
	# team.php of Java Workflow Tooling (JWT)
	#
	# Author: 		Florian Lautenbacher
	# Date:			2007-02-26, adapted 2008-05-08
	#
	# Description: The team/committer page of the Java Workflow Tooling project
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "Eclipse Java Workflow Tooling (JWT)";
	$pageKeywords	= "JWT , Java Workflow Tooling Project, Workflow Editor, Workflow Administration and Monitoring, Eclipse";
	$pageAuthor		= "Florian Lautenbacher";
	
	# 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)
	# Reiniting navbar content (suppresses generic Eclipse links Committers, Newsgroups, Bugs, Articles) :
	# $Nav->setLinkList( array() );
	# Adding Portal-based "About" information, to be "Standard left menu"-compliant (see http://www.eclipse.org/projects/dev_process/project-status-infrastructure/left-menu.php) :
	# $Nav->addCustomNav( "Information about JWT", "/projects/project_summary.php?projectid=soa.jwt", "", 1  );
	# Adding JWT specific menus :

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

<div id="midcolumn">
<table border="0" cellspacing="0" cellpadding="0" width="100%">
 <tr>
  <td valign="top" align="left"><h1>JWT Team</h1></td>
 </tr>
</table>

<div class="homeitem">
<h3>JWT Project Leads</h3>
<ul>
	<li><span>Marc Dutoo <br>(project co-lead)<br><a href="http://www.openwide.fr">Open Wide SA</a></span></li>
	<li><span>Christian Saad<br><a href="http://www.informatik.uni-augsburg.de/ds/">University of Augsburg</a></span></li>
</ul>
<h3>JWT Release Engineer</h3>
<ul>
	<li><span>Christian Saad<br><a href="http://www.informatik.uni-augsburg.de/ds/">University of Augsburg</a></span></li>
</ul>
<h3>JWT Board Members</h3>
<ul>
	<li><span>Alain Boulze<br><a href="http://www.inria.fr/">INRIA</a></span></li>
	<li><span>Fabrice Dewasmes<br><a href="http://www.pragmaconsult.lu/">Pragma Consult</a></span></li>
	<li><span>Miguel Valdez Faura<br><a href="http://www.bonitasoft.com/">bonitasoft SA</a></span></li>
	<li><span>Gunther Palfinger<br><a href="http://www.emundo.eu/">eMundo GmbH</a></span></li>
</ul>
<h3>JWT Mentor</h3>
<ul>
	<li><span>John Graham<br><a href="http://www.jboss.org">JBoss - a division of Red Hat</a></span></li>
</ul>
</div>
<div class="homeitem">
<h3>JWT Committers and Contributors</h3>

<ul>
	<li><span>Florian Lautenbacher</a> <br>(former project co-lead)<br><a href="http://www.ds-lab.org/">University of Augsburg</a></span></li>
	<li><span>Bernhard Bauer<br><a href="http://www.ds-lab.org">University of Augsburg</a></span></li>
	<li><span>Marc Blanchon<br><a href="http://www.bull.com/fr/index.php">Bull SA</a></span></li>
	<li><span>Guillaume Decarnin<br><a href="http://www.openwide.fr">Open Wide SA</a></span></li>
	<li><span>Stephane Drapeau<br><a href="http://www.obeo.fr/">Obeo SA</a></span></li>
	<li><span>Melanie Hesselbart<br><a href="http://www.informatik.uni-augsburg.de/ds/">University of Augsburg</a></span></li>
	<li><span>Mickael Istria<br><a href="http://www.openwide.fr">Open Wide SA</a></span></li>
	<li><span>Rodrigue Le-Gall<br><a href="http://www.bonitasoft.com/">bonitasoft SA</a></span></li>
	<li><span>Emmanuel Rias<br><a href="http://www.bull.com/fr/index.php">Bull SA</a></span></li>
	<li><span>Christian Seitz<br><a href="http://www.informatik.uni-augsburg.de/ds/">University of Augsburg</a></span></li>
	<li><span>Pierre Vigneras<br><a href="http://www.bull.com/fr/index.php">Bull SA</a></span></li>
</ul>
	</div>

<table border="0" cellspacing="0" cellpadding="0" width="100%">
 <tr>
  <td valign="top" align="left"><h1>Contact us at <a href="mailto:jwt-dev@eclipse.org">jwt-dev@eclipse.org</a>!</h1></td>
 </tr>
</table>
</div>

<div id="rightcolumn">
   	 <div class="sideitem">
 	</div>       			
</div>
EOHTML;


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