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 2: Line 2:
  
 
= Eclipse Support for Java 8 - Release Schedule =
 
= Eclipse Support for Java 8 - Release Schedule =
* Dec 20th 2013: Early Access Release II ('''Available''' - See below for install instructions)
+
* Dec 20th 2013: Early Access Release II ('''[[Available]]''' - See below for install instructions)
 
** What is new in this release ?  
 
** What is new in this release ?  
 
*** Partial support for Java 8 type inference specification.
 
*** Partial support for Java 8 type inference specification.
Line 8: Line 8:
 
*** Code Completion support for all of Java 8.
 
*** Code Completion support for all of Java 8.
 
*** Code navigation/selection (F3, hover) 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.
+
*** Quick assist for migrating anonymous classes to lambda expressions and vice versa.
 
*** Incremental build support for lambda expressions and method references.
 
*** Incremental build support for lambda expressions and method references.
 
*** Numerous bug fixes.
 
*** Numerous bug fixes.
  
* Jan 31st 2014: Early Access Release III - '''Feature completion - 45 day beta program starts'''.
+
* Jan 31st 2014: Early Access Release III - '''[[Feature completion - 45 day beta program starts]]'''.
 
** Targetted contents:
 
** Targetted contents:
 
*** JDT is feature complete with respect to Java 8.
 
*** JDT is feature complete with respect to Java 8.
Line 22: Line 22:
 
*** Bug fixes.
 
*** Bug fixes.
  
* Feb 17th 2014: Early Access Release IV: '''Release candidate 0'''
+
* Feb 17th 2014: Early Access Release IV: '''[[Release candidate 0]]'''
 
** Bug fixes
 
** Bug fixes
 
** Selected polish items
 
** Selected polish items
Line 31: Line 31:
 
* Feb 24th onwards: Weekly release candidates to be posted.
 
* Feb 24th onwards: Weekly release candidates to be posted.
  
* March 18th: '''General availability release'''.
+
* March 18th: '''[[General availability release]]'''.
 
   
 
   
  
 
= Java 8 features ready to be tested (save for some very minor defects) =
 
= Java 8 features ready to be tested (save for some very minor defects) =
 
* JSR 308 - Type Annotations
 
* JSR 308 - Type Annotations
* Default & static Methods in interfaces
+
* 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.
 
* 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.
+
* Quick assist support for migrating anonymous classes to lambda expressions and vice versa.
 
* Meta data enhancement specification:
 
* Meta data enhancement specification:
 
** JEP120: Repeating annotations
 
** JEP120: Repeating annotations
Line 65: Line 65:
 
* Various loose ends.
 
* 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.'''
 +
<br>
 +
File defect reports [[https://bugs.eclipse.org/bugs/enter_bug.cgi?product=JDT here]].
 +
<br>
 +
Open work items can be perused [[https://bugs.eclipse.org/bugs/buglist.cgi?list_id=7107554&classification=Eclipse&query_format=advanced&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&component=APT&component=Core&product=JDT&target_milestone=BETA%20J8 here]].
  
 
= IMPORTANT NOTE =
 
= IMPORTANT NOTE =

Revision as of 00:59, 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.


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)


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.
  • 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