jdt ui R3.2.x
java development tooling ui

Overall 3.2 Plan
The 3.2 plan below is a proto plan and input from the community is very welcome
Top Items
  • Add support for Java SE 6 features [Java SE 6] [committed]
  • Relax closed world assumption in refactoring [Scaling-Up] [committed]
  • [>3.2] Add support for library projects (like binary projects in PDE) [Scaling-Up] [committed]
  • in progress Continue to measure and improve the performance of key operations
  • Participate in Platform's Logical model integration effort
  • Make JDT/UI *.java agnostic [89977]
  • Continue to improve filtering/grouping functionality to support workspace with lots of projects. [Scaling-Up]
Component Independent
  • [>3.2] Add support for library projects (like binary projects in PDE) [Scaling-Up] [committed]
  • Add a history to Organize Import, Code assist, Quick Fix, Quick Assist... In the case of an element ambiguity (for example java.awt.List versus java.util.List versus org.eclipse.swt.widgets.List when organizing imports) these operations should built a histroy of the selected elements and use that history to sort the elements accordingly. [Simple to Use]
  • Java aware text input fields (camel case navigation, closing bracket) [Simple to Use]
  • Identify code that is better hosted in JDT/Core [Built to Last]
  • Cleanup usages of deprecated code [Built to Last]
Code manipulation
  • Offer to filter for the new @category javadoc tag
  • Code generation operations for hash, equals
  • Improve sort members action: group of fields, disable rearrange of enums, fields and static initializers to preserve semantic.
  • [>3.2] Apply coding conventions (like formatting, organize import, nls, ...) on save, compile or commit. This requires support from Platform/Team, Platform/Text and JDT/Core. [Large-scale]
Quick Fix & Quick Assists
  • Additional quick fixes and quick assists [committed]
  • Investigate how to improve the scalability of quick fix. We have situations where the list of possible quick fixes is getting really long [Simple to Use]
  • Investigate in applying all quick fixes of a certain type all together (fixing all exception problems) (needs support from Platform/UI)
Source Actions
  • Improve TODO comment generation for source actions. Comments should only be generated if users have to look at the generated code.
  • Write more test cases for source actions.
Build path & New Wizard
  • Provide action to link additional source on the source folder build path tab (Benno/Martin)
  • Support choosing a JDK on the new project wizard instead of a compiler compliance level (Benno/Martin)
  • Add "New Source Folder" action to Build Path sub menu (Benno/Martin)
  • Add "New Source Folder" action to the second page of the New Project wizard (Benno/Martin)
Refactoring
  • Relax closed world assumption in refactoring [Scaling Up] [committed]
  • Support grouping/filtering of changes in preview page (for example allow showing all textual changes only) [Simple to Use] [committed]
  • Support pluggable structure creators for the upper pane of the preview page (remove dependency between JDT/UI to internal LTK/UI code). [Built to Last]
  • Performance
    • [>3.2] Convert Generalize Type to new type constraint infrastructure [Built to Last]
    • Refactorings should reuse the shared AST provided by the Java editor where appropriate
  • Improve existing refactorings:
    • Hierarchical package rename
    • Hierarchical delete
    • Hierarchical copy/paste
    • Update similarly named elements on rename (e.g when renaming a type update field names and locals if parts of the name match the type name)
    • [>3.2] Change signature propagation
    • [>3.2] More use of code assist in dialog fields (extract constant, extract method, ...)
    • [>3.2] Extract Method: improve duplicate finding (replace with existing method)
  • API compatibility
    • Support creation of delegate methods to provide API compatibility (change method signature, rename, move, ...)
  • New refactorings
    • [>3.2] Investigate in a refactoring to introduce a type parameter into a non generic class
    • Introduce indirection
    • Extract Superclass
    • Replace Invocations
Package Explorer
  • Support inclusion filters when in hierarchical layout mode (see bug 65240) [committed]
  • Support better grouping mechanisms for referenced libraries (jars) [Large-scale]
  • Investigate to use sync exec instead of async exec to update the package explorer when receiving a Java model delta
Type Hierarchy
  • Improve lock mode for subclasses of generic classes [Simple to Use] [committed]
Search
  • [>3.2] Support searching for code snippets instead of single references or declarations. For example allow searching for all method calls to IRunnableContext#run where the first argument is boolean 'false'. [Large-Scale] [proposed]
  • [>3.2] Investigate in generic rewriting of compilation units based on the result of snippet based searching. For example rewrite all method calls to IRunnableContext#run(false, ?, ?) to IRunnbleContext#run(true, ?, ?). [Large-Scale] [proposed]
JUnit
  • Support for running and implementing JUnit4 test cases.
  • [>3.2] Support for sub packages while executing all tests in a package.
  • Support for JUnit result model. This will allow executing more than one JUnit test and to switch between JUnit results
Browsing
  • Support inclusion filters in packages view when in hierarchical layout mode (see bug 65240) [committed]
  • [>3.2] Investigate in higher level browsing support. For large systems, browsing dependencies on method call level is too fine granular. Dependencies are better visualized on type, package, source folder or project level. [Large-scale]
Navigation
  • [>3.2] Improve Expand Selection (additional sync points: line, ...)
Articles
  • How to use the AST rewrite to manipulate source code
  • How to contribute a quick assist/quick fix
  • How to write your own refactoring
Dependencies
  • Platform/Core:
    • [Support for Logical model integration]: this support might impact the refactoring processor/participant architecture and how the mapping between IResources and language elements is decribed.
    • Snap shotting
    • Allow merge for Copy/Move (see bug 31883, bug 29838)
  • Platform/UI:
    • [Provide more customizable UI]: Depending on the requirements this might impact the way how JDT/UI currently builds the global menu and tool bar as well as the context menus
    • [Provide more support for large scale workspaces]: JDT/UI has currently working set support in the package explorer. If Platform absorbs this concept the JDT/UI and Platform/UI implementation should be alligned.
    • [Improve task assistance in text fields]: JDT/UI has currently its own implementation for content assist in text input fields. This implemenation should be given up in favour of the Platform/UI implementation.
    • Outstanding discussion topics:
      • Universal Navigator
      • Cancellation of label and content provider calls (e.g. cancelling getChildren)
      • Extensible actions and pluggable actions (define rename action for different file extensions and allow participation in rename)
  • Platform/Team:
    • Commit hook to apply code styles
  • Platform/Text
    • Save hook to apply code styles
  • JDT/Core
    • J2SE 6.0 progress
    • Compile hook to apply code styles
    • ISourceManipulation and linked resources (see bug 31456)
Legend
item is under development. item is under investigation.
item is finished. ( ) item is time permitted.
[>3.2] item is deferred. new
M6 Milestone Plan(Feb. 20 - Mar. 31)
General Items
  • Bug fixing
  • Inbox tracking
  • Performance
  • EclipseCon preparation
Refactoring
  • 'Replace Invocations' refactoring (Markus)
  • Refactorings should reuse the shared AST provided by the Java editor where appropriate (Markus)
  • [>3.2] More use of code assist in dialog fields (extract constant, extract method, ...) (Markus)
  • Fix deprecation scripts and quick fix (Tobias)
  • Extract Supertype refactoring (Tobias)
Quick Fix
  • More quick fixes (Benno, Martin)
Source Actions
  • Improve TODO comment generation for source actions. Comments should only be generated if users have to look at the generated code (Tobias)
JUnit
  • Support for running and implementing JUnit4 test cases (Markus)
NLS
  • bring NLS tooling up-to-date (Benno)
Java Views
  • Offer to filter for the new @category javadoc tag (Benno)
  • Decorators for compilation units and class files (Benno)
Logical Model Integration
  • Common Navigator:
    • Participate in Common Navigator discussions and provide feedback for the code (Dirk/Markus)
    • Help Platform/UI to validate the Common Navigator framework taking the package explorer as a use case (Markus)
Conferences/Vacations
  • 15 days
Getting the sources
  • Define a CVS connection to server pserver:anonymous@dev.eclipse.org:/home/eclipse,
  • Check out HEAD branch of the project org.eclipse.jdt.ui.
  • Make sure to import the prerequisite plug-ins (usually from the latest SDK R3.1.x build). Prerequisite plug-ins are already referenced on the project build path ( .classpath file).
  • The sources of this project require JDK 1.4 or greater