Friday Jan 24, 2014

Loving Vincent

In addition to Oracle ADF, if you love Vincent van Gogh, you can help make history. I've blogged how on my personal blog:

Help Make History by Backing "Loving Vincent"

Tuesday Mar 19, 2013

Free Hands-on ADF Training April 10th, Reading UK

For details, check out Grant's blog post on this.

Wednesday Mar 13, 2013

Updated Example# 161 for Row Changed by Another User

I updated the sample application for my example #161, which illustrates how to ensure the "Row Changed by Another User" lost-update protection feature gives its warning even when AM pooling is disabled or the AM undergoes passivation/activation before encountering the row that another user has changed. I updated the sample to feature the standard "ADF Form" navigation buttons. When adding these navigation buttons, JDeveloper design time does the following:

  • Marks the ChangeEventPolicy property of the iterator binding in the related page definition to have the value "ppr" in order that the iterator supports "Auto-PPR" functionality
  • Creates the navigation <af:commandButtons> to have the partialSubmit="true" property

When clicking (Next) or (Previous), the partialSubmit="true" causes the page to undergo a partial page refresh rather than a full page request. On the web server, this translates then into a call to the related RowSetIterator's next() or previous() method to adjust the current row pointer in the row set iterator. The new current row has different values for the view row's fields than the previous row, and the ADFBC and ADFM data binding and ADF Faces framework layers cooperate when the ChangeEventPolicy="ppr" to automatically translate the change in current row and change in data value into appropriate additions of UI components to the ADF Faces partial target list. This ensures that during the HTTP roundtrip in which the row is navigated and/or the field values are changed, that the partial page request response returned with the same HTTP response includes the "delta" update instructions that the current ADF Faces JSF page needs to "surgically" refresh just certain elements in the page to update their values on the screen.

Previously the example's hidden field bound to the ObjectVersionNumber was using the <h:inputHidden> tag, which does not support the Auto-PPR behavior. This lead to its having the value of the ObjectVersionNumber of the original row displayed in the form when performing these partialSubmit="true" row navigations, as opposed to getting automatically updated to reflect the ObjectVersionNumber value of the current row being navigated to. This updated example changes the <h:inputHidden> to use the <tr:inputHidden> instead, which does support the Auto-PPR.

The side effect of having the <h:inputHidden>'s value staying "stale" was that upon row navigations, ADF Faces interpreted the value of the "stale" ObjectVersionNumber as an update to the navigated-to row's ObjectVersionNumber field, causing the row to get dirtied as if a user had modified a value in the row. The updated example works as you would expect. 

Thursday Dec 06, 2012

Next Tuesday (Dec 11th) ADF Virtual Developer Day

Grant blogs about a free learning event next Tuesday, the Virtual Developer Day. Educate yourself on topics like ADF, Mobile, BI, Portal and BPM all without leaving your comfortable desk chair.

Starts at 9am GMT 

Wednesday Dec 05, 2012

Jobinesh Blogs Composite View Objects

Jobinesh blogs a pointer to a free appendix from his book that describes a cool (if underdocumented) feature of ADF Business Components, which is the ability to create a new view object at runtime based on the definitions of other, existing view objects and viewlink definitions. It's called the composite view object feature.

Tuesday Nov 13, 2012

Reserve a Place at ADF Mobile Hands-on Training at UKOUG

ADF Mobile has a lot of buzz since mobile development of business applications for iOS and Android is a hot topic. If you'll be attending the UKOUG 2012 conference, act quickly to reserve your place now in a hands-on ADF Mobile training being offered.

 Grant gives more details on his blog

Thursday Oct 04, 2012

Mac OS X 10.8.2 Mountain Lion Breaks Parental Controls

If you have kids and macs and you use Parental Controls, for the moment don't upgrade to 10.8.2 Mountain Lion, the feature is broken after upgrading. I had to disable parental control completely on my daughters' macs in the meantime...

After hundreds of parents have complained about problems in this discussion thread on Apple's forums, finally the tech press notices: 

First There Was Apple's MapGate, Now Welcome ParentGate

For the moment there doesn't seem to be a workaround. Ugh.

UPDATE: Apple announced a 10.8.2 Supplemental Update this afternoon that claims to resolve the problem. 

Monday Sep 24, 2012

Free Version of Oracle Application Development Framework (Oracle ADF)

I'm very happy to finally be able to talk about this. A long time coming, the press release is finally out:

Oracle ADF Essentials is a free packaging of core technologies from the Oracle Application Development Framework that can be used to develop and deploy applications that include ADF Business Components, ADF Controller, ADF Binding, and ADF Faces Rich Client Components without incurring licensing costs. Both Oracle JDeveloper and Oracle Enterprise Pack for Eclipse provide visual and declarative development experience for using it. Oracle ADF Essentials comes with specific instructions and certification for deploying applications on the open-source Glassfish server, but the license is not limited to that server.

For more information and to download it (it's only 20MB), see Oracle ADF Essentials page on OTN.

Thursday Aug 16, 2012


I've been using a new web application called Workflowy for the past month and now can't live without it. It gives you a simple, generic way to manage a tree of "todo" items. It lets you organize "todo" items in a huge, searchable, taggable, drag-and-drop-reorderable tree, with no other features to get in the way.

By using their advanced search filtering, I can enter a search of "is:complete last-changed:7d" to filter the outline to only show what I did in the last week (useful for 1-on-1's).

Wanted to share this useful tidbit in case it might help anyone else. 

Friday May 18, 2012

Clever Technique to Delay Detail View Object Instances from Querying Eagerly

Steven Davelaar blogged about a deceptively simple approach for ensuring that detail view objects in your application module's data model don't get eagerly queried until visiting a web page that contains bindings to display data from those detail view objects. Check it out here.

Thursday Feb 23, 2012

Chris Muir in the House

Just wanted to give a shout out to the newest member of the Oracle JDeveloper/ADF product management team, Chris Muir!

 Chris' popular ADF-related blog is now here

Please update your bookmarks and newsreaders... 

Tuesday Nov 15, 2011

Another Chance to Have Your Voice Heard About Your JDeveloper Experiences

The JDeveloper/ADF product management team is running a new survey to capture additional user feedback on your experience with our tool and framework.

We'd really appreciate if you could find 5 minutes out of your busy day to and let us know what you think:


Wednesday Nov 02, 2011

Approach to Ensure Conflict Detection Works Across Passivation/Activation

If you or a client has encountered Bug 10208604 "Conflict Detection Not Working After AM Passivation/Activation", I've posted example # 161 that illustrates a technique to leverage the conflict detection mechanism added for stateless web service row edits (via Enhancement Request 5738772 "Conflict Detection Mechanism Required in ADF BC Service Layer") to solve the problem in a robust way. The solution involves:

  • Using a change indicator attribute (for example, an object version number field that ADFBC can automatically manage for you if you mark it as a 'history column' of type 'version number')
  • Including the change indicator attribute as a hidden field in the page where the row is being edited

Monday Oct 31, 2011

Nov / Dec 2011 ADF Tech Column Now Available

Frank's November/December 2011 ADF Technology column in Oracle Magazine is now available:



« July 2016