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"

 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
This page summarizes the work that is being done to add Java™ 8 support into Eclipse.  
+
'''Java™ 8 support for Eclipse is ready, see [[JDT/Eclipse Java 8 Support For Kepler]]'''. This page summarizes the work that was done.
  
 
= 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)
+
 
 +
* Feb 21st 2014: Early Access Release IV: '''Release candidate 1'''
 
** What is new in this release ?  
 
** What is new in this release ?  
*** Partial support for Java 8 type inference specification.
+
*** JDT/Core and JDT/APT are already feature complete - This is a bug fix release with numerous defects resolved
*** 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'''.
+
* March 7th 2014 : '''Release candidate 2'''
** 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
 
** Bug fixes
** Selected polish items
 
** Usability improvements
 
** Documentation updates.
 
** '''Project enters change control'''.
 
  
* Feb 24th onwards: '''Weekly release candidates''' to be posted.
+
* March 18th 2014: '''General availability release''' ('''Available''' - See below for install instructions)
 +
 
 +
= Installation instructions =
  
* March 18th: '''General availability release'''.
+
Starting with I20140318-0830 all our Luna (4.4) builds contain the Eclipse support for Java™ 8. For Kepler SR2 (4.3.2) a feature patch is available. For details go to our [http://download.eclipse.org/eclipse/downloads/ downloads page].
+
  
 
= 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) =
Line 38: Line 20:
 
* 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.
 +
* Support for Java 8 type inference specification.
 
* Quick assist support for migrating anonymous classes to lambda expressions and vice versa.
 
* Quick assist support for migrating anonymous classes to lambda expressions and vice versa.
 
* Meta data enhancement specification:
 
* Meta data enhancement specification:
Line 46: Line 29:
 
* Basic IDE enablement for all of Java 8
 
* Basic IDE enablement for all of Java 8
 
* AST/APIs for all of Java 8
 
* AST/APIs for all of Java 8
 +
* Serializable lambda support
 
* 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.  
 
* 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>
 
= What work is pending ? =
 
Note: Updates are filed in the top level bug [[https://bugs.eclipse.org/bugs/show_bug.cgi?id=380190 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 ? =
 
= 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]].
 
File defect reports [[https://bugs.eclipse.org/bugs/enter_bug.cgi?product=JDT here]].
 
<br>
 
<br>
Line 109: Line 73:
 
* 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/Java8 | Ant / Java 8]].
 
* 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/Java8 | Ant / Java 8]].
 
<br>
 
<br>
 
= Early access binaries =
 
Please see [[JDT/Eclipse Java 8 Support (BETA)]] for details.
 
  
 
= Disclaimer  =
 
= Disclaimer  =

Latest revision as of 00:10, 10 February 2016

Java™ 8 support for Eclipse is ready, see JDT/Eclipse Java 8 Support For Kepler. This page summarizes the work that was done.

Eclipse Support for Java 8 - Release Schedule

  • Feb 21st 2014: Early Access Release IV: Release candidate 1
    • What is new in this release ?
      • JDT/Core and JDT/APT are already feature complete - This is a bug fix release with numerous defects resolved
  • March 7th 2014 : Release candidate 2
    • Bug fixes
  • March 18th 2014: General availability release (Available - See below for install instructions)

Installation instructions

Starting with I20140318-0830 all our Luna (4.4) builds contain the Eclipse support for Java™ 8. For Kepler SR2 (4.3.2) a feature patch is available. For details go to our downloads page.

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.
  • Support for Java 8 type inference specification.
  • 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
  • Serializable lambda support
  • 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.


How to report defects ?

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.


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