Back to Article

Review: Oracle JDeveloper 10g (9.0.5) Preview

by Drew Falkman

Introduction

Let me be frank, I have never invested more time than necessary on Oracle's J2EE tools. It's not that I have anything against them, per se, it's just that there are a lot of other choices out there. But again and again, I keep seeing JDeveloper appear on my radar as the IDE of choice for alot of developers. Given the amount of competition in this space, Borland JBuilder, the open source Eclipse, and so forth, I figured it was time to take a serious look.

I found that JDeveloper 10g is more than just a Java IDE. In addition to Java development, you can use JDeveloper to create user interfaces, HTML, Java Swing and XML-based; create and manage databases, develop Web Services and work with XML and XML schemas and all of these tasks can be done using fairly intuitive, visual-based drag-and-drop tools.

Setup and Installation

Overall, setup on Windows XP was smooth. The current preview release is a simple ZIP file that can be downloaded and extracted. A JVM location must be added to the config file, then one can simply execute the IDE. Note that this release will not register itself in Windows or add a shortcut to the Start Menu.

IDE Overview

The main interface of JDeveloper is quite similar to most Java editors. Figure 1 shows the IDE opened to a basic Web Application(using Oracle's ADF MVC framework - more on that later).

Basic Web Application

In addition to the usual project information and workspace, JDeveloper also includes the visual tools on the right side of the frame. In Figure 1, this is the Struts Page Flow information which includes actions, pages and so forth. Depending on what you are working on, the options here will change (this is called the Component Palette). These items can be dragged into the workspace allowing you to create WYSIWYG application components and connect them. This is true for Web Services, XML schemas, database tables, or whatever else you are editing through the IDE.

JDeveloper also includes a number of development tools, too many to list actually, but the main ones include:

  • Integrated Debugging
  • Refactoring
  • Advanced Searching Capabilities
  • Versioning/Team Development Tools
  • Import Tools for EJB
  • WebDAV Support
  • JavaDoc Generation

Java Class Development and UML

Developing POJOs (Plain Ol' Java Objects) and EJBs in JDEveloper can be done using the visual workspace tool, as well. As EJBs or Java classes are added to the workspace display, new Java and class files are created, and a Unified Markup Language-based layout is created. This makes for quick and dirty application design and a smooth transition from planning to implementation. Double clicking on a class will open the code, allowing you to code away and easily toggle back to the visual diagram, which will update to show the new classes and attributes you created. Figure 2 shows this workspace.

Workspace

MVC Application Framework & Oracle's ADF

J2EE development in JDeveloper relies heavily on the Model-View- Controller method of application design, specifically using (Jakarta) Struts, and also implementing Oracle's own Application Development Framework. The ADF framework adds a number of features to Struts, including a data binding methodology, JavaServer Faces, UIX (User Interface XML), JClient/Swing and more. The idea behind ADF is to provide a consistent and robust framework that encompasses all of the core components necessary to build robust J2EE applications, including features like wireless support and a rich client interface. The idea behind this is that developers will save development and testing time by using these pre-defined patterns and metadata services. ADF is new with the 10g line of products, and frankly time will tell as to the effectiveness. However, at first glance, it looks quite comprehensive and flexible. More information on ADF is available at the Oracle Web site.

Web Services Tools

Increasingly, enterprises are moving toward Service Oriented Architecture (SOA) applications - specifically using SOAP-based Web Services. These are useful specifically in the Oracle world to expose business logic and data across a heterogeneous network environment.

Deploying existing Java classes and EJBs is fairly straightforward. As with creating other objects, a wizard will walk you through the steps, including selecting your class and the methods you wish to expose as Web Services. This will create the WSDL and any necessary stub classes. You will then be able to view the WSDL interface via your application server and even run the Web Service from within the IDE and using the TCP Package Monitor see the SOAP packet exchange.

Additionally, JDeveloper has a WS-I (Web Services Interoperability) compliance monitor that will ensure that Web Services are compliant with standards.

Database Tools

Most Java IDEs do not have tools to design and create database schemas, but this is an Oracle Java IDE after all, and I would expect nothing less. A visual tool allows developers to create new entities and attributes, assign data types and lengths, create relationships and more. This design tool integrates directly with Oracle databases so existing database schemas will be created on connection and can be edited according to the permissions allowed by the login information (this is entered when you create a new database connection).

In addition, a number of PL/SQL development tools are included allowing the developer to stay within this single environment to create stored procedures and views, simple queries or output SQL scripts that can be deployed on other Oracle database servers.

XML Tools

The final significant feature I want to mention is the XML editing capabilities included in JDeveloper. Creating and editing XML schema is a straightforward process, and like the other processes in JDeveloper, you can do it either using the visual interface or editing the schema directly. Drag and drop new elements and attributes or manually type them in. Figure 3 shows the Dublin Core XML Schema Document.

XML Schema Document

Conclusion

Overall, I was quite pleased with everything that JDeveloper had to offer. It is nice to see a comprehensive development environment that is straightforward to install, configure and get started. Once I finished downloading it, which took a little while(it's no small package), it really only took me 10 minutes to be up and running with a new application workspace. If this is any indication of our evolution, it seems that the Java world is finally getting rid of that oft-spoke-of "J2EE complexity". However, keep in mind that this is an Oracle application, and as such it will work best with Oracle's tools: database, application server, applications. This can be a great thing if you use these tools in your environment. Otherwise, you may want to investigate other options. It appears that JDeveloper will work with numerous versions of Tomcat, JBoss and BEA WebLogic, but I did not test in those environments.

JDeveloper is a bit of a memory hog, so be sure that you have a well-endowed machine to run it. My little laptop was chugging away just trying to keep up and I don't have any development versions of Oracle Application Server or any such thing running in the background. All in all, if you are using a compatible application server and especially if you use Oracle (application server and database) I would recommend evaluating this application. The development time it could potentially save makes it a worthwhile return on your IT dollar.

More Information


Drew Falkman is the author of the JRun Web Application Construction Kit and co- author (with Ben Forta) of Reality ColdFusion: J2EE Integration, both published by Macromedia Press. Over the past 6 years, Drew has developed over 150 Web applications in all sizes using ColdFusion and Java. Currently Drew consults, speaks at events, writes for numerous publications, and teaches courses at Portland State University. His latest project through his consulting company, Veraison LLC, was a real-time cattle auction using Flash Remoting and Flash Communication Server. In addition, Drew is a member of Team Macromedia, a certified ColdFusion Developer and a certified Macromedia instructor.