M7 NitroX for JSP, Struts, and JSF
The NitroX and MyEclipse environments are both good examples of how proprietary tools
can coexist with open source. Any dedicated Java/Struts Web application programmer will
probably want to turn to the NitroX toolkit first, if only because it's the most extensive. The
AppXRay feature seems to be devoted to the proposition that a programmer should only type a
name once. AppXRay comes with many code-completion tools that can see deep inside Java code
modules and XML configuration files. After you give some method, field, or configuration option
a name, AppXRay will probably find it and put it in the right pull-down menu for the next time
you want to use it.
AppXRay goes much deeper than the standard debugger, by parsing and storing much of the
information from XML configuration files. This is a welcome addition, because programming
with modern frameworks such as Struts is a hybrid between Java and XML. Most programmers
can tell you stories of how all of Java's fancy type-checking does nothing to prevent bad data in a
misconfigured XML file from ruining their applications.
The information from AppXRay is also a big help when debugging. You can see deeply into
JSP pages and connect this information with the information buried inside the XML configuration
files. NitroX extends the standard outline and variable browsing panels in Eclipse to handle many
of the XML editing chores for the major XML files.
NitroX also comes with a JSP design page that's split between code and a schematic HTML
layout. You can find a part of the JSP code by clicking on a part of the final layout schematic. It's
similar to using a WYSIWYG HTML page-layout tool, but it also includes icons and boxes for
some of the standard JSP tags. If you include loops or build other constructs in your JSP page, you
can visualize some of the effects.
The NitroX system is not perfect. AppXRay still leaves some rough, uncharted ground at the
edges of the application. For example, I discovered it is possible to create some actions that don't
have the right type, but the wizard did warn me of this error. Some of the creation wizards will do
only half of the job. The process of building a Struts application hasn't been reduced to a few
simple forms quite yet. Still, Nitro's ability to see deeply into the XML configuration files is a big
step forward.
MyEclipse Enterprise Workbench
It's not exactly fair to compare the Struts development environment in NitroX and the Struts
templates in MyEclipse because MyEclipse doesn't have many of the advanced information
compiled by AppXRay. This doesn't mean that MyEclipse is lacking. There are several good
wizards for creating Struts applications and editing the XML configuration file. You can spin out a
new Struts app with a few clicks and then add actions or other features using the wizards. These
methods are closer to templates than something worthy of the fancy buzzword—AppXRay—but
they're still quite nice. (The simplicity left me wondering why MyEclipse uses so much PHP on its
Website. Don't they eat their own dog food?)
The real value in MyEclipse comes from the broader range of tools included in the
distribution. There are editors for Cascading Style Sheets, JavaScript, HTML, and XML. Wizards
will help you create projects for Struts or EJB components, and produce all of the major
components of these projects, such as actions, session beans, or forms. There's also a tool for
editing the Hibernate configuration files and one for executing raw SQL queries.
My experience with the database explorer is probably a good indication of how other