FEATURES.md
This page describes the changes introduced within each version.
Language-related changes should normally have a validator, used in conjunction with the grammar, as part of the parsing process.
Where a change is not a language-related change (e.g. JVM and garbage collection changes), this is marked as "Not Applicable (NA)".
Source: https://en.wikipedia.org/wiki/Java_version_history#JDK_1.0
Source: https://en.wikipedia.org/wiki/Java_version_history#JDK_1.1
Source: https://en.wikipedia.org/wiki/Java_version_history#J2SE_1.2
Source: https://en.wikipedia.org/wiki/Java_version_history#J2SE_1.3
Source: https://en.wikipedia.org/wiki/Java_version_history#J2SE_1.4
Source: https://en.wikipedia.org/wiki/Java_version_history#J2SE_5.0
Source: https://en.wikipedia.org/wiki/Java_version_history#Java_SE_6
Source: https://en.wikipedia.org/wiki/Java_version_history#Java_SE_7
Source: https://en.wikipedia.org/wiki/Java_version_history#Java_SE_8
Source: https://en.wikipedia.org/wiki/Java_version_history#Java_SE_9
Source: https://openjdk.java.net/projects/jdk/10/
Java 10 support complete on 25/Feb/2018
| JEP | Status | JavaParser Since | Description |
|---|---|---|---|
| JEP 286 | Release | **Supported Since: v3.5.15 | |
| Released on: 25/Feb/2018** | Local-Variable Type Inference | ||
| JEP 296 | |||
| JEP 304 | |||
| JEP 307 | |||
| JEP 310 | |||
| JEP 312 | |||
| JEP 313 | |||
| JEP 314 | |||
| JEP 316 | |||
| JEP 317 | |||
| JEP 319 | |||
| JEP 322 |
Source: https://openjdk.java.net/projects/jdk/11/
Java 11 support complete on 19/Aug/2018
| JEP | Status | JavaParser Since | Description |
|---|---|---|---|
| JEP 323 | Release | **Supported Since: v3.xx.yy | |
| Released on: dd/mmm/yyyy** | Local-Variable Syntax for Lambda Parameters | ||
| JEP 327 | Release | Discussion Needed <sup id="a_11_JEP327">JEP327</sup> | Unicode 10 |
| JEP 181 | Release | Discussion Needed <sup id="a_11_JEP181">JEP181</sup> | Nest-Based Access Control |
| JEP 309 | |||
| JEP 315 | |||
| JEP 318 | |||
| JEP 320 | |||
| JEP 321 | |||
| JEP 324 | |||
| JEP 328 | |||
| JEP 329 | |||
| JEP 330 | |||
| JEP 331 | |||
| JEP 332 | |||
| JEP 333 | |||
| JEP 335 | |||
| JEP 336 |
Source: https://openjdk.java.net/projects/jdk/12/
Parsing support for Java 12 (including preview features) complete on 03/Feb/2019
Resolution support for Java 12 complete on ??/??/2019
| JEP | Status | JavaParser Since | Description |
|---|---|---|---|
| JEP 325 | Preview | **Supported Since: v3.11.0 | |
| Released on: 03/Feb/2019** | Switch Expressions (Preview) | ||
| JEP 189 | |||
| JEP 230 | |||
| JEP 334 | |||
| JEP 340 | |||
| JEP 341 | |||
| JEP 344 | |||
| JEP 346 |
Source: https://openjdk.java.net/projects/jdk/13/
No language specification changes in JDK 13 -- thus no "complete" date. Details of preview support is below.
| JEP | Status | JavaParser Since | Description |
|---|---|---|---|
| JEP 354 | Preview | **Supported Since: v3.11.0 | |
| Released on: 03/Feb/2019** | Switch Expressions (Preview) | ||
| JEP 355 | Preview | **Supported Since: v3.14.0 | |
| Released on: 05/May/2019** | Text Blocks (Preview) | ||
| JEP 350 | |||
| JEP 351 | |||
| JEP 353 |
Source: https://openjdk.java.net/projects/jdk/14/
Switch support was complete during preview status.
The preview features of records are work-in-progress.
| JEP | Status | JavaParser Since | Description |
|---|---|---|---|
| JEP 361 | Release | **Supported Since: v3.xx.yy | |
| Released on: dd/mmm/yyyy** | Switch Expressions (Standard) | ||
| JEP 368 | 2nd Preview | **Supported Since: v3.14.0 | |
| Released on: 05/May/2019** | Text Blocks (Second Preview) | ||
| JEP 305 | Preview | **Supported Since: v3.18.0 | |
| Released on: 01/Dec/2020** | Pattern Matching for instanceof (Preview) | ||
| JEP 359 | Preview | **Partial Support Since: v3.22.0 | |
| Released on: 11/May/2021 <sup id="a_14_JEP359">JEP343</sup>** | Records (Preview) | ||
| JEP 343 | |||
| JEP 345 | |||
| JEP 349 | |||
| JEP 352 | |||
| JEP 358 | |||
| JEP 362 | |||
| JEP 363 | |||
| JEP 364 | |||
| JEP 365 | |||
| JEP 366 | |||
| JEP 367 | |||
| JEP 370 |
<b id="f_14_JEP343">JEP343</b> - JEP 343 is marked as not applicable, as it relates to packaging of apps - e.g. as .exe/.msi/.deb/.rpm/.pkg/.dmg.
The JEP describes the layout/structure of the output file, suggesting that maybe in the future the files may be examined, and potentially used similarly to a .jar or set of .class files.
This is not going to be actively pursued (especially since this is still in the incubator stage), though tested PRs are always welcome.
↩
<b id="f_14_JEP359">JEP359</b> - The behaviour of records changed between preview/2nd preview/release. Unless otherwise stated, the JavaParser implementation follows the released behaviour. Additionally, note that "partial" support refers to javaparser-core being complete since 3.21.0, and javaparser-symbol-solver-core support is TBC. ↩
Source: https://openjdk.java.net/projects/jdk/15/
Note: Unless otherwise stated, the JavaParser implementations of features follows the released behaviour.
| JEP | Status | JavaParser Since | Description |
|---|---|---|---|
| JEP 378 | Release | **Supported Since: v3.14.0 | |
| Released on: 05/May/2019** | Text Blocks | ||
| JEP 384 | Release | **Partial Support Since: v3.22.0 | |
| Released on: 11/May/2021 <sup id="a_15_JEP384">JEP384</sup>** | Records (Second Preview) | ||
| JEP 375 | Release | **Supported Since: v3.18.0 | |
| Released on: 01/Dec/2020** | Pattern Matching for instanceof (Second Preview) | ||
| JEP 360 | Preview | Sealed Classes (Preview) | |
| JEP 339 | Release | ||
| JEP 371 | Release | ||
| JEP 372 | Release | ||
| JEP 373 | Release | ||
| JEP 374 | Release | ||
| JEP 377 | Release | ||
| JEP 379 | Release | ||
| JEP 381 | Release | ||
| JEP 383 | Incubator | ||
| JEP 385 | Release |
Source: https://openjdk.java.net/projects/jdk/16/
Note: Unless otherwise stated, the JavaParser implementations of features follows the released behaviour.
| JEP | Status | JavaParser Since | Description |
|---|---|---|---|
| JEP 395 | Release | **Parser Support Since: v3.22.0 | |
| Released on: 11/May/2021, Solving TBC <sup id="a_16_JEP384">JEP395</sup>** | Records | ||
| JEP 394 | Release | **Supported Since: v3.18.0 | |
| Released on: 01/Dec/2020** | Pattern Matching for instanceof | ||
| JEP 397 | 2nd Preview | Sealed Classes (Second Preview) | |
| JEP 338 | Release | ||
| JEP 347 | Release | ||
| JEP 357 | Release | ||
| JEP 369 | Release | ||
| JEP 376 | Release | ||
| JEP 380 | Release | ||
| JEP 386 | Release | ||
| JEP 387 | Release | ||
| JEP 388 | Release | ||
| JEP 389 | Incubator | ||
| JEP 390 | Release | ||
| JEP 392 | Release | ||
| JEP 393 | Release | ||
| JEP 396 | Release |
Source: https://openjdk.java.net/projects/jdk/17/
Note: Unless otherwise stated, the JavaParser implementations of features follows the released behaviour.
| JEP | Status | JavaParser Since | Description |
|---|---|---|---|
| JEP 306 | Release | Restore Always-Strict Floating-Point Semantics | |
| JEP 409 | Release | Sealed Classes | |
| JEP 406 | Preview | Pattern Matching for switch (Preview) | |
| JEP 356 | Release | Enhanced Pseudo-Random Number Generators | |
| JEP 382 | Release | New macOS Rendering Pipeline | |
| JEP 391 | Release | macOS/AArch64 Port | |
| JEP 398 | Release | Deprecate the Applet API for Removal | |
| JEP 403 | Release | Strongly Encapsulate JDK Internals | |
| JEP 407 | Release | Remove RMI Activation | |
| JEP 410 | Release | Remove the Experimental AOT and JIT Compiler | |
| JEP 411 | Release | Deprecate the Security Manager for Removal | |
| JEP 412 | Incubator | Foreign Function & Memory API (Incubator) | |
| JEP 414 | 2nd Incubator | Vector API (Second Incubator) | |
| JEP 415 | Release | Context-Specific Deserialization Filters |
Source: https://openjdk.java.net/projects/jdk/18/
Note: Unless otherwise stated, the JavaParser implementations of features follows the released behaviour.
2021/12/09 Rampdown Phase One (fork from main line)
2022/01/20 Rampdown Phase Two
2022/02/10 Initial Release Candidate
2022/02/24 Final Release Candidate
2022/03/22 General Availability
| JEP | Status | JavaParser Since | Description |
|---|---|---|---|
| JEP 413 | Release | Code Snippets in Java API Documentation | |
| JEP 420 | Preview | Pattern Matching for switch (Second Preview) | |
| JEP 400 | Release | UTF-8 by Default | |
| JEP 408 | Release | Simple Web Server | |
| JEP 416 | Release | Reimplement Core Reflection with Method Handles | |
| JEP 417 | 3rd Incubator | Vector API (Third Incubator) | |
| JEP 418 | Release | Internet-Address Resolution SPI | |
| JEP 419 | 2nd Incubator | Foreign Function & Memory API (Second Incubator) | |
| JEP 421 | Release | Deprecate Finalization for Removal |
Source: https://openjdk.java.net/projects/jdk/18/
Note: Unless otherwise stated, the JavaParser implementations of features follows the released behaviour.
JEPs targeted to JDK 19, so far
422: Linux/RISC-V Port
Last update: 2022/3/18 16:38 UTC