Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

JDT Core/Java8

This page summarizes the work that is being done to add Java™ 8 support into Eclipse.

Eclipse Support for Java 8 - Release Schedule

  • Dec 20th 2013: Early Access Release II
    • Expected features:
      • Phase I Type inference support (details of what is known NOT to work will be provided shortly)
      • Overload resolution for invocations involving poly expression arguments.
      • Code Completion support for all of Java 8.
      • Code navigation/selection (F3, hover) support for all of Java 8.
      • Quick assist for migrating anonymous classes to lambda expressions.
      • Syntactic error recovery for all Java 8 constructs.
      • Search engine support for all Java 8 constructs.
      • Partial support for debugging Java 8 code.
      • Partial support for lambda serialization.
      • Numerous bug fixes.
  • Jan 17th 2014: Early Access Release III - 60 day beta program starts.
    • Targetted contents:
      • JDT is feature complete with respect to Java 8.
      • Known gaps in type inference addressed.
      • Java 8 Debugging support fully in place.
      • Lambda serialization support fully in place.
      • Bug fixes.
  • Feb 17th 2014: Early Access Release IV: Project enters change control.
    • Bug fixes
    • Selected polish items
    • Usability improvements
    • Documentation updates.
  • Feb 24th onwards: Weekly release candidates to be posted.
  • March 18th: General availability release.



Java 8 features that are complete as of Early Access Release I and ready to be tested (save for some very minor defects)

  • JSR 308 - Type Annotations
  • Meta data enhancement specification:
    • JEP120: Repeating annotations
    • JEP118: Runtime access to parameter names
  • JSR269 Enhancements for Pluggable Annotation Processor API and javax.lang.model APIs
  • Formatter, Code completion, code navigation, search & indexing, Reconciler support for all the above
  • Basic IDE enablement (AST APIs) for all of Java 8
  • JSR308 type annotations based null analysis (substantially complete - some open issues exist)
  • Default & static Methods in interfaces (part of JSR 335)
  • JSR 335 features are substantially in place except in the areas of overload resolution and type inference.


What work is pending ? (out of date, will be updated Dec 20th 2013)

Updates are filed in the top level bug [380190 - Add support for Java SE 8]

JDT UI changes are tracked in JDT UI/Java8


JSR335 features
Lambda Expressions Method references Default Methods Overload resolution Type Inference
Grammar / Parser NA NA
Compiler
Reconciler NA NA
Syntax Error recovery NA NA
Class file generation NA NA
Search Engine (Manoj) NA NA
Code select (Anirban) NA NA
Code completion (Anirban) NA NA


   Done
   Substantially complete, with open items
   In Progress

Not Started yet
NA Not Applicable

IMPORTANT NOTE

  • The following lines must be added in all headers of modified files for Java™ 8 implementation:
 * This is an implementation of an early-draft specification developed under the Java
 * Community Process (JCP) and is made available for testing and evaluation purposes
 * only. The code is not compatible with any specification of the JCP.
 *

  • Use the following @since tag on all newly added members: "3.9 BETA_JAVA8"


What to do to set up the IDE

  • You need to install a JDK 8 build as an installed JRE in order to compile org.eclipse.jdt.annotation and run the tests using the JavaSE-1.8 Execution Environment.
    • Use the exact name "JavaSE-1.8" for the JRE
  • If you are going to be running Ant builds (stand-alone or as project builders) using the 1.8 javac target, you should read the following wiki: Ant / Java 8.


Early access binaries

Please see JDT/Eclipse Java 8 Support (BETA) for details.

Disclaimer

This is a work in progress. The contents of the BETA_JAVA8 branch will be updated as the changes are made to the JSR Specification. Please use the early access builds only in a test/evaluation mode and not in the real development environment. If you need any help with this, please contact the JDT/Core team through either the forum or Bugzilla.

Back to the top