Wednesday, February 11, 2009

11G : ADF Life Cycle

ADF Lifecycle has Nine phases as follows:


        Fig: ADF Lifecycle

1> Initialize Context: In this phase value of associated request, binding container and lifecycle are set. Binding Container will get Initialized.
                                       
2> Prepare Model: In this phase model is prepared and initialized. In this phase page parameters are set and methods in the executable section of the page definition of the ADF page are executed. Page Parameter, Taskflow parameter & the Iterator which is having PrepareRender as refresh condition will get Initalized.

3> Apply Input Values: This phase handles the request parameters. These may come by adding the request parameters in the URL or as a result of HTML form post action. A list of events is build using these request parameters. These are actually mapped to the bindings in the pageDef. This phase resolves the list of request parameters bind to attributes in the page def. This results into a list of updatedValues which is used in Update Model phase.

4> Validate Input Values: This phase validates the list of values built in the Apply input values field with model.

5> Update Model: After validation of input values data model is updated with the list of values created in apply input values phase.

6> Validate Model Updates: Updates in the previous phase are then validated by calling the associated lifecycle's binding container .

7> Process Component Updates: This phase handles any events in the list built during the apply input values phase. Named events as well as all the events tied to the databindings created in the pagdef are handled in this phase.

8> Metadata Commit: This phase commits the runtime metadata changes to the model. This phase is always executed before prepare render phase.

9> Prepare Render: This is the final phase where page is sent for rendering. prepareRender event is sent to all the registered listeners. This notification signals bindings to prepare or process the data for rendering. Binding container is also refreshed. This helps in updating any changes that happened during validation phases.