<!-- modeled after jdt/core/r3.6/plan.html -->
<script type="text/javascript">
<!--
function linkifyBugs() {
	// Replaces plain text 'bug xyz' by a link to Eclipse's bugzilla.
	traverseLinkifyBugs(document.getElementsByTagName("body")[0]);
}
function nextNode(node) {
	if (node.nextSibling) {
		return node.nextSibling;
	} else if (node.parentNode == document.getElementsByTagName("body")[0]) {
		return null;
	} else {
		return nextNode(node.parentNode);
	}
}
function traverseLinkifyBugs(node) {
	while (node) {
		if (node.nodeType == 1/*element*/ && node.nodeName == "a") {
			node= nextNode(node);
			
		} else if (node.childNodes != null && node.childNodes.length > 0) {
			node= node.childNodes[0];
			
		} else if (node.nodeType == 3/*text*/) {
			var txt= node.data;
			var regex= /([Bb]ug\s*)([0-9]+)/;
			var res= regex.exec(txt);
			if (res) {
				var matchStart= txt.indexOf(res[0]);
				
				var beforeNode= document.createTextNode(txt.substring(0, matchStart));
				node.parentNode.insertBefore(beforeNode, node);
				
				var linkNode= document.createElement("a");
				linkNode.href= "https://bugs.eclipse.org/bugs/show_bug.cgi?id=" + res[2];
				linkNode.appendChild(document.createTextNode(res[1] + res[2]));
				node.parentNode.insertBefore(linkNode, node);
				
				node.data= txt.substr(matchStart + res[0].length);
				// continue with current (shortened) node...
			} else {
				regex= /(CQ\s*)([0-9]+)/;
				res= regex.exec(txt);
				if (res) {
					var matchStart= txt.indexOf(res[0]);
					
					var beforeNode= document.createTextNode(txt.substring(0, matchStart));
					node.parentNode.insertBefore(beforeNode, node);
					
					var linkNode= document.createElement("a");
					linkNode.href= "https://dev.eclipse.org/ipzilla/show_bug.cgi?id=" + res[2];
					linkNode.appendChild(document.createTextNode(res[1] + res[2]));
					node.parentNode.insertBefore(linkNode, node);
					
					node.data= txt.substr(matchStart + res[0].length);
					// continue with current (shortened) node...
					node= nextNode(node);
				} else {
					node= nextNode(node);
				}
			}			
		} else {
			node= nextNode(node);
		}
	}
}

function showHiddenWork() {
	// Open this document with an URL ending in ?work, and the "work" class becomes visible. 
	if (window.location.search == "?work") {
		var spans= document.getElementsByTagName("span")
		for (var i in spans) {
			var s= spans[i];
			if (s.className == "work") {
				s.style.visibility= "visible";
				s.insertBefore(document.createTextNode("\u00a0"), s.firstChild);
				s.insertBefore(document.createTextNode("\u00a0"), s.lastChild.nextSibling);
			}
		};
	}
}

//-->
</script>
	<!-- just for local rendering, path does not work on the server (see also plan.php) -->
	<link rel="stylesheet" type="text/css" href="../css/plan.css"/>
</head>
<body onload="linkifyBugs();showHiddenWork();">

    <p>Last updated 2010/05/07</p>

    <p>This is the old plan of the 0.7 stream. For current planing see <a href="http://www.eclipse.org/projects/project-plan.php?projectid=tools.objectteams">this plan</a>.</p>

<table class="plan" border="0" cellspacing="5" cellpadding="2" width="100%" >
  <tr><td class="heading" colspan="4" width="100%">
				<a name="Migration"></a>Migration to Eclipse.org
	  </td>
  </tr>
  <tr> 
    <td width="100%"> 
      
        <p style="margin-top:5px;">
        	This section describes the planned actions while migrating from <a href="http://www.objectteams.org"><b>objectteams.org</b></a> to 
        	<a href="http://www.eclipse.org/objectteams/"><b>eclipse.org</b></a>.
        </p>
        <ul>
        <li><h4>Wrap up at Objectteams.org</h4>
			<p>
				While moving from objectteams.org to eclipse.org the following consolidation shall happen at objectteams.org:
				<ul>
					<li class="priority"><span class="ok">Release OTDT 1.4.0M3 (release candidate).</span></li>
					<li class="priority"><span class="ok">Graduate 1.4.0M3 to 1.4.0 final if no significant problems are reported.</span><br/>
						This is to be the final release from objectteams.org.</li>
					<li class="priority"><span class="ok">Create a page on objectteams.org explaining the move (rationale and impact).</span> 
						Done, see <a href="http://www.objectteams.org/migrating.html">here</a>.</li>
					<li class="priority"><span class="ok">Mark all pages as frozen with a link to the new content.</span></li>
				</ul>
			</p>
		</li>
		<li><h4>Populate www.eclipse.org/objectteams (plus Wiki)</h4>
			<ul>
				<li class="priority"><span class="ok">Fill static structure with all necessary information and links.</span></li>
				<li><span class="ok">Migrate wiki content</span> (OT/J syntax highlighting is available now).
				<ul>
					<li><span class="ok">Toplevel documentation (OT/J, OTDT, OT/Equinox)</span></li>
					<li><span class="ok">Examples</span></li>
					<li><span class="ok">Patterns</span></li>
					<li><span class="ok">Misc (howtos, history, statistics)</span></li>
				</ul></li>
			</ul>
		</li>
        <li><h4>Migrate the code</h4>
        	<ul>
        		<li class="priority"><span class="ok">Refactor package structure (<code>org.objectteams</code> -&gt; <code>org.eclipse.objectteams</code>)</span></li>
        		<li><span class="ok">Refactor usage of BCEL to work with bundle from Orbit instead of patched and re-packaged variant</span></li>
        		<li class="priority"><span class="ok">Submit code for <a href="#IP_analysis">IP analysis</a></span>.</li>
        		<li class="priority"><span class="ok">Upload code to svn</span></li>
        		<li class="priority"><span class="ok">Migrate/install build infrastructure on build.eclipse.org</span></li> 
        	</ul>
        </li>
        <li><h4>Migrate trac content</h4>
        	<ul>
        		<li><span class="progress">Migrate issues from <a href="http://trac.objectteams.org">trac.objectteams.org</a> to bugzilla.</li>
        		<li><span class="glass">Investigate what other content should be migrated (e.g. issue queries).</span></li> 
        	</ul>
        </li>
		</ul>
	</td>
  </tr>
  <tr><td class="heading" colspan="4" width="100%">
				<a name="Releases"></a>Releases
	  </td>
  </tr>
  <tr>
	<td>
  		<p style="margin-top:5px;">See also the official <a href="http://www.eclipse.org/projects/project-plan.php?projectid=tools.objectteams">Project Plan</a>.
		<ul>
		<li><h4>Release 0.7.0 M1</h4>
			<ul>
				<li class="priority"><span class="ok"><a name="IP_analysis">Initiate the parallel IP process</a></span>.<ul>
        			<li><span class="ok">CQ 3784 [Object Teams Initial Contribution]</span> (approved)</li>
        			<li><span class="ok">CQ 3786 [Object Teams Runtime Environment]</span> (approved)</li>
        			<li><span class="ok">CQ 3793 [Object Teams Examples (initial contribution)]</span> (approved)</li>
        			<li><span class="ok">CQ 3805 [BCEL.Jar Version: 5.2 (PB CQ88) (using Orbit CQ1933)]</span> (approved)</li>
        			<li><span class="ok">CQ 3806 [XHTML DTDs Version: Versions 1.0 and 1.1 (PB CQ2044)]</span> (approved)</li>
        			</ul></li>
				<li class="priority"><span class="ok">Test, debug and build after the migration.</span></li>
				<li class="priority"><span class="ok">Released on April 25</li>
			</ul>
		<li><h4>Release 0.7.0 M2</h4>
			<ul>
				<li class="priority"><span class="ok">Released together with Helios M7 on May 7.</span></li>
			</ul>
		<li><h4>Release 0.7.0 M3</h4>
			<ul>
				<li class="priority"><span class="ok">Compatible with Helios RC2 and RC3, released on May 31.</span></li>
			</ul>
		<li><h4>Release 0.7.0 M4</h4>
			<ul>
				<li class="priority"><span class="ok">Compatible with Helios &ge;RC4, released on June 11.</span></li>
			</ul>
		<li><h4>Release 0.7.0</h4>
			<ul>
				<li class="priority"><span class="ok">Final release in this stream, released on July 7.</span></li>
			</ul>
		<li><h4>Release 2.0.0</h4>
			<ul>
				<li class="priority">Release after graduation tentatively scheduled for February 25, 2011 (together with Helios SR2)</li>
			</ul>
		</li>
		</ul>
	</td>
  </tr>
  <tr> 
    <td width="100%"> 
</table>
<table border="0" cellpadding="2" cellspacing="5" width="100%"><tbody>
	<tr><td  class="heading" colspan="4" width="100%">
			Legend
		</td>
	</tr>
	<tr>
		<td valign="middle"><span class="progress"></span></td>
		<td width="50%">item is under development.</td>
		<td valign="top"><span class="glass"</span></td>
		<td width="50%">item is under investigation.</td>
	</tr>
	<tr>
		<td valign="middle"><span class="ok"></span></td>
		<td width="50%">item is finished.</td>
		<td valign="top">( )</td>
		<td width="50%">item is time permitted.</td>
	</tr>
	<tr>
		<td valign="middle"><font class="indexsub" color="#8080ff">[xyz]</font></td>
		<td width="50%">item is deferred (&gt;) from xyz or continues in xyz.</td>
		<td valign="middle"><font class="indexsub"><span class="new"></span></font></td>
		<td width="50%">new</td>
	</tr>
	</tbody>
</table>