Keep Track Of Java Features with JEP Search
Written by Nikos Vaggalis   
Monday, 20 September 2021

Here we have a very practical resource for sorting, searching and filtering Java JEPs. But before we get to the details, what exactly is a JEP and why should we care?

JEP stands for JDK Enhancement Proposal. They are proposals for adding new major features to the JDK. Arriving at  a specification from of an initial proposal is an iterative process which also includes Requests For Comments.  A proposed feature can concern the addition of something new to the language, like Records or Switch expressions, or to any of the Java APIs. It can mean deprecating features as well, like JEP 289 suggesting the deprecation of the Applet API. It can also affect other miscellaneous parts, such as JEP 413 "Code Snippets in Java API Documentation" scheduled for Java 18 which seeks to :

Introduce an @snippet tag for JavaDoc's Standard Doclet, to simplify the inclusion of example source code in API documentation.

Retrieving and looking into JEPs can answer a lot of questions, like discovering when a certain feature was introduced or looking at where things are heading in the future. The newly introduced JEP Search, built by Chris Newland, makes that retrieval a piece of cake.

JEP Search encompasses the full collection of JEPs. By itself this does not say much, there's the official JEP Index for that purpose too. The novelty is that JEP Search categorizes them according to version Release, Relation, Dependency or Project while on top of that it offers to Sort them, for example, by Date or Status, or Searching through them with keywords.

Because a picture is worth a thousand words let's compare the official JEP index to JEP Search side by side

 

If, for example, I wanted to look at everything that Java 17 brings,
I could just choose 17 from the Releases drop down and be presented with a list of the JEP included:

Clicking on the linked JEP in question, say "406:Pattern Matching for switch" I get navigated to the official description.

It's important to understand that it can take years for a JEP to be implemented and usually the process starts from the reporting of an issue. For example, 406's issue is filed with number 8213076, which goes on to describe why it should be implemented:

Enhance the Java programming language with pattern matching for switch expressions and statements, along with extensions to the language of patterns. Extending pattern matching to switch allows an expression to be tested against a number of patterns, each with a specific action, so that complex data-oriented queries can be expressed concisely and safely.

We also see that it was Created on 2018-10-29 and Resolved on 2021-07-23. JEP Search can sort by issue or by creation/update date too.

If I want to, I can also peek at the features coming in version 18 which has got the following JEPs lined up:

400 UTF-8 by Default
405 Record Patterns & Array Patterns (Preview)
413 Code Snippets in Java API Documentation
417 Vector API (Third Incubator)

They keyword search is very handy too. When I enter 'Loom' I get back the JEPs of that project:

353 Reimplement the Legacy Socket API
373 Reimplement the Legacy DatagramSocket API
416 Reimplement Core Reflection with Method Handles

I can also sort the results by Project so that I get all the Loom, Valhalla or Panama project results grouped separately.

In detail Sorting can be done by the following criteria: 

  • Number
  • Name
  • Issue
  • Status
  • Created
  • Updated
  • Release
  • Discussion
  • Related
  • Depends
  • Projects 

While Status can be sub-filtered according to the following values: 

  • Active
  • Candidate
  • Closed/Delivered
  • Closed/Withdrawn
  • Completed
  • Draft
  • Integrated
  • Proposed to Target
  • Targeted 

and of course the Releases can be filtered by Java version as well.

All in all, JEP search seems to be a very handy resource when researching, studying, looking for specific information or just wanting to stay ahead of the curve. Check it out!

 

More Information

JEP Search

JEP Index 

Related Articles

The Insider's Guide to the Java Web Developer Nanodegree - 2

Kotlin Versus Java - A Developer's Rosetta Stone

Where's Java Going In 2020

 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


Mojo - Python Superset For Go-Faster Hardware
07/10/2024

Mojo, the new language from Chris Lattner and his AI-focused company Modular, has entered the top 50 of the TIOBE index, even though it it was only launched in 2023.



TypeScript Improves Never-Initialized Variables Checks
21/10/2024

Microsoft has announced TypeScript 5.7 in beta, with improvements including stronger checks for variables that have never been initialized before use, and path rewriting for relative paths.


More News

espbook

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Monday, 20 September 2021 )