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

	#*****************************************************************************
	#
	# template.php
	#
	# Author: 		Denis Roy
	# Date:			2005-06-16
	#
	# Description: Type your page comments here - these are not sent to the browser
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "BPEL Project Milestone Plan";
	$pageKeywords	= "BPEL, process, designer, milestone";
	$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)
	include($_SERVER['DOCUMENT_ROOT'] . "/$projectShortName/items/developers_menu.php");
	include($_SERVER['DOCUMENT_ROOT'] . "/$projectShortName/items/milestones_menu.php");
	
	# End: page-specific settings
	#
		
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML
	
	
<div id="maincontent">
	<div id="midcolumn">
		<h1>$pageTitle</h1>
		
		<div class="right">
            Last modified: <span class="date">August 14<sup>th</sup>, 2007</span>
        </div>
<p>
The milestone plan 
below has been modified to re-adjust expectations and put some more realistic
dates around the various deliverables.
</p>
<p>		
Because some of the milestones are out with partial implementations of some of the features,
we have marked this in the milestones that are already out. 
</p>
<p>
</p>
Currently, we are hoping to release M3 by the end of the May 2007.

<!-- Milestone 0 -->
<h2>M0: Get things going ...</h2>

<p>
Date: 
</p>

<table class="milestones">
 
 <tr>
   <th>Features</th>
   <th>Owners</th>
   <th>Progress</th>
 </tr>
 
 
 
 <tr class="done">   
   <td>
      Document and share existing extension points
   </td>
   <td>
      IBM
   </td>
   <td>   
      Complete
   </td>   
 </tr>
 
 <tr class="done">
   <td>
     Create list of default implementation to create.
   </td>
   <td>
     Oracle
   </td>
   <td>
     Complete
   </td>
  </tr>

 <tr class="done">
   <td>
     Feedback on extension points 
   </td>
   <td>
     Oracle
   </td>
   <td>
     Complete
   </td>
 </tr>

 
 <tr class="done">
   <td>
    Start implementation of default extension points
   </td>
   <td>
     Oracle
   </td>
   <td>
     Complete
   </td>
 </tr>
 
 <tr class="done">
   <td>
     Start WSDL and Partner Link discussion
   </td>
   <td>
     Oracle,IBM
   </td>
   <td class="done">
     Complete
   </td>
 </tr>
 
 <tr class="notdone">
   <td>
     Storyboard for building LoanFlow 
   </td>
   <td>
      Oracle,IBM
   </td>
   <td class="notdone">
     Not Done
   </td>
 </tr>
 
 <tr class="done">
   <td>
     Start Runtime API design
   </td>
   <td>
     OMII
   </td>
   <td class="done">
     Complete
   </td>
 </tr>
 
 <tr class="notdone">
   <td>
     Start Debugger API design
   </td>
   <td>
     Oracle
   </td>
   <td>
     Not Done
   </td>
 </tr>
 
 
 <tr class="done">
   <td>
     Definition of process to open and display in M1
   </td>
   <td>
     Oracle,IBM
   </td>
   <td>
     Done
   </td>
 </tr>
 
 
 <tr class="done">
   <td>
     Legal resolutions 
   </td>
   <td>
     Oracle,IBM
   </td>
   <td>
     Done
   </td>
 </tr>
 
 <tr class="notdone">
   <td>
     Define the list of samples for M1 
   </td>
   <td>
     Oracle,IBM
   </td>
   <td>
     Not Done
   </td>
 </tr>
      
   
</table>


<p>
</p>

<!-- Milestone 1 -->
<h2>M1: View Only</h2>
At this point, we should have an editor that will run and could open an 
existing process and present it to the user. We reserve the right to have 
authoring not work at this point.

<p>
Out-date: March, 2006. What is in <a class="www" href="../users/m1.php">M1</a> ?
</p>

<table class="milestones">
 
 <tr>
   <th>Features</th>
   <th>Owners</th>
   <th>Progress</th>
 </tr>
  
 <tr class="done">   
   <td>
     Contribute source 
   </td>
   <td>
      Oracle,IBM
   </td>
   <td>   
      Done
   </td>   
 </tr>
 
 
  <tr class="done">   
   <td>
     Ability to open and display a BPEL process, not necessarily edit or author
   </td>
   <td>
      IBM
   </td>
   <td>   
      Done
   </td>   
 </tr>
 
  <tr class="progress">   
   <td>
      Design of Validation Framework
   </td>
   <td>
      Oracle
   </td>
   <td>   
      50%
   </td>   
 </tr>
 
  <tr class="progress">   
   <td>
     Define list of validation errors/warnings with strings 
   </td>
   <td>
      Oracle
   </td>
   <td>   
      30%
   </td>   
 </tr>
 
  <tr class="notdone">   
   <td>
     Define what "simple" and "complex" are based on Storyboard
   </td>
   <td>
      Oracle, IBM
   </td>
   <td>   
      Not Done
   </td>   
 </tr>
 
  <tr class="notdone">   
   <td>
     Plan for final artwork 
   </td>
   <td>
      Oracle,IBM
   </td>
   <td>   
      Not Done
   </td>   
 </tr>
 
  <tr class="notdone">   
   <td>
     Contribute samples
   </td>
   <td>
     Oracle,IBM 
   </td>
   <td>   
      Not Done
   </td>   
 </tr>
 
</table>

<p>
</p>


<!-- Milestone 2 -->
<h2>M2: Can create and work on BPEL processes. </h2>
You should be able to create and open 
a BPEL process in the editor and be able to customize properties of all elements 
in the process (variables, partner links, assign rules, conditions) with considerable
help from tools in the editor.
 
<p>
Out-date: <span class="date">December, 15 2006.</span> What is in <a class="www" href="../users/m2.php">M2</a> ? 
</p>

<table class="milestones">
 
 <tr>
   <th>Features</th>
   <th>Owners</th>
   <th>Progress</th>
 </tr>
 
  
 <tr class="progress">   
   <td>
     Implement default, simple set of UI extensions, that is:
     <ul class="midlist">
        <li>XSD Type Browsers</li>
        <li>WSDL Browsers</li>
        <li>XPath Editor</li>
      </ul>
   </td>
   <td>
      Oracle
   </td>
   <td>   
      80%
   </td>   
 </tr>


 <tr class="progress">   
   <td>
      Finish enough implementation so that we can create project 
      and build simple BPEL process      
   </td>
   <td>
      All
   </td>
   <td>   
      70%
   </td>   
 </tr>
 
</table>


<p>
</p>


<!-- Milestone 3 -->

<h2>M3: Editor starts to take on final shape </h2>

The extensions ought to be sufficient to make life easy for BPEL designers.
Validation should produce error free deployable processes.
 
<p>
Tenative-Date: <span class="date">May 31, 2007</span>
<br/>
Out-Date: <span class="date">August 17,2007</span>  What is in <a class="www" href="../users/m3.php">M3</a> ? 
</p>

<table class="milestones">

 <tr>
   <th>Features</th>
   <th>Owners</th>
   <th>Progress</th>
 </tr>
 
  
 <tr class="done">   
   <td>
     Implement  Full-featured set of UI extensions, that is:
     <ul class="midlist">
        <li>XSD Type Browsers</li>
        <li>WSDL Browsers</li>
        <li>XPath Editor</li>
        <li>WSIL Browser</li>
      </ul>
   </td>
   <td>
      Oracle
   </td>
   <td>
      100%
   </td>   
 </tr>
 
 <tr class="done">   
   <td>
      Working validation
   </td>
   <td>
      Oracle
   </td>
   <td>
      95%
   </td>   
 </tr>
 
 <tr class="done">   
   <td>
      Reference runtime deployment plugin.
      This will be a deployment plugin to Active BPEL 3.0
   </td>
   <td>
      All
   </td>
   <td>
      100%
   </td>   
 </tr>
 
 <tr class="done">   
   <td>
      Finish enough implementation so that we can create project 
      and build simple BPEL process      
   </td>
   <td>
      All
   </td>
   <td>   
      100%
   </td>   
 </tr>
 
 <tr class="done">   
   <td>
      Full BPEL BPEL 2.0 model compliance.  
   </td>
   <td>
      All
   </td>
   <td>   
      100%
   </td>   
 </tr>
 
 <tr class="progress">   
   <td>
      UI to support BPEL 2.0 model constructs   
   </td>
   <td>
      Oracle
   </td>
   <td>   
      50%
   </td>   
 </tr>
 
</table>

<p>
</p>


<!-- Milestone 4 -->

<h2>M4: Deploy <span class="strike">and Debug</span> a process to a reference runtime </h2>

At this point, deployment <span class="strike">and debugging</span> should be possible. 
We have moved the source code viewer editor to this milestone as the development has been progressing
on it rather well from the post 1.0 feature list. 

<p>
Out-Date: <span class="date">September 1, 2010</span>
</p>

<table class="milestones">

 <tr>
   <th>Features</th>
   <th>Owners</th>
   <th>Progress</th>
 </tr>
 
  
 <tr class="notdone">   
   <td>
      Activity plug-in Design (One stop shop)
   </td>
   <td>
      ?
   </td>
   <td>
      Not done
   </td>   
 </tr>

 <tr class="notdone">   
   <td>
      Accessibility check
   </td>
   <td>
      ?
   </td>
   <td>
      Not done
   </td>   
 </tr>
 <tr class="progress">   
   <td>
      Model maintains DOM tree
   </td>
   <td>
      IBM
   </td>
   <td>
      85%
   </td>
 </tr>
 <tr class="progress">   
   <td>
     Source editor view
   </td>
   <td>
      Intel,IBM
   </td>
   <td>
      75%
   </td>   
 </tr>
 
 
</table>


<p>
</p>


<!-- Milestone 5 -->

<h2>M5: Verify deployment to proprietary runtimes. </h2>

This will be primarily a code stabilization release. See the <a href="/$projectShortName/users/m5.php">M5 Milestone Plan</a> for more information.
  
<p>
Tentative-date: <span class="date">Q4 2010</span>
</p>

<table class="milestones">

 <tr>
   <th>Features</th>
   <th>Owners</th>
   <th>Progress</th>
 </tr>
 
  
 <tr class="done">   
   <td>
      Deployment Framework Update
   </td>
   <td>
      Red Hat
   </td>
   <td>
      100%
   </td>
 </tr>
 <tr>
   <td>
      Undo/Redo
   </td>
   <td>
      Red Hat
   </td>
   <td>
      90%
   </td>   
 </tr>
 <tr>
   <td>
      Refactoring
   </td>
   <td>
      Red Hat
   </td>
   <td>
      0%
   </td>   
 </tr>
 <tr>
   <td>
      Validation
   </td>
   <td>
      Red Hat
   </td>
   <td>
      100%
   </td>   
 </tr>
 <tr>
   <td>
      Nightly Builds
   </td>
   <td>
      Red Hat
   </td>
   <td>
      100%
   </td>   
 </tr>
 <tr>
   <td>
      Bug Triage
   </td>
   <td>
      Red Hat
   </td>
   <td>
      900%
   </td>   
 </tr>
</table>

<p>
</p>


<!-- Milestone 6 -->

<h2>M6: 1.0 Release</h2>

Graduation from the <a href="http://wiki.eclipse.org/Development_Resources/HOWTO/Incubation_Phase">incubation phase</a>.
See the <a href="/$projectShortName/users/m6.php">M6 Milestone Plan</a> for more information.

<p>
Date: <span class="date">April 23, 2012</span>
</p>

<table class="milestones">

 <tr>
   <th>Features</th>
   <th>Owners</th>
   <th>Progress</th>
 </tr>
 
  
 <tr class="notdone">   
   <td>
     Juno release train
   </td>
   <td>
      Petals Link, Red Hat
   </td>
   <td>
      90%
   </td>   
 </tr>
   
 <tr class="notdone">   
   <td>
     Update Site re-org.
   </td>
   <td>
      Petals Link, Red Hat
   </td>
   <td>
      50%
   </td>   
 </tr>
 
 <tr class="notdone">   
   <td>
     Other stuff
   </td>
   <td>
      ?
   </td>
   <td>
      Not Done
   </td>   
 </tr>

</table>


<p>
</p>


<h2> After that ...</h2>
Post Release 1.0 work and currently out of scope for 1.0
<p>
Date: Whenever ...
</p>

<table class="milestones">

 <tr>
   <th>Features</th>
   <th>Owners</th>
   <th>Progress</th>
 </tr>
 
  
 <tr class="notdone">   
   <td>
     Debug support
   </td>
   <td>
      ?
   </td>
   <td>
      Not Done
   </td>   
 </tr>
 
 <tr class="notdone">   
   <td>
     Search, integration with workbench search capability
     (Note: Maintaining a DOM tree might be useful since XPath could
     be used a search mechanism ... )
   </td>
   <td>
     ?
   </td>
   <td>
      Not Done
   </td>   
 </tr>

<tr class="notdone">   
   <td>
     Template or macro capabilities (Complex BPEL segments in re-usable templates)
   </td>
   <td>
      ?
   </td>
   <td>
      Not Done
   </td>   
 </tr>
 
<tr class="notdone">   
   <td>
     Visual Compare and merge
   </td>
   <td>
      ?
   </td>
   <td>
      Not Done
   </td>   
 </tr>
 
<tr class="notdone">   
   <td>
     Stuff we missed in previous milestones
   </td>
   <td>
      ?
   </td>
   <td>
      Not Done
   </td>   
 </tr>

</table>



	</div>
	$rightcolumn_links
</div>


EOHTML;


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