eclipse web tools platform project
This project proposal is in the Proposal Phase and is posted here to solicit 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 newsgroup or the wtp-proposal mailing list.
Project Organization
The Eclipse Web Tools Platform Project is an open source project of eclipse.org, overseen by a Project Management Committee (PMC) and project leaders. The PMC Planning Council coordinates identified resources of the project against a Project Development Plan. The work is done in subprojects working against a CVS repository*. The Eclipse Web Tools Platform Project Charter describes the organization of the project, roles and responsibilities of the participants, and top-level development process for the project. Frequently asked questions and corresponding answers may be found in the Project FAQ page.
Project Principles
Among the key principles on which this project has been initiated, and will be run, are the following:
Extension of the Eclipse value proposition The Eclipse Project has set a high standard for technical excellence, functional innovation and overall extensibility within the Java IDE domain. We intend to apply these same standards to the Web/J2EE application-tooling domain.
Vendor ecosystem A major goal of this project is to support a vital application development tools market. Its exemplary functionality will be useful on its own but it will be designed from the start to be extensible so commercial vendors can use what this project delivers as a foundation for their own product innovation and development efficiency.
Vendor neutrality Vendor neutrality will be at the core of this project. We aim to encourage Eclipse participation and drive Eclipse market acceptance by strengthening the long-term product value propositions of the widest possible range of application development vendors.
Standards-based innovation This project will deliver an extensible, standards-based tooling foundation on which the widest possible range of vendors can create value-added development products for their customers and end-users. Where standards exist, we will adhere to them. At least, at first, where standards are emerging, we will wait for them to emerge; this can be re-evaluated later according to user needs and contributor availability. Where multiple technologies are widely used for a given functional need, we will attempt to support each, subject only to technical feasibility and our goal of providing the most capable and extensible foundation long term.
Agile development Our aim is to incorporate into our planning process the innovations that arise once a project is underway, and the feedback from our user community on our achievements to date. We think an agile development and planning process, in which progress is incremental, near-term deliverables are focused, and long-term planning is flexible, will be the best way to achieve this.
Inclusiveness & diversity We aim to assimilate the best ideas from the largest number of participants representing the needs of the widest range of end-users. So we will encourage organizations across a broad range of technical, market and geographical domains to participate in this project.
Project Scope
The Eclipse Web Tools Platform Project will initially focus on infrastructure for tools used to build applications for standards-based Web and Java runtime environments. (See diagram for illustration.) Outside the project's scope, at least at first, will be support for vendor-specific application architectures, such as ASP.Net and ColdFusion, or for extensions not backed by the JCP, such as Apache Struts. This can be re-evaluated later according to user needs and contributor availability and may lead to the creation of a new subproject.
The project will be further limited to providing infrastructure for tooling proper, in contrast to infrastructure related to the application run-time. We will typically use a simple litmus test to set the boundary between tooling and run-time. Application artifacts, once developed, have no execution dependencies on the relevant tooling framework, while the converse would be true for run-time frameworks. In keeping with our objective of maximizing vendor-neutrality, where multiple frameworks exist in the market for a given functional domain, we will attempt to develop tooling based on a common abstraction (or superset) to the extent feasible.
The ultimate objective of the project is to support tooling that allows developers to produce applications providing a high degree of extensibility and reuse with increasing development efficiency. The tooling foundation the project will deliver will support these values by enforcing appropriate separations of concern in application architecture, raising the level of technical abstraction in application development and enabling repeatability in development processes. These values, however, will be achieved incrementally over time. Early deliverables will focus on an extensible foundation supporting the most widely used Web and Java standards and technologies.
In addition, we expect the Web Tools Platform Project to produce functional requirements that are more appropriately satisfied through the Eclipse Project or other Eclipse foundational subprojects. Areas in which we might expect to see these elaborated requirements would be in working with components, or supporting complex project layouts. In such case, the Web Tools Platform Project PMC will coordinate the corresponding Project PMCs the design and implementation of the corresponding contribution.
Subprojects
Web Standard Tools*
The Web Standard Tools subproject aims to provide common infrastructure available to any Eclipse-based development environment targeting Web-enabled applications. Within scope will be tools for the development of three-tier (presentation, business and data logic) and server publication of corresponding system artifacts. Outside scope will be language or web framework specific technology, which will be left to other subprojects like the J2EE Web Tools subproject.Tools provided will include editors, validators and document generators for artifacts developed in a wide range of standard languages (for example, HTML/xHMTL, Web services, XQueries, SQL, etc.) Supporting infrastructure will likely comprise a specialized workbench supporting actions such as publish, run, start and stop of Web application code across target server environments.
As an integrated set of capabilities, the Web Standard Tools would support use cases such as "- Develop and publish a static HTML site, - Deploy an applet on a given http server, - Develop and publish a WSDL schema on a UDDI registry".
Read more on the Web Standard Tools subproject
J2EE Standard Tools*
The initial scope of the J2EE Standard Tools subproject will be to provide a basic Eclipse plug-in for developing applications based on J2EE 1.4 targeting J2EE-compliant application servers, as well as a generic J2EE tooling infrastructure for other Eclipse-based development products.Within scope will be a workbench providing a framework for developing, deploying, testing and debugging J2EE applications on JCP-compliant server environments, as well as an exemplary implementation of a plug-in for at least one JSR-88 compliant J2EE Server. Included will be a range of tools simplifying development with J2EE APIs including EJB, Servlet, JSP, JCA, JDBC, JTA, JMS, JMX, JNDI, and Web Services. This infrastructure will be architected for extensibility for higher-level development constructs providing architectural separations of concern and technical abstraction above the level of the J2EE specifications
The integrated workbench to be delivered would support use cases such as " - Develop a JSP page, Enhance the "PetStore" blue-print application, Expose a Session Bean as a Web Service".
Read more on the J2EE Standard Tools subproject
* Suggestions for alternative subproject names are very welcome and should be made on the WTP forum
Project Documentation
General Resources
- FAQ Answers to the most common questions about the WTP. This should be the first place you go for any Question that you may have.
- Downloads Get the latest WTP builds
- Newsgroup Place to ask questions on how to use the WTP. The newsgroup is also available through a simple Web interface and a newsgroup archive.
- Bugzilla* Place to open bugs or enhancements for the WTP
- Eclipse Web Tools Platform Charter The document that describes the organization of the project, as well as the legal and copyrights issues.
- Common Public License License applicable to WTP code base.
Planning and Activities:
- Project Management and Plans Planning and project management resources, such as WTP plans and project status.
- Monthly Conference Calls WTP conference call schedule, agenda, and minutes.
Related Eclipse Projects:
- XSD XML Schema Infoset Model.
- WSVT Web Service Validation Tools.
- GMT Generative Model Transformer (MDA).
Developer Resources:
- Mailing Lists* Place to get involved in the development of the WTP.
- CVS Repository* Web Interface to WTP Source Code.
- Reference Documentation Information for integrating with the WTP.
- Designer Documentation Documents written by developers for developers.
- Project Structure WTP Project Structure.
- Contributing to the WTP Project What's involved in developing & contributing enhancements or new capabilities for the WTP
Style Guidelines:
- Coding Conventions Eclipse community, commonly adopted coding conventions.
- UI Guidelines Eclipse community, commonly adopted "look and feel" guidelines.
- User Documentation Contributing documentation to the WTP.
- Unit Tests Creating unit tests for your WTP code.
* Bug report, Mailing lists, and CVS repository infrastructure will be made available after project creation
J2EE is a trademark of Sun Microsystems, Inc.