<?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 of Java Workflow Tooling (JWT)
	#
	# Author: 		Florian Lautenbacher
	# created:		2007-02-26
	# last changed: 2007-10-12
	#
	# Description: The start 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() );

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

	<div id="midcolumn">
		<h1>Eclipse Java Workflow Tooling (JWT) Project</h1>
		
		<table border="0">
			<td valign="top" >
				<div align="justify">
					<p>
						The <em>Java Workflow Tooling project (JWT)</em> aims to build design time, development 
						time and runtime workflow tools in order to provide a complete, flexible, 
						interoperable Business Process Management platform.
					</p>
					<p>
						This is achieved through an extensible architecture allowing to support many 
						different BP representations, format languages and execution engines. The set 
						of JWT tools is meant to allow for "Distribution"-like releases with specific 
						extensions targeting specific platforms or problems, e.g. JWT for SOA. The 
						mission and philosophy of JWT makes it natural complement to other Eclipse 
						projects, such as the friend SOA Tools Platform Project.
					</p>
				</div>
			</td>
			<td width="10"/>
			<td width="320">
				<a href="/jwt/images/jwtwe_process.gif" target="_blank"><img src="/jwt/images/index.gif"/></a>
			</td>
		</table>
		
		<div class="homeitem3col">
			<h3>Components</h3>
				<ul>
					<li>
						<a href="/jwt/components/we/index.php">Workflow Editor</a>:
 						The Workflow Editor (WE) is a visual tool for creating, managing and 
						reviewing process definitions 
					</li>
					<li>
						<a href="/jwt/components/desktop/index.php">Desktop Tools</a>:
						The Desktop Tools enable the simulation of processes without the need of a process engine
					</li>
					<li>
						<a href="/jwt/components/transformations/index.php">Transformations</a>:
						Building on a transformation base plugin it is possible to transform the JWT-model into <a href="http://www.eclipse.org/stp/bpmn/">BPMN</a> 
						and to generate <a href="http://www.wfmc.org/standards/xpdl.htm">XPDL</a>-code. We are also working on other transformations, such as from 
						<a href="http://www.eclipse.org/stp/bpmn/">BPMN</a> to JWT, from JWT to 
						<a href="http://www.eclipse.org/stp/im/index.php">STP-IM</a>, etc.
					</li>
					<li>
						<a href="/jwt/components/wam/index.php">Workflow Administration and Monitoring</a>:
						WAM is used for deploying and testing workflows in a workflow engine i.e. handle an engine's 
						process definition repository by loading / unloading / updating / instantiating / monitoring process definitions and
						performing mappings among participant definitions and real users and among application definitions and tool agents
					</li>
				</ul>
		</div>
		
		<hr class="clearer" />
		
		<div class="homeitem">
			<h3>Project Resources</h3>
			<img align="right" src="/jwt/images/item_download.gif" alt="download" />
			<ul>
				<li><a href="http://wiki.eclipse.org/JWT_Downloads">All Downloads</a></li> 
				<li><a href="http://www.eclipse.org/downloads/download.php?file=/technology/jwt/org.eclipse.jwt.we_0.4.0.jar">Download the Workflow Editor (0.4.0)</a></li> 
				<li><a href="http://wiki.eclipse.org/JWT_CVS">Get the Source Code from CVS</a></li> 
				<li><a href="http://wiki.eclipse.org/JWT_Upcoming_Release">Upcoming Release Information</a></li> 
				<li><a href="http://download.eclipse.org/technology/jwt/update-site/">Eclipse Update Site for JWT</a></li> 
			</ul>
		</div>
		
		<div class="homeitem">
			<h3>Documentation</h3>
			<img align="right" src="/jwt/images/item_documentation.gif" alt="documentation" />
			<ul>
				<li><a href="http://wiki.eclipse.org/index.php/Java_Workflow_Toolbox_Project">Java Workflow Tooling Wiki</a></li> 
				<li><a href="http://wiki.eclipse.org/JWT_FAQ">Frequently Asked Questions (FAQ)</a></li> 
				<li><a href="http://pvs.informatik.uni-augsburg.de/wiki/index.php/AgilPro_documentation">Documentation (Documents, Screencasts, Links)</a></li> 
				<li><a href="http://www.eclipse.org/jwt/components/we/docs/JWTWorkflowEditorUsageTutorial.pdf">Tutorial for the Workflow Editor (0.4.0)</a></li> 
				<li><a href="http://wiki.eclipse.org/JWT_Extensions">How to Extend JWT through Plugins</a></li> 
			</ul>
		</div>

		<hr class="clearer" />

		<div class="homeitem">
			<h3>Community and Development</h3>
			<img align="right" src="/jwt/images/item_community.gif" alt="community" />
			<ul>
				<li><a href="http://wiki.eclipse.org/index.php/Java_Workflow_Toolbox_Project#Brainstorming">Current Discussions</a></li> 
				<li><a href="http://wiki.eclipse.org/index.php/JWT_DeveloperFAQ">Developer FAQ</a></li> 
				<li><a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jwt/?root=Technology_Project">CVS Repository</a></li> 
				<li><a href="news://news.eclipse.org/eclipse.technology.jwt">Newsgroup</a> (<a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.jwt">Web Interface</a>)</li>
				<li><a href="https://dev.eclipse.org/mailman/listinfo/jwt-dev">Mailing List</a> (<a href="http://dev.eclipse.org/mhonarc/lists/jwt-dev/maillist.html">Archive</a>)</li> 
				<li><a href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&product=JWT&short_desc=&short_desc_type=allwordssubstr&long_desc=&long_desc_type=allwordssubstr&keywords=&keywords_type=anywords&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&order=Reuse+same+sort+as+last+time">Open Bugs and Requests</a> (<a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=JWT">Report Bug</a>)</li> 
			</ul>
		</div>
		
		<div class="homeitem">
			<h3>What's new</h3>
			<ul>
				<li><strong>September, 25th 2008:</strong> We are currently preparing the next release (0.5.0) which will include several improvements on the Workflow Editor as well as the first transformations. 
				Probably available in a few days.				
				</li>
				<li><strong>March, 4th 2008:</strong> The first version (0.4.0) of the Workflow Editor is finally available as an Eclipse plugin. 
				Check it out at the <a href="components/we/index.php">Workflow Editor</a>-page.				
				</li>
				<li>On <strong>October, 11th 2007</strong> one of the project leads held a presentation about the JWT project at the
			Eclipse Summit Europe 2007. Find the presented slides <a href="/jwt/press/ese07/index.php">here</a>.
			    </li>
			</ul>
		</div>

		<hr class="clearer">
			
	</div>
	
	<div id="rightcolumn">	
	
    	 <div class="sideitem">
   			<h6>Incubation</h6>
   			<div align="center">
   				<a href="/projects/what-is-incubation.php"><img align="center" src="/images/egg-incubation.png" border="0" alt="Incubation" /></a>
   			</div>
        	<div align="center">  
         		This project is in the 
         		<a href="/projects/dev_process/validation-phase.php">Incubation Phase</a>
       		</div>
 		</div>
 				
 		<div class="sideitem">
 			<h6>New to JWT?</h6>
 			<ul>
 				<li><a href="/jwt/pages/about.php">About JWT</a></li>
 				<li><a href="http://wiki.eclipse.org/index.php/Java_Workflow_Toolbox_Project">Wiki</a></li>
 				<li><a href="http://wiki.eclipse.org/JWT_Downloads">Downloads</a></li>
 				<li><a href="http://pvs.informatik.uni-augsburg.de/wiki/index.php/AgilPro_documentation">Documentation</a></li>
 				<li><a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.jwt">Newsgroup</a></li>
 				<li><a href="https://dev.eclipse.org/mailman/listinfo/jwt-dev">Mailing List</a></li>
 				<li><a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=JWT">Report Bug</a></li>
 			</ul>
 		</div>
 		
 		 		
	</div>

EOHTML;

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