<?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 M3 information";
	$pageKeywords	= "M3,BPEL,info";
	$pageAuthor		= "Michal Chmielewski";
	
	# 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/users_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
	
<STYLE type="text/css">
span.feature {
	font-size: 18pt;
	font-weight: bold;
}

span.feature:before {
   content: counter(featureId) ". " ;
   counter-increment: featureId;
}
</STYLE>

<div id="maincontent">
	<div id="midcolumn" style="counter-reset: featureId;" >
		<h1>$pageTitle</h1>
		<h2>What's in M3 ?</h2>
		
		<p>
		The biggest new item in M3 is the BPEL 2.0 <a href="../developers/validator/">validator</a>. 
		Now your BPEL files will get checked for errors. 
		In addition, we have moved very closely to BPEL 2.0 compliance in several ways outlined below. 
		Read more to see what is in M3.
		
		</p>
	
        <!-- feature -->
		<p>
		<span class="feature"></span>
		M3 has been built and further milestones will continue to exist on top of WTP2.0
		This eliminates an issue for developers to use the BPEL EMF model in their downstream
		plug ins and various nasty issues around model code regeneration.
		</p>
		
        <!-- feature -->
		<p>
		<span class="feature"></span>
		There had been several improvements to the editor. 
		You can now hide the palette or place it in the palette view
		just like any other standard GEF editor does. A <b>duplicate</b> command
		had been added to the edit action so that you can quickly select and duplicate 
		entire sections of diagrams for fast diagram creation. Selection and multi-selection
		speed has been improved. Some undo /redo problems were fixed too.
		
		<ul style="margin-left: 20px;">
		  <li> Palette <a href="javascript:void(setImage('palette','img/palette-docked.png'))">docked</a> </li>		      
		  <li> Palette <a href="javascript:void(setImage('palette','img/palette-hidden.png'))">hidden</a> </li> 		    
		  <li> Palette <a href="javascript:void(setImage('palette','img/palette-view.png'))">in a view</a> </li>     
		  <li> Duplicate <a href="javascript:void(setImage('palette','img/command-duplicate.png'))">command</a> </li>
		</ul>
		
		<div class="screenshot">
		   <img id="palette" src="img/palette-docked.png" />
		</div>
		</p>


	
		<p>
		<span class="feature"></span>
         You can now <a href="../developers/validator/">validate</a> a BPEL project. There are currently 2 hooks into validation.
         There is a builder which is attached to the BPEL project and there is a WST extension
         point implementation for BPEL validation. 		
		</p>
		
		<ul style="margin-left: 20px;">
		  <li> Validation <a href="javascript:void(setImage('validate','img/validate-view-1.png'))">in the editor</a> </li>  		     
		  <li> The <a href="javascript:void(setImage('validate','img/validate-problems-view.png'))">problems view</a> </li>
		  <li> Validation <a href="javascript:void(setImage('validate','img/validate-settings.png'))">settings</a> </li>
         <li> Validation in the <a href="javascript:void(setImage('validate','img/validate-menu.png'))"> menu </a> </li>  
		</ul>
		
		<div class="screenshot">
		   <img id="validate" src="img/validate-view-1.png" />
		</div>
	

        <p>
		<span class="feature"></span>
		The <b>if</b> BPEL 2.0 activity has been added and the corresponding switch activity removed.
		 <div class="screenshot">
		   <img id="foreach" src="img/if-activity.png"/>
		</div>
		</p>

		<p>
		<span class="feature"></span>
		The <b>compensateScope</b> BPEL 2.0 activity has been added.
		 <div class="screenshot">
		   <img id="compensateScope" src="img/compensateScope.gif"/>
		</div>
		</p>
		
		<p>
		<span class="feature"></span>
		A integrated WSIL browser has been added to help you discover web services
		available for integration using BPEL. You should be able to plugin in your
		own WSIL documents for viewing as well.
		
		<ul style="margin-left: 20px;">
		  <li> WSIL <a href="javascript:void(setImage('wsilb','img/wsil-preferences.png'))">preferences</a> in
		   Eclipse Preferences </li>
		  <li> WSIL <a href="javascript:void(setImage('wsilb','img/wsil-browser.png'))">browser</a> in
		  import dialog. </li>
		</ul>		
		<div class="screenshot">
		   <img id="wsilb" src="img/wsil-preferences.png" />
		</div>		
		</p>
		
		<p>
		<span class="feature"></span>
        You can copy/cut/paste from one BPEL editor instance to another. 
        You can copy entire sections of BPEL code. Multiple selections also work. 
        You can also copy variables, partner links, etc and paste them in the right
        location.
        
        <p>
        Everything that you <i>copy</i> also appears in source form in the system clipboard.
        The reverse is also true. You can paste BPEL source code from the clipboard to the 
        visual editor "where it makes sense". Now if you see any BPEL code anywhere, you can
        clip it, and paste into the editor "where it makes sense".
        <p>
        Try pasting this little nuggest "some place".
        <pre class="code">
 &lt;sequence name="main"
    xmlns:ns="http://eclipse.org/bpel/sample" xmlns:ns0="http://www.xmethods.net/sd/CATrafficService.wsdl"&gt;
    &lt;receive name="receiveInput" operation="initiate"
        partnerLink="client" portType="ns:Traffic2" variable="input"/&gt;
    &lt;assign name="Assign" validate="no"&gt;
        &lt;copy&gt;
            &lt;from part="payload" variable="input"&gt;
                &lt;query&gt;&lt;![CDATA[/tns:input]]&gt;&lt;/query&gt;
            &lt;/from&gt;
            &lt;to part="hwynums" variable="trafficRequest"/&gt;
        &lt;/copy&gt;
    &lt;/assign&gt;
    &lt;invoke inputVariable="trafficRequest" name="Invoke"
        operation="getTraffic" outputVariable="trafficResponse"
        partnerLink="traffic" portType="ns0:CATrafficPortType"/&gt;
    &lt;assign name="Assign1" validate="no"&gt;
        &lt;copy&gt;
            &lt;from part="return" variable="trafficResponse"/&gt;
            &lt;to part="return" variable="trafficResponse"/&gt;
        &lt;/copy&gt;
    &lt;/assign&gt;
    &lt;invoke inputVariable="output" name="callbackClient"
        operation="onResult" partnerLink="client" portType="ns:Traffic2Callback"/&gt;
&lt;/sequence&gt;

        </pre>
		 <div class="screenshot">
		   <img id="ns" src="img/wsil-browse.gif"/>
		</div>
		</p>
		       	
		       	
		<p>
		<span class="feature"></span>
        Namespaces,namespaces, namespaces. To migrate closer to 2.0 compliance we have
        moved to 2.0 proposed namespaces for BPEL, PartnerLinks, VariableProperties.
        Also, the templates are using the new namespaces as well.
		 <div class="screenshot">
		   <img id="ns" src="img/namespaces-2.0.png"/>
		</div>
		</p>
		
		<p>
		<span class="feature"></span>
        UI Support for documentation elements had been added. 
		 <div class="screenshot">
		   <img id="ns" src="img/documentation.png"/>
		</div>
		</p>
		
		<p>
		<span class="feature"></span>
        UI Support for variable initialization had been added. Variable initialization is 2.0
        BPEL feature and takes on the form of a virtual copy rule.
		 <div class="screenshot">
		   <img id="ns" src="img/variable-initialization.png"/>
		</div>
		</p>


		<p>
		<span class="feature"></span>
		We have spent some time cleaning out bugs and are hoping to get the count closer to 0
		in the future. 
		<ul style="margin-left: 20px;">
		 <li> Bugs <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=Technology&product=BPEL&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&samp;tatus_whiteboard=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">fixed so far</a>. </li>
		 <li> Bugs <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=specific&order=relevance+desc&bug_status=__open__&product=BPEL">still needing fixing.</a> </li>
		</ul>
				
		</p>
		
		
		<p>
		<span class="feature"></span>
		While not an official part of the release, the folks from the Univ. of London
		had implemented	their own Active BPEL runtime for the editor. More on this here:
		 
		 <a href="http://sse.cs.ucl.ac.uk/omii-bpel/docs/userguide.html">http://sse.cs.ucl.ac.uk/omii-bpel/docs/userguide.html</a>
					
		</p>
		
	</div>
</div>


EOHTML;


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