How JSF Page Lifecycle and ADF Page Lifecycle Phases Relate

Lifecycle and ADF Page Lifecycle Phases Relate

The JSF Lifecycle forwards control to the page to be rendered.
The UI components on the page access value bindings and iterator bindings in the page’s binding container and render the formatted output to appear in the browser.
The ADFBindingFilter invokes the end Request() method on each data control participating in the request. This gives every data control a notification at the end of every request where they can perform any necessary resource cleanup.
An application module data control uses the endRequest notification to release the instance of the application module back to the application module pool.
The user sees the resulting page in the browser.

Lifecycle of a Web Page Request Using Oracle ADF and JSF

Ans : Below figure  shows a sequence diagram of the lifecycle of a web page request using JSF and Oracle ADF in tandem.

Lifecycle of a Web Page Request Using JSF and Oracle ADF
Life Cycle of ADF
As shown in the figure, the basic flow of processing happens as follows:
A web request for http://yourserver/yourapp/faces/some.jsp arrives from the client to the application server
The ADFBindingFilter finds the ADF binding context in the HTTP session, and if not yet present, initializes it for the first time.
During binding context initialization, the ADFBindingFilter:
Consults the servlet context initialization parameter named CpxFileName and appends the *.cpx file extension to its value to determine the name of the binding context metadata file. By default the parameter value will be “DataBindings“, so it will look for a file named DataBindings.cpx.
Reads the binding context metadata file to discover the data control definitions, the page definition file names used to instantiate binding containers at runtime, and the page map that relates a JSP page to its page definition file.
Constructs an instance of each Data Control, and a reference to each BindingContainer. The contents of each binding container are loaded lazily the first time they are used by a page.
The ADFBindingFilter invokes the beginRequest() method on each data control participating in the request. This gives every data control a notification at the start of every request where they can perform any necessary setup.
An application module data control uses the beginRequest notification to acquire an instance of the application module from the application module pool.
The JSF Lifecycle class, which is responsible for orchestrating the standard processing phases of each request, notifies the ADFPhaseListener class during each phase of the lifecycle so that it can perform custom processing to coordinate the JSF lifecycle with the Oracle ADF Model data binding layer.
Note:The FacesServlet (in javax.faces.webapp) is configured in the web.xml file of a JSF application and is responsible for initially creating the JSF Lifecycle class (in javax.faces.lifecycle) to handle each request. However, since it is the Lifecycle class that does all the interesting work, the FacesServlet is not shown in the diagram.
The ADFPhaseListener creates an ADF PageLifecycle object to handle each request and delegates appropriate before/after phase methods to corresponding methods in the ADF PageLifecycle class as shown in  If the appropriate binding container for the page has never been used before during the user’s session, it is created.

What is Oracle Adf?

Ans :
The Oracle Application Development Framework (Oracle ADF) is an end-to-end application framework that builds on J2EE standards and open-source technologies to simplify and accelerate implementing service-oriented applications. If you develop enterprise solutions that search, display, create, modify, and validate data using web,wireless, desktop, or web services interfaces, Oracle ADF can simplify your job. Used
in tandem, Oracle JDeveloper 10g and Oracle ADF give you an environment that covers the full development lifecycle from design to deployment, with drag-and-drop data binding, visual UI design, and team development features built-in.

40 [UPDATED] ORACLE ADF Interview Questions and Answers

 40 [UPDATED] ORACLE ADF Interview Questions and Answers :-



1.What is Oracle Adf?


2. Lifecycle of a Web Page Request Using Oracle ADF and JSF


3.How JSF Page Lifecycle and ADF Page Lifecycle Phases Relate


4. What is Action Listener ?


5. What are business Component In ADF.Describe them?


6. What is Top Link?


7. What is Managed Bean?


8. What is Backing Bean?


9. What is view object?


10. Difference between Backing Bean and Managed Bean?


11. What are the different kinds of Bean Scopes in JSF?


12. How to declare the page navigation (navigation rules) in faces-config.xml file in ADF 10g?


13. Setting the range of table


14. Which component in ADF BC manages transaction ?


15. Can an entity object be based on two Database Objects(tables/views) or two Webservices ?


16. Where is that we write business rules/validations in ADF and why?
A : We should ideally be writing validations at Entity Object level, because they provide highest degree of reuse.

17. What are the JSF life-cycle phases?
Ans:The six phases of the JSF application lifecycle are as follows (note the event processing at each phase):
1. Restore view
2. Apply request values; process events
3. Process validations; process events
4. Update model values; process events
5. Invoke application; process events
6. Render response

18. Explain briefly the life-cycle phases of JSF?
1. Restore View : A request comes through the FacesServlet controller. The controller examines the request and extracts the view ID, which is determined by the name of the JSP page.
2. Apply request values: The purpose of the apply request values phase is for each component to retrieve its current state. The components must first be retrieved or created from the FacesContext object, followed by their values.
3. Process validations: In this phase, each component will have its values validated against the application’s validation rules.
4. Update model values: In this phase JSF updates the actual values of the server-side model ,by updating the properties of your backing beans.
5. Invoke application: In this phase the JSF controller invokes the application to handle Form submissions.
6. Render response: In this phase JSF displays the view with all of its components in their current state.

19. What is setActionListener?
Ans:SetActionListener – The setActionListener tag is a declarative way to allow an action source ( , , etc.) to set a value before navigation. It is perhaps most useful in conjunction with the “processScope” EL scope provided b ADF Faces, as it makes it possible to pass details from one page to another without writing any Java code. This tag can be used both with ADF Faces commands and JSF standard tags.
Exmaple of this can be as follows. Suppose we have a table “employee”.We want to fetch the salary of an employee of some particular row and want to send this salary in
Next page in process scope or request scope etc.So using this we can do this.
It have two attributes :
From – the source of the value; can be an EL expression or a constant value
To – the target for the value; must be an EL expression
1 <af:setActionListener from="#{row.salary}"
2 to="#{processScope.salary1}"/>
This setActionListener will pick value of salary of that row and store this value into salary1 variable.So anyone can use this salary
As processScope.salary1 . It is very simple to use. And very useful.

Hi all , here again I came up with most awaited article .This is part oracle Adf interview Question part-two.I have accumulated ,formulated, and gathered these information from various sources.So that it would be helpful for Oracle ADF community.

20. Describe Oracle ADF Architecture?
Ans:In line with community best practices, applications you build using the Fusion web technology stack achieve a clean separation of business logic, page navigation, and user interface by adhering to a model-view-controller architecture. As shown in in an MVC architecture:
The model layer represents the data values related to the current page The view layer contains the UI pages used to view or modify that data The controller layer processes user input and determines page navigation.The business service layer handles data access and encapsulates business logic
archi


Oracle ADF Business Components, which simplifies building business services.
Oracle ADF Faces rich client, which offers a rich library of AJAX-enabled UI components for web applications built with JavaServer Faces (JSF).
Oracle ADF Controller, which integrates JSF with Oracle ADF Model. The ADF Controller extends the standard JSF controller by providing additional functionality, such as reusable task flows that pass control not only between JSF pages, but also between other activities, for instance method calls or other task flows.
Simple Oracle ADF Architecture
archi2

21. What is Association and Viewlink ?
Ans: They define the join or the link among EO’s and VO’s.Association defines link between EO’s.They can be considered as PrimaryKey/ForeignKey relationship between tables.
The Viewlink is for a VO.It defines the Join conditions.A viewlink can be based on an association or based on attributes,Basing viewlinks on associations have the same advantage of entity cache and few more which are unveiled later.

22. What is  the Business Component Tester
ans:The mostly used component of the model layer is the tester, which is used to run and check the data model that is implemented.This serves as the first line of defense to see if data is exposed as we need it and to test the data model with out a need to create a UI.

23. What is task flow?
Ans: ADF task flows provide a modular approach for defining control flow in an application.Instead of representing an application as a single large JSF page flow, you can break it up into a collection of reusable task flows. Each task flow contains a portion of the application’s navigational graph. The nodes in the task flows are activities. An activity node represents a simple logical operation such as displaying a page, executing application logic, or calling another task flow. The transactions between the activities are called control flow cases

24. Advantage of Task Flow Over JSF flow?
 Ans: ADF task flows offer significant advantages over standard JSF page flows
  • The application can be broken up into a series of modular flows that call one another.
  • You can add to the task flow diagram nodes such as views, method calls, and calls to other task flows.
  • Navigation is between pages as well as other activities, including routers.
  • ADF task flows are reusable within the same or an entirely different application.After you break up your application into task flows, you may decide to reuse task
  • Shared memory scope (for example, page flow scope) enables data to be passed between activities within the task flow. Page flow scope defines a unique storage area for each instance of an ADF bounded task flow.
25. What are type of task flow?
 Ans: The two types of ADF task flow are:
■ Unbounded task flow: A set of activities, control flow rules, and managed beans that interact to allow a user to complete a task. An ADF unbounded task flow consists of all activities and control flows in an application that are not included within any bounded task flow.
unbounded
■ Bounded task flow: A specialized form of task flow that, in contrast to an unbounded task flow, has a single entry point and zero or more exit points. It contains its own set of private control flow rules, activities, and managed beans. An ADF bounded task flow allows reuse, parameters, transaction management,and reentry. An ADF bounded task flow is used to encapsulate a reusable portion of an application. A bounded task flow is similar to a Java method in that it:
■ Has a single entry point
■ May accept input parameters
■ May generate return values
■ Has its own collection of activities and control flow rules
■ Has its own memory scope and managed bean lifespan (a page flow scope instance)
A bounded task flow can call another bounded task flow, which can call another and so on. There is no limit to the depth of the calls.The checkout process is created as a separate ADF bounded task flow, as shown
bounded

40 TOP ORACLE ADF Interview Questions and Answers pdf for Experienced :-

26. What are different memory scope in ADF Managed Beans.?
Ans: Please read this link

27. What is region in Task Flow?
Ans: You can render a bounded task flow in a JSF page or page fragment (.jsff) by using an ADF region. An ADF region comprises the following. You create an ADF region by dragging and dropping a bounded task flow that contains at least one view activity or one task flow call activity to the page where you want to render the ADF region. This makes sure that the ADF region you create has  content to display at runtime

28. What is Association Accessor?
Ans: It’s an operation by which an entity instance at one end of and association can access the related entity  object  instance at the other end of the association. An Accessor that travels from destination to source is called a source accessor  and an accessor that travel from source to destination is called a destination accessor.
It is described in the entity object definition xml files which can be used by view object and view link definition to specify cross entity relationship. Its return type will be the entity object class of associated entity object definition or ‘EntityImpl’ if the associated entity object definition has no entity object class.

29. What are different data control scope?
Ans:

  1. Isolated:
  2. Shared(Default)-Data is shared with the parent flow.

30. What is application module pooling and how we can handle it.
  Ans: Still trying to find more info in this .
But as of now you can go http://andrejusb.blogspot.com/2010/02/optimizing-oracle-adf-application-pool.html

31. What do you mean by Bean Scope?
Ans: Bean Scope typically holds beans and other objects that need to be available in the different components of a web application.

32.What is the difference between JSP-EL and JSF-EL?
JSP-ELJSF-EL
In JSP-EL the value expressions are delimited by ${…}.In JSf-EL the value expressions are delimited by #{…}.
The ${…} delimiter denotes the immediate evaluation of the expressions, at the time that the application server processes the page.The #{…} delimiter denotes deferred evaluation. With deferred evaluation ,the application server retains the expression and evaluates it whenever a value is needed.

ORACLE ADF Interview Questions with Answers ::