A couple of months back Oracle released "Oracle ADF Essentials"—a free version of the core technologies at the base of Oracle ADF, which is Oracle's strategic Java EE based development framework used to develop the Oracle Fusion Applications and other Oracle products.

This should be very interesting to developers who are currently using JSF to build their applications, as Oracle ADF Essentials is offering some unique capabilities and extensions around JSF.

Here are some of the things JSF developers should know about ADF Essentials:

A Richer Set of JSF Components

Oracle ADF Essentials includes what is probably the largest and most advanced set of JSF components out there: Oracle ADF Faces Rich Client Components. These components include:

  • Advanced dynamic layout components
  • A variety of input components
  • Several data collections representations components such as tables and trees
  • Over 50 types of graphs
  • Various data visualization components such as maps, gauges, hierarchy viewers, calendars, and carousels
  • Much more

The components have built-in Ajax behavior that leads to a very rich user interaction experience and smarter communication with the server.

Beyond components, Oracle ADF Faces offers support for:

  • Skinning through CSS
  • Accessibility
  • Internalization
  • Partial page rendering
  • Windows and pop-up
  • Drag and drop
  • Advanced push of server events to clients

The components are also certified to run on iPads, automatically adjusting to support touch gestures, HTML5/CSS 3 rendering, adaptive layout, etc.

A good starting place for people who want to evaluate the components is the hosted components demo, which is also available as a WAR file you can download and deploy to your server.

Moving from Page Flows to Process Flows

Building on top of the JSF controller, the Oracle ADF controller extends to support complete reusable process flows definition. This enables developers to build process flows that navigate between pages, methods, and decision points—capability that in other frameworks requires a separate process engine.

A key capability of the ADF Controller is support for reusability of flows. Flows can be included as steps in other flows, but more important is the ability to run a complete flow as a region inside another JSF page. Dynamically changing the content of such a region is also supported.

To support this encapsulation of flows, Oracle ADF Essentials provides new memory scopes that extend the scopes provided by JSF with a page flow scope that is positioned between the request and session scope.

Some of the concepts that are already in the ADF Controller are making their way into the next version of the JSF 2.2 specification.

Simplified Data Binding

While it is optional when building applications with Oracle ADF Essentials, the Oracle ADF binding layer is definitely worth considering. It provides dramatic reduction in coding of managed beans and ELs that bind the UI to them, especially when you use the declarative development offered with JDeveloper or Eclipse (through Oracle Enterprise Pack for Eclipse).

The concept is simple: pick up a Java class, EJB, or Web service and create a "data control" with a simple wizard. Oracle ADF introspects the class to understand the structure of your business service, and then you can simply drag and drop individual attributes, complete collections, and methods to create your JSF UI, where they can be dropped as fields, forms, tables, graphs, etc. A meta-data file documents the pages and data controls that they are using. This simply accelerates the development of your JSF applications in a major way, eliminating a lot of tedious managed-beans and expression language coding.

Summary

There are other interesting capabilities included in the new Oracle ADF Essentials offering, but in this article we reviewed the parts that are of special interest to developers who are currently using JSF.

Oracle provides a host of tutorials and documentation that can get you started with the various components of Oracle ADF Essentials.  Now that this powerful framework is free, you should definitely take a look into it.