I've created this thread to flush out some of my suggestion for JSF 2.1+. Here is the comprehensive document on the topic: http://community.jboss.org/docs/DOC-15752 .
Provide BaseRenderer class
In Mojarra implementation of JSF 2.x behaviors handling heavily rely on component renderers, so I think it should be convenient to provide BaseRenderer class with the following functionality:
- Decoding of request parameters sent by behaviors
- Encoding event attributes together will all client code for the attached behaviors
Resources
- Dynamic resources: that's a big part of RF 3.x core and JSF 2.0 didn't address the need for generating content on the fly
- Resource libraries to be added. One component can rely on several resources (e.g. for custom extension to AJAX script jsf.js & ajax.js are loaded). Having resource library that allows to add several resources using one single name allows to handle resources in a portable way
- Support for resource versions in .jar files. IMHO that's a must for component libraries that do updates of scripts/styles from time to time
- @ResourceDependency can get "rendered" attribute to control inclusion of necessary resources according to component settings (e.g. component in client mode won't load AJAX script)
Components
- Visiting tree:
- Separate facets/children handling in VisitContext
- provide hint to skip facets
- expose information about name of facet being visited
Configuration
- Pluggable faces-config parsers
Core
- Access to re-targetable handlers list
- Custom re-targetable objects