The J2EE Standard Tools (JST) project is an effort by the Eclipse development team to provide users of the Eclipse Platform a standardized framework for the creation of tools for the development of enterprise applications based on the J2EE Specification.
The JST project together with the Web Standard Tools (WST) project, make up the Web Tools Platform (WTP) and jointly provide developers an arsenal of tools produced from the frameworks created by the respective projects.
These tools are useful for the development, testing, and management of Java based enterprise applications. The JST and WST projects are closely related because Java-based enterprise applications often rely heavily on non-Java technologies for core functionalities.
The editing of XML-based deployment descriptors, which play an important part in the deployment of J2EE components, is one such example of this close relationship.
The development tools supplied by the project provide users of the ubiquitous Eclipse Platform with a cohesive set of plug-ins integrated into the Eclipse development environment to allow developers to create, debug, test, and deploy multitiered J2EE applications. Some of the tools are provided for use in the creation and maintenance of J2EE source artifacts such as JavaServer Pages (JSP), servlets, EJBs, and other deployable assets. Other tools are meant for activities that provide support to the development process such as the packaging of artifacts into deployable modules, the exploring of available Web Services, and also the management of application servers.
JST limits its scope to providing support for J2EE technologies even though, as we have earlier indicated, many non-Java technologies are often found within an enterprise application.
Support for many of these non-Java technologies falls within the scope of the WST project.
Expectedly, not all enterprise Java technologies are supported by JST. Support is provided for the standards that comprise the J2EE 1.4 Specification as well as a few other JCP-approved standards.
XDoclet, a popular technology for annotating source artifacts, is also supported, even though it is not a JCP standard. Other popular enterprise Java technologies such as Hibernate and Velocity, which are not based on JCP standards, are, however, unsupported.
It is important to bear in mind that JST goes significantly beyond the provision of tools for enterprise development and additionally provides a framework from which further tools of usefulness to Java enterprise development can be created.
A brief example of this is that Struts, the popular web development framework which is not supported by JST, could have support provided for it by tool extenders using the framework provided by JST. This way, the new plug-in seamlessly coexists with those provided by JST.
JST provides Eclipse with a comprehensive suite of tools for the development of Java-based enterprise applications conforming to the J2EE 1.4 Specification. Due to J2EE support being its core purpose, JST limits its scope to Java-based technologies.
Many of the supported technologies, however, such as JavaServer Pages, have a dependence on open standards such as HTML and CSS. In these cases, the open standards fall within the scope of the WST project.
JCP standards, which lie at the core of the J2EE Specification, feature heavily in the list of supported technologies, though some newer JCP standards that are not a part of the J2EE 1.4 Specification are not supported. Notable items in this list include JDO (JSR 243—Java Data Objects 2.0), which defines Java object persistence, and JSF (JSR 252—JavaServer Faces), which provides standard APIs and tag libraries for web interface development.
Additionally, many non-JCP technologies are beyond the scope of JST, including such popular frameworks as Struts, Velocity, and XMLC. XDoclet, a3 we noted earlier, is s5pported, however, largely due to the absence of a JCP standard for J2EE annotation.
A major goal of JST is to extend the Eclipse Platform into the enterprise software development space in the hopes of expanding usage of the platform. Similar to how the Java Development Tools (JDT) provided Eclipse with the necessary tools for the creation and management of standard Java components, and was thus rewarded with a major influx of users who adopted the platform, so does JST expect to generate an influx of new users to adopt the platform.
Although third-party plug-ins exist that provide Eclipse with support for the creation of J2EE applications, there remains some associated difficulty with the process of finding and using these plug-ins for a project. Chief among these difficulties is the need for developers to individually seek and assemble the right collection of commercial and open source plug-ins that suit the needs of their project.
A developer could eventually find a suitable assembly of plug-ins to use for a specific project, but the lack of a standard set of tools remained a significant source of complaint due to the time—and sometimes cost—intensive nature of the searching for and assembling of components. Sites like Eclipse Plugin Central try to make the process of assembly easier by providing users with a repository of different plug-ins as well as information about these plug-ins and tutorials on how to use them.
This service is, however, only available to paid subscribers. It is reasonable to expect that users of Eclipse would want a readily available set of tools immediately accessible to them for their development needs. This is especially prevalent among users new to Eclipse and probably more familiar with IDEs that provide readily available development tools.
In fact, this requirement of assembling plug-ins for developing J2EE applications is seen as a deterrent to the adoption of the platform for many new users. The JST project intends to remove this barrier by providing the necessary development tools that can be used for J2EE development.
It should be noted that support for third-party plug-ins remains a fundamental part of the Eclipse architecture, and the Web Tools Project was created to enhance rather than diminish this purpose.
In fact, beyond providing a standardized set of development tools, the JST project importantly provides a framework for the development of additional tools for the enterprise Java community. This framework, known as the J2EE Core Model (JCM), is provided to allow the development of tools that would seamlessly integrate with existing JST tools and the Eclipse Platform.
It is hoped that this would encourage vendors to extend support for their proprietary tools to the Eclipse Platform and also for other companies and groups to develop plug-ins for Eclipse to support whatever technology or standard the platform might not currently be providing support for.
The aggregate goal of the JST project is a continued expansion of the user base of the platform, and this is awelcome proposition as it helps to strengthen the platform as an invaluable tool in the software development process.