JLS, JSR, JEP

Groups 

Individuals and organisations with a mutual interest around a broad subject or a specific body of code. Some examples are Security, Networking, Swing, and HotSpot.

Projects

Efforts to produce a body of code, documentation or other effort. Must be sponsored by at least one group. Recent examples are Project Lambda, Project Jigsaw, and Project Sumatra.

JLS (Java Language Specification)

  • This is a specification for the Java Language. The JLS specifies the syntax for the Java programming language and other rules that say what is or is not a valid Java program. It also specifies what a program means; i.e. what happens when you run a (valid) program.
  • https://docs.oracle.com/javase/specs/index.html

JEP (Java Enhancement Proposal)

  • A JEP is a document that is proposing an enhancement to Java core technology. These are proposals typically for enhancements that are not ready to be specified yet.
  • JEPs allow promoting a new specification informally before or in parallel to the JCP, when further exploration is needed. Unlike JSRs, may also contain features that have no specification-level visibility (e.g. new garbage collector or JIT implementation).
  • Accepted JEPs become a part of the JDK roadmap and assigned a version number.
  • http://openjdk.java.net/jeps 

JSR (Java Specification Request)

  • A JSR is a document created as part of the Java Community Process (JCP) that is setting the scope for a team of people to develop a new specification.
  • The actual specification of the feature happens in this stage, can be either coming through Groups/Projects, JEPs or from individual JCP (Java Community Process) members.
  • An umbrella JSR is usually opened for each Java version (Also called a platform JSR), this has yet to happen with Java 9.
  • https://jcp.org/en/jsr/all

The relationship between JEPs, JSRs and specifications

  • JEPs propose and develop experimental ideas to the point where they could be specified. Not all JEPs come to fruition.
  • JSRs take mature ideas (e.g. resulting from a JEP), and produce a new specification, or modifications to an existing specification. Not all JSRs come to fruition.
  • A specification is a common work product of a JSR. The JLS is an example of a specification. Others include the JVM specification, the Servlet and JSP specifications, the EJB specifications and so on.

References

Yorumlar

Popular

Java 9 New Features

The Convergence of OpenJDK and the Oracle JDK

Pretenders, Contenders and Liars