JSRs: Java Specification Requests
JSR 252: JavaServer Faces 1.2
JCP version in use: 2.6
Java Specification Participation Agreement version in use: 2.0
This JSR is an update to the 1.1 version of the JavaServer Faces specification. Its scope goes beyond a JCP maintenance release, but is short of a new feature release.
Please direct comments on this JSR to the Spec Lead(s)
Original Java Specification Request (JSR)
Section 1. Identification
Submitting Member: Sun Microsystems, Inc.
Name of Contact Person: Ed Burns
E-Mail Address: firstname.lastname@example.org
Telephone Number: +1 408 884 9519
Fax Number: 1 407 294 2468
Specification Lead: Ed Burns & Roger Kitain
E-Mail Address: email@example.com, firstname.lastname@example.org
Telephone Number: +1 408 884 9519 +1 781 442 6237
Fax Number: + 1 407 294 2468
Initial Expert Group Membership:
Hans Bergsten (Individual)
Supporting this JSR:
Apache Software Foundation
Section 2: Request
2.1 Please describe the proposed Specification:
JavaServer Faces 1.2 provides a minimal enhancement of the JavaServer Faces 1.1 specification. It is not a new feature JSR. The primary goal of this JSR is handling the Faces side of the JSP/Faces alignment issues addressed in the parallel JSR-245. Please consult that JSR for details on the primary goal. Following is a list of secondary goals that will be addressed only if the primary goal is reached, and only if they can be addressed without delaying the schedule.
* provide XML Schema for the config files, instead of using DTD
* enhancements to allow faces applications to handle multi-frame, or multi-window UI designs * enhancements to the f: tag library for improved TCK coverage, f:view lifetime events, and other small features
* enhancements to the decorator support for API objects
* security enhancements for client side state saving
* solve the "duplicate button press" problem
* re-organize the spec into normative, and non-normative sections, to make implementation easier.
* portlet related bug-fixes
* bug fixes that require minimal spec changes
The above goals will be prioritized and resolved accordingly, again only if time permits.
Sun is committed to filing a separate JSR for JavaServer Faces 2.0 that will focus primarily on tools support, and secondarily on new features. The following features will specifically not be addressed in this JSR, but may be addressed in the JSR for JavaServer Faces 2.0:
* additional components in the standard component library (for example, the Form File Upload component)
* JSR227 aware JSF components
* client side, inter-component, multi-form validation
2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)
JavaTM 2 Platform, Enterprise Edition (J2EE) 5.0.
2.3 The Executive Committees would like to ensure JSR submitters think about how their proposed technology relates to all of the Java platform editions. Please provide details here for which platform editions are being targeted by this JSR, and how this JSR has considered the relationship with the other platform editions.
This specification targets the J2EE 5.0 Platform. It will be based on the corresponding release of the J2SE platform.
2.4 Should this JSR be voted on by both Executive Committees?
2.5 What need of the Java community will be addressed by the proposed specification?
JavaServer Faces 1.2 will address the need of the Java community for closer synchronization between the JavaServer Faces and JavaServer Pages specifications, as well as addressing high-priority, low impact bugs filed since the previous release of the specification.
2.6 Why isn't this need met by existing specifications?
JavaServer Faces development is not covered under any other specifications.
2.7 Please give a short description of the underlying technology or technologies:
See 2.1 above.
2.8 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.)
2.9 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?
2.10 Are there any security issues that cannot be addressed by the current security model?
Yes. This specification will address security holes present in the 1.1 version of the specification. Specifically, we will address the non-encrypted state that is saved in the page when the user has elected client side state saving.
2.11 Are there any internationalization or localization issues?
Faces technology deals with internationalization and localization and may provide small refinements to existing features in this area.
2.12 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?
The parallel JSR-245 for JSP 2.1 will be revised in concert with this spec. /P>
2.13 Please describe the anticipated schedule for the development of this specification.
The specification will follow the J2EE 5.0 schedule.
The following dates are preliminary:
* JSR Review and Expert Group Formation: September 2004
2.14 Please describe the anticipated working model for the Expert Group working on developing this specification.
We will use the same working model as in JSR-127: primarily email discussion with occasional conference calls and other distributed team technology uses.
2.15 It is important to the success of the community and each JSR that the work of the Expert Group be handled in a manner which provides the community and the public with insight into the work the Expert Group is doing, and the decisions that the Expert Group has made. The Executive Committees would like to ensure Spec Leads understand the value of this transparency and ask that each JSR have an operating plan in place for how their JSR will address the involvement of the community and the public. Please provide your plan here, and refer to the Spec Lead Guide for a more detailed description and a set of example questions you may wish to answer in your plan.
We will leverage the collaborative tools provided by the java.net infrastructure. We have established the "javaserverfaces-spec-public" project on java.net. Therein, we will have a public issue tracker for tracking most issues. Any issues that absolutely must be EG private will be handled with a separate EG-private issue tracker. We will have an EG-private mailing list, and we will have a monitored public discussion forum as well. The reference implementation will be developed entirely in the public javaserverfaces project on java.net. The TCK will be developed privately by Sun. We will leverage the Early Draft feature of JCP 2.6 to allow the public to see the spec in progress.
2.16 Please describe how the RI and TCK will de delivered, i.e. as part of a profile or platform edition, or stand-alone, or both. Include version information for the profile or platform in your answer.
Sun will deliver a Reference Implementation (RI) and Technology Compatibility Kit (TCK) as part of J2EE 5.0. In addition, the source code for the RI will be available through java.net and the TCK will be available independently on java.net in binary form. See the business terms for more details.
2.17 Please state the rationale if previous versions are available stand-alone and you are now proposing in 2.13 to only deliver RI and TCK as part of a profile or platform edition (See sections 1.1.5 and 1.1.6 of the JCP 2 document).
We will continue to have a standalone implementation of JavaServer Faces that runs on top of Servlet 2.4 and JSP 2.1.
2.18 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.
Pursuant to Section 2.2.1 of the Java Community Process version 2.6, the following is a summary of Sun's anticipated principal license terms and conditions for the JSR ### JavaServer Faces version 1.2.
Section 3: Contributions
3.1 Please list any existing documents, specifications, or implementations that describe the technology. Please include links to the documents if they are publicly available.
# JSTL 1.1 - Standard tag library for JSP 2.0. Addresses key issues of usability by JSP page authors. http://java.sun.com/products/jsp/jstl/
# JSF 1.0 - Provides a standard User Interface component framework. Not yet final. http://java.sun.com/j2ee/javaserverfaces/
# J2EE 5.0 - The umbrella JSR for J2EE 5.0 http://jcp.org/en/jsr/detail?id=244
# JSR 245 - The JSR for JSP 2.1 http://jcp.org/en/jsr/detail?id=245
# JSR 176: J2SE 5.0 JSR - The base standard edition platform for JavaServer Faces 1.2.
# Servlet 2.4 MR for J2EE 5.0 - The base servlet functionality that we expect Faces 1.2 to use.
3.2 Explanation of how these items might be used as a starting point for the work.
The Faces 1.1 specification will be used as a starting point for the work on Faces 1.2, which will be part of the greater J2EE 5.0 platform, which also includes the next version of Servlet. The work of Faces 1.2 will heavily interact with the work on JSP 2.1.