<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Project Plan - modeling.m2t</title><meta name="author" content="Bjorn Freeman-Benson" />
<meta name="keywords" content="" /><link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/small.css" title="small" /><link rel="alternate stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/large.css" title="large" /><link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/visual.css" media="screen" /><link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/layout.css" media="screen" />
<!--[if IE]> 	<link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/ie_style.css" media="screen"/> <![endif]-->
<!--[if IE 6]> 	<link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/ie6_style.css" media="screen"/> <![endif]-->
<link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/print.css" media="print" />
<link rel="stylesheet" type="text/css" href="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/css/header.css" media="screen" />
<script type="text/javascript" src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/styleswitcher.js"></script>
</head>
<body>
<div id="header">
	<div id="header-graphic" class="eclipse-main">
		<a href="http://www.eclipse.org/"><img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/eclipse_home_header.jpg" alt="" /></a><h1>Eclipse</h1>	
	</div>
	<div id="header-global-holder" class="eclipse-main-global">
		<div id="header-global-links"><ul>
<li><a href="http://www.eclipse.org/org/foundation/contact.php" class="first_one">Contact</a></li><li><a href="http://www.eclipse.org/legal/">Legal</a></li>
			</ul>
		</div>
		<div id="header-icons">
<a href="http://www.youtube.com/user/EclipseFdn" target="_blank"><img src="/eclipse.org-common/themes/Phoenix/images/Icon_Live.png" width="28" height="28" alt="Eclipse YouTube Channel" title="Eclipse YouTube Channel" /></a>
<a href="http://www.eclipseplugincentral.com"><img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/Icon_plugin.png" width="28" height="28" alt="Eclipse Plugin Central" title="Eclipse Plugin Central" /></a>
<a href="http://www.planeteclipse.org"><img src="http://www.eclipse.org/eclipse.org-common/themes/Phoenix/images/Icon_planet.png" width="28" height="28" alt="Planet Eclipse" title="Planet Eclipse" /></a>
		</div>
	</div></div><div id="header-menu"><div id="header-nav">
		<ul>
		<li><a class="first_one" href="http://www.eclipse.org/" target="_self">Home</a></li> 
				<li><a  href="http://www.eclipse.org/users/" target="_self">Users</a></li> 
				<li><a  href="http://www.eclipse.org/membership/" target="_self">Members</a></li> 
				<li><a  href="http://www.eclipse.org/committers/" target="_self">Committers</a></li> 
				<li><a  href="http://www.eclipse.org/downloads/" target="_self">Downloads</a></li> 
				<li><a  href="http://www.eclipse.org/resources/" target="_self">Resources</a></li> 
				<li><a  href="http://www.eclipse.org/projects/" target="_self">Projects</a></li> 
				<li><a  href="http://www.eclipse.org/org/" target="_self">About Us</a></li> 
				</ul>
	</div>
	<div id="header-utils">
		<form action="http://www.google.com/cse" id="searchbox_017941334893793413703:sqfrdtd112s">
	 	<input type="hidden" name="cx" value="017941334893793413703:sqfrdtd112s" />
  		<input type="text" name="q" size="25" />
  		<input type="submit" name="sa" value="Search" />
		</form>
		<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_017941334893793413703%3Asqfrdtd112s&lang=en"></script>		<ul>
						<li class="text_size"><a class="smallText" title="Small Text" href="#" onclick="setActiveStyleSheet('small');return false;">A</a> <a class="largeText" title="Large Text" href="#" onclick="setActiveStyleSheet('large');return false;">A</a></li>
		</ul>
	</div></div><div id="leftcol">
<ul id="leftnav">
<li style="background-image: url(/eclipse.org-common/themes/Phoenix/images/leftnav_fade.jpg); background-repeat: repeat-x; border-style: none;"><br /><br /><br /><br /><br /><br /><br /><br />
</li>
</ul>

</div>
<div id="container"><style>
h2 {
	border-bottom: 2px solid gray;
}
h3 {
	border-bottom: 1px dotted gray;
}
</style>
<div xmlns="http://www.w3.org/1999/xhtml" id="rendered-plan">
  <div id="maincontent">
    <div id="midcolumn"><h1><span style="font-size: 140%">Project Plan For
                        <a href="http://www.eclipse.org/projects/project_summary.php?projectid=modeling.m2t">Model To Text (M2T)</a></span>, version 0.7.0</h1><div id="toc"><p><a name="toc"><strong>Table of Contents</strong></a></p><ul><li><a href="#introduction">Introduction</a></li><li><a href="#release_deliverables">
                       Release Deliverables
                    </a></li><li><a href="#release_milestones">
                       Release Milestones
                    </a></li><li><a href="#target_environments">
                        Target Environments
                    </a></li><li><a href="#compatibility">
                        Compatibility with Previous Releases
                    </a></li><li><a href="#themes_and_priorities">
                        Themes and Priorities
                    </a></li></ul></div><h2><a name="introduction">Introduction</a></h2><div>
     This document lays out the feature and API set for the 1.0.0 release of the M2T MTL project.  
     The MTL component is an open source component under the Eclipse Modeling / Model-To-Text (M2T) project.
     Its primary goal is to provide an implementation of the MOF Model-To-Text OMG standard. 
     </div><h2><a name="release_deliverables">Release Deliverables</a></h2><p>
    The release deliverables have the same form as is found in most Eclipse projects, namely:
	<ul>
		<li>M2T MTL SDK (includes runtime and tooling components, with sources, examples, and documentation) (downloadable and update site).</li>
		<li>M2T MTL runtime binary distribution (downloadable and update site).</li>
		<li>M2T MTL examples (downloadable and update site)</li>
		<li>M2T MTL tests (downloadable and update site)</li>
	</ul>
	</p><p><a href="#toc">Table of Contents</a></p><h2><a name="release_milestones">Release Milestones</a></h2><div>
         The implementation will be compliant with the core feature compliance level of the MOF Model-To-Text OMG language to start with (Galileo), then with the advanced feature compliance.
         A first stable version (0.7) will be available in 2008 and MTL 1.0 will synchronize its release milestones with the Galileo release schedule.
         </div><table border="1" align="center"><tr><td><b>0.7RC1</b></td><td>9/17/2008</td><td><div>optional html</div></td></tr><tr><td><b>0.7RC2</b></td><td>10/6/2008</td><td><div>optional html</div></td></tr><tr><td><b>0.7</b></td><td>10/13/2008</td><td><div>optional html</div></td></tr><tr><td><b>1.0M4</b></td><td>12/29/2008</td><td><div>optional html</div></td></tr><tr><td><b>1.0M5</b></td><td>2/6/2008</td><td><div>optional html</div></td></tr><tr><td><b>1.0M6</b></td><td>3/18/2008</td><td><div>optional html</div></td></tr><tr><td><b>1.0M7</b></td><td>5/5/2008</td><td><div>optional html</div></td></tr><tr><td><b>1.0RC1</b></td><td>5/19/2008</td><td><div>optional html</div></td></tr><tr><td><b>1.0RC2</b></td><td>5/26/2008</td><td><div>optional html</div></td></tr><tr><td><b>1.0RC3</b></td><td>6/2/2008</td><td><div>optional html</div></td></tr><tr><td><b>1.0RC4</b></td><td>6/9/2008</td><td><div>optional html</div></td></tr><tr><td><b>1.0RC5</b></td><td>6/16/2008</td><td><div>optional html</div></td></tr><tr><td><b>1.0</b></td><td>6/26/2009</td><td/></tr></table><div/><p><a href="#toc">Table of Contents</a></p><h2><a name="target_environments">Target Environments</a></h2><div>
     The MTL project depends upon on the Platform and other projects, which are mostly "pure" Java.
     MTL will be available on Eclipse Ganymede and Galileo. 
     EMF is used by the MTL execution engine for accessing the models. 
     The MDT-OCL component is reused to edit, parse, and interpret OCL as a sub-language of MTL. 
     MTL will target the same Java version as EMF, which currently requires Java 5.
     Eclipse Platform SDK 3.5 will be tested and validated on a number of reference platforms. 
     MTL will be tested and validated against a subset of those listed for the platform. 
     </div><h3>Internationalization</h3>
          <div>None of the MTL deliverables are internationalized</div>
     <p><a href="#toc">Table of Contents</a></p><h2><a name="compatibility">Compatibility with Previous Releases</a></h2><div>
       This is the first eclipse release of MTL.
       The MTL 1.0 version will be compatible with the 0.7 version.
       </div><p><a href="#toc">Table of Contents</a></p><h2><a name="themes_and_priorities">Themes and Priorities</a></h2><div/><h3>Core feature compliance</h3><ul>
        <li>Standalone Component.</li>
        <li>Core feature compliance level of the MOF Model-To-Text language.</li>
        <li>Template and Query support.</li>
		<li>Text explicit mode : first MTL syntax support.</li>
		<li>How to package a module?</li>
		<li>MTL Runtime library.</li>
			</ul><h3>Eclipse IDE components</h3><ul>
        <li>Eclipse Builder with error detection and error marking.</li>
        <li>Template editor with code completion and syntax highlighting.</li>
        <li>Export a generator as a plugin wizard.</li>
        <li>Debugger.</li>
        <li>Documentation.</li>
        <li>Traceability information : MTL Reflective editor to show the synchronization between the code and the model.</li>
        	</ul><h3>Integration with other Eclipse Tools</h3><ul>
	    <li>Workflow facilities for MTL.</li>
	    <li>Compatibility with QVTo.</li>
	    	</ul><h3>Advanced feature compliance</h3><ul>
        <li>Advanced feature compliance level of the MOF Model-To-Text language.</li>
        <li>Macro support.</li>
        <li>Code explicit mode : second MTL syntax support.</li>
        	</ul><h3>Examples</h3><p><a href="#toc">Table of Contents</a></p></div>
  </div>
</div>
<div style="visibility: hidden; float: right; text-align: right"><a href="?projectid=modeling.m2t&raw=1">view raw xml of project plan</a><br>
<a href="http://www.eclipse.org/projects/dev_process/project-status-infrastructure.php">from project meta-data key "projectplanurl"</a></div>

</div> <!-- midcolumn -->
</div> <!-- maincontent -->
		<script type="text/javascript">
		var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
		document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
		</script>
		<script type="text/javascript">
		var pageTracker = _gat._getTracker("UA-910670-2");
		pageTracker._initData();
		pageTracker._trackPageview();
		</script></div><div id="footer">
<ul id="footernav">
<li class="first"><a href="http://www.eclipse.org/">Home</a></li>
<li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
<li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a><a href="http://www.eclipse.org/org/press-release/20081112_termsofuse.php"><img src="http://www.eclipse.org/images/updated.png" align="absmiddle" /></a></li>
</ul>
<p>Copyright &copy; 2008 The Eclipse Foundation. All Rights Reserved</p>
</div></body></html>