eclipse web tools
platform project

Objectweb Contributions

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.

Introduction

ObjectWeb and Eteration are offering to contribute the open source Lomboz project for the initial code base of the Eclipse Web Tools Platform Project, and spefically the J2EE Standard Tools subproject. The Lomboz code base will be released under an Eclipse compatible license (CPL,EPL) and the Lomboz community will be invited to join the Eclipse Web Tools Platform Project.

Description of the Contribution

Lomboz project provides a set of tools that are useful to J2EE developers to perform their common tasks. These include:
    • Server Tools
      • A generic server tooling mechanism based on XML definitions
    • Editors
      • JSP, EJB and Module Editors
    • Wizards
      • Module(EJB,Web,Ear),JSP , Servlet, EJB, Web Services
    • Navigation
      • J2EE Project Outline
      • Actions for common J2EE tasks

In addition to the existing tools, Lomboz provides an alternative, different tools and different design decisions, as compared to other tools and IBM Contributions. This will allows us to build a new platform with best-of-the-breed solutions.

In the following sections we provide some detail about these contributions.

Server Tools

One of the most popular features in Lomboz is the handling of application server definitions. This feature allows people to enter their own server defintions and not be limited with the list of servers that are packaged with Lomboz. Server definitions are XML-based descriptors which can be defined for runtimes from different vendors, different versions of servers from the same vendor, or different configurations of the same server for different applications. The following sample demonstrates some of the capabilities that can be embedded in these server defintions. Detail information on server definitions can be found in documentation.Lomboz also provides developer friendly editors to change the configurations of these servers.

Figure 1: Server Configuration Editor
Figure 1:

Extensions

Although server tooling provides meta-facilities to work with any server configuration, there are certain features that may require special handling. We will provide extensions points for overriding the existing behavior or add new capabilities. Another extension point is the management of servers using JSP standards; primarily JSR 3 Java Management Extension (JMX), JSR 77 J2EE Management , and JSR 88 J2EE Application Deployment.

Editors

J2EE Web Applications have unique to J2EE artifacts such as JSPs, and tags, in addition to other types of resources defined by W3C, and others that can be based on open technologies or proprietery systems (e.g. Struts, XMLC, Velocity, etc.). Lomboz project provides a JSP Editor that can be used to edit HTML, Custom Tags, JSP 1.1, 1.2, and 2.0, and with Java. The editor has a parser based on Jasper from Apache Tomcat, which can handle syntactically incorrect documents and can precompile documents to point syntax errors with each save. It also provides Java™ Servlet preview mode.
Figure 2: JSP/HTML/Tag Editor with a JSP file
Figure 1:

Figure 2a: JSP/HTML/Tag Editor with a tag file
Figure 1:

Extensions

JSP Editor builds on top of the eclipse standard texteditor. It can be used as a standalone editor or it can be integrated into other views. The partition scanner can be extended to allow further partitions (i.e. template text section can be parsed further to include application-specific syntax). Editor features such as code assist and coloring can be extended to include these new partitions. The syntax need not be XML or DOM based. Editor can be extended to support toolbars, code snippet insertions, graphical editors and templates.

Wizards

Lomboz provides a rich set of wizards for an end-to-end J2EE application development. These include wizards for rapid creation of: J2EE Projects, J2EE Modules (war, ejb, ear), Servlets, JSPs, EJBs, Clients, and Web Service Clients.

Figure 3: Some of the Lomboz Wizards
Figure 3:

Extensions

Wizards complement the development process by providing quick-starts to complex tasks. Therefore there is a large number of wizards that can be added to the basic set of J2EE wizards. Ecah one of the existing wizards can be extended to do additional tasks, such as generation of application specific code or artifacts, also Tool builders should be able to modify the existing behavior (i.e. EJB templates).

EAR support

Lomboz provides features to create enterprise application archives (ear) quickly and deploy them on application servers using Lomboz actions. A graphical application.xml editor allows you to edit the contents of an application rapidly. Lomboz treats ear as an ordinary J2EE artifact represented by a collection of resources in a project. Ear modules are created using wizards and edited using ear editor.
Figure 4: Ear Wizard
Figure 4

Extensions

Ears are assembled from other J2EE artifacts such as Web Modules and EJBs. There are many different project layouts and development models for the components included in an ear. Ear wizards can be extended to handle these project structures and integrated with specific ways that are used to develop and build each module.

EJBs

J2EE developer community needs a simpler programming model for EJBs as it is full of many accidental difficulties. Lomboz makes use of wizards and XDoclet for EJB development. Lomboz assists in creating, developing, deploying and running EJBs by easy to use tools. Using this method Lomboz helps you create ejb annotations, i.e.Javadoc @tags. Based on those @tags, xdoclet is used to generate source code and other files (such as xml deployment descriptors) using a template engine it provides. XDoclet supports a set of common standard tasks such as web.xml or ejb-jar.xml generation, users and contributors can create other templates and @tags and add support for other technologies.

Figure 5: EJB Wizard and EJB actions
Figure 5

Figure 6: Annotated EJB Code
Figure 5

Extensions

Lomboz EJB tools scratch the surface of enterprise component development process. There are many approaches to EJB development; generating EJBs from models or mapping RDBMS tables to EJBS are just a few of these top-to-down or bottom-up approaches. Tools can be extended to be part of other more sophisticated tools that follow any one of these approaches. They can be extended to complement O-R mapping tools or JDO engines. They can be views in graphical tools. They can be extended with other pluggable annotation engines (i.e. J2SE Annotations). Existing EJBs can be reverse-engineered. etc.

Navigation

J2EE Project Outliner provides a summary of the Projects list and modules contained within the Java and Web Projects. J2EE View allows you to manipulate components of a J2EE project in a rapid manner. You can expand projects to navigate through different modules, servers, start/stop them, observe problems specific to modules, etc.

Figure 7: J2EE Project Outline
Figure 2:

Extensions

This basic view allows you to navigate modules,view their properties and perform actions on these components (i.e. pop-up menus and toolbars). This basic must be extensible to allow for specialty property editors such as graphical views, allow for additional panels and various other web and J2EE artifacts. Tool builder must be able to build this tool up wwith new features and more specialized capabilities. In reality this view must be able to demonstrate capabilities similar to the Package View in JDT.

Milestone Plan

Eteration plans to contribute the plug-ins described according to the plan described in the Web Tools Development Plan. Instead of planning each milestone, we prefer setting incremental goals and provide users with features that can be employed in complete use-cases to evaluate capability.

Milestone 1&2 - Project Checkpoint 1

In our view the the first checkpoint should produce the initial design and tools to support existing project structures and Web Application Development. These include wizards, editors (JSP/HTML/Deployment Descriptors), Server Definitions and Tooling and capability to run applications servers. Server definitions must include varios open technologies such as Tomcat, J2EE SDK, JOnAS and JBoss.

Milestone 3,4&5 - Project Checkpoint 2

This checkpoint should bring capabilities such as EJB and Java Web Services development. This would include wizards and editors for EJBs, mapping tools, JNDI browsers and Universal testing clients, capability to build a web service from scratch by editing WSDL files, creating Web Services based on JavaBeans or EJBs, and generating Web Service clients. Second checkpoint should also extend the existing Web Application capability with advanced features such as JSP debugging; stepping through JSP source in a debugger, test and monitoring tools, and advanced editor features such as hybrid JSP editing with HTML, CSS, XSD, JSP or JavaScript. Finally this checkpoint should allow developers to create and edit Enterprise Application Archives (ears).

Summary

ObjectWeb will contribute for consideration the complete set of J2EE tools to the eclipse J2EE Standard Tools project.

The contributed tools are the results of extensive development effort over two years within the context of the eteration Lomboz project.

These tools are immediately useful in themselves and also provide a point for discussion and alternative ways of achieving the goals with different design decisions, to build a platform that runtime vendors and tools developers can extend.

The ObjectWeb contributions described here will complete the overall proposal and bring diversity in design and cooperation in the spirit of the eclipse platform in our common goal build a thriving J2EE developer community around eclipse.