Saturday, July 21, 2012

JSR 170, JSR 283 and JSR 333 - The beginnings of CRX


The Java Specification Requests (JSRs) are the formal documents that describe proposed specifications and technologies for adding to the Java platform. Any individual or company who wishes to submit a new technology to be added to the Java platform must  constraint to the procedure defined by the Java Community ProcessSM (JCPSM).


The Java Community ProcessSM (JCPSM)

The Java Community Process (JCP) leads the Process of developing and evolving Java technology specifications for the international Java community to follow. The JCP produces three major products: 1) the Specification, 2) a Reference Implementation and 3) a Technology Compatibility Kit. The submission, revision, approval and publication of a new JSR is held by various groups of stakeholders playing different roles in the Process. The JSR must go through four well-defined stages: 1) Initiation, 2) draft release, 3) final release and 4) maintenance.

The participants

There are four well-defined groups that participate in the Process. It all starts with the Specification Leader[1] who has to be a JCP member and is the expert responsible for leading the effort to develop or make significant revisions to a Specification and for completing the associated Reference Implementation and Technology Compatibility Kit (the other two major products from the Process).  The Expert Group is a group of Experts with a deep  understanding of the technology in question, they are responsible to hash out the technology, develop or make significant revisions to a Specification; they are gathered in two groups, one group responsible to oversee the Java technologies for the desktop/server space (Java SETM and Java EETM) and the other group to oversee the Java technologies for the consumer/embedded space (Java METM). The Executive Committee are the Members who guide the evolution of the Java technologies, they are responsible of the many approval ballots.  The public who are any individuals willing to review and comment on the draft specification.

The stages

Initiation:

A new Specification or a revision to an existing Specification is born when a member submits a JSR to the Program Management Office (PMO) for revision of completeness. Once the submission is complete the PMO assigns a JSR     number to the proposal and submits it to the Executive Committee (EC) for its JSR Approval Ballot (a two-week Executive Committee ballot to determine if the initial JSR submission should be approved). Upon approval the Specification Lead defined in the proposal should Recruit Experts/Observers who will become his/her Expert Group (EG). Once the EG is conformed as a Team and resources and help have been defined then they all can move to the following stage.

Draft Releases:

The Expert Group develops the Specification through an iterative process, releasing drafts for public review and comment. After the formal Public Review the Expert Group holds a ballot on whether the JSR should proceed to the Final Release Stage.

Final Release:
The Specification Lead submits the Specification to the Program Management Office (PMO) for publication as the Proposed Final Draft. When the Reference Implementation (RI) and the Technology Compatibility Kit (TCK) are completed, and the RI passes the TCK, the Specification, the RI and the TCK are submitted to the PMO, which circulates them to the responsible Expert Group (EG) for final approval.

Maintenance:
The Specification, Reference Implementation, and Technology Compatibility Kit are updated in response to ongoing requests for clarification, interpretation, enhancements and revisions. The responsible Expert Group reviews proposed changes to the Specification and indicates which can be carried out immediately and which should be deferred to a new JSR.

Maintenance is the reason why we have JSR 170 (final released Oct 23, 2002) which was revised and upgraded to JSR  (final released Sep 25, 2009) and JSR 333 (under development since Sep 30, 2011).

From here we can take it to Apache Jackrabbit, the Reference Implementation and open source for Java Content Repository and then we will have the scenario ready to dive into CRX.

[1] The right denomination for this group is Specification Lead but for clarity purposes I have used Specification Leader only this one time.

1 comment: