JDT Summit 2006

Date: July, 10th - 12th
Location: Saint-Nazaire, France

Last revised 17:50 CET December 14, 2006 by Martin

Participants
Topics
Various Summit Notes

Participants

Discussion Topics

This document lists the discussion topics for the JDT Summit in no particular order.
Italic green means notes about the discussion and decisions during the summit.

Done Java SE 6 (Wednesday morning / started Tuesday afternoon)

Done Java SE 7 (Wednesday morning)

What will be the new Java 7 features and what support do we have to add for 3.3.
⇒ This will contain many big changes/additions (e.g. XML inside Java code) which is out of scope for 3.3.

Done Code Assist (Tuesday morning)

Done JavaBean Support (Monday morning)

There are several feature requests asking for better support for JavaBean Property handlig, e.g. enhanced code assist, templates, Outline grouping and a JavaBean wizard.
We should discuss and decide whether we want to do something in that area for 3.3.

⇒ based on the experience JDT Text & UI will get from the competitive analyses, JDT Text & UI will investigate minimal support limited to 3 days. No action for JDT Core at this point.

Compiler

Done AST (Monday morning)

Done Buildpath (Monday afternoon, Darin)

API

Done Search (Wednesday afternoon)

Done Semantic Search / Search Templates (Wednesday afternoon)

Power search would require to support more evolved search patterns. Can we sketch usecases and ways to provide some degree of support which could be evolved further to add more coverage ? Also what would a UI for it look like (script-based ?) ⇒ JDT UI should finish and present the prototype so that we can provide feedback and decide how to continue.

Done Code Audit Integration (Wednesday afternoon)

⇒ needs to be clarified first

Improve the look and feel of JDT UI (Tuesday afternoon)

We should discuss where it makes sense to adopt new features provided by the Platform and where to further beautify the JDT UI.

The following are wishes from JDT Core members to JDT Text and JDT UI:

Philippe: Jerome: Olivier: Maxime:

Done Launch config templates (Tuesday afternoon)

Users want to define certain default values (e.g. compiler arguments) for a launch config type (bug 41353).
Discussed full-fledged inheritance for individual launch config properties, but this was found to be too much for the UI (tristate everywhere, client-contributed tabs would be broken) as well as for the model (e.g. what if base template is not shared but child template is, etc.).
⇒ Debug will implement a simple copy-based solution where new launch configs can be based on an existing launch config. New launch configs will not be connected to template after initial copying of attributes.
Note: According to the current 3.3 draft plan this will not be a committed item.

Done Leverage Execution Environment over JRE (Monday afternoon, with Darin)

⇒ Darin will talk with Wassim and Jeff.

Done Bindings for non-visible members (Tuesday afternoon, with Darin)

Compiling snippets that have a private field reference from a superclass, do not have resolved bindings. For example, the snippet "fName.length()" when compiled in the context of VectorTest, which references fName from TestCase, does not have a resolved method binding for "length()". I don't think that fName has a resolved type binding either. Philippe thought this information was availale, but might not be in the AST/DOM.
⇒ Darin to enter a bug for Olivier (should already be there)

Done Evaluations without Java project, or with modified build path (Tuesday afternoon, with Darin)

It is possible to debug an application with a runtime classpath that does not match a project's build path, or to debug an application that has no associated projects in the workspace. Would it be possible to perform evaluations by having the debugger perform name lookups, to support evaluations that reflect the run(debug)-time?
Debug can get the AST from the reconcile.

Done Scrapbook evaluation enhancements (Tuesday afternoon, with Darin)

Support for import statements (could be done by debugger), breakpoints, source display (stepping, etc),
⇒ Darin said, Debug can use separate panes for imports, check the presence of Debug attributes so that they map on the right line

Done Scrapbook editing enhancements (Tuesday afternoon, with Darin)

Separate code from evaluation results for coloring/styling, support to auto insert closing bracket/quote, quick fix (assign to local etc), red squiggles, CTRL-T on selected type (hover type hierarchy), toggle (un)block comments, shift left/right, format, organize imports, rename selected variable in file. - these things should work anywhere an evaluation can be performed - scrapbook, display view, variable details pane, expression detail pane, conditions, detail formatters, logical structures...
⇒ Dani and Darin will check whether we can get rid of the scrapbook editor entirely (eval hook in the Java editor?)

Done Debugger usability issues (Tuesday afternoon, with Darin)

Open discussion/suggestions for usability improvements in the Java debugger

Populating the JavaModel

Recent additions, like Java type indicator in label decoration, are changing the assumptions on populating the Java model. Given the cache got tuned for certain usage, we should make sure it is aligned with current story, and planned evolutions. Clearly eager is considered bad. We should discuss alternative queries, and or complementary API addition (a la type hierarchy getCachedFlags() --> ICompilationUnit#getCachedFlags(IType/null to denote first type). The type indicator has now been changed to use the search index (for 3.3 M1). Also in discussion is new API (bug 159393)

Done Formatting DOM AST (Monday)

Current formatter implementation is based on compiler internal AST. We should discuss the benefits for providing a DOM AST solution instead. What is the performance overhead, what are the consequences/benefits for DOM AST users ?
⇒ JDT Core will not convert the formatter to DOM AST since it does not give immediate benefits unless formatter bugs get fix that benefit from it, is neither needed by JDT Text nor JDT UI and has performance impacts. JDT Core will try to fix the bugs in the formatter with another approach. This decision might change in the future should new requests arise.

Done Planned refactorings (Wednesday morning)

To anticipate API requests, it would be good to explain the planned additions to refactorings. What typical new operations are going to be provided, what expensive ones are becoming critically used...
According to Martin there is no new JDT Core support needed at the moment, except for the support to reuse bindings (see AST first item).

More flexible project layout (Monday afternoon)

When adopting Eclipse, some pre-existing project layouts are hard to model in Eclipse. It feels this process could be eased by allowing more configurability of the Java project, such as allowing custom buildpath or settings on a per source folder basis; multiple source attachments per library; inclusion of external resources in workspace (as opposed to linking resources which is not seen by external tools); relax classpath container limitations, which currently do not allow nested containers, source folders etc...

Philippe discussed this within the PMC and they would only accept this under a different name: "more flexible classpath layout".
Discussed about 2 hours without any conclusion so far. Dani's idea is to leave everything as is but add a super java project that could contain IJavaProjects.
⇒ no clear path yet

Done Improve compiler fault-tolerance (Wednesday morning)

Missing types can greatly deteriorate compiler output by producing too many secondary errors, surface suboptimal DOM bindings, or even abort entire compilation process when missing types are referenced from required classfiles. We should investigate ways to improve this situation, remembering that the APT Mirror API requires that bindings are still presented even in the presence of missing types.

Done Batch Compiler (Wednesday morning)

Consider batch compiler improvements triggerred by its raised visibility; I think we should make a conscious effort to ease the dual use of the IDE and the batch compiler, keeping in mind the fact that we also need to be 'javac compatible' for the batch compiler; there are also improvements undergoing in the way we call it; and I'd like also to consider porting to the batch environment part of the work done for us by the resource layers in Eclipse (or else replace it by something powerful - aka consider canonizing filenames, etc., cleanup design points around files accessed through multiple paths, consider a portable file naming scheme, etc.) I think APT folks will find an interest in this in that they will likely be involved into batch building uses at one point in time. And UI should be helpful in rounding up batch/IDE equivalences.

Done Provide a more useful class file viewer (Discussed between Dani and Olivier only)

See also bug 59495.
Clients can provide their own view on a Java class file via "org.eclipse.ui.editors" extension point. There are currently no plans to offer plugable views for the Class File editor.
⇒ JDT Text will ask legal (Adrian Cho) whether it is OK to show disassembled contents and if yes, show the detailed result from the disassembler (bug 3537)

Done Bug Wishes (Tuesday morning)

This topic lists bugs that do not need to be discussed in detail but for which the team would like to have and would like to get an answer whether this can be done and if not, why. Of course if a bug is accepted it might lead to further discussions.

post-mortem discussion

This will be done individually by JDT Core and ZRH and then consolidated.

Various Summit Notes