OOW 2009 - And they call that a "patch set"? Marvels coming up in ADF 11gR1 PS 1 americas cup win 2682133k1

OOW 2009 – And they call that a "patch set"? Marvels coming up in ADF 11gR1 PS 1


Last Friday I attended a product briefing at Oracle HQ that prepared me for today’s Oracle Open World 2009 keynote presentation by Ted Farrell on development tools and middleware. Oracle will soon (some time November?) release what it calls Patch Set 1 for the Fusion Middleware 11g stack and this article goes into the new bits and pieces that we will see coming up in JDeveloper 11g and ADF 11g. Which clearly demonstrates that ‘patch set’ is misnomer of sorts. Sure enough, there will patches – fixes for bugs – in this release, but the list of new functionality and features (Duncan Mills boasted about 550+ new features) make it clear that there is much more to it than just patches. I was more than a little (pleasantly) surprised with this list. Let me share some of the details- and unfortunately I cannot demonstrate anything at this point as the software is not yet available.

Some of the common themes that link the new elements together include developer productivity (and fun), team productivity, end user experience and best practices. And of course filling some of the holes that existed in the previous releases – in terms of things not working and also obvious things simply not there or not implemented consistently.


A major new area of functionality is native mobile client – the ability to develop ADF applications that run as native mobile phone applications, even when those are off-line. At this point ADF applications can be deployed to BlackBerry and WindowsMobile with support for Android and other Java based mobile O/Ss (probably) coming later. Note: the iPhone does not run Java applications and will therefore not be part of the set of supported devices. The native mobile ADF clients internally make use of the same technology used in Oracle Lite for linking up and synchronizing when being reconnected after a period of disconnectedness.

Team Productivity and Software Engineering

The JDeveloper team continues its endeavour to improve team productivity and support modern software engineering. The Team Productivity Center adds a Bugzilla adapter for Incident tracking to the JIRA adapter already available and introduces a task infrastructure sitting on the TPC Server. Note: integration with MS Projects was already available.

JDeveloper also starts its first tentative attempts at support for Maven. In the upcoming release, JDeveloper will have support for pom-file editing. Like I said – it is tentative at this stage and Oracle is looking for feedback and suggestions for the most wanted functionality around Maven. At this point, there are no plans for setting up a public Maven repository with the ADF libraries – nor are there concrete plans for versioning libraries in the Maven way. Whether Maven can be used as the integrated build/deploy tool from within JDeveloper for running web application on the integrated WLS server was not yet clear to me (an advantage of that would be that the same build process eventually used for building for the Development, Test and Production environments is leveraged, used and tested locally.

The ADF Debugger has been extended to allow easy access to the SQL statements that are executed in ADF BC and to the rows that are currently in the ViewObjects’ rowsets.

JSF and ADF Faces

ADF Faces gets extended with a several news components:

  • Carousel – (aka revolver) – iTunes like revolving display of panes; the Carousel is based on a table model (tree binding) that can sit on a ViewObject or a POJO collection; the panes are not just simple read-only components: they can be complete forms with multiple input compoents. Imagine a tabbed pane and let then have the tabs revolve in semi-3D with all their (editable, actionable) content on them. That is what the Carousel gets you – and that is really quite fancy.
  • Auto Suggest – the mother of all of AJAX, the dropdown list with suggested values based on the initial input from the user. At last a generic, declarative auto-suggest is available
  • SparkChart – a nice little DVT component for inline charting; the sparkchart produces a simple graphical indication (using line, bar, area chart mainly) of some trend or aggregation that can be used inline in text or for example in table components)
  • GoImageLink – a combination of a GoLink with an embedded image
  • Emailable page – similar to printable page, a rendition of the page without the elements that do not work well in HTML emails
  • ContextInfo – a feature used very heavily in Fusion Applications; it adds a little visual indicator to input components. when this indicator is activated, a popup is displayed which is intended to provide additional, context sensitive information that goes with the data in the component on which the context was requested. Examples are popups that provide details for the name of the customer, the id of a product, the label of the department. Details may include images and other read only information but also actionable elements to navigate to a related page, start communication with a person, add a note etc. This feature is perhaps more about the concept of adding context sensitive actions and exposing them through this visual indicator than about what the component itself really does. However, the concept is a powerful one!

ADF Faces ships with a new skin – the Fusion skin, used by Oracle itself for Fusion Applications and in many ways – especially with nested components – an improvement over the current blaf-plus rich skin.

ADF Faces also provides a potentially very useful thing called Sample UI Shell. My current understanding is that it adds a component – a page template very similar to the panelPage component in ADF 10g – that helps to structure pages in a predefined way – together with infrastructure (run time logic) to help organizing various instances of task flows. It is a trimmed down version of what is used in Fusion Applications. However to be frank I need to have a look at it to properly understand what exactly it is and can do for us.

The JSF page editor will be able to display some form of "dummy data" instead of EL expressions for example for the values of inputText components – to make the preview look prettier and more meaningful.

Support JSF 2.0 is still some time away – even though it is being mentioned and is definitely something on the radar for some time in 2010. With Facelets becoming the default view declaration language in JSF 2.0 – taking over from JSP – it is only logical that Facelets is making more of an appearance in ADF 11g. With the patch set there is more support for the Facelets runtime – though not yet a pretty visual design time page editor and no or limited support for the usage of ADF components (I have to check what exactly is and is not available with Facelets).

More ADF

Good news on the ADF Model and specifically on the Bean Data Control – used for EJB 3.0/JPA and POJO binding (and frequently with WebService proxies as well): the Bean Data Control will have support for query and sort operations, declaratively without any programming effort. That means for example that all of a sudden the value of using Data Binding instead of managed beans going directly to POJO based business services has enormously increased. And my previous article on "How some Data Controls are more Equal than others (https://technology.amis.nl/blog/3633/the-rise-of-the-viewobject-or-isnt-the-viewobject-the-real-data-control)" is somewhat countered by this development.

The diagram for ADF taskflows now has a page preview function which means that when the mouse hovers over a View activity, a thumbnail image will be shown of the actual JSF page that sits underneath that activity.

The contextual event editor has been improved – a lot!


UML 2.0 support in the UML diagrams and editors

JSON syntax support in the JavaScript editor

More control over the logging that an application produces and where it goes.

Coming up: support for HTML 5.

New Graph types: Funnel, Floating Bar Graph, Fit to Curve