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

Difference between revisions of "JDT Core/Java8"

Line 47: Line 47:
 
* AST/APIs for all of Java 8
 
* AST/APIs for all of Java 8
 
* JSR308 type annotations based null analysis (substantially complete - some open issues exist)
 
* JSR308 type annotations based null analysis (substantially complete - some open issues exist)
 +
* UI: Basic infrastructure like the Java-related views, Java Compiler compliance settings, Organize Imports, Mark Occurrences, Open Declaration (F3), Edit > Expand Selection To > ...,  Content Assist (Ctrl+Space), Formatting, and Source Actions should work correctly in most situations when you start using them with Java 8 constructs.
  
 
<br>
 
<br>
Line 63: Line 64:
  
 
* JSR199 maintanence work.
 
* JSR199 maintanence work.
 +
 +
* UI: Advanced features like Quick Fixes (Ctrl+1 or via problem hover), Clean Ups, and Refactorings should work fine for Java 7 features but may fail on new language constructs.
 +
 
* Various loose ends.
 
* Various loose ends.
  

Revision as of 01:22, 20 December 2013

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 (Available - See below for install instructions)
    • What is new in this release ?
      • Partial support for Java 8 type inference specification.
      • 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 and vice versa.
      • Incremental build support for lambda expressions and method references.
      • Numerous bug fixes.
  • Jan 31st 2014: Early Access Release III - Feature completion - 45 day beta program starts.
    • Targetted contents:
      • JDT is feature complete with respect to Java 8.
      • Full support for the new type inference specification.
      • Java 8 Debugging support fully in place.
      • Lambda serialization support fully in place.
      • JSR 199 maintenance work completed.
      • Various loose ends addressed and gaps plugged in search engine, code assist, error recovery etc.
      • Bug fixes.
  • Feb 17th 2014: Early Access Release IV: Release candidate 0
    • Bug fixes
    • Selected polish items
    • Usability improvements
    • Documentation updates.
    • Project enters change control.
  • Feb 24th onwards: Weekly release candidates to be posted.
  • March 18th: General availability release.


Java 8 features ready to be tested (save for some very minor defects)

  • JSR 308 - Type Annotations
  • Default & static methods in interfaces
  • Support for lambda expressions and method/constructor references is substantially in place except in the areas of type inference, lambda serialization and varargs.
  • Quick assist support for migrating anonymous classes to lambda expressions and vice versa.
  • 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, incremental builder support for all of Java 8
  • Basic IDE enablement for all of Java 8
  • AST/APIs for all of Java 8
  • JSR308 type annotations based null analysis (substantially complete - some open issues exist)
  • UI: Basic infrastructure like the Java-related views, Java Compiler compliance settings, Organize Imports, Mark Occurrences, Open Declaration (F3), Edit > Expand Selection To > ..., Content Assist (Ctrl+Space), Formatting, and Source Actions should work correctly in most situations when you start using them with Java 8 constructs.


What work is pending ?

Note: Updates are filed in the top level bug [380190 - Add support for Java SE 8] JDT UI changes (stale - needs refresh) are tracked in JDT UI/Java8

  • Type Inference: Early Access Release II includes a brand new type inference engine. This is still evolving and only partially supports the new inference specification. Known gaps exist in supporting nested generic invocation contexts, certain forms of poly expressions and in particular the combination of overload resolution and type inference does not fully comply to the specification. This is actively worked on and we expect to be fully compliant by Jan 31st EAR III.
  • Lambda Serialization support.
  • Support for varargs in method references and overloaded invocations is not fully implemented.
  • Debugging support is still under works.
  • JSR199 maintanence work.
  • UI: Advanced features like Quick Fixes (Ctrl+1 or via problem hover), Clean Ups, and Refactorings should work fine for Java 7 features but may fail on new language constructs.
  • Various loose ends.

How to report defects ?

We welcome defect reports in all areas, including areas acknowledged to be incomplete and not ready to be tested.
File defect reports [here].
Open work items can be perused [here].

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