Helios System Requirements and Architecture
This document is tentative and subject to change without notice.
JSF 2.0 Support
The Helios release will introduce system level support for JSF 2.0. This includes updates to:
- Facet and library framework support for JSF 2.0 projects.
- The XML catalog (after requisite IP review) for new XML schemas.
- The application configuration EMF model (facesconfig) for new XML elements introduced in the release.
- Supported web.xml configuration concepts.
- The JSF Tag Registry, which will become the authoratative source of information about JSF tags (both JSP and Facelet).
- Component tree rendering for the addition of the rendering target concept and an API to retrieve component ids that are in use.
New JSF 2.0 concepts to be supported by the system are:
- Annotation-based configuration of JSF artifacts.
- Implicit navigation rules formulated from supported action source tags.
- Design time support for the JSF resource loading concept.
Flexibility of Adoption
Based on lessons learned over almost five years of experience with the JSF project as both committers and adopters, we have come to some conclusions about the limitations of our current bundling architecture with respect to adoption. These are based on the following premises:
- The most common, and therefore premier, adoption scenario is to create an update site that is installed directly on top of some subset of WTP and its dependencies.
- Adopters may support other scenarios such as productizing, but they will they will still need to support option 1.
- There is no clean mechanism by which to configure a framework feature except through an extension.
- The WTP API policy and Eclipse annual release cycle combine to make it ip
This leads us to the following observations about adoption of the JSF Tools Project:
- End-user visible features that appear by default are bad. Examples include the appearance of the WPE action on the Open With action in the project explorer and the validation framework. Once these features are contributed an adopter is stuck with them. Short of doing hacky things like calling non-API methods or worse, calling setAccessible to get private data. This is bad due to premise 1: adopters get stuck exposing things to their users that they may not like or conflict with a similar feature that they want to implement
- The extension mechanism should on