HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

Recently, I had the opportunity to work with the latest version of Object-Venture's J2EE development tool: ObjectAssembler. ObjectVenture promotes ObjectAssembler 2.5 as a "smart" development tool that simplifies and accelerates J2EE development. This is a popular claim among Java tools, so I decided to put it to the test. My experience showed that ObjectAssembler lives up to the challenge.

ObjectVenture offers two versions of their tool: Professional and Enterprise. I reviewed the full-featured Enterprise edition. ObjectAssembler Enterprise casts a broad net, offering the following features:

  • Visual representation and management of J2EE components (EJBs, JSPs, etc.) in the IDE, and real-time synchronization with code
  • Visual Support for Struts, including full Tiles and Validator functionality
  • Support for a language for defining and adhering to design patterns, known as Pattern Component Markup Language (PCML)
  • Integration with JBuilder, Sun ONE Studio, and NetBeans
  • Deployment to most J2EE application servers

    Getting Started
    ObjectAssembler Enterprise is available as a standalone environment or as a plug-in for Borland's JBuilder, Sun ONE Studio, or NetBeans. I downloaded the standalone evaluation version of ObjectAssember 2.5.2, which is built atop the NetBeans IDE core. After downloading and completing the InstallAnywhere installation, I was up and running without incident in about three minutes. Just be sure you use a JDK that's 1.4 or higher.

    One of the tool's most touted abilities is its visual "component" approach to J2EE development. To experience this, I created a very simple J2EE application containing a JSP, servlet, and session EJB that would reverse a string.

    Component Workspace
    ObjectAssembler's interface consists of three visual "workspaces." I spent most of my development time in ObjectAssembler's Component Workspace, where J2EE components can be visually created, modified, and maintained.

    ObjectAssembler supports many components, which are created through a simple wizard. The components are broken up into several categories:

  • Struts: Action, Plugin, ActionForm, DynaActionForm
  • Web: JSP, lifecycle event, servlet, filter
  • EJB: Entity bean, session bean, message-driven bean
  • General: Interface, JavaBean, value object

    I started by creating my servlet. Once I walked through the wizard, I noticed an example of ObjectAssembler's so-called "IntelliSynch" functionality that warned: "Servlet should implement a doPost or doGet" (see Figure 1). This warning seemed to go beyond enforcing interface adherence by offering general development tips. I found that the tool's tips and warnings do a good job (especially with novice developers) of finding silly errors. Beyond just identifying a problem, I was typically able to right-click on the warnings to implement a suggested fix with one-click.

    Figure 1

    While creating my JSP, the tool offered menus for adding directives, scriptlets, expressions, and tags. In addition to support for standard JSP tags, the tool allows importing of custom tag libraries and then enforces required attributes and tags. I couldn't help being impressed by how much easier JSP development could be with ObjectAssembler.

    Last, I created a session bean using the EJB wizard (see Figure 2). In addition to wizards, the tool offers the ability to import and maintain existing components. This was reassuring to me, indicating that ObjectAssember doesn't use proprietary repositories to maintain applications. To give IntelliSynch another test, I wrote the bean's method by hand, and, true to form, the tool visually added the method to the component in its Detail View.

    Figure 2

    Assembly Workspace
    With the components for my simple application complete, I checked out the Assembly Workspace. The interface offered clean organization of my components, archives, and configuration files, with the ability to edit any item within the tool.

    To deploy, I right-clicked on the enterprise application and selected Generate EAR. ObjectAssembler compiled the necessary classes and packed up the EAR. The tool contains a "deployment versioning" feature that preserves application server-specific deployment descriptors from previous archives, and allows you to go back into the tool and make changes to your code without having to re-create the descriptors.

    Patterns Workspace
    A compelling feature of ObjectAssembler Enterprise is its ambitious support of software patterns, which allows you to capture designs and best practices for software development.

    Traditionally, patterns have been described informally or as UML. ObjectVenture has developed an XML-based language to represent patterns. PCML, which ObjectVenture is working to standardize, allows patterns to be exchanged, modified, or extended in a human and machine-readable format. ObjectAssembler 2.5 Enterprise Edition ships with a version of Sun's Java Center Patterns Catalog represented in PCML.

    The impressive part of ObjectAssembler's pattern support is that not only can you easily create and modify patterns, but the tool actually tracks patterns after they are applied and can enforce them during development. If part of the pattern is not complete or the source code is modified and breaks the pattern, the tool informs the developer and assists in correcting the problem. I immediately thought of the potential; it's like having an architect looking over the developer's shoulder, keeping the project in sync with the original design.

    Minor Issues
    Overall, I had a very positive experience with ObjectAssembler. Like any tool, however, it's not without problems. The documentation is not very comprehensive and I wanted more examples. ObjectAssembler's user manual is adequate, but the online help was somewhat thin.

    Another minor flaw is that ObjectAssembler's integrated application server support is currently limited to WebLogic, JBoss, and Tomcat. ObjectAssembler does generate a J2EE-compliant archive that can be deployed to any J2EE-compliant application server. ObjectVenture indicated they would have additional application server integration available shortly.

    In total, I was impressed with ObjectAssembler. I see its visual J2EE component and Struts development features as particularly useful for coaching development and reducing errors. The pattern support and the introduction of PCML show promise for enforcing design decisions throughout development, in particular on larger teams.

    It's not often that a development tool lives up to its claims of being helpful yet unobtrusive. ObjectVenture's ObjectAssembler seems to meet these qualities and is well worth a look.

    ObjectVenture, Inc.
    Suite D208
    2 Shaker Rd.
    Shirley, MA 01464
    Phone: 978.425.9654
    Web: www.objectventure.com
    E-mail: [email protected]

    Any platform with JDK 1.3.x support. Plugs into JBuilder, NetBeans, and Sun ONE studio or standalone
    Pricing: Enterprise $1,999; Professional $499 (no pattern support)

    Target Audience:
    J2EE developers
    Level: Beginner to advanced


  • Fast, visual J2EE component building with lots of coaching, tips, and guidance
  • Strong Struts support
  • Ambitious support for creating, distributing, and enforcing software patterns


  • At present: a small user community
  • So-so online documentation
  • Limited built-in app server integration

    About The Author
    Adam Chace is president of Chalk Creek Software, a J2EE consultancy in the U.S., and the coauthor of JSP Tag Libraries from Manning Press. [email protected]

    All Rights Reserved
    Copyright ©  2004 SYS-CON Media, Inc.
      E-mail: [email protected]

    Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.