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.
Interesting!
ReplyDelete