|eclipse web tools
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.
IntroductionObjectWeb 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 ContributionLomboz project provides a set of tools that are useful to J2EE developers to perform their common tasks. These include:
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 ToolsOne 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
ExtensionsAlthough 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.
EditorsJ2EE 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 2a: JSP/HTML/Tag Editor with a tag file
ExtensionsJSP 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.
WizardsLomboz 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
ExtensionsWizards 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 supportLomboz 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
ExtensionsEars 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.
EJBsJ2EE 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 6: Annotated EJB Code
ExtensionsLomboz 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.
NavigationJ2EE 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
ExtensionsThis 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 PlanEteration 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 1In 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.
SummaryObjectWeb 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.