The AJAX Toolkit Framework (ATF) Project
An Eclipse Incubation Project Proposal
The AJAX Toolkit Framework is a proposed open-source project to be incubated within the Eclipse Web Tools Platform ("WTP") Project. This document describes the content and the scope of the proposed project.
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process document) and is written to declare its intent and scope. This proposal is written to solicit additional participation and input from the Eclipse community. You are invited to comment on and/or join the project. Please send all feedback to the http://www.eclipse.org/newsportal/thread.php?group=eclipse.webtools newsgroup.
- XHTML (or HTML) and CSS for marking up and styling information. (XML is commonly used, although any format will work, including preformatted HTML, plain text, JSON and even EBML).
- The XMLHttpRequest object to exchange data asynchronously with the web server. In some Ajax frameworks and in some situations, an IFrame object is used instead of the XMLHttpRequest object to exchange data with the web server.
Like DHTML, LAMP, or SPA, AJAX is not a technology in itself, but a term that refers to the use of a group of technologies together.
3 Project Goal
4 Project Description
The AJAX Toolkit Framework will include the following components:
- ATF Tools
- Batch and as-you-type syntax validation
- Embedded Browser
- Access to browser's DOM, e.g., Mozilla XPCOM
- Mozilla tools integration for DHTML developers as Eclipse Views.
- ATF Personality Framework
A Personality is a collection of IDE features that are specifically targeted to a certain AJAX Runtime Library. This is a core concept of ATF: providing an extensible framework to support AJAX development in arbitrary AJAX runtimes.
- Browser Embedding Framework
- Personality Builder Framework
The Personality Builder Framework is primarily accessed via the Personality Builder Wizard, which generates the basic Eclipse assets for a new personality. They include:
- Plugin projects - A set of plugin projects that constitute a personality
- Eclipse Extensions - Extensions to existing Eclipse extension points (Wizards, Snippets, etc)
- New Extensions - Extensions to newly defined Extension points:
- Wizard Models: for contributing new AJAX application wizards.
- Snippet Models: for contributing new code snippets.
- Nature Artifacts: to define the source of AJAX runtime artifacts and control where runtime artifacts are placed within the project when a particular AJAX nature is injected.
- Variable Factory: for contributing new variable types to be used in the wizardModel and snippetModel extensions.
- Variable Renderer Factory: for contributing new variable renderers which control how a variable type input is rendered in a wizard or snippet dialog window.
- Operation Factory: for contributing new wizard operations such as file creations.
A developer seeking to contribute a new Personality will typically begin with the Personality Builder Wizard and then fill in runtime-specific code as necessary.
- Integrated Deployment
- Using Eclipse APIs ATF will support J2EE / JSP and Apache / PHP - in practice ATF will be 'server agnostic' to the largest extent possible.
- Rhino, JSLint
- XULRunner with JavaConnect
- Mozilla-specific code to enable the embedding of the Mozilla browser within a Java container (Eclipse)
- AJAX Runtime
ATF is tooling for arbitrary AJAX runtimes. The initial distribution will include tooling support for
Note: one or more of these initial AJAX runtimes may move to Apache.org, but whether the runtimes are part of Apache.org is irrelevent to this proposal.
- Eclipse Platform 3.2 and WTP 1.0
AJAX Toolkit Framework System Architecture
7 Code contributions
- Embedded Mozilla Browser - provides cross-platform preview of AJAX application, plus DOM inspector function via XPCOM bridge.
- Personality Builder - Wizard-driven functions that allow for the easy adaptation of arbitrary AJAX runtimes into the Eclipse / AJAX Toolkit Framework.
IBM will make an initial code contribution that will encompass the core functionality for the AJAX Toolkit Framework project including:
8 Development Plan
- Integrated Mozilla environment including browser, DOM inspector, Error console, and debugging
- A Personality Builder that will facilitate the construction of additional personalities to allow arbitrary AJAX runtimes to be used within ATF
- ATF personalities for Zimbra, OpenRico, and Dojo
- Adapters for J2EE / JSP and Apache / PHP
- 1Q2006: Initial Prototype version available, includes stabilization and bug-fixes.
- 2Q2006: Process input from developing community to enhance functionality. Current considered enhancements include:
- Support for additional AJAX runtimes.
- Support for additional server adapters.
- Refinement of prototype browser embedding API.
- Modeling of Widget sets and other components for AJAX runtimes.
- WYSIWYG editing framework for arbitrary AJAX runtimes.
- Enhancing Personality Builder extensions and utility.
9.1 Project Lead
The project lead will be initially the following member:
- Craig Becker, IBM (firstname.lastname@example.org)
9.2 Interested Parties
Support has been expressed by:
9.3 Potential Committers
- Craig Becker, IBM (email@example.com)
- Leugim Bustelo, IBM (firstname.lastname@example.org)
- Javier Pedemonte, IBM (email@example.com)
- Adam Peller, IBM (firstname.lastname@example.org)
- Donald Sedota, IBM (email@example.com)
Additional contributors from outside of IBM are being sought.