Welcome!

Oracle Authors: Yeshim Deniz, Pat Romanski, Michael Bushong, Avi Rosenthal

Related Topics: Oracle, Java

Oracle: Article

Java Product Review — Oracle JDeveloper An IDE Worth a Second Look

It's never too late for a second chance at a first impression

As the saying goes you never get a second chance at a first impression. In general, that's true, but if you've been thoroughly revitalized, matured, and cosmetically re-engineered, shouldn't you get a second shot at that first impression? I'd argue that's true of Oracle's Java/J2EE Workbench, Oracle JDeveloper.

Starting out life as a code fork from Borland's JBuilder tool back in 1997, Oracle JDeveloper has had a fairly long history as a Java IDE, most of it in relative obscurity. Things have changed though. During JavaOne 2005, Oracle announced that Oracle JDeveloper would henceforth be free. This sparked interest, since JDeveloper always had areas of definite benefits over other tools but came with a price tag. Furthermore, over the last couple of years, Oracle has added rich support for all areas of Java and JEE development, especially in the case of the latest 10.1.3.1 rev released in October 2006 during Oracle OpenWorld.

This latest release supports JEE 5 standards such as EJB 3.0 and JSR-220 Java Persistence API, JSR-181 Web Service Annotations, as well as JavaServer Faces. It also brings a visual design time environment for creating Business Process Execution Language (BPEL) processes and Enterprise Service Bus (ESB) Services and features-enriched functionality for Java, XML, Web Services and Web application development. I'd like to invite you to take a brief tour to get that second look and a new first impression of Oracle JDeveloper.

Getting To Know Oracle JDeveloper
JDeveloper 10.1.3.1 can be downloaded from Oracle's Technology Network at http://oracle.com/technology//jdev (up to 420 MB). Installation only takes unzipping an archive. When running, JDeveloper's Studio Edition consumes a somewhat greedy 180 MB memory by just being there.

Plain Old Java Programming
Java IDEs are typically evaluated first and foremost on their ability to support pure Java programming. Oracle JDeveloper has a history riddled with wizards and frameworks and facilities for all kinds of development, but it tended to trail behind other prominent IDEs when it came to Plain Old Java Programming (POJP). With recent releases that gap has been closed and Oracle JDeveloper currently offers at least the same, if not more features, than can be found in alternative tools.

Built-in features include:

  • Refactoring - with options such as extract code fragment as method and extract interface or superclass
  • Code folding
  • Quick view of JavaDoc of referenced classes and methods
  • Code completion and code reformatting
  • User-customizable code snippets
  • Generation of bean accessors for properties
  • Smart import organization of classes and libraries
One feature I particularly like and frequently use is the CTRL+ - a key combination for "Go to Java Class." This brings up a window where developers can type in the name of a class or interface and navigate directly either to the source code or the JavaDoc.

Advanced tools found in Oracle JDeveloper, not generally part of the core of IDEs, include a code profiler to identify performance and memory hotspots, and an auditor that does quality control on Java source code - even on non-compilable code - according to predefined standards and guidelines. The profiler monitors and logs a running program's use of processor and memory resources and can be used to locate and correct inefficiencies. Developers can also use the profiler with the debugger and CodeCoach for efficient source code troubleshooting.

The march of Plain Old Java Objects (POJOs) seems unstoppable. With EJB 3.0, and particularly the Java Persistence API (JSR-220), as well as the Web Service annotations defined in JSR-181, a POJO can be easily promoted to an entity, persistently mapped to a database table or a Web Service simply by adding some annotations to the bean definition. JDeveloper will recognize these annotations and provide code completion support for them.

JDeveloper 10.1.3.1 also features wizards that can create entities (annotated POJOs) from selected tables and views in a database, or that can create a new entity. Currently there's no synchronizing support to realign entities and tables; however, given Oracle's leading role in the Dali Eclipse plug-in, I expect this feature to be added to a future version of Oracle JDeveloper.

The Web Service wizard allows easy publication of a POJO and selected methods as a Web Service; this wizard can add the JSR-181 annotations to the POJO, or create a WSDL document along with the WSIF binding definition.

Integration IDEb The biggest news with Oracle JDeveloper 10.1.3.1 is the Integrated Service Environment workbench. In particular, BPEL and ESB tooling is now fully integrated into JDeveloper.

There is a visual diagrammer with drag-and-drop component palettes and built-in wizards that help the developer design the BPEL processes. Wizards help create partner links for adapter services that link to external systems like (SOAP) Web Services, JMS, file system and FTP servers, MQ Series and databases (SQL or Oracle PL/SQL). The BPEL process is created by dragging BPEL activities such as pick, flow, invoke, reply, and assign to the diagram and configuring them through wizard screens. The invoke and reply steps are connected to the partner links with external services. A BPEL process can be deployed directly to the Oracle BPEL Process Manager from within the JDeveloper IDE (see Figure 1).

Oracle JDeveloper can also generate test cases for BPEL processes in which partner link response messages and workflow outcomes can be emulated prior to deployment in a production environment. This helps ensure that a process interacts with Web Service partners as expected by the time it's ready for deployment to a production environment.

In late October 2006, Oracle released its ESB as part of its SOA Suite. Oracle JDeveloper provides the design time for the ESB, and ESB router services typically consist of inbound services, routing and transformation rules and outbound services. The router service is constructed visually, using drag and drop, as well the same adapter service wizards used for developing BPEL processes. The transformation of messages in the ESB is done using an XSLT transformation. Oracle JDeveloper has a particularly useful tool that makes creating the XSLT document a simple, highly visual task, using drag and drop from source (inbound) XSD to the target XSD document.

Deploying the ESB is a two-click process using a predefined connection to the application server that hosts the ESB.

The first impression in developing ESB services is that it works very well - even though this is just a 1.0 release of the technology.

I2DE - Integrated IDE
Some integrated development environments (IDE) are more integrated than others. Oracle JDeveloper is much more than a Java programming tool. Integrated into its core Java IDE are a host of other IDEs such as:

  • XML development - visual editors for XSD, XSLT, XQuery, WSDL, and support for debugging XSLT
  • Web development - visual editors for CSS, as well as WYSIWYG editors for HTML, JSP, JSF (pages and config) and ADF Faces (a k a Apache MyFaces Trinidad), Struts (config) and Applets and an HTTP Analyzer for analysis of the packets sent across the wire for Web Services and Web applications
  • J2EE development - wizards for EJB, Web Services, and the built-in OC4J Application Server to deploy J2EE artifacts quickly, as well as very easy remote debugging of both Web and J2EE applications. JDeveloper also provides an IDE for Oracle TopLink - one of the premium tools for object-relational mapping
  • Database development - editors and diagrammers for tables, database browsers, SQL worksheets, data viewer for all JDBC-powered databases as well as programming and debugging support for PL/SQL - the Oracle database's stored procedural language
  • UML modeling - diagrammers for activity, class (with code synchronization), sequence and use case diagrams
  • Integration - visual modeling, testing. and deploying Web Services, BPEL processes, and ESB services
These various IDEs work together and are blended in the overall IDE. Together they share connections (database, application server, UDDI, WebDAV), a project definition with path-setup, library associations, and deployment profiles. Generic tools include a property palette, a structure window, debugger, and a task manager. JDeveloper integrates with various application servers - WebLogic, Tomcat, JBoss, OC4J, and Oracle Application Server for one-click deployment, and also provides powerful Ant integration (see Figure 2).

Check for Updates/Extensions
No matter how rich an IDE may be it's never complete out-of-the-box. Like other IDEs, Oracle JDeveloper has an automated mechanism for installing extensions - the JDeveloper term for what other IDEs call plug-ins - that's also used in updating the IDE itself with patches and service updates.

However, there's obviously only a limited set of extensions available for Oracle JDeveloper, since most of the functionality is already built-in and pre-integrated. While that may mean a little less choice, it most certainly saves a lot of time and money otherwise spent on acquiring the collection of plug-ins offering the same functionality only to find them far less well integrated than one would hope for.

Some useful extensions - that you might have expected to come pre-integrated - include unit testing with JUnit and support for AspectJ and Subversion.

Installing and upgrading extensions is effortless; however, downgrading or de-installing extensions requires developers to disable the extension and remove the archive from the file system.

Oracle Frameworks for Productive Java Development
Oracle JDeveloper is frequently known for its built-in frameworks, such as ADF Business Components - a SQL-oriented framework for mapping between Java applications and relational databases - and ADF Model - a data-binding infrastructure based on JSR-227. While these frameworks can add tremendous productivity, such as the drag-and-drop development of a database-bound JSF application, they are often regarded with some suspicion, because people see them as too proprietary and closed.

Every organization needs to make its own judgment about using these frameworks. They should take into account that these frameworks lower the barrier considerably for doing (productive) J2EE development, allowing less-experienced developers to make substantial contributions to development efforts. Furthermore, Oracle is using these frameworks to develop Fusion Applications, virtually guaranteeing their continued support and enhancement. Applications developed with these frameworks are J2EE-compliant and can be installed on various application servers.

Conclusion
The new 10.1.3.1 release of Oracle JDeveloper has a lot to offer with functionality that extends far beyond what one would normally expect from a Java IDE. One of its key strengths is its out-of-the-box richness, comprehensive feature set, and tight integration. No need for searching, acquiring, and installing a lot of plug-ins.

In the past there's been a lot of prejudice concerning Oracle JDeveloper: not being suitable for Plain Old Java development, only supporting proprietary Oracle development, being too expensive, etc. However, Oracle JDeveloper 10.1.3.1 is free, allows - but by no means necessitates - using Oracle-specific frameworks, and has scores and scores of features that even the most hardcore Java programmer will appreciate. Support for SOA, XML, Web, database, UML, and J2EE is an added bonus.

If you haven't looked at Oracle JDeveloper in a while, you'll definitely want to take a second look now. Installation only takes unzipping an archive. Oracle JDeveloper 10.1.3.1 is free and available for download at: http://oracle.com/technology//jdev.

More Stories By Lucas Jellema

Lucas Jellema (Oracle ACE) is CTO at AMIS, an Oracle, Java and SOA Technology Consulting firm based in Nieuwegein, The Netherlands. Apart from being a technical architect and workshop instructor, he is a regular presenter at international conferences on topics such as BPEL, EJB 3.0, AJAX and Java Server Faces, Oracle’s ADF (Application Development Framework) and productive application development in general.

Comments (2) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
JDJ News Desk 01/03/07 05:59:54 PM EST

As the saying goes you never get a second chance at a first impression. In general, that's true, but if you've been thoroughly revitalized, matured, and cosmetically re-engineered, shouldn't you get a second shot at that first impression? I'd argue that's true of Oracle's Java/J2EE Workbench, Oracle JDeveloper.

JDJ News Desk 01/02/07 07:52:42 PM EST

As the saying goes you never get a second chance at a first impression. In general, that's true, but if you've been thoroughly revitalized, matured, and cosmetically re-engineered, shouldn't you get a second shot at that first impression? I'd argue that's true of Oracle's Java/J2EE Workbench, Oracle JDeveloper.