jdt core R3.0.x
java development tooling core
Back to Development Resources.
What's Happening? 
Rollup 3.0.2 - completed
Rollup 3.0.1 - completed
Release 3.0.0 - completed
  • available on the download area.
  • final build notes
  • for R3.0, the major focus points were:
    • J2SE 1.5 support was *not* officially scheduled for Eclipse 3.0 release, since J2SE 1.5 was not finalized before 3.0 release date, and we did not want to jeopardize the 3.0 release by integrating beta quality tooling. In parallel to the 3.0 effort, we were still implementing an experimental version of JDT Core with 1.5 support (mostly focusing on adding generics support to Eclipse Java compiler). You may find details and previews of our ongoing effort (codename "Cheetah") in our update area.
    • Incremental Java Compiler
      • improve parser syntax error messages
    • Java Model
      • upgrade API to support 1.5 features
      • improve support for Java-like source files (e.g JSP, SQLJ)
      • investigate new elements for denoting local constructs (local variables, local types) (8613)
      • consider support for source inclusion patterns (as opposed to 2.1 exclusion patterns)
      • delta queues should be improved for thread safety (using per-thread-object)
      • synchronization of JavaModel cache: should be finer grain and avoid 3rd party code inside Java model lock
      • javadoc full-support: (36887)
      • close the gap between original and (shared) working copies (36888)
      • cleanup working copies: IWorkingCopy is now merged into ICompilationUnit and should go away (36987)
    • Code Formatter
      • provide new implementation, using AST+style options
    • Search
      • upgrade to support 1.5 features
      • support references from non-Java files (new API for indexer and match locator extensions
      • rewrite the indexing infrastructure, and extract it into a generic plug-in
      • ensure shutdown is lightweight (obsolete index cleanup should not initialize classpaths).
      • extend search APIs to provide more information about search matches (avoiding populating Java model to find out information which was available internally during search resolution)
    • DOM AST
      • upgrade to support 1.5 features
      • provide a way to serialize out edited ASTs
      • provide reasonable support for comments
      • keep AST created in reconcile for active editor and make it accessable for the UI (36889)
Feature List 
Work items completed in the 3.0 stream, also see build notes.
Incremental Java Compiler
  • added optional problems to diagnose variable hiding other ones
  • added optional problem to report possible accidental boolean assignment (as condition expression)
  • new syntax error diagnosis heuristic
  • added optional problem to signal superfluous semicolons
  • added optional problem to report indirect accesses to static members
  • added optional problem to report unnecessary cast / instanceof operations
  • added optional problem to report undocumented empty blocks
  • default compliance setting is 1.4 (source 1.3, target 1.2)
  • added optional problem to report unqualified field access
  • added optional problem to report unused declared thrown exception
  • added optional problem to signal when finally block does not complete normally
  • added support for Javadoc comments
    • optional problems to signal inconsistent or missing Javadoc comments
    • optional problems to control the visibility of inconsistent and missing Javadoc comments
    • optional problems to check overriding methods when looking for missing Javadoc comments and tags
    • inline tags ({@link}, {@linkplain} and {@inheritDoc})
    • global flag to enable Javadoc support, independantly from problem detection
  • added option to avoid reporting a warning when overriding a deprecated method
  • added option for task detection to behave in case insensitive mode
  • added 2 more default task tags: FIXME and XXX
  • added option for bytecode generation to inline JSR instructions (JSR202)
  • added command line option to batch compiler for controlling the max number of problems per unit
  • added optional diagnosis for empty control-flow statement
  • added optional diagnosis for statement unnecessarily nested in else-clause
Java Model
  • added API to manually read classpath/output location from disk (.classpath file).
  • closed gap in between compilation units and working copies
    • units have built-in support for an editable working copy. This primary working copy is transparently available to clients.
    • working copies everywhere. All APIs can be supplied with owned working copies which will take precedence implicitly over underlying units.
  • added optional problems to diagnose incompatible required binaries (target JDK)
  • delta queues have been improved for thread safety (using per-thread-object)
  • classpath rules now allow excluded directory to serve as an output location
  • added API to get the scheduling rule for a Java element
  • leveraged resource encoding support on a per file basis
  • leveraged project dynamic references support (avoid side-effects in .project file)
  • added IJavaElementDelta.F_CLASSPATH_CHANGED that indicates that the project's raw classpath has changed
  • added support to control the scheduling rule during a Java batch operation (JavaCore.run(...))
  • added new API to create a DOM AST while reconciling
  • added IJavaElementDelta.F_PRIMARY_RESOURCE that indicates that the resource of a primary working copy has changed
  • added API to register/deregister an IResourceChangeListener that is notified before JavaCore processes the resource delta
  • added API to retrieve the binary name from a type binding
  • added API to parse a compilation unit and specify the set of options to use
  • added API to parse an expression or statements or class body declarations
  • added APIs that take an IProgressMonitor so that the AST creation can be canceled
  • added APIs for rewriting DOM AST back into source: either by modifying an instance of an AST, or by describing changes to perform (e.g. change previews)
  • added heuristic API for computing node extended source range (and better associate related comments)
Code Select
  • added support for selecting local/anonymous types
  • added support for selecting local variables
  • added support for searching for local/anonymous types
  • added support for searching for local variables
  • added support to find references in Javadoc comments
  • implemented new index infrastructure
  • added support to distinguish read/write access in field matches
  • added support for search scopes to filter considered classpath entries (sources, libraries, system libraries, required projects).
Code Formatter
  • entirely rewritten so as to support fine grain options and better performance
Release Process 
Bug Resolution 
These patches are not yet part of any official release or rollup; but provide an early access to the next delivery for quality assessment. If you find any regression using these patches, please inform the JDT/Core team by entering a bug report.
Post 3.0.2 update.
posted on 2008/02/22, 4.93 MB (click on picture), sources included
applies to Rollup R3.0.2
description Post 3.0.2 update.
This patch can be applied by expanding the zip archive into the <install>/eclipse/plugins/ directory. Be sure to move the src zip files to the proper source project.
Plug-in revision ID is "3.0.4". Corresponding sources are versionned using tag v_457_R30x
Addresses the following issues:
208263 [ast rewrite] performance problems with lots of changes
162517 concurrent access to HashMap
117495 Compiler: ternary ops return wrong type when condition is boolean literal
115408 [compiler] ArrayIndexOutOfBoundsException in CodeStream.java
114855 [compiler] OutOfMemoryError compiling deeply nested try-catch
88351 Compiler dependency problem in 2.1.3 & the latest 3.0.2 build
Also see corresponding build notes.
Early preview of J2SE 1.5 - codename "Cheetah"
Cheetah06 posted on 2004/06/29 (click on picture to jump to update site)
applies to Eclipse R3.0
installing To install Cheetah inside Eclipse:
    - open the update manager (Help>>Software Updates>>Find and Install)
    - create a site (select 'Search for new features to install', then 'Add Update Site')
    - fill in 'http://www.eclipse.org/jdt/core/update-site' as the URL.
    - check new site in update sites list.
    - check the Cheetah feature update and install it.

Once installed, you can go to compiler preference page to enable 1.5 compliance, and install a 1.5 JRE (see prefs>>Java>>Installed JREs). Avoid using a 1.5 JRE to run Eclipse, as Eclipse is implemented for running on top of 1.4 level JREs (and 1.5 is still unstable).
Also it is recommended you install Cheetah on clean builds (as opposed to on a previous Cheetah install) since this seems to cause issues to platform update.
JRE 1.5 JRE 1.5.0-beta-b31 is known to be broken (63591), and issues invalid verify error during classloading. JRE 1.5.0-beta-b32c libraries contain corrupted generic signatures for member types. Beta2 level JREs are preferrable if you can obtain them.
description Early preview of our future support for J2SE 1.5,which is *not* part of Eclipse 3.0 release. It is rather a snapshot of work in progress done in parallel branch JDK_1_5, which will be stabilized for a future Eclipse release. Cheetah is still a kitten, and does not yet cover the full distance to J2SE 1.5, but you can help it to advance, by testing it and reporting any issue you discovered using a bug report where title is prefixed with "[1.5]". Supported features are listed below (also see build notes).

     generic types (jsr-014)
         - generic sources, parameterized type, raw types, wildcards
         - generic binaries, lazy resolution
         - source innerclasses with generics
         - incremental compiler update
         - syntax error diagnostics (including source < 1.5)
         - syntax recovery (type parameters)
         - enclosing/member types of parameterized types
         - some DOM AST 1.5 conversion
         - class literal & Object.getClass()
         - generic method & constructor, parameter/return type inference, explicitly parameterized
         - bridge methods
         - cast, instanceof
              not supported yet
              - covariance

     enhanced for loops (jsr-201)
         - array collections, Iterable collections

     autoboxing (jsr-201)
     enumerations (jsr-201)
     static imports (jsr-201)
     metadata facility (jsr-175)
              not supported yet

Note: we are mostly focusing on the compiler side, which is the core piece to evolve before leveraging the rest of the tools and provide a full-fledge tooling support. This being said, we are gradually adding support to the DOM AST, the JavaModel, search, codeassist and codeselect. You may also use the compiler as a batch command line tool or through the Ant compiler adapter.
We perform frequent merges with our HEAD branch, so it is close to our official delivery for Eclipse R3.0 augmented with our 1.5 ongoing effort. In order to keep track of the base version in HEAD, we tag the cheetah preview after the matching HEAD version name; e.g. v_500.
Getting the sources 
  • Make sure to target a recent SDK R3.0.x maintenance build.
  • Define a CVS connection to server pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse
  • Check out the R3_0_maintenance branch of the project org.eclipse.jdt.core.
  • The sources of this project are 1.4 compatible. The compiler compliance level should thus be set to 1.4 and the default JRE should be a 1.4 JRE.