Last month during Oracle Open World I wrote an article on the upcoming features of PatchSet 1 for JDeveloper 11g: . Now this release has been published and is delivering on those promises. For an overview of all (?) new features, take a look at What’s New. It is a fairly dry, emotionless, factual list of features small, large and enormous new features. With brief descriptions and screen shots for many of them, it gives you a quick overview of what might be useful to you. Note however that some gems are hidden away in this list for which the meaning and importance is not fully captured I believe in this summary. And of course the relevance of any new feature depends on your specific situation.
Apart from the obvious features really standing out in a visual way – such as the caroussel component, the sparkchart and the fusion skin – I was intrigued by an apparently small feature for Business Components: “Setting the Auto Refresh property on a view object causes the view object to refresh its dataset if change notifications are received from the database.” Update of stale middle tier cache, configured in a declarative way. If it does what I think it does, and now not only for Shared Application Modules but for any AM’s ViewObjects, then that is potentially quite cool. The database can inform us of ViewObjects that need to refresh because their data set is (potentially) become stale.
Another one I want to take a closer look at: “Generate asynchronous web service methods for custom application module methods and view object operations.“. It seems like we can expose selected methods in asynchronous web service portTypes.
The changes in the contextual events framework are very interesting too. Before this release, I have suggested that perhaps we might need our own plain class/object based listener registration mechanism as I did not think the contextual events are intuitive enough. However, with the improvements in 11gR1PS1 – both design time and run time – I will have to revise that opinion. We can now triggers events not just from data control bindings, but from buttons, managed beans and even JavaScript. And the payload of an event can easily be defined to include binding value, data control method return, managed bean method return value, string literal or other expression. Several additional settngs allow us to fine tune the event handling:”Declaratively specify raise conditions for an event.”, Choose to subscribe to an event only if it’s raised by a particular component,”Declaratively specify handle conditions for an event.”.
Using non-ADF BC based Data Controls has became somewhat more viable, thanks to the introduction of “New filtering, sorting and range paging APIs for non-ADF BC data controls.”. Non-ADF BC controls include POJO data controls and WebService Data Control – as well as the Placeholder Data Control.
There seems to be a lot of new functionality for DVT (Data Visualization Tags) as well. Especially the integration of popup into the DVTs look like an interesting option. Also the control over visual characteristics “what will the DVT look like” seems to have been expanded quite a bit.
The debugger enhancements, especially when it comes to inspecting ADF Data Bindings and ADF Business Components are going to prove very valuable I am sure. It becomes so much easier to find out what at a certain point in the execution of the code is inside the binding container and especially what state is and the contents are of ViewObjects.
We will discuss more features such as the REST support, Maven functionality, Context Info, Fusion Skin, Dynamic Tab Pattern page template etc. in the weeks ahead of us.
The auto-refresh VOs still only work in shared AMs. It was a new feature in 11g but must have inadvertently been added to the 11.1.1.2 list.