|eclipse web tools
The J2EE 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 VisionProject vision is to extend eclipse platform with support for building multi-tier J2EE applications. The project will grow the community of eclipse users, and grow the community of developers that create Web applications based on the J2EE platform. 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 ContextThe scope of the J2EE Standard Tools subproject is the support of J2EE programming. This includes the support of APIs covered by the J2EE1.4 specifications (e.g. JSP, Servlets, EJBs, JCA, JMS, JNDI, JDBC, Java Web Services, JAX* and related JSRs). Support for JCP specifications commonly used in Web Applications, but not included in J2EE1.4 is to be studied on a case by case basis (ex: JSF,JDO).
Support of frameworks not covered by the JCP (ex: Struts, Hibernate, XMLC) is outside the scope of this project, such projects could find a home in the Eclipse Technology project.
JST will have annotation support (JSR 175-Metadata), on top of those provided in the JDT, e.g. for code assist, where applicable. Annotation support will include JSR 181-Metadata for Web Services, and in the future will include support for other standardized metadata such as EJBs. In the transitional period until there are JSRs for J2EE annotations, JST will have some support for widely accepted open technologies such as XDoclet.
Some Architectural Principles*
Some use cases*
*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 J2EE Core Model and ToolsThese structures will provide common facilities required by most J2EE tool builders, as well as exemplary tools for J2EE developers. The project will leverage the Web Core Model of the WST, to build J2EE specific models (for project, editors, artifacts, components, servers) providing extensible framework and APIs. Our goals are:
J2EE Core ModelThis is a set of frameworks, and models, which provide the necessary abstractions and APIs to work and develop with J2EE Tools, and to build IDEs and tools to support these activities. JCM is not just an adaptation of the J2EE specifications, but it will focus on the additional requirements of developers and tool builders. JCM is naturally related to the models and tools defined in the Web Standard Tools subproject, and will address at a minimum the following areas:
J2EE Project ModelThe J2EE Project model extends Web Project Model to support the development of J2EE applications in a variety of ways; projects divided across multiple related projects, or modules factored into one project that can host multiple artifacts. This includes support for:
J2EE Editor ModelThe Editor Model will offer developers a set of APIs to access J2EE models, participate in build and refactoring activities, and allow them to easily create various text, and graphical editors for J2EE.
These editors will:
J2EE Artifacts and ComponentsThese models will represent J2EE standard modules, files, deployment descriptors and various other artifacts, associated natures, builders, validators and EMF models. They will at minimum include models for:
J2EE Server ModelsJ2EE Application Servers are multi-tier distributed component-based products, typically implemented in Java, that reside in the middle-tier of a server centric architecture. They provide middleware services for security and state maintenance, along with data access and persistence. This model generally includes a Client Tier, a Middle Tier, and an EIS Tier. The Client Tier can be one or more applications or browsers. The J2EE Platform is in the Middle Tier and consists of a Web Server and an EJB Server (These servers are also called "containers"). There can be additional sub-tiers in the Middle Tier. The Enterprise Information System (EIS) tier includes the existing applications, files, and databases.
Although based on the same standard, there are significant variations on how available servers support J2EE components, the way they are administered, started, stopped and how J2EE modules are managed, and how they support development time activities such as debugging and hot deployment and automatic refreshes.
The server model must at a minimum define abstract facilities and configurations to:
J2EE Standard Tools
J2EE Standard Tools will provide extensible plug-ins for the development of J2EE Applications and support development, testing and debugging with a wide range of J2EE servers. Exemplar tools will support the development of Web Applications (.war), Enterprise JavaBeans, Java Web Services, and support development, testing and debugging with standard compliant J2EE application servers ('specific additional extensions may be required').
The interaction of JCM and the exemplar tools based on JCM will provide a healthy environment where requirements and APIs are based on actual needs. Tools will verify the APIs. This is a critical feature of the project in that JCM without tools, or tools without JCM, will not achieve our goal to provide a platform for high quality web development based on J2EE.
All JST tools will be based on JCM.
The exemplar tools for J2EE will include: