<?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'
	$pageTitle 		= "SMILA - Project Plan";
	$pageKeywords	= "SMILA, Unified Information Access Architecture, unstructured information management, information logistics, semantic web, framework, platform, eclipse, big data, bigdata";
	$pageAuthor		= "Andreas Weber";

	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

	<div id="midcolumn">
		<h1>Project Plan</h1>
		<p>
			All previous releases and milestones are documented in the <a href="plan_archive.php">project plan archive</a>.
		</p>
		<div class="homeitem3col">						
					
			<h3>SMILA Version 1.3</h3>
			<p>
			SMILA 1.3 was released on April 15th 2015. The main new features were:
			</p>
			<ul>			    							
				<li>Solr 4 integration/clustering</li>
				<li>Scripting engine (as BPEL alternative) for synchronous workflows</li>
			</ul>
			
			<h3>Further plans</h3>			
			<ul>
			    <li>Scalable Persistence (ObjectStore) based on HDFS / HBase</li>			    			
			    <li>Search API based on REST/JSON</li>										    			    			    						
				<li>MapReduce support</li>
				<li>General configuration management</li>				
			</ul>
		</div>
	</div>
	  
EOHTML;

	include('rightColumn.php');
	$html .= $rightColumn;

	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
