eclipse web tools
platform project

The Web Standard Tools Subproject

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 Vision

Project vision is to extend eclipse platform with support for building multi-tier Web applications. The project will grow the community of eclipse users, and grow the community of developers that create Web applications based on Open Standards and Technologies. In this way, we will help make eclipse the industry standard tool integration platform for development based on Open Standards and Technologies. The project must preserve the eclipse value proposition by providing integration, ease-of-use, function, and "coolness". Web artifacts must be first class citizens with respect to the capabilities that eclipse users expect. Servers must be first class execution environments, including both Open and Commercial implementations, therefore encourage support of eclipse by server vendors.

Project Context

Support of Web standards in the scope of the Web Standard Tools subproject includes languages and specifications published by open-standard bodies (e.g. W3C, IETF, ECMA, OASIS, WS-I, ANSI) that are commonly used by Web-centric applications (e.g. HTML, CSS, JavaScript, XML, XSD, XSLT, SVG, SOAP, WSDL, UDDI, SQL, XQuery).

This subproject will provide support for integrating Web servers into Eclipse as first-class execution environments for Web applications. This support will include the ability to configure Web servers and assocaite them with Web projects. Examplar tools for supporting popular Open Source Web servers, such as Apache, are in scope.

Support of JCP standards are explicitly outside the scope of this project and should be covered by the Java Development Tools (JDT) project or by the J2EE Standard Tools (JST) subproject.

The subproject will provide tools that directly support the base standards and that are also extensible. For example, the HTML editor will be extensible to support HTML-based template languages such as PHP and JSP. While a JSP editor is in the scope of the JST subproject, exemplar tools for popular Open Source languages such as PHP are in scope.

The goal of this project is to provide both

Some Architectural Principles*

  • Seamlessly extend the eclipse user experience
  • Accommodate common project directory layouts
    • Avoid need for migration
  • Apply capabilities orthogonally to source artifacts:
    • Syntax Coloring
    • Code Assist
    • Quick Fixes
    • Refactoring
    • Etc.
  • Extend the Run command to Web artifacts, e.g. HTML
  • Enable hybrid source editing:
    • HTML in Java
    • SQL in Java
    • Etc.
  • Enable extension of editors with value-add
    • Graphical views
    • Form based views
*We invite the Eclipse membership-at-large to apply their collective wisdom and experience here by proposing additional principles. Suggestions should be made on the WTP forum

Some use cases*

  • Develop and publish a static HTML site
  • Develop Web pages based on JavaScript and CSS
  • Deploy an applet on a given HTTP server
  • Develop SQL statements and generate static Web pages from database queries
  • Develop XSD and XSLT for XML based Web pages and Web services
  • Develop and publish WSDL schema on UDDI registries
  • Explore UDDI registries and dynamically test Web services via WSDL
  • Test Web services for WS-I compliance
*we invite the membership-at-large to propose additional use-cases to focus this project on the most important frameworks and tools. Suggestions should be made on the WTP forum

Goals for Project Structure and Web Core Model

These structures will provide common facilities required by most Web tool builders. A common and flexible project model is required as well as a common basis for web artifacts and editors. Our goals are:
  • Divide and Conquer: Lots of components, so divide the work using the classical principle of hierarchy
  • Layer Build Dependencies: J2EE Standards builds on the Web Standards, the Extensions build on the Standards
  • The structure of software reflects the structure of the organization that built it: We are building a platform and need to validate our API.

Web Core Model

This is a set of frameworks, and models, which provide the necessary abstractions and APIs to work and develop with Web Tools, and to build IDEs and tools to support these activities. WCM is not just an adaptation of language specification, but it will focus on the additional requirements of developers and tool builders. WCM address at a minimum the following areas:

Project Model

Development of Web applications is done in a variety of ways; It can be divided across multiple related projects, or it can be factored into one project that can host multiple artifacts. The core Web project model will extend the eclipse project model and will have intelligence to recognize and work with Web artifacts, and support the build activities related to these artifacts.

Editor Model

The Editor Model will offer developers a set of APIs to access Web models, participate in build and refactoring activities, and allow them to easily create various text, and graphical editors. Support for a Content based selection of Editors will be integrated into the Editor Model. This model will encompass editors in a broad sense, i.e. editors, validators and document generators for a wide range of standard languages corresponding to Web Artifacts taken into account.

Web Artifacts

These models will represent Web standard models. They will at minimum include or reference existing models for:
  • XML family languages (XML itself, HTML, XHTML, WML, XSD, DTD, XSLT, SVG, ...)
  • JavaScript/ECMAScript
  • CSS
  • Web Services languages (SOAP, WSDL, UDDI, WSIL, ...)
  • Database languages (SQL, XQuery, ...).
  • Other models: DDL, ...

Server Models

Servers are first class execution environments, they provide the runtime environment, where the web artifacts are tested, deployed and executed. Server models must be flexible to accommodate open and commercial implementations.
  • Support different applications servers and server versions
  • Start, stop and restart servers
  • Run server processes in the Eclipse debugger
  • Package, deploy, remove, import, export, accessing/testing modules
  • Extensible framework for server administration

Web Standard Tools

Web Standard Tools will provide extensible tools for the development of Web Applications and support development, testing and debugging with various servers. The following tools will be made available:
  • Server tools, Internet preferences, TCP/IP monitor
  • HTML (fragments), XML, CSS, JavaScript source editors
  • XML/DTD/XSD utilities
  • WSDL/XSD graphical editors, Web service UDDI/WSDL Explorer
  • SQL Query graphical editor
  • Associated natures, builders, validators and EMF models