Some reader favorites:
EJB fundamentals and session beans
Create a scrollable virtual desktop in Swing
More action with Struts 2
In a recent review of Struts 2 in Action, JW Blogger Oleg Mikheev notes that Struts 2 is "just a collection of extensions built upon WebWork, which is ultimately
the right thing to learn before starting a Struts 2 project." While Struts 2 has some architectural flaws, Oleg calls WebWork
well-designed, well-tested, and reliable. What are your experiences using Struts 2 and WebWork?
Also see "Hello World the WebWork way," a JavaWorld excerpt from WebWork in Action, by Patrick Lightbody and Jason Carreira.
| Memory Analysis in Eclipse |
| Enterprise AJAX - Transcend the Hype |
Unfortunately, the Borland effort left a lot to be desired. One of the product's biggest drawbacks was that the Java support was an add-on module to C++, rather than being a tool in its own right. The problem with this approach is that Java wasn't all that much like C++ in terms of its compilation units, object files, and compilation targets. In Java you compile a class file into an object that you can immediately instantiate with other objects that are already on the system. There are no ".exe" and ".dll" targets, which are the model used by the generic C++ IDE. Thus, building classes was cumbersome, the documentation was nearly non-existent, and the experience was wholly unsatisfactory. The C++ compiler worked great though.
On the heels of the C++ add-on product, word quickly got out about "Latte," the code name for an IDE environment that the engineers from the Delphi group were going to work on and that was written completely in Java. The ambitious project was beset by delays; it demoed at the first JavaOne Developer Conference in San Francisco in 1996 and then again at JavaOne '97. Finally, it has been released as JBuilder.
JBuilder shares many common themes with the Delphi world and feels similar enough to the Symantec Visual Cafe tools. So it was easy for me to get going with JBuilder -- even without reading the supplied documentation. (When I did have a question, the documentation was fairly complete in terms of describing the available options.)
The environment consists of a "control bar," which is a floating toolbar window, a "browsing window" with a layered tree control on the left, and a viewing window on the right. There is only one control bar, but several browser windows can be open.
The control bar, shown below, consists of the standard menu commands across the top, a palette of tools on the left that provide shortcuts to the menu items, and a collection of components (JavaBeans) that are available for use in your visual application or applet. Below the tool palette and components is a status line that is updated with whatever activity is taking place at the current time.

JBuilder's control bar
The browser window is shown below. This window is where you interact with your source code, either HTML or Java. Above this is the control bar, which lets you start actions (such as a rebuild) and holds your collections of JavaBeans for use in your own applications. Further, each browser window can display a project going on in it, so if you are working on multiple projects -- such as a new JavaBean and an application that uses it -- you can have both projects open at once and easily move between them. This capability impressed me as it supports the most common form Java development, changing several different pieces at once. In one browser window there can be a project of utility classes, in another browser the applet that uses those classes, and in a third a set of HTML pages that use the applet.