| <!-- saved from url=(0022)http://internet.e-mail --> |
| <!doctype html public "-//w3c//dtd html 4.0 transitional//en"> |
| |
| <html> |
| |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> |
| <meta name="Author" content="Eclipse Project PMC"> |
| <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> |
| <meta name="ProgId" content="FrontPage.Editor.Document"> |
| <title>Eclipse Project Draft 3.1 Plan</title> |
| <link rel="stylesheet" href="../../default_style.css" type="text/css"> |
| </head> |
| |
| <body> |
| |
| <h1>Eclipse Project<br> |
| DRAFT 3.1 Plan</h1> |
| <p>Last revised 11:30 EST February 14, 2005 (<img border="0" src="new.gif" width="12" height="12"> |
| marks interesting changes since the <a href="eclipse_project_plan_3_1_20041214.html">draft |
| of Dec. 14, 2004</a>)<br> |
| <br> |
| <i> Please send comments about this draft plan to the </i><a href="mailto:eclipse-dev@eclipse.org">eclipse-dev@eclipse.org</a> |
| <i>developer mailing list.</i></p> |
| <p>This document lays out the feature and API set for the next feature release |
| of Eclipse after 3.0, designated release 3.1. |
| <ul> |
| <li><a href="#Deliverables">Release deliverables</a></li> |
| <li><a href="#Milestones">Release milestones</a></li> |
| <li><a href="#TargetOperatingEnvironments">Target operating environments</a></li> |
| <li><a href="#Compatibility">Compatibility with previous releases</a></li> |
| <li><a href="#Platform">Eclipse Platform project</a></li> |
| <li><a href="#JDT">Java development tools (JDT) project</a></li> |
| <li><a href="#PDE">Plug-in development environment (PDE) project</a></li> |
| </ul> |
| <p>Plans do not materialize out of nowhere, nor are they entirely static. To |
| ensure the planning process is transparent and open to the entire Eclipse |
| community, we (the Eclipse PMC) post plans in an embryonic form and revise them |
| throughout the release cycle. |
| <p>The first part of the plan deals with the important matters of release |
| deliverables, release milestones, target operating environments, and |
| release-to-release compatibility. These are all things that need to be clear for |
| any release, even if no features were to change. |
| <p>The remainder of the plan consists of plan items for the three projects under |
| the Eclipse top-level project. Each plan item covers a feature or API that is to be added to |
| Eclipse, or some aspect of Eclipse that is to be improved. Each plan item has |
| its own entry in the Eclipse bugzilla database, with a title and a concise |
| summary (usually a single paragraph) that explains the work item at a suitably |
| high enough level so that everyone can readily understand what the work item is |
| without having to understand the nitty-gritty detail. |
| <p>Not all plan items represent the same amount of work; some may be quite |
| large, others, quite small. Some plan items may involve work that is localized |
| to a single Platform component; others may involve coordinated changes to |
| several components; other may pervade the entire Platform. Although some plan |
| items are for work that is more pressing that others, the plan items appear in |
| no particular order. |
| <p>With the previous release as the starting point, this is the plan for how we |
| will enhance and improve it. Fixing bugs, improving test coverage, |
| documentation, examples, performance tuning, usability, etc. are considered routine |
| ongoing maintenance activities and are not included in this plan unless they |
| would also involve a significant change to the API or feature set, or involve a |
| significant amount of work. The intent of the plan is to account for all interesting feature work. |
| <p>The current status of each plan item is noted: |
| <ul> |
| <li><b>Committed</b> plan item - A committed plan item is one that we have |
| decided to address for the release.</li> |
| <li><b>Proposed</b> plan item - A proposed plan item is one that we are |
| considering addressing for the release. Although we are actively |
| investigating it, we are not yet in a position to commit to it, or to say |
| that we won't be able to address it. After due consideration, a proposal |
| will either be committed or deferred.</li> |
| <li><b>Deferred</b> plan item - A reasonable proposal that will not make it in |
| to this release for some reason is marked as deferred with a brief note as |
| to why it was deferred. Deferred plan items may resurface as committed plan |
| items at a later point.</li> |
| </ul> |
| <h2><a name="Deliverables"></a>Release deliverables</h2> |
| <p>The release deliverables have the same form as previous releases, namely: |
| <ul> |
| <li>Source code release for Eclipse Project, available as versions tagged |
| "R3_1" in the Eclipse Project <a href="http://dev.eclipse.org/viewcvs/">CVS |
| repository</a>.</li> |
| <li>Eclipse Project SDK (includes runtime binary and SDK for Platform, JDT, |
| and PDE) (downloadable).</li> |
| <li>Eclipse Platform runtime binary and SDK distributions (downloadable).</li> |
| <li>Eclipse RCP runtime binary and SDK distributions (downloadable).</li> |
| <li>JDT runtime binary and SDK distributions (downloadable).</li> |
| <li>PDE runtime binary and SDK distributions (downloadable).</li> |
| <li>Eclipse SDK Examples (downloadable).</li> |
| <li>SWT distribution (downloadable).</li> |
| </ul> |
| <h2><a name="Milestones"></a>Release milestones</h2> |
| <p>Release milestone occurring at roughly 6 week intervals exist to facilitate |
| coarse-grained planning and staging. The milestones are:</p> |
| <ul> |
| <li>Friday Aug. 13, 2004 - Milestone 1 (3.1 M1) - stable build</li> |
| <li>Friday Sep. 24, 2004 - Milestone 2 (3.1 M2) - stable build</li> |
| <li>Friday Nov. 5, 2004 - Milestone 3 (3.1 M3) - stable build</li> |
| <li>Friday Dec. 17, 2004 - Milestone 4 (3.1 M4) - stable build</li> |
| <li>Friday Feb. 18, 2005 - Milestone 5 (3.1 M5) - stable build</li> |
| <li>Friday Apr. 1, 2005 - Milestone 6 (3.1 M6) - stable build - API complete |
| - API freeze</li> |
| <li>Friday May 13, 2005 - Milestone 7 (3.1 M7) - stable build - feature complete |
| - development freeze - lock down and testing begins</li> |
| </ul> |
| <p>The 3.1 release is targeted for late June 2005. All release deliverables will |
| be available for download as soon as the release has been tested and validated |
| in the target operating configurations listed below.</p> |
| <h2><a name="TargetOperatingEnvironments"></a>Target Operating Environments</h2> |
| <p>In order to remain current, each Eclipse release targets reasonably current |
| versions of the underlying operating environments.</p> |
| <p>Most of the Eclipse SDK is "pure" Java code and has no direct |
| dependence on the underlying operating system. The chief dependence is therefore |
| on the Java 2 Platform itself. The 3.1 release of the Eclipse Project is written |
| and compiled against version 1.4 of the Java 2 Platform APIs, and targeted to |
| run on version 1.4 of the Java 2 Runtime Environment, Standard Edition.</p> |
| <p>There are many different implementations of the Java 2 Platform running atop |
| a variety of operating systems. We focus Eclipse testing on a handful of popular |
| <span class="header">combinations of operating system and Java 2 Platform; these |
| are our <em>reference platforms</em>. Eclipse undoubtedly runs fine in many |
| operating environments beyond the reference platforms we test. However, since we |
| do not systematically test them we cannot vouch for them. Problems encountered |
| when running Eclipse on non-reference platform that cannot be recreated on any |
| reference platform will be given lower priority than problems with running |
| Eclipse on a reference platform.</span></p> |
| <p>Eclipse SDK 3.1 is tested and validated on the following reference platforms |
| (this list is updated over the course of the release cycle):</p> |
| <table width="821" border="1"> |
| <tr bgcolor="#CCCCCC"> |
| <th colspan="4"> |
| <div align="center"> |
| <b><font size="+1">Eclipse Reference Platforms</font></b> |
| </div> |
| </th> |
| </tr> |
| <tr> |
| <td width="205"><b>Operating system</b></td> |
| <td width="76"><b>Processor architecture</b></td> |
| <td width="59"><b>Window system</b></td> |
| <td width="453"><b>Java 2 Platform</b></td> |
| </tr> |
| <tr> |
| <td width="205">Microsoft Windows XP</td> |
| <td width="76">Intel x86</td> |
| <td width="59">Win32</td> |
| <td width="453">Sun Java 2 Standard Edition, version 1.4.2_06 for Microsoft |
| Windows</td> |
| </tr> |
| <tr> |
| <td width="205">Microsoft Windows XP</td> |
| <td width="76">Intel x86</td> |
| <td width="59">Win32</td> |
| <td width="453"> <p>IBM 32-bit SDK for Windows, Java 2 Technology Edition, |
| Version 1.4.2_01</p> |
| </td> |
| </tr> |
| <tr> |
| <td width="205">Microsoft Windows XP</td> |
| <td width="76">Intel x86</td> |
| <td width="59">Win32</td> |
| <td width="453">Sun Java 2 Standard Edition 5.0 for Microsoft Windows</td> |
| </tr> |
| <tr> |
| <td width="205">Red Hat Enterprise Linux WS 3</td> |
| <td width="76">Intel x86</td> |
| <td width="59">GTK</td> |
| <td width="453">Sun Java 2 Standard Edition, 1.4.2_06 for Linux x86</td> |
| </tr> |
| <tr> |
| <td width="205">Red Hat Enterprise Linux WS 3</td> |
| <td width="76">Intel x86</td> |
| <td width="59">GTK</td> |
| <td width="453">IBM 32-bit SDK for Linux on Intel architecture, Java 2 Technology |
| Edition, Version 1.4.2_01</td> |
| </tr> |
| <tr> |
| <td width="205">SLES 9</td> |
| <td width="76">Intel x86</td> |
| <td width="59">GTK</td> |
| <td width="453">Sun Java 2 Standard Edition, version 1.4.2_06 for Linux x86</td> |
| </tr> |
| <tr> |
| <td width="205">SLES 9</td> |
| <td width="76">Intel x86</td> |
| <td width="59">GTK</td> |
| <td width="453">IBM 32-bit SDK for Linux on Intel architecture, Java 2 Technology |
| Edition, Version 1.4.2_01</td> |
| </tr> |
| <tr> |
| <td width="205">Sun Solaris 8</td> |
| <td width="76">SPARC</td> |
| <td width="59">Motif</td> |
| <td width="453">Sun Java 2 SDK, Standard Edition, 1.4.2_06 for Solaris SPARC</td> |
| </tr> |
| <tr> |
| <td width="205">HP HP-UX 11i</td> |
| <td width="76">hp9000<br> |
| PA-RISC</td> |
| <td width="59">Motif</td> |
| <td width="453"><span class="header">HP-UX SDK for the Java 2 platform, version |
| 1.4.2.06 for hp9000 PA-RISC</span></td> |
| </tr> |
| <tr> |
| <td width="205" height="21">IBM AIX 5L Version 5.2</td> |
| <td width="76">PowerPC</td> |
| <td width="59">Motif</td> |
| <td width="453"> <p>IBM 32-bit SDK for AIX, Java 2 Technology Edition, Version |
| 1.4.2</p> |
| </td> |
| </tr> |
| <tr> |
| <td width="205">Apple Mac OS X 10.3</td> |
| <td width="76">PowerPC</td> |
| <td width="59">Carbon</td> |
| <td width="453">Java 2 Standard Edition |
| 1.4.2 for Mac OS X</td> |
| </tr> |
| </table> |
| <p>Although untested, Eclipse should work fine on other OSes that support the |
| same window system. For Win32: Windows 98, ME, NT, 2000, and Server 2003; SWT |
| HTML viewer requires Internet Explorer 5 (or higher). For GTK on other Linux |
| systems: version 2.2.1 of the GTK+ widget toolkit and associated librares (GLib, |
| Pango); SWT HTML viewer requires Mozilla 1.4GTK2. For Motif on other Linux |
| systems: Open Motif 2.1 (included); SWT HTML viewer requires Mozilla 1.4GTK2.</p> |
| <p>An early access version of Eclipse is also available for 64-bit Linux GTK. |
| Testing has been limited to early access 64-bit J2SEs running on AMD64 |
| processors.</p> |
| <p>SWT is also supported on the QNX Neutrino operating system, x86 processor, |
| Photon window system, and IBM J9 VM version 2.0. Eclipse 3.1 on Windows or Linux |
| can be used cross develop QNX applications. (Eclipse 3.1 is unavailable on QNX |
| because there is currently no 1.4 J2SE for QNX.)</p> |
| <h4>Internationalization</h4> |
| <p>The Eclipse Platform is designed as the basis for internationalized products. |
| The user interface elements provided by the Eclipse SDK components, including |
| dialogs and error messages, are externalized. The English strings are provided |
| as the default resource bundles.</p> |
| <p>Latin-1 locales are supported by the Eclipse SDK on all of the above |
| operating environments; DBCS locales are supported by the Eclipse SDK on the |
| Windows, GTK, and Motif window systems; BIDI locales are supported by the |
| Eclipse SDK only on Windows operating environments. |
| <p>The Eclipse SDK supports GB 18030, the new Chinese code page standard, on |
| Windows XP and 2000, and Linux. |
| <p>German and Japanese locales are tested.</p> |
| <h4>BIDI support</h4> |
| <p>SWT fully supports BIDI on Windows (only). On Linux GTK, SWT supports entering |
| and displaying BIDI text. The widget orientation of JFace windows defaults appropriately |
| in BIDI locales on Windows (only).</p> |
| <p>The Eclipse SDK is a development environment targeted at technical professionals |
| - not an end user application. However, the Eclipse SDK tools will permit technical |
| professionals who are working in English to build Hebrew/Arabic end user Java |
| programs which are themselves not based on the Eclipse SDK. The BIDI support |
| in the Eclipse SDK allows a Java programmer to work with BIDI strings, code |
| comments, etc. but the Eclipse SDK itself is not designed to be localized for |
| BIDI locales and its widget orientation can not be changed.</p> |
| <h2><a name="Compatibility"></a>Compatibility with Previous Releases</h2> |
| <h3>Compatibility of Release 3.1 with 3.0</h3> |
| <p>Eclipse 3.1 will be compatible with Eclipse 3.0.</p> |
| <p><b>API Contract Compatibility:</b> Eclipse SDK 3.1 will be upwards |
| contract-compatible with Eclipse SDK 3.0 except in those areas noted in the <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/org.eclipse.platform.doc.isv/porting/eclipse_3_1_porting_guide.html" target="_top"><em>Eclipse |
| 3.1 Plug-in Migration Guide</em></a>. Programs that use affected APIs and extension points |
| will need to be ported to Eclipse SDK 3.1 APIs. Downward contract compatibility |
| is not supported. There is no guarantee that compliance with Eclipse SDK 3.1 |
| APIs would ensure compliance with Eclipse SDK 3.0 APIs. Refer to <i><a href="http://eclipse.org/eclipse/development/java-api-evolution.html">Evolving |
| Java-based APIs</a></i> for a discussion of the kinds of API changes that |
| maintain contract compatibility.</p> |
| <p><b>Binary (plug-in) Compatibility:</b> Eclipse SDK 3.1 will be upwards |
| binary-compatible with Eclipse SDK 3.0 except in those areas noted in the <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/org.eclipse.platform.doc.isv/porting/eclipse_3_1_porting_guide.html" target="_top"><em>Eclipse |
| 3.1 Plug-in Migration Guide</em></a>. Downward plug-in compatibility is not supported. |
| Plug-ins for Eclipse SDK 3.1 will not be usable in Eclipse SDK 3.0. Refer to <i><a href="http://eclipse.org/eclipse/development/java-api-evolution.html">Evolving |
| Java-based APIs</a></i> for a discussion of the kinds of API changes that |
| maintain binary compatibility. |
| <p><b>Source Compatibility:</b> Eclipse SDK 3.1 will be upwards |
| source-compatible with Eclipse SDK 3.0 except in the areas noted in the <a href="http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/org.eclipse.platform.doc.isv/porting/eclipse_3_1_porting_guide.html" target="_top"><em>Eclipse |
| 3.1 Plug-in Migration Guide</em></a>. This means that source files written to use Eclipse |
| SDK 3.0 APIs might successfully compile and run against Eclipse SDK 3.1 APIs, |
| although this is not guaranteed. Downward source compatibility is not supported. |
| If source files use new Eclipse SDK APIs, they will not be usable with an |
| earlier version of the Eclipse SDK. |
| <p><b>Workspace Compatibility:</b> Eclipse SDK 3.1 will be upwards |
| workspace-compatible with Eclipse SDK 3.0 unless noted. This means that |
| workspaces and projects created with Eclipse SDK 3.0 can be successfully opened |
| by Eclipse SDK 3.1 and upgraded to a 3.1 workspace. This includes both hidden |
| metadata, which is localized to a particular workspace, as well as metadata |
| files found within a workspace project (e.g., the .project file), which may |
| propagate between workspaces via file copying or team repositories. Individual |
| plug-ins developed for Eclipse SDK 3.1 should provide similar upwards |
| compatibility for their hidden and visible workspace metadata created by earlier |
| versions; 3.1 plug-in developers are responsible for ensuring that their |
| plug-ins recognize 3.1, 3.0, 2.1, and 2.0 metadata and process it appropriately. |
| User interface session state may be discarded when a workspace is upgraded. |
| Downward workspace compatibility is not supported. A workspace created (or |
| opened) by a product based on Eclipse 3.1 will be unusable with a product based |
| an earlier version of Eclipse. Visible metadata files created (or overwritten) |
| by Eclipse 3.1 will generally be unusable with earlier versions of Eclipse. |
| <p><b>Non-compliant usage of API's</b>: All non-API methods and classes, and |
| certainly everything in a package with "internal" in its name, are |
| considered implementation details which may vary between operating environment |
| and are subject to change without notice. Client plug-ins that directly depend |
| on anything other than what is specified in the Eclipse SDK API are inherently |
| unsupportable and receive no guarantees about compatibility within a single |
| release much less with an earlier releases. Refer to <i><a href="http://www.eclipse.org/articles/Article-API%20use/eclipse-api-usage-rules.html">How |
| to Use the Eclipse API</a></i> for information about how to write compliant |
| plug-ins. |
| <h2>Themes and Priorities</h2> |
| <p><strong><img border="0" src="new.gif" width="12" height="12"> </strong>The |
| changes under consideration for the next release of Eclipse Platform, JDT, and |
| PDE address major themes identified by the Eclipse Requirements Council. (The |
| theme synopses here are cut down versions of the ones in Eclipse Requirements |
| Council: Themes and Priorities dated Dec. 15, 2004 - <a href="http://www.eclipse.org/org/councils/20041215EclipseTPFinalDraft.pdf">pdf)</a>. |
| The themes are not in priority order.</p> |
| <ul> |
| <li><strong><img border="0" src="new.gif" width="12" height="12"> Scaling Up</strong> |
| - This refers to the need for Eclipse to deal with development and deployment |
| on a larger and more complex scale. Increasing complexities arise from large |
| development teams distributed in different locations, large source code bases |
| and fragile build environments that have been developed incrementally over |
| time, the dynamic nature of new source code bases and their interaction with |
| configuration management, and build environments involving many different |
| tools and build rules.</li> |
| <li><strong><img border="0" src="new.gif" width="12" height="12"> Enterprise |
| Ready</strong> - Eclipse should be improved to allow it to be better used |
| by large development organizations.</li> |
| <li><strong><img border="0" src="new.gif" width="12" height="12"> Design for |
| Extensibility: Be a Better Platform</strong> - Within the Eclipse community, |
| many development projects are defining new development platforms on top of |
| the Eclipse Platform. The Eclipse Platform must evolve to better support this |
| type of usage, including providing new common infrastructure and abstraction |
| layers needed by upper platforms and adding APIs to expose existing functionality |
| only available internally so that upper platforms can more readily integrate |
| with and reuse what's already there.</li> |
| <li><b>Rich Client Platform </b>- The Eclipse RCP is a Java-based application |
| framework for the desktop. Building on the Eclipse runtime and the modular |
| plug-in story, it is possible to build applications ranging from command line |
| tools to feature-rich applications that take full advantage of SWT's native |
| platform integration and the many other reusable components that the Eclipse |
| platform provides. This theme includes work to enhance the RCP, and to provide |
| PDE support for developing and deploying RCP-based applications.</li> |
| <li><b>Simple to Use</b> - The Eclipse platform needs to not only provide the |
| features that advanced users demand, but also be something that most users |
| find simple to use. This theme includes ease-of-use reviews of existing features, |
| and work that helps make Eclipse-based products simple to use for users with |
| widely-varying backgrounds and skill sets.</li> |
| <li><b>Appealing to the Broader Community</b> - This theme includes work that |
| grows deeper roots into the various OS-specific communities, spreads Eclipse |
| to additional operating environments, and builds bridges to other open source |
| communities and vertical market segments</li> |
| </ul> |
| <p>In addition, there are a few important Eclipse Platform improvements that do |
| not naturally fit into any of the above themes.</p> |
| Each of the 3 projects under the Eclipse top-level project is covered in its |
| own section: |
| <ul> |
| <li><a href="#Platform">Eclipse Platform project</a></li> |
| <li><a href="#JDT">Java development tools (JDT) project</a></li> |
| <li><a href="#PDE">Plug-in development environment (PDE) project</a></li> |
| </ul> |
| <p>For each project, the items listed reflect new features of Eclipse or areas |
| where existing features will be significantly reworked. Each item indicates |
| the components likely affected by that work item (many items involve coordinated |
| changes to several components). Numbers in parentheses link to bugzilla problem |
| reports for that plan item. |
| <h2><a name="Platform">Eclipse Platform project</a></h2> |
| <p>The Eclipse Platform provides the most fundamental building blocks. Plan |
| items reflect new features of the Eclipse Platform, or areas where existing |
| features will be significantly reworked.</p> |
| <h4>Committed Items (Eclipse Platform project)</h4> |
| <blockquote> |
| <p><strong>Mapping logical views to physical files on disk.</strong> In some |
| cases, multiple distinct objects happen to be stored in a single file, like |
| an archive. Conversely, in other cases, something that is logically a single |
| object is stored across multiple files. This discrepancy between logical and |
| physical creates problems for common operations such as searching, comparing, |
| and versioning, which need to work in the physical realm. Eclipse should support |
| some way of mapping between a logical view and the physical organization of |
| files on disk. [Platform Core, Platform UI, Team] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80396">80396</a> |
| ) [Theme: Design for Extensibility]</p> |
| <p><strong>Large-scale workspaces.</strong> Some large customers have workspaces |
| containing several hundred projects. Scoped builds (added in 3.0) were a step |
| in the right direction towards making these workable. Eclipse needs to provide |
| appropriate support for large workspaces and working sets, and ensure that |
| everything scales properly. [Platform Core; Platform UI; JDT] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=71128">71128</a>) |
| [Theme: Scaling Up]</p> |
| <p><b>Process improvements wrt performance.</b> For 3.1 we should get a firm |
| grip on speed and space performance. To do this we should (1) identify which |
| aspects are critically important performance-wise; (2) establish benchmarks |
| to quantify performance; and (3) look at ways to improve performance. By its |
| nature, it's hard to say in advance what kind of improvements we'll be able |
| to achieve, making it difficult to make performance improvements a release |
| deliverable. Instead, what we need to do for 3.1 is commit to track performance |
| from this point on. We should carry out performance reviews (1) and create |
| benchmarks (2) for every component, and for any critical aspects that span |
| components. Even if we cannot find ways to make significant performance gains |
| (3), the benchmarks are still critical to Eclipse's success to prevent backsliding |
| in the future. The work item is to improve our process with respect to performance. |
| The deliverables are the automated performance tests, the build process that |
| collects and publishes performance data covering all critical aspects of Eclipse, |
| and the commitment to leverage this data to monitor speed and space performance |
| as part and parcel of developing Eclipse. [All Eclipse components] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=71123">71123</a>) |
| [Theme: Scaling Up]</p> |
| <p><b>Overhaul preferences.</b> The way that Eclipse deals with preferences |
| should be improved. The workbench presentation of preferences generally uses |
| a component-oriented hierarchy, which is not always the best choice for users. |
| The UI should present preferences in such a way that users can readily discover |
| them. Some preference settings have scopes (e.g., workspace-wide vs. per project). |
| The UI should help the user to visualize these scopes. For team-wide uniformity, |
| some preferences settings (e.g., compiler options) need to be shared (or imposed) |
| across teams. The UI should also facilitate this. [Platform Core; Platform |
| UI; Text; JDT UI; JDT Core] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=71124">71124</a>) |
| [Theme: Simple to use]</p> |
| <p><b>Improve action contributions.</b> Simplify the programming model for contributing |
| menu and toolbar items to the workbench (and their corresponding appearance |
| and behavior). Improve control over menu definition and item ordering. Allow |
| the selected object in a view to override an action, e.g., Rename menu item |
| on Java element in navigator view resolves to JDT refactoring rename instead |
| of basic file rename. Maintain a strong separation between a command, its |
| handler(s) and its placement(s) in the UI. [Platform UI; Platform Text; JDT |
| UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36968">36968</a>) |
| [Theme: Design for Extensibility]</p> |
| <p><b>Scalability.</b> In cases where either the target machine is resource-constrained, |
| or the number of plug-ins is large, or the size of the workspace is large, |
| the scalability of the Eclipse Platform is especially important. The work |
| involves identifying problematic areas and making changes to improve the scalability. |
| [All components] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80129">80129</a>) |
| [Theme: Scaling Up]</p> |
| <p><b>Improve capabilities.</b> Eclipse 3.0 introduced the notion of capabilities |
| and provided categories for grouping related capabilities. These capabilities |
| are used to simplify the UI by hiding functionality that is not currently |
| relevant to the user. This plan item is to improve this support. The missing |
| features center around a product's ability to successfully support higher-level |
| notions (like user roles) and control when and how capabilities get enabled. |
| [Platform UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80130">80130</a>) |
| [Theme: Simple to use]</p> |
| <p><strong>Ant editor improvements.</strong> Provide the Ant editor with comparable |
| functionality to the Java editor with regard to folding, hyperlink navigation, |
| open declaration, marking occurrences, show external documentation, refactoring, |
| etc. [Ant] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80135">80135</a>) |
| [Theme: Simple to use]</p> |
| <p><strong>Breakpoint improvements. </strong>Simplify debugging with lots of |
| breakpoints: provide different ways to group and organize breakpoints so that |
| they can be enabled/disabled as a unit. [Debug] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80136">80136</a>) |
| [Theme: Scaling Up]</p> |
| </blockquote> |
| <h4>Proposed Items (Eclipse Platform project)</h4> |
| <blockquote> |
| <p><b>Embedding editors and views.</b> Various plug-ins encounter problems when |
| trying to embed editors or views within other workbench parts. For example, |
| the current compare infrastructure requires a plug-in to create a separate |
| text editor for viewing changes between files. This is due to a limitation |
| in the workbench that prevents editors from being embedded inside views or |
| other controls. As a consequence, the compare editor's nested editors don't |
| support the full set of features provided by the corresponding real content-type-specific |
| editor. This represents a major usability problem: the user must switch to |
| the real editor to make changes and then return to the compare view to review |
| the changes. Eclipse should be more flexible in the ways various editors can |
| be used and reused. Improve the UI component model to support nesting of workbench |
| parts. Reduce coupling of parts to particular locations in the workbench, |
| allowing for more flexible UI configurations. [Platform UI, Compare, Platform |
| Text] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=71125">71125</a>) |
| [Theme: Design for Extensibility]</p> |
| <p> <b>Team policies.</b> Teams of developers working together have special |
| needs for ensuring the integrity and consistency of their collective work. |
| For example, they may have policies for things like source file naming, code |
| formatting, or bug report number for change tracking. Eclipse should enable |
| tools that help achieve that integrity and consistency. Eclipse should provide |
| more access points so that complex policies can be suggested, checked, or |
| enforced. [Platform Core; Team] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=71126">71126</a>) |
| [Theme: Enterprise Ready]</p> |
| |
| <p> <b>Generalized undo support.</b> The Platform should define a common command |
| processing framework in order to provide a workbench-wide undo/redo facility. |
| [Platform UI; Platform Text; JDT UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80137">80137</a>) |
| [Theme: Design for Extensibility]</p> |
| <p><b>Content types.</b> The algorithm that the Eclipse Platform uses to determine |
| which editor to open is based on the file's name and simple matching rules. |
| In many cases like XML files this simple approach is not sufficient. The Platform |
| needs to provide a more robust and scalable solution based on the content |
| of the resource. [Platform UI] (<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=37668">37668</a>) |
| [Theme: Design for Extensibility]</p> |
| <p><b>Add critical performance instrumentation.</b> Add support for monitoring |
| performance and detecting problems in performance critical aspects of the |
| Eclipse Platform. Potential critical areas to monitor include the times to: |
| start up a plug-in, open an editor, display a menu, switch perspectives, process |
| an SWT event, process a resource change event, etc. [Platform UI; Platform |
| Core; SWT] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80138">80138</a>) |
| [Theme: Scaling up]</p> |
| <p><b>Initial user experience improvements.</b> Support for Welcome content |
| will be enhanced by a number of improvements: authoring of welcome content |
| will be made easier by providing easy preview of the resulting pages when |
| all the content is composed; whenever possible, help documents will be shown |
| in place to reduce the need to leave the Welcome context; transition to workbench |
| will be made less abrupt with various degrees of welcome still present for |
| the user to return; support for welcome in sophisticated stacked products |
| will be enhanced. [Platform UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80139">80139</a>) |
| [Theme: Simple to use]</p> |
| <p><b>Macro recording and playback.</b> Add a mechanism for recording a sequence |
| of user interface interactions, storing then in a file, and playing them back |
| at a later time. File playback will be made available as an action for the |
| benefit of cheat sheets and active help. [Platform UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80140">80140</a>) |
| [Theme: Simple to use]</p> |
| <p><b>Enhancements for supporting new users.</b> Following on from the work |
| done in Eclipse 3.0, we want to further improve the way Eclipse feels to new |
| users. For example: support for templates (to create projects that do something |
| useful) as well as a set of templates that ship with Eclipse SDK; support |
| for samples (enhancing sample support shipped in 3.0 and making it API); safe |
| mode (a constrained mode of running the workbench - 'training wheels' - where |
| capabilities are restricted in order to prevent common early mistakes); simpler |
| workspace chooser (where do you want your work saved?); more usable perspective |
| chooser with short description, a small image that shows the general perspective |
| layout, perspective groups by role e.g. Java Development. [Platform UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80132">80132</a>) |
| [Theme: Simple to use]</p> |
| <p><b>Help search enhancements.</b> Search will be enhanced in a number of ways. |
| Add the ability to search the workbench UI to find actions, views, perspectives, |
| etc.; to search the web in addition to local documentation; and to collate |
| results from multiple search engines queried in parallel. Improve the presentation |
| of search by exposing Help searches in wizard UI panes, and by making search |
| pervasive in the workbench. [Help, Platform UI, Search] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80131">80131</a>) |
| [Theme: Design for Extensibility; Simple to Use]</p> |
| <p><b>Help system improvements.</b> A number of improvements would be added |
| to the current help system to address the current problems and make help more |
| useful. Improvements include: Allow help content to appear embedded in various |
| places of the workbench (welcome, cheat sheets, help view) as a way to avoid |
| problems caused by having all Help presented in a separate window (this would |
| also entail some rework of the Tasks sections of the Eclipse help books to |
| make them suitable for presentation in a narrow window). Provide a hook |
| from error dialogs into help. [Help] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80141">80141</a>) |
| [Theme: Design for Extensibility; Simple to Use]</p> |
| <p><b>Improve cheat sheet authoring.</b> The goal is to better support authoring |
| of cheat sheets by non-programmers by allowing actions to be recorded as macros |
| to handle 'do it for me' step actions. [Platform UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80142">80142</a>) |
| [Theme: Simple to use]</p> |
| <p><b>Pervasive context help pane.</b> The Platform should provide a reusable |
| pane to show context help for the currently active context. The pane can be |
| used in various places, including views and wizard dialogs. The pane shows |
| additional help on the current context, links to help topics about it, and |
| a quick search entry. [Help, Platform UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80143">80143</a>) |
| [Theme: Simple to use]</p> |
| <p><strong>RCP performance.</strong> Startup time and total space requirements |
| are key elements in the viability of Eclipse as an RCP. In the 3.1 cycle we |
| will focus on these two performance characteristics with the particular goals |
| of: reducing space required internal data structures (e.g., framework state, |
| extension registry, ...); streamlining the startup execution to get to the |
| application code faster; and providing basic support for space-efficient resource |
| bundles. [Platform Core] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80145">80145</a>) |
| [Theme: Rich Client Platform; Scaling Up]</p> |
| <p> <strong>RCP infrastructure.</strong> There are various improvements to the |
| RCP infrastructure to better support a widening range of uses, including: |
| improve support for preconfigured installs; and improve support for API declaration/consumption. |
| Additionally, all RCP-related plug-ins will be updated to use only classes |
| in the J2ME CDC/Foundation profile. [Platform Core; Platform UI; Update; Help] |
| (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80146">80146</a>) |
| [Theme: Rich Client Platform]</p> |
| <p><strong>OSGi. </strong>Eclipse 3.1 will include a compliant implementation |
| of the upcoming OSGi Platform R4 specification. We will also increase the |
| flexibility of the adaptor structure of the OSGi framework in order to make |
| it easier to use the Eclipse OSGi implementation on its own. [Platform Core] |
| (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80147">80147</a>) |
| [Theme: Rich Client Platform]</p> |
| <p><strong>Dynamic plug-ins.</strong> In Eclipse 3.0 it became possible to install |
| and remove plug-ins without restarting the system. In practice this is a cooperative |
| effort requiring the rest of the plug-ins in the system to respond correctly |
| to the changes. Work will be done to increase the runtime support for making |
| plug-ins dynamic-aware, including annotating plug-ins with their dynamic characteristics, |
| changing the registry data structure to use light-weight handles, and provide |
| support for tracking key objects. Other RCP plug-ins will be updated to use |
| these mechanisms. Also, develop reusable coding structures and guidelines |
| for writing dynamic-aware plug-ins. [Platform Core; Platform UI; Platform |
| Text; Update; Help] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80148">80148</a>) |
| [Theme: Rich Client Platform]</p> |
| <p><strong>JNLP Support.</strong> It is convenient to be able to launch a Java-based |
| application from a web browser. There are various technical issues with launching |
| Eclipse using Java Web Start (JNLP). We will ensure that the simple forms |
| of JNLP-based deployment are supported, and will investigate supporting more |
| advanced solutions that could provide a higher level of integration between |
| the Eclipse component model and that of JNLP. [Platform Core] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80149">80149</a>) |
| [Theme: Rich Client Platform]</p> |
| <p><strong>Security.</strong> Support ongoing work in Equinox investigating |
| security. This covers items such as enabling Java 2 security managers, plug-in |
| signing, techniques and mechanisms for authentication and authorization and |
| credential stores as well as end-to-end security of the Platform install. |
| [Platform Core; Platform Update] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37692">37692</a>) |
| [Theme: Rich Client Platform]</p> |
| <p><strong>Support for launcher branding.</strong> A key step in producing an |
| RCP-based product is creating the launcher the user uses to run the product. |
| As a minimum it should have a product-specific name and icon. Currently, constructing |
| such a launcher requires a C compiler and other OS-specific tools. We will |
| investigate providing template launchers which can be instantiated by PDE |
| when assembling a product for a given OS. [SWT; PDE] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80150">80150</a>) |
| [Theme: Rich Client Platform]</p> |
| <p><strong>Ant debugger.</strong> Provide an integrated debugger for Ant build |
| files. [Ant] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80151">80151</a>)</p> |
| <p><strong>Concurrency support for debuggers.</strong> Many debug architectures |
| require communicating with a remote debug target. The debug user interface |
| needs to be robust in the face of latent and unreliable connections. To avoid |
| blocking the user interface, the debug platform will use background jobs to |
| perform operations and communicate with debuggers. [Platform Debug, JDT Debug] |
| (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80152">80152</a>) |
| [Theme: Design for Extensibility]</p> |
| <p><strong>Provide better text editor support for RCP.</strong> The list of |
| functions to add will grow over time. The initial set includes: annotation |
| presentation and navigation, user assigned colors and fonts, spell checking, |
| user defined, persistent folding, quick diff, templates, URL detection and |
| handling. [Platform Text] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80154">80154</a>) |
| [Theme: Rich Client Platform]</p> |
| </blockquote> |
| <h4>Deferred Items (Eclipse Platform project)</h4> |
| <blockquote> |
| <p><i>None at this time.</i></p> |
| </blockquote> |
| <p>(End of items for Eclipse Platform project.)</p> |
| <h2><a name="JDT">Java development tools (JDT) project</a></h2> |
| <p><a href="http://www.eclipse.org/jdt/index.html">Java development tools</a> (JDT) |
| implements a Java IDE based on the Eclipse Platform. The following work items |
| reflect new features of JDT, or areas where existing features will be |
| significantly reworked.</p> |
| <h4>Committed Items (Eclipse JDT project,)</h4> |
| <blockquote> |
| <p><b>Add support for J2SE 5 features. </b>J2SE 5 (also known as JDK 1.5 "Tiger") |
| shipped in September 2004. This release contains <a href="http://download.oracle.com/javase/1.5.0/docs/guide/language/index.html">new |
| Java language features</a>, including generic types, typesafe enumerations, |
| autoboxing, enhanced for loops, static imports, varargs, and annotations. |
| Supporting these new language and compiler features requires major changes |
| to the Eclipse Java compiler, to JDT Core APIs, to JDT UI, and to JDT Debug. |
| Eclipse should contain full support for developing Java programs that use |
| the new language features, including code assist, quick fixes, new wizards, |
| source actions, and refactorings. There should also be quick assists and refactorings |
| for migrating existing Java code to the new language constructs, including |
| inferring type parameters for Collections, and converting simple for loops |
| to use the enhanced for loop. [JDT Core, JDT UI, JDT Text, JDT Debug] (<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=36938">36938</a>) |
| [Theme: Appealing to the Broader Community]</p> |
| <p><strong>Improved compiler checking.</strong> Add support for detecting references |
| to internal classes, add warnings about missing declarations of serialVersionUID, |
| and perform null reference analysis. [JDT Core] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80155">80155</a>)</p> |
| <p><strong>Improve support for externalized strings.</strong> Provide a separate |
| properties file editor, and enhance the Java editor to display the value of |
| and navigate from an NLS key in code and the corresponding entry in the properties |
| file. [JDT Text] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80156">80156</a>)</p> |
| <p><strong>Expose Java editor functionality.</strong> Make functionality currently |
| found in the Java editor available to other plug-ins by pushing it down into |
| Platform Text. This includes hyperlink style navigation, annotation navigation, |
| spell checking, and quick fix infrastructure. [JDT Text; Platform Text] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80157">80157</a>) |
| [Theme: Design for Extensibility]</p> |
| <p><strong>Debugger usability improvements.</strong> Integrate monitor locks |
| into the debug view, show variable values inline, support hyperlink-style |
| navigation from the text of any stack trace. [JDT Debug; Platform Debug] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80158">80158</a>) |
| [Theme: Simple to use]</p> |
| <p><strong>Import/export of Ant build files.</strong> Using information from |
| the javac task in an existing Ant build file, create a Java project, import |
| the source files, and configure the project's build class path. Conversely, |
| from an existing Java project generate an Ant build file that will compile |
| the project's source files. [JDT UI; Ant] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80159">80159</a>) |
| [Theme: Enterprise Ready]</p> |
| </blockquote> |
| <h4>Proposed Items (Eclipse JDT project)</h4> |
| <blockquote> |
| <p><b>Improve program manipulation infrastructure.</b> Parts of the Java model |
| are still implemented in terms of the deprecated JDOM, an early precursor |
| of the AST facility. JDT should move to an AST-based implementation of the |
| Java model. All source and refactoring operations should be rewritten to use |
| common program manipulation infrastructure based on ASTs and AST rewriting. |
| AST creation in the presence of syntax errors should be improved to include |
| partial bindings. The goal is to support statement level recovery in the AST |
| parser. The performance of AST creation should be improved by using a special |
| parser and eliminating one internal layer of ASTs. There should also be better |
| support for navigating between a node in an AST (or an AST binding) and the |
| corresponding element in the Java model (which would benefit views that present |
| type hierarchies). [JDT Core, JDT UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=71129">71129</a>)</p> |
| <p> <strong>Search enhancements.</strong> Provide additional search queries |
| to enable more precise searching; e.g., find where is a exception thrown/caught, |
| match against method parameters in reference searches. [JDT Core, JDT UI] |
| (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=71130">71130</a>)</p> |
| <p><strong>Library projects.</strong> For plug-in development, PDE distinguishes |
| between the plug-in projects you are working on (source plug-in projects) |
| and plug-in projects you are working with but not actually changing (binary |
| plug-in projects). Making this distinction afforts the user the benefits of |
| having full source for everything in their workspace where it's easily browsed |
| and searched, while permitting economies because the latter kind of projects |
| do not actually have to be (re)compiled. This work item is to support a similar |
| notion of library project for Java development in general. The user would |
| be able to flag a Java project as a library project; JDT would know how present |
| library projects appropriately at the UI, and how to deal with them more efficiently |
| using generated binaries. [JDT Core, JDT UI] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80162">80162</a>) |
| [Theme: Design for Extensibility]</p> |
| </blockquote> |
| <h4>Deferred Items (Eclipse JDT project)</h4> |
| <blockquote> |
| <p><i>None at this time.</i></p> |
| </blockquote> |
| <p>(End of items for Eclipse JDT project.) |
| <h2><a name="PDE">Plug-in development environment (PDE) project</a></h2> |
| The <a href="http://www.eclipse.org/pde/index.html">plug-in development |
| environment</a> (PDE) consists of tools for developing plug-ins for the |
| Eclipse Platform. The following work items reflect new features of PDE, or areas |
| where existing features will be significantly reworked. |
| <h4>Committed Items (Eclipse PDE project)</h4> |
| <blockquote> |
| <p><i>None at this time.</i></p> |
| </blockquote> |
| <h4>Proposed Items (Eclipse PDE project)</h4> |
| <blockquote> |
| <p><b>RCP support.</b> PDE currently supports developing Eclipse plug-ins, but |
| is not expressly geared for the specific needs of clients developing applications |
| based on the RCP. PDE should facilitate developing and deploying RCP-based |
| applications. (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=71131">71131</a>) |
| [Theme: Rich Client Platform]</p> |
| <p> <strong>Improved target support.</strong> PDE manages a model of the target |
| Eclipse for which you are developing. These targets may be complex and diverse |
| and switching targets or launch configurations can be expensive. PDE will |
| be extended to support named targets, and automatically track changes to the |
| workspace affecting targets. [PDE] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80163">80163</a>) |
| [Theme: Rich Client Platform]</p> |
| <p><strong>OSGi bundle manifest tooling.</strong> In OSGi, bundles are defined |
| using standard JAR manifest.mf files. PDE 3.0 contains a rudimentary manifest |
| editor. This support will be expanded in 3.1 to include support for import/export |
| package, declarative services, increased dependency validation, and tools |
| for "bundlizing" third-party non-Eclipse JARs. [PDE] (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80165">80165</a>) |
| [Theme: Rich Client Platform]</p> |
| </blockquote> |
| <h4>Deferred Items (Eclipse PDE project)</h4> |
| <blockquote> |
| <p><i>None at this time.</i></p> |
| </blockquote> |
| <h4>(End of items for Eclipse PDE project.)</h4> |
| </body> |
| |
| </html> |