Why the New Oracle ADF Essentials is Important to JSF Developers
Last week Oracle Announced “Oracle ADF Essentials” - a free version of the core technologies at the base of Oracle ADF – Oracle’s strategic Java EE based development framework used to develop the Oracle Fusion Applications and other Oracle products.
These news 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 types of maps, gauges, hierarchy viewers, calendars, carousels and much more. The components have built-in ajax behavior that lead to a very rich user interface 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 and even advanced push to client technology. 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 or inspect in your favorite IDE.
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 – a capability that in other frameworks require 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. See this demo
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.
Simplified Data Binding
While this layer is optional when building applications with Oracle ADF Essentials, the Oracle ADF binding layer is definitely worth considering. What this layer provides, especially when you use the declarative development offered with JDeveloper or OEPE, is dramatic reduction in coding of managed beans and ELs that bind UI to them.
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.
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 documentations that can get you started with the various components of Oracle ADF Essentials, and now that this powerful framework is free – you should definitely take a look.