The JavaServer Faces Tooling Project is a proposed open source project to be incubated under the Eclipse Web Tools Project.
This project proposal is in the Proposal Phase (as defined in the Eclipse Development Process document) and is posted here to solicit community feedback, additional project participation, and ways the project can be leveraged from the Eclipse membership-at-large. You are invited to comment on and/or join the project. Please send all feedback to the eclipse.webtools.jsf newsgroup.
JavaServer Faces (JSF) is a server-side user interface component framework for Java-based web applications. JSF has become a popular technology that is increasingly used in building Web applications. JSF artifacts include JavaServer Pages (JSP) that make use of the JSF tag libraries and the JSF configuration file, “faces-config.xml”. The configuration file configures both page-flow (control) aspects and managed bean (model) aspects of the JSF application, amongst other things. A JSF application will also include Java classes.
The objective of the JSF Tooling project is to build extensible frameworks and exemplary tools that support the full life cycle of building a JSF-based web application.
The goal of this project is to add comprehensive support to the Eclipse Web Tools Project to simplify development and deployment of JavaServer Faces (JSF) applications. The project will provide an extensible tooling infrastructure and exemplary tools for building JSF-based, web-enabled applications. The tooling infrastructure will be designed for extensibility so software vendors can provide additional functionality.
This project will be layered over the services provided by the JST and WST subprojects. JSF artifacts will be first class citizens with respect to the capabilities that Eclipse users expect. This includes support to create, edit, and refactor JSF pages and JSF configuration files. A model will be created (or an existing model may be enhanced) for such resources and these resources will participate in the build process.
The project will provide extensible frameworks and exemplary tools that support the full life cycle of building a JSF-based web application. This includes tooling that will aid in developing, deploying, testing and debugging a JSF-based web application. Some of the functional requirements of this project will be met by extending/inheriting the services provided by the JST and WST subprojects. These include support for deploying, testing and debugging.
The project will build editors and validators for all the artifacts of a JSF project. Initially, these will be source/textual editors that are JSF aware. However, within scope is to build an editor for the JSF configuration file, “faces-config.xml” that would allow a user to create a Page flow at a higher level of abstraction than the plain XML syntax. Similarly, the project scope includes building a visual editor for the JSP constructs. The visual editors will be implemented in later phases of the project.
The project will be architected as a set of plug-ins, each of which provides the ability for other groups or vendors to further extend and customize the functionality in a well-defined manner.
Tools for J2EE Web Module
The wizards will all be extensible such that vendors can augment the UI and provide value-added services.
Editors for JSF
There would be two forms of editor: one to edit JSP pages containing JSF tags, and one to edit faces-config.xml. These editors will be multi-page editors that support both textual/source editing and a graphical/visual editing.
The visual editor for the constructs in the faces-config.xml will have the capability to create the Page flow and also manage other constructs such as managed beans. The faces-config.xml will have an associated model and corresponding API's to manipulate it programmatically. The editors will have an associated Outline view that will display the content in a structured format.
Wizards will be provided to assist in development
Support for 3rd party JSF Components
The JSF tools in Eclipse will be designed as a vendor-neutral solution with a set of JSF components provided as a sample. No vendor-specific runtime implementations will be built into Eclipse as part of this project. Any 3rd party JSF-compliant component, such as Sun's JSF Reference Implementation components, Apache's MyFaces components, and Oracle's ADF Faces components, will enjoy easy drop-in support right out of the box.
The project will define appropriate extension points that would enable other software vendors to provide value-added functionality. These include ability for a 3rd party vendor to add/enhance the visual Page flow editor, add/enhance the validators, add custom property editors for JSF components, etc.
Integration Points with Other Eclipse Projects
Given the scope of the project, the JSF tools will interact with and leverage the following existing Eclipse projects. This is not an exhaustive list and will be enhanced during the course of this project.
This project will also integrate with a potential visual HTML editor if and when such a contribution is made.
This project will also integrate with a potential data-binding project if and when such a project comes into existence.
We propose this project should be undertaken as an incubator under the Eclipse Web Tools Project.
Oracle has committed to providing project leadership and developer resources for this project. During the proposal phase the project leadership will be pro-actively contacting interested parties to invite their contribution of code and development resources.
Initially, JSF Expert Group members and other individuals and organizations that have serious interest will be solicited to participate. This list would cover a broad base of organizations interested in JSF, including J2EE vendors.
The submitters of this proposal welcome interested parties to post to the eclipse.webtools.jsf newsgroup and ask to be added to the list as interested parties or to suggest changes to this document.
Back to the top