JSRs: Java Specification Requests
JSR 301: Portlet 1.0 Bridge for JavaServerTM Faces 1.2
JCP version in use: 2.7
Java Specification Participation Agreement version in use: 2.0
The Portlet Bridge Specification for JavaServer Faces defines the semantics of a JSR 168/JSR 286 portlet that proxies for JSF artifacts.
Please direct comments on this JSR to the Spec Lead(s)
the following information has been updated since the original proposal:
2.15 Please provide your transparency plan here.
# The public can read who is on the Expert Group.
JSR home page
# The Expert Group business is regularly reported on a publicly readable alias.
JSR 301 discussion board
# The schedule for the JSR is publicly available, it's current, and I update it regularly.
Refer to the Update tab
# The public can read/write to a discussion forum or wiki for my JSR.
# The public can write to an alias with feedback and comments on my JSR. JSR 301 discussion board
# There is an issue-tracker for my JSR that the public can read.
Apache Jira system.
# I have spoken at conferences and events about my JSR recently.
Nope, JavaOne consistently turns me down.
# I am using open-source processes for the development of the RI and/or TCK.
Yes, for RI (Apache MyFaces PortletBridge) -- kind of for the TCK -- tests are being developed in the same project -- but the test harness isn't.
# The Update tab for my JSR has links to and information about all public communication mechanisms and sites for the development of my JSR.
2.18 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.* spec: standard JCP final license
* RI: Apache 2.0 distribution license
* TCK: Oracle TCK license
Section 1. Identification
Submitting Member: Oracle Corporation
Name of Contact Person: Don Deutsch
E-Mail Address: donal.deutsch
Telephone Number: +1 650 506 2275
Fax Number: +1 650 506 7416
Specification Lead: Michael Freedman
E-Mail Address: michael.freedman
Telephone Number: +1 650 506 4904
Fax Number: +1 650 506 7416
Initial Expert Group Membership:
Supporting this JSR:
Section 2: Request
2.1 Please describe the proposed Specification:
The Java Portlet Container Specification will define the required behavior of a JSR 168/JSR286 portlet that proxies for JSF artifacts.
Currently, there are a number of JSF Portlet Bridge implementations including a number that have been open sourced. These implementations vary in style and substance to such as degree as to neither provide consistent interoperability across bridge implementations nor to provide interoperability across JSR portlet containers. I.e. the same JSF artifact can run differently in different bridge implementations and/or the same JSF artifact can run differently in the same bridge implementation running on a different portlet containers. This reduces the effectiveness of developing portlets using JSF technology as there are different rules to learn for different environments.
The purpose of this specification is to standardize the behavior of these bridge implementations to ensure true interoperability for JSF artifacts. The specification will focus on defining behavior related to three areas:
1. Coexistence: the specification will define rules ensuring a portlet bridge's implementation doesn't subvert concurrently executing non-portlet based JSF artifacts within the same web application, i.e. servlet/http based JSF artifacts. In addition, the specification will define rules ensuring a portlet bridge's implementation doesn't subvert JSF (controller) extensions that are running in the environment.
2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)
At a minimum any platform that supports JSR 168 portlets. Currently, this is the J2EETM 1.4 platform.
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.
Any platform that supports JSR 168 and/or JSR 286 portlets plus JavaServer Faces. Currently JSR 168/286 are JavaTM extensions for the J2EE platform.
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?
This will standardize the execution of JSF artifacts as portlets providing consistency and interoperability which should greatly enhance the desirability of implementing portlets in JSF.
2.6 Why isn't this need met by existing specifications?
The Java Portlet Specification concerns itself with the contract between the portlet container and the portlet. The Java Server Faces specification concerns itself with defining an MVC execution environment. This JSR defines how to bridge between the two.
2.7 Please give a short description of the underlying technology or technologies:
The JSF Portlet Bridge provides a transformation service, mapping between JSR portlet semantics and JSF MVC semantics. This specification standarizes this mapping behavior, though not the mapping implementation.
2.8 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.)
javax.portlet.faces package name will be used for API specifications.
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?
2.11 Are there any internationalization or localization issues?
2.12 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?
2.13 Please describe the anticipated schedule for the development of this specification.
To be determined by the expert group, initial target is to have a working EG by Summer 2006, an early public draft by the early of 2007, a complete public draft by mid 2007 and a final version by late 2007.
2.14 Please describe the anticipated working model for the Expert Group working on developing this specification.
E-mail discussion, teleconferencing as needed (likely regular -- weekly/bi-weekly), and occasional face-2-face meetings.
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.
Transparency will be achieved by releasing regular (early) public drafts of the specification as the work progresses and by tracking, updating and posting an accurate schedule.
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.
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).
2.18 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.
The license will be a free-of-charge open source license compatible with Java EE licensing.
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.
JSR 168: Java Portlet Specification 1.0: http://jcp.org/aboutJava/communityprocess/final/jsr168/index.html JSR 252: JavaServer Faces Specification 2.0 (Proposed Final draft 2): http://jcp.org/aboutJava/communityprocess/pfd/jsr252/index2.html These implementations provide a good starting point for understanding the variance in implementations: Sun Microsystem's source for a JSF Bridge Portlet for JSF 1.x: https://javaserverfaces.dev.java.net/servlets/ProjectDocumentList?folderID=3389&expandFolder=3389&folderID=1703 Apache MyFaces's source for a JSF Bridge Portlet for JSF 1.2: http://myfaces.apache.org/download.html
3.2 Explanation of how these items might be used as a starting point for the work.
The existing source will be used to establish a common understanding of the role and function of such a bridge. It will help to establish a common venacular for discussing the specifics of what function needs to be specified.