Columns

Oracle opens up (just a bit)

Oracle’s JDeveloper 10g is an IDE in the broadest sense of the term. For the majority of Java application development projects, the developer or architect will never have to leave the JDeveloper environment to get the job done. JDeveloper successfully integrates the tools needed to create not only Java apps, but to develop (and, in several cases, to visually or declaratively develop) UML, XML, JSPs, HTML, EJBs and Swing interfaces. The IDE also provides connectivity to various Java app servers, SQL databases via JDBC, SOAP servers and a host of other data sources. Essentially any of the secondary tasks that one might find a need to perform during the phases of planning, development, testing, deployment and maintenance of a J2EE, J2SE or J2ME app are integrated in some fashion in JDeveloper.

From a pure Java development standpoint, JDeveloper provides everything you need in an enterprise-class Java IDE, as well as some unique features.

Installation for this review was a simple process of unzipping a file and launching the application. JDeveloper runs on Windows, Linux and Unix. Macintosh OSX is not supported. (Editor's Note: Since this review was written, Oracle has announced plans to make Oracle JDeveloper 10g available on Mac OSX sometime in the second half of 2004.)

Out of the box, JDeveloper’s feature set simplifies J2EE development. It provides a set of application templates for rapid creation of various file types. The majority of these templates are specific to J2EE apps. However, JDeveloper shines with its plug-in architecture. If you find that a specific feature or feature set isn’t up to the task at hand, chances are there is a downloadable plug-in that can handle the job.

With this release, Oracle is pushing the visual development envelope for J2EE. Visual development features run the gamut from configuration wizards to drag-and-drop EJB creation and data binding. It even provides WYSIWYG editing for HTML, JSP and Swing components.

Oracle’s visual development capabilities can open the platform up to groups where J2EE’s complexity can be a barrier to entry -- Cobol programmers, migrating Visual Basic developers and business analysts.

Perhaps the strongest draw to the latest JDeveloper release is the introduction of the newly minted Application Development Framework (ADF), a J2EE MVC framework that helps to facilitate rapid app development from within JDeveloper. Much of the value of JDeveloper 10g revolves around building J2EE apps on top of ADF technologies. Portions of ADF have appeared in previous releases of JDeveloper, or as separate products from Oracle.

A key exception to the seemingly Oracle-only club in the ADF is the inclusion of the open-source Struts JSP/Servlet framework from the Apache Software Foundation. Indeed, the Controller portion of ADF’s MVC framework is based solely on Struts’ Controller model.

Developing apps visually on top of the ADF in JDeveloper is surprisingly simple. A feature I’ve not seen in any other IDE is a visual environment for working with the cornerstone Struts config file. Having the various relationships between Actions, Form Beans, Forwards, etc., of a Struts app illustrated in this manner does have its benefits. Because the complexity of the config file tends to grow exponentially with the Struts app, it can become a bear to track each section’s relationship with another within a lengthy XML file, especially when your client suddenly demands, mid-project, that an entire portion of the app be significantly altered or a new, previously non-existent section be added.

A license to utilize the ADF is included as part of the JDeveloper license. Applications developed on top of the ADF can be deployed on any app server.

This does not mean that the source code for the ADF is available. The ADF is a closed-source framework: You can use it in your applications and deploy those applications on any J2EE-compliant application server, but you cannot edit the underlying functionality of the ADF. Depending on your open-source proclivities, Oracle’s black-box treatment of its ADF could be a deal breaker in your decision to adopt JDeveloper as your primary development environment.

The IDE includes one of the better Oracle database and PL/SQL editing tools I’ve used, complete with a SQL query window, database schema viewing, and PL/SQL editing and debugging.

From a database connectivity standpoint, however, JDeveloper definitely speaks volumes about its heritage. Oracle RDBMS connectivity is pre-configured. Other RDBMSs can be connected to, but require the developer to configure the connection. Other commercial Java IDEs, such as IBM’s WebSphere Application Developer, feature a much broader range of pre-configured database connections.

JDeveloper supports drag-and-drop creation of UML object diagrams from a database connection. You simply drag the table to the editor window within one of the UML templates and, voil‡, a UML diagram with the object name and member variables is created. These UML entities can then auto-generate Java objects.

An embedded version of Oracle’s own Application Server (OC4J) serves as JDeveloper’s runtime environment. In addition to OC4J, JDeveloper can be configured to work with BEA WebLogic, Apache Tomcat and JBoss. I was a little surprised that Orion was absent from the pre-configured list, considering OC4J is based on the open-source Orion; I was less surprised at the absence of IBM’s WebSphere. Stranger still, JDeveloper lacks any method to add application servers to the pre-configured ones.

Oracle is clearly trying to expand its user base with the latest JDeveloper release by including features and capabilities that broaden the IDE’s appeal beyond the typical J2EE developer. This can be seen especially in its visual and declarative approach to development, as well as its strong tie-in with the ADF. Whether this product will actually succeed remains to be seen. If you’re working strictly with Oracle’s database and application server products, the decision to use JDeveloper as your IDE is a no-brainer. Move outside Oracle’s product line, and the justifications for choosing JDeveloper become less clear. In general, JDeveloper supports fewer databases and application servers out of the box than other Java IDEs on the market.

Oracle would better serve developers who use its IDE by acknowledging that J2EE applications are often developed and deployed in heterogeneous environments, and by including native support for more and varied databases and application servers. Its excellent feature set notwithstanding, and given the level of competition in the Java IDE space, where high-quality editors are readily available and often for free, Oracle’s exclusionary mindset risks letting JDeveloper die on the vine.

Oracle JDeveloper 10g
Oracle Corp.
Redwood Shores, Calif.
800-672-2531
www.oracle.com
Rating: 4 out of 5 stars

Bottom Line:
JDeveloper successfully integrates features for all development phases of J2EE and several related technologies into one environment. Rapid application development is possible with the inclusion of visual and declarative capabilities as well as its Application Development Framework. Although JDeveloper is an ideal solution for building apps built on top of Oracle’s database and application server, its lack of broad support for other environments may inhibit its adoption. Pricing and Availability: Oracle JDeveloper 10g is available for free download and evaluation from the Oracle developer community Web site, Oracle Technology Network (http://otn.oracle.com). It is priced at $995 per named user.

Pros:

  • Strong visual and declarative capabilities; great for Java newbies. 
  • Tight integration with Oracle database and Java app server. 
  • Application Development Framework enables rapid J2EE dev. 
  • Integrates J2EE, JSP, HTML, XML, UML and PL/SQL development environments. 
  • Java-based IDE runs on a wide variety of OSes.

Cons: 

  • Supports fewer databases and application servers than most enterprise-class Java IDEs; no way to add new application servers. 
  • Application Development Framework is closed-source; may or may not be an issue, depending on your company’s policy or your own personal policy.

About the Author

Jason Halla is an enterprise J2EE architect with a Fortune 500 company in Indianapolis, and moderator of Devshed's popular Java, PHP and XML forums. He can be reached at [email protected].