Main

ADF Declarative Debugger Archives

November 14, 2008

Introducing the New ADF Declarative Debugger!

For my very first blog entry (WooHoo!), I want to share with you something NEW and EXCITING in the world of ADF application development. If you’ve had a chance to download Oracle JDeveloper 11g for a test drive, I’m guessing you’ve already found lots of new and exiting changes. One you might not have noticed yet is the new ADF Declarative Debugger. It’s actually built right on top of the existing JDeveloper Java Debugger you already know and love. That’s great since there might be a little Java debugging needed within your ADF application, too.

The new ADF Declarative Debugger allows you to place breakpoints on task flow activities, page definition bindings, page definition executables, and of course Java source code, too. When paused at a breakpoint during debugging runtime, several targeted new windows provide the ADF application developer a detailed and intuitive understanding of the application based on ADF runtime objects. These new ADF Declarative Debugger windows include the following:

ADF Structure Window - Describes the relationship of ADF runtime objects within the application and specifies detailed content to display within the new ADF Data window. It provides a fantastic snapshot of what ADF runtime objects are currently in use. For that reason alone you’ll love it!

ADF Structure Window

ADF Data Window - Displays detailed content for the individual ADF runtime object currently selected within the ADF Structure window. Presents runtime values based on actual ADF objects making locating and understanding the needed information easy and efficient for any ADF application developer.

blogADFDataWindow.gif

EL Evaluator Window - Provides the ability to evaluate arbitrary EL expressions within the current runtime context. This window can really help shine a light on many different debugging scenarios. It’s like a skeleton key you’ll always have in your back pocket.

ELEvaluatorWindow

In future blog entries I'll be showing you more of the very powerful, cool things the ADF Declarative Debugger provides to your ADF application debugging. Until then, more information about the ADF Declarative Debugger can be found in section 29.5 "Using the ADF Declarative Debugger" of the Fusion Developer's Guide for Oracle Application Development Framework. Your ADF application debugging will never be the same!

September 25, 2009

New Features in the ADF Debugger

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.

newdebugger1 after breakpoint.GIF

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.
     newdebugger2 adf lifecycle breakpoints.GIF
  • 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.
newdebugger3 breakpoint window.GIF

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.

newdebugger4 display life cycle phase.GIF

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.

newdebugger5 adfbc content1.GIF

newdebugger6 adfbc content1.GIF

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.

newdebugger7 adfm conten 1.GIF

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.

newdebugger8 adfm conten pojo.GIF

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.

newdebugger9 page template.GIF



About ADF Declarative Debugger

This page contains an archive of all entries posted to ORACLE ADF - Putting It Together in the ADF Declarative Debugger category. They are listed from oldest to newest.

ADF Controller is the previous category.

Regions & Dynamic Regions is the next category.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type and Oracle