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

Servlet

The Convergence of OpenJDK and the Oracle JDK

Pretenders, Contenders and Liars