blob: c897d0c40e34c202e1e710acf5bf7a91a5998823 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="GENERATOR" content="Mozilla/4.76 [en] (Windows NT 5.0; U) [Netscape]">
<title>Platform Text 3.5 Plan</title>
<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 {
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>
<!--
<style>
body {
background-image: url('../images/proposal.gif');
background-repeat: repeat-y
}
</style>
-->
<style type="text/css">
.priority {
color: blue;
font-style: italic;
}
.work {
background: lightgreen;
visibility: hidden;
}
</style>
</head><body onload="linkifyBugs();showHiddenWork();" bgcolor="#ffffff" text="#000000">
<table border="0" cellpadding="2" cellspacing="5" width="100%">
<tbody><tr>
<td width="100%">
<p>Last revised $Date: 2008/09/12 05:33:59 $</p>
<p>This plan is under continuous refinement. Please send comments about this plan to the <a href="mailto:jdt-apt-dev@eclipse.org">jdt-apt-dev@eclipse.org</a> developer mailing list.</p>
<h2><a name="Overall_Planning"></a>Overall Goals</h2>
<p>The goals for Eclipse 3.5 for the JDT APT component are as follows.
</p>
<p>
<strong><a name="1"></a>[1] Performance</strong>.
Develop performance tests for the JDT APT component, and use them to guide performance improvements.
</p>
<p>
<strong><a name="2"></a>[2] Reliability</strong>.
Provide APIs for clients where needed and fix critical bugs.
</p>
<p>
<strong><a name="3"></a>[3] Usability</strong>.
Improve the ability to configure annotation processing and troubleshoot failures.
</p>
<h2><a name="Work_Items"></a><br>Work Items</h2>
<p>
This section details the possible work items for Eclipse 3.5 for the JDT APT component
with the [corresponding theme]. The JDT APT component is volunteer-staffed, and not
all items on this list may be achieved without community support.
Some of those items have a <span class="priority">higher priority</span> than others.
</p>
<ul>
<li><h4>Performance tests [<a href="#1">1</a>]</h4>
<ul>
<li class="priority">There are currently no automated performance tests for the JDT APT component. Tests need to be created and integrated into the Eclipse performance
testing framework. Priority will be given to the JSR-269 (Java 6) processing API rather than the com.sun.mirror.apt (Java 5) API, because the latter
is deprecated for future development, but ideally both will be tested.</li>
</ul>
</li>
<li><h4>Performance improvements [<a href="#1">1</a>]</h4>
<ul>
<li>When performance tests are available, it will be possible to profile and improve performance of the annotation processing API. Again, the Java 6 API will be
given priority over the Java 5 API. Note that compilation with APT is inherently slower than compilation without, because annotation processors contain third-party
code that can ask for any type information at any time, and the compiler is not (and should not be) a general-purpose type database; thus, it will only be
appropriate to optimize certain scenarios. Part of this work item will be to determine what those scenarios should be.</li>
</ul>
</li>
<li><h4>Implement unimplemented methods [<a href="#2">2</a>]</h4>
<ul>
<li class="priority">Implementations of some of the JSR269 (Java 6 annotation processing) APIs have been left incomplete, particularly for processors running in the IDE
rather than at the command line (e.g., <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=240264">bug 240264</a>). These methods should be fleshed out with
working implementations.</li>
</ul>
</li>
<li><h4>Monitor annotation-related JSRs [<a href="#2">2</a>]</h4>
<ul>
<li>JSR-305 concerns annotations for software quality monitoring, and JSR-308 concerns annotations in additional locations. It is not currently clear whether
either of these changes will have an effect on the annotation processing API. The JSRs need to be monitored and responded to as necessary.</li>
</ul>
</li>
<li><h4>Improved documentation [<a href="#3">3</a>]</h4>
<ul>
<li class="priority">The JDT APT project web site is out of date and needs to be updated with good instructions on how to use APT, particularly with JSR269
(Java 6) processors (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=213636">bug 213636</a>). Material for this can be drawn from the EclipseCon 2006
tutorial on writing annotation processors.</li>
</ul>
</li>
<li><h4>Improved troubleshooting [<a href="#3">3</a>]</h4>
<ul>
<li>Developing and configuring an annotation processor is a difficult task. The canonical experience is that "nothing happens" when the processor is run.
This is often because of exceptions thrown within the processor, because the processor has not been correctly declared, or because Eclipse is not running
on a JRE of the appropriate level (e.g., running on a Java 5 JRE while trying to execute a Java 6 processor). The tracing options, problem markers, log
entries, and configuration UI all need to be improved to help with this.</li>
</ul>
</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#595791" valign="top" width="100%"><font face="Arial,Helvetica"><font color="#ffffff"><a name="Milestone_Planning_M1">Milestone M1 (2008-08-08)</a></font><a name="Milestone_Planning_M1"></a></font></td>
</tr>
<tr>
<td width="100%">
<h4><img src="plan_files/Adarrow.gif" align="top" border="0" width="16" height="16"> Planning</h4>
<ul>
<li class="priority"><img src="plan_files/ok.gif" border="0" width="10" height="10"> 3.5 planning <span class="work">1d</span></li>
</ul>
<h4><img src="plan_files/Adarrow.gif" align="top" border="0" width="16" height="16"> Permanent Items</h4>
<ul>
<li>bugzilla inbox tracking</li>
<li>bug fixing</li>
<li>increase correctness test coverage</li>
<li>monitor annotation-related JSRs</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#595791" valign="top" width="100%"><font face="Arial,Helvetica"><font color="#ffffff">
<a name="Milestone_Planning_M2">Milestone M2 (2008-09-19)</a></font><a name="Milestone_Planning_M2"></a></font></td>
</tr>
<tr>
<td width="100%">
<h4><img src="plan_files/Adarrow.gif" align="top" border="0" width="16" height="16"> Permanent Items</h4>
<ul>
<li>bugzilla inbox tracking</li>
<li>bug fixing</li>
<li>increase correctness test coverage</li>
<li>monitor annotation-related JSRs</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#595791" valign="top" width="100%"><font face="Arial,Helvetica"><font color="#ffffff">
<a name="Milestone_Planning_M3">Milestone M3 (2008-10-31)</a></font><a name="Milestone_Planning_M3"></a></font></td>
</tr>
<tr>
<td width="100%">
<h4><img src="plan_files/Adarrow.gif" align="top" border="0" width="16" height="16"> Performance [<a href="#1">1</a>]</h4>
<ul>
<li class="priority">develop an approach for performance testing (e.g., how to create a large body of interestingly-annotated
code and correspondingly interesting annotation processors to exercise it with)</li>
</ul>
<h4><img src="plan_files/Adarrow.gif" align="top" border="0" width="16" height="16"> Reliability [<a href="#2">2</a>]</h4>
<ul>
<li class="priority">implement unimplemented JSR269 Filer methods in IDE (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=240264">bug 240264</a>)</li>
</ul>
<h4><img src="plan_files/Adarrow.gif" align="top" border="0" width="16" height="16"> Permanent Items</h4>
<ul>
<li>bugzilla inbox tracking</li>
<li>bug fixing</li>
<li>increase correctness test coverage</li>
<li>monitor annotation-related JSRs</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#595791" valign="top" width="100%"><font face="Arial,Helvetica"><font color="#ffffff">
<a name="Milestone_Planning_M4">Milestone M4 (2008-12-12)</a></font><a name="Milestone_Planning_M4"></a></font></td>
</tr>
<tr>
<td width="100%">
<h4><img src="plan_files/Adarrow.gif" align="top" border="0" width="16" height="16"> Performance [<a href="#1">1</a>]</h4>
<ul>
<li class="priority">develop performance test framework based on plan in M3</li>
</ul>
<h4><img src="plan_files/Adarrow.gif" align="top" border="0" width="16" height="16"> Usability [<a href="#2">2</a>]</h4>
<ul>
<li class="priority">improve APT project web site (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=213636">bug 213636</a>)</li>
</ul>
<h4><img src="plan_files/Adarrow.gif" align="top" border="0" width="16" height="16"> Permanent Items</h4>
<ul>
<li>bugzilla inbox tracking</li>
<li>bug fixing</li>
<li>increase correctness test coverage</li>
<li>monitor annotation-related JSRs</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#595791" valign="top" width="100%"><font face="Arial,Helvetica"><font color="#ffffff">
<a name="Milestone_Planning_M5">Milestone M5 (2009-01-30) - Major/Big Features Done</a></font><a name="Milestone_Planning_M5"></a></font></td>
</tr>
<tr>
<td width="100%">
<h4><img src="plan_files/Adarrow.gif" align="top" border="0" width="16" height="16"> Performance [<a href="#1">1</a>]</h4>
<ul>
<li class="priority">Integrate performance test framework into Eclipse automated perf tests</li>
</ul>
<h4><img src="plan_files/Adarrow.gif" align="top" border="0" width="16" height="16"> Usability [<a href="#3">3</a>]</h4>
<ul>
<li>Make targeted improvements to troubleshooting: how to help users when a processor is doing nothing?</li>
</ul>
<h4><img src="plan_files/Adarrow.gif" align="top" border="0" width="16" height="16"> Permanent Items</h4>
<ul>
<li>bugzilla inbox tracking</li>
<li>bug fixing</li>
<li>increase correctness test coverage</li>
<li>monitor annotation-related JSRs</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#595791" valign="top" width="100%"><font face="Arial,Helvetica"><font color="#ffffff">
<a name="Milestone_Planning_M6">Milestone M6 (2009-03-13) - API Freeze</a></font><a name="Milestone_Planning_M6"></a></font></td>
</tr>
<tr>
<td width="100%">
<h4><img src="plan_files/Adarrow.gif" align="top" border="0" width="16" height="16"> Performance [<a href="#1">1</a>]</h4>
<ul>
<li>Identify key optimization scenarios</li>
<li>Use performance test framework to profile and optimize these scenarios</li>
</ul>
<h4><img src="plan_files/Adarrow.gif" align="top" border="0" width="16" height="16"> Permanent Items</h4>
<ul>
<li>bugzilla inbox tracking</li>
<li>bug fixing</li>
<li>increase correctness test coverage</li>
<li>monitor annotation-related JSRs</li>
</ul>
</td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#595791" valign="top" width="100%"><font face="Arial,Helvetica"><font color="#ffffff">
<a name="Milestone_Planning_M7">Milestone M7 (2009-05-01) - Feature Freeze, Focus on Performance and Polish</a></font><a name="Milestone_Planning_M7"></a></font></td>
</tr>
<tr>
<td width="100%">
<h4><img src="plan_files/Adarrow.gif" align="top" border="0" width="16" height="16"> Permanent Items</h4>
<ul>
<li>bugzilla inbox tracking</li>
<li>bug fixing</li>
<li>increase correctness test coverage</li>
<li>monitor annotation-related JSRs</li>
</ul>
</td>
</tr>
</tbody></table>
<table border="0" cellpadding="2" cellspacing="5" width="100%"><tbody><tr><td colspan="4" align="left" bgcolor="#595791" valign="top" width="100%"><font face="Arial,Helvetica"><font color="#ffffff">Legend
</font></font></td>
</tr>
<tr>
<td valign="center"><img src="plan_files/progress.gif" align="absmiddle" border="0" width="14" height="5"></td>
<td width="50%">item is under development.</td>
<td valign="top"><img src="plan_files/glass.gif" border="0" width="10" height="10"></td>
<td width="50%">item is under investigation.</td>
</tr>
<tr>
<td valign="center"><img src="plan_files/ok.gif" border="0" width="10" height="10"></td>
<td width="50%">item is finished.</td>
<td valign="top">( )</td>
<td width="50%">item is time permitted.</td>
</tr>
<tr>
<td valign="center"><font class="indexsub" color="#8080ff">[xyz]</font></td>
<td width="50%">item is deferred (&gt;) from xyz or continues in xyz.</td>
<td valign="center"><font class="indexsub"><img src="plan_files/new.gif" border="0"></font></td>
<td width="50%">new</td>
</tr>
</tbody>
</table>
<br>&nbsp;
</body></html>