| <!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 (>) 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> |
| </body></html> |