In
the new release of JDeveloper 11g (11.1.1.2), the ADF Debugger has some
very helpful new features. Check these out, if you haven't already
taken them for a spin...
Page Definition Breakpoints
Page definition breakpoints were available in the prior release of
JDeveloper, however, they only provided the ability to pause debugging
BEFORE bindings and executables were performed. Now, it's also possible
to pause debugging AFTER page definition bindings and executables are
performed. A new column has been added on the right of page definition
binding and executable lists for these new AFTER breakpoints. Toggle an
AFTER breakpoint "on" by clicking within the new column or select the
binding or executable in the list and utilize the context menu.
Stepping is possible from the BEFORE to the AFTER page definition
executable location, but no longer continues once the AFTER page
definition executable location is reached.
Keep in mind refreshing is NOT the same as executing
iteratorBindings. Each data control determines how and when to execute
a collection. When using ADFbc, a Java breakpoint is required on the
ViewObjectImpl executeQueryForcollection or QueryCollection's
executeQuery methods to break on the execute of a particular
collection. This Java breakpoint can be made conditional to break only
if the VO name or ViewDef name matches how the iteratorBinding is bound.
ADF Lifecycle Phase Breakpoints
It's now possible to pause debugging BEFORE and/or AFTER any ADF
lifecycle phase. There are a couple places these new ADF lifecycle
phase breakpoints can be created:
-
ADF Lifecycle Phase Dialog - Available from the ADF Structure
window or task flow diagram editor using the "ADF Lifecycle Breakpoints..."
toolbar item. ADF lifecycle phase breakpoints are toggled "on" by
selecting within the columns on either side of the ADF lifecycle phases listed within the dialog. When paused during debugging runtime, the current ADF lifecycle phase
will be displayed within the dialog in bold.
- Debugger Breakpoint Window - A new
toolbar has been added to the Debugger Breakpoint window. It provides
the ability to create, edit, delete, enable, and disable different types of breakpoints, including ADF lifecycle breakpoints. Currently, page definition breakpoints cannot be added within the debugger Breakpoint window.
Once debugging is paused on an ADF lifecycle phase breakpoint, stepping can be performed to advance from the current location the next BEFORE or AFTER ADF lifecycle phase location.
Display of Current ADF Lifecycle Phase
Previously, it was difficult to identify where debugging was paused
within the ADF lifecycle. Now, when debugging is paused at any breakpoint
the ADF Debugger displays the current ADF Lifecycle Phase at the top of
the ADF Structure window. This can be very helpful information when
further inspecting values and/or determining application processing.
New ADF Business Component Content
This new release also adds the capability to review the BC4J objects
currently instantiated when
debugging is paused. To view this information, the ADF Structure window
provides an "Application Data" node within each viewport. Selecting the
desired viewport's "Application Data" node will present its
corresponding instantiated BC4J objects for display within the ADF Data window. This includes the
following BC4J objects:
-
Application Module: identifies the current transaction status
-
Entity Object: displays all rows and the current status of the entity's state.
-
View Object: shows its corresponding SQL Query and the rows it retrieved. The current row is identified with a current row icon.

Enhanced ADF Model Content
Previously, when selecting a binding container node in the ADF
Structure window it was difficult to locate the desired ADF Model
information displayed within the ADF Data window. Now, the ADF Model content
displayed mirrors the same structure as its design time page
definition: Data Controls, Parameters, Executables, and Bindings. Each area can be expanded to inspect its current runtime values.
Data controls based on business services not implemented by BC4J
objects will display within the binding container content using raw
member variables similar to the standard debugger Data window. For
example, the "EmployeeService" bean data control shown below was
implemented using a POJO.
Hide Page Template Content
When inspecting view contents within the ADF Data window, it's now
possible to easily filter out page template content from the content of
its associated page. A checkbox labeled "Include Page Template
Content" will be displayed on the ADF Data window toolbar if the view displayed
is assigned a page template. The checkbox default is to
include page template content. Just uncheck the box to easily
filter out any page template content. Then only the content coming from the page will presented
within facets.
