I work with a lot of J2EE development tools. While some feel like solutions looking for a problem, every once in a while I run into one that feels like it was inspired by a developer's frustration at not being able to work quickly and effectively. Ensemble Glider from Ensemble Systems is that sort of tool.
What Is Glider?
Glider is an integrated development toolkit that accelerates J2EE development. It allows you to interactively create, build, and debug J2EE components before deploying to a server. Glider compresses the development cycle required to build and test EJBs and JSPs.
J2EE developers have to endure a fair amount of monkey motion in order to build and test J2EE components. Instead of having to endure a full cycle of code, compile, package, and deploy before debugging, Glider accelerates development by compressing that cycle into an interactive seamless coding and debugging session. It integrates with the Java compiler and debugger, and simulates a full-blown J2EE server, eliminating the need to package and deploy for testing.
Intermediate to advanced developers will get the most benefit from Glider. The tool doesn't provide extensive help for someone just learning about EJB development - you do need to have a moderate amount of knowledge to be productive. It's fast and lightweight, and stays out of your way so you can get some real work done.
There are versions of Glider for the Eclipse shell, for Rational/IBM Rose and Rational/IBM XDE UML modelers, and a standalone version. My testing was done with the standalone version.
Installation is simple. It's distributed as a compressed file that you decompress into a target directory. Not having a minor installation program to create a launch menu was a minor inconvenience. Glider is started by launching the executable in the bin subdirectory. It automatically found my Java runtime and configured itself - I didn't have to do anything else for configuration.
If you are using the Java 1.4 runtime, make sure you have a recent 1.4.1 build. I encountered problems with earlier 1.4 JREs, but Ensemble's technical support cheerfully pointed me in the right direction.
I was pleasantly surprised at how quickly Glider starts up. Its user interface is simple and intuitive. I started by creating a Glider project - a workspace that holds EJB modules and Web applications. Once created, you can create new J2EE components, or add existing components.
The project workspace provides a project browser with tabs for viewing and navigating the project by its directory structure, package structure, EJB components, and Web components. This browser is the primary means of navigation.
Online help is available from the main menu bar. It's HTML based and, by default, directs your browser to the Ensemble Systems Web site. I downloaded the help files and configured the options to use them.
Working with JSPs
You can create JSPs and associated Web components from the context menu of the Project Browser's Web tab. The new file is populated with a skeleton JSP. This skeleton is one of several templates provided with Glider. You can easily add your own templates or customize the stock templates provided.
Glider doesn't provide a lot of bells and whistles for JSP editing. I used the template mechanism to create a library of JSP tags, which would have been nice as supplied templates.
You can run your JSPs using the built-in server. Glider compiles the JSP, starts it up, and launches your Web browser.
Overall, I found Glider's editor a bit thin for HTML and JSP development, but Glider mindfully watches for changes made by an external source so you can use it with your favorite editor.
Working with EJBs
Like JSPs, EJBs are created from the context menu of the project browser. Glider generates the descriptor, implementation, home, and interface source for the bean. Glider has built-in tools to keep the interface, implementation, and bean descriptor in sync as you work. You can also flesh out the bean by editing the descriptor directly - Glider will update the source code from the descriptor.
Some other nice touches: the editor provides syntax coloring for the Java code, and has pop-up code helpers for automatic code completion. The code templates automate commonly used coding constructs, and the visual editor for setting up container-managed relationships is simple and easy to use.
When you're ready to start testing your EJB, Glider will generate a test client for you. From the test client code, simply add the code to instantiate your EJB from the bean home.
Glider supports XDoclet, which significantly simplifies EJBs. When you create your EJB, specify that you'll be using XDoclet. All coding for an EJB is then done in the bean implementation file, and the interface and home are generated from XDoclet tags embedded in your Javadoc comments when you build. This eliminates redundant, error-prone work and keeps the implementation, home, and interface in sync.
Support for XDoclet in the editor is great - the context menu provides options to create the tags for you. You can easily create an EJB, add methods and CMP features, or generate a test client and have it running in just a few minutes.
Debugging is where Glider really shines - you can edit and debug incrementally without any deployment effort. Testing an EJB with a generated test client couldn't be easier - just run the test client from within Glider. Glider will build the application and start the debugger. I was impressed with the rich debugging capabilities that Glider provides. You can create simple and conditional breakpoints, trace into JSP code, debug locally or remotely, inspect loaded EJBs with the integrated browser, and even save and preload the container's loaded beans for testing specific scenarios (see Figure 1).
Glider simulates a J2EE server with remarkable completeness. For developing and debugging J2EE applications, it's hard to beat the speed and convenience of this lightweight environment. The compressed code/test cycle encourages experimentation and creativity. The standalone version's editor is basic but sufficient, and the environment works well in concert with external editors and other tools. If you are using Rational/IBM's XDE or Rose, or eclipse.org's Eclipse shell, you should check out those versions.
At a list price of $499, Glider is a serious value for anyone doing J2EE development. At the introductory price of $199, this is a no-brainer. See www.ensemble-systems.com/glider for more information.
Ensemble Systems Inc.
Suite 280-5200 Hollybridge Way
V7C 4N3 Canada
Platforms: JDK 1.3.1 and JDK 1.4 (with Hot Swap support), Windows NT 4.x, Windows 2000 Professional SP2, Windows XP, Unix, Linux. Supports EJB 1.1 and EJB 2.0, JSP 1.2, Servlet 2.3 specifications
Pricing: $199 introductory price until July 15 2003, $499 after July 15.
2.1GHz desktop, 256MB RAM, 40GB disk, Windows XP SP1
Snapshot Fast and efficient tool for developing, debugging, and testing J2EE components (JSPs, servlets, EJBs)
Full support for EJB2.0 including CMP, CMR, message-driven beans
Good debugging tools
Works well with external editors and tools
Target Audience: J2EE developers
Level: Intermediate to advanced
Cons: Editor in standalone version could be more complete
An installer could make installation and setup a little more convenient
About The Author
Ron Phillips is vice president of software development at Serlio Software
(www.serliosoft.com) in Milwaukee, WI. Serlio provides mentoring and consulting to large and mid-sized companies adopting software best practices into their
development organizations. Ron has been designing and developing commercial
software development tools for over 12 years and has coauthored several books and articles on Java technologies.