Wednesday, 6 February 2013

oracle adf interview questions and answers




Introduction to Fusion and ADF
[  ]Describe Fusion Architecture
Check: Check Part I Chapter 1 : What Is Fusion? in  Oracle JDeveloper 11g Handbook (reference: http://www.amazon.co.uk/Oracle-JDeveloper-11g-Handbook-Development/dp/B001NLL53Q/ref=sr_1_4?ie=UTF8&s=digital-text&qid=1294509536&sr=8-4)


[  ]
Explain how ADF fits into the Fusion architecture
The ADF is the framework used to build Fusion Web Apps.
The Oracle Application Development Framework (Oracle ADF or just ADF) is a meta-framework
that fulfills the core requirements for a framework as outlined in the preceding section. ADF
integrates a mix of subframeworks to provide the key functions for object-relational mapping and
other forms of service access, data bindings, and user interface, along with the functional glue to
hold it all together (reference: http://www.amazon.co.uk/Oracle-JDeveloper-11g-Handbook-Development/dp/B001NLL53Q/ref=sr_1_4?ie=UTF8&s=digital-text&qid=1294509536&sr=8-4)

This chapter describes the architecture and key functionality of the Oracle Application Development Framework (Oracle ADF) when used to build a Fusion web application that uses Oracle ADF Business Components, Oracle ADF Model, Oracle ADF Controller, and Oracle ADF Faces rich client, along with high-level development practices. Check: http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/intro.htm#insertedID0
[  ]
Describe the ADF technology stack (MVC)
Check: http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/intro.htm#BHCFFJHC
[  ]
Identify sources of additional information about ADF and ADF Business Components


  • Check "Resourses" in the bottom of the blog and also posts with Resource label 

Getting Started with JDeveloper
[  ]
Describe benefits that JDeveloper provides for application development
Check: http://www.oracle.com/technetwork/developer-tools/jdev/jdeveloper11g-datasheet-1-133040.pdf
[  ]Utilize common IDE mechanisms when developing and testing components
[  ]Set IDE preferences based on user requirements
[  ]Initiate the creation of empty applications, projects, and connections in JDeveloper


Building a Data Model with ADF Business Components
[  ]Describe the role of ADF Business Components in building a business service

[  ]Explain the architecture of ADF BC

Oracle ADF Business Components is a framework implements the Business Services layer on top of a data source in a declarative way. It provides out-of-the-box services such as transaction management, resource pooling, locking, declarative validation rules, translation, and object-relational mapping. 
To use Oracle ADF BC, you use wizards in JDeveloper to create:

  • Application Module
    • An application module is a service component that UI or Web Service clients use to work with application data. It defines an updatable data model and top-level procedures and functions (called service methods) for a logical unit of work related to an end-user task. To simplify the task of implementing your services, you leverage a set of business components like entity objects and view objects.
    • You can enable a service interface on any Application Module. The service interfaceexpose Application Modules as remotable services allowing third-party applications to find, create, update and delete business information using standard web services protocols. All of the business validation rules encapsulated in your Entity Objects are automatically enforced through this service interface as well.
    • You can use any application module both as a local component and as remotely-accessible service. This allows you to support both interactive Web user interfaces as well as programmatic Web-service clients with the same component.
  • Entity object
    • An entity object represents a row in a database table and simplifies modifying its data by handling all DML operations for you. It can encapsulate business logic for the row to ensure your business rules are consistently enforced. You associate an entity object with others to reflect relationships in the underlying tables to create a layer of business domain objects to reuse in multiple applications.
  • View object
    • A view object represents a SQL query and simplifies working with its results. You declaratively join, project, filter, sort, and aggregate entity object data into exactly the "shape" required by the end-user task at hand, including the ability to link a view object with others to create master/detail hierarchies of any complexity. When users modify business data using a view object, that component automatically collaborates with entity objects to consistently validate and save the changes.
The following diagram illustrates the relationship among application module, entity object, and view object. A view object defines a query and produces a row set of rows. View objects and entity objects collaborate to enable an updatable data model. Application module contains view objects and it provides transaction.





[  ]Identify the types of components that cooperate to provide the business service implementation




  • Entity object
    An entity object represents a row in a database table and simplifies modifying its data by handling all data manipulation language (DML) operations for you. It can encapsulate business logic to ensure that your business rules are consistently enforced. You associate an entity object with others to reflect relationships in the underlying database schema to create a layer of business domain objects to reuse in multiple applications.






  • View object
    A view object represents a SQL query and simplifies working with its results. You use the SQL language to join, filter, sort, and aggregate data into the shape required by the end-user task being represented in the user interface. This includes the ability to link a view object with other entity objects to create master-detail hierarchies of any complexity. When end users modify data in the user interface, your view objects collaborate with entity objects to consistently validate and save the changes.




  • Application module
    An application module is the transactional component that UI clients use to work with application data. It defines an updateable data model along with top-level procedures and functions (called service methods) related to a logical unit of work related to an end-user task.



  • [  ]
    Explain how ADF BC components are used in a Web Application
    http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/bcdcpal.htm#BBJBDCHF


    Querying and Persisting Data
    [  ]Describe the characteristics of an ADF BC view object
    [  ]Create a view object that can be used for performing a query in a Web application
    [  ]Define a SQL statement on which to base a query for a view object
    [  ]Explain how entity objects relate to database tables
    [  ]Describe the persistence mechanism of entity objects
    [  ]Use the Create Entity Object wizard to generate entity objects from database tables
    [  ]Create associations between entity objects to represent business relationships
    [  ]Create updatable view objects based on entity objects
    [  ]Link view objects to one another in a master-detail hierarchy
    [  ]Refactor objects in an application


    Exposing Data to Clients
    [  ]Explain the role of application modules
    [  ]Describe the characteristics of application modules
    [  ]Use the Create Application Module wizard to define the data model for an application module
    [  ]Explain how application modules can manage business components transactions
    [  ]Explain how application modules can manage application stateE
    [  ]Explain the role of the ADF Model


    Declaratively Customizing Data Services
    [  ]Declaratively change data behaviour
    [  ]Declaratively modify the default behavior of view objects, entity objects, and application modules
    [  ]Define a view accessor for a list of values(LOV)
    [  ]Define a list of values (LOV) for an attribute


    Programmatically Customizing Data Services
    [  ]Generate Java classes for business components to modify default behavior programmatically
    [  ]Override class methods to change or augment default behavior
    [  ]Modify the WHERE clause of a view object at run time
    [  ]Explain the benefits of adding service methods at the application module level (rather than at the view level)
    [  ]Create a test client for testing your custom code
    [  ]Modify a view object's client code to add a new employee to the employees view object


    Validating User Input
    [  ]Describe the types of validation available for ADF applications
    [  ]Evaluate which validation options are appropriate for different validations
    [  ]Add declarative validation for an entity object
    [  ]Identify the other non-declarative validation options and when they might be used
    [  ]Describe the benefits of using domains for validation


    Troubleshooting ADF BC Applications
    [  ]Identify the JDeveloper tools for logging and diagnostics
    [  ]Use Java code auditing tools
    [  ]Make use of FileMon and Junit to debug an application
    [  ]Use the JDeveloper profiler
    [  ]Use the JDeveloper debugger
    [  ]Identify sources of Help


    Understanding UI Technologies
    [  ]Describe the use of Web browsers and HTML
    [  ]Explain how Java has come into widespread use as a language for developing Web applications
    [  ]Describe the function of Servlets and JSPs
    [  ]Define JavaServer Faces
    [  ]Explain the JSF component architecture
    [  ]Expalin some JSF component types included in the standard implementation
    [  ]Describe the purpose of backing beans
    [  ]Describe the JSF life cycle
    [  ]Explain how ADF Faces augments the JSF life cycle
    Binding UI Components to Data
    [  ]Create an empty JSF page
    [  ]Use three different ways to add ADF Faces UI components to a page
    [  ]Describe the types of data-bound components that can be added to a JSF page
    [  ]Describe the structure of an EL (Expression Language) expression
    Planning the User Interface
    [  ]Describe the Model-View-Controller design pattern
    [  ]Differentiate between bounded and unbounded task flows
    [  ]Create task flows to define control flow in an application
    [  ]Specify control flow rules
    [  ]Define global navigation
    [  ]Use routers to declaratively route control flow to activities based on an EL expression
    [  ]Define the role of managed beans in task flows
    [  ]Explain the types of validation available in the user interface


    Adding Functionality to Pages
    [  ]Internationalize the user interface so that the application can be used in multiple locales
    [  ]Use component facets to specify subordinate elements such as toolbars, headers and footers
    [  ]Implement a list of values (LOV) to enable users to select a value from a list
    [  ]Add a calendar component to an input date field to make it easy for users to select a date
    [  ]Use the table component to display structured data as a formatted table
    [  ]Employ the tree component to display hierarchical data
    [  ]Add icons and images to an application with ADF Faces output componentsE
    [  ]Create Search forms using the ADF query component
    [  ]Use ADF Data Visualization components to add charts, graphs, map etc to your JSF pages
    Implementing Navigation on Pages
    [  ]Implement command buttons and links
    [  ]Create menus - Menu bar
    [  ]Create menus - Popup
    [  ]Create menus - Context
    [  ]Use a navigation page
    [  ]Use breadcrumbs
    [  ]Create trains


    Achieving the Required Layout
    [  ]Build complex page layouts with layout components
    [  ]Explain the role of ADF Faces skins
    [  ]Use dynamic page layout
    Ensuring Reusability
    [  ]Identify the benefits of reusing components
    [  ]Create a resource catalog to enable sharing of resources within and across teams and applications
    [  ]Create ADF libraries to share components within and across teams and applications
    [  ]Create a task flow template for reuse across different bounded task flows
    [  ]Create a page template for reuse across the JSF pages in an application to enable a consistent look and feel
    [  ]Create a declarative component for reuse in different pages of an application
    [  ]Create a page fragment to use in multiple pages of the application
    [  ]Employ a bounded task flow as a region in a JSF page


    Passing Values between UI Elements
    [  ]Evaluate whether the data model contains opportunities to reduce the need for passing values between pages
    [  ]Use a managed bean to pass values between JSF pages
    [  ]Store values in memory-scoped attributes to hold and pass information between pages and life cycle phases
    [  ]Use parameters to pass information to different parts of the application
    Responding to Application Events
    [  ]Configure managed beans to contain code to respond to events
    [  ]Explain the different types of events
    [  ]Use phase listeners to listen for and respond to events
    [  ]Explain the role of an event listener
    [  ]Use action listeners
    [  ]Describe the sequence in which events and listeners are executed
    [  ]Describe the features of JDeveloper that support ADF Faces enhanced event handling
    [  ]Identify the server events fired by ADF Faces components/span>
    [  ]Use the contextual events framework to co-ordinate regions on a JSF page


    Implementing Transactional Capabilities
    [  ]Explain ADF BC transaction handling
    [  ]Enable an ADF bounded task flow to run as a transaction
    [  ]Manage transaction exceptions on ADF bounded or unbounded task flows
    [  ]Define the response to the browser's Back button (for an ADF task flow that was already exited)
    [  ]Implement Save for Later functionality


    Implementing Security in ADF BC Applications
    [  ]Explain the need to secure applications
    [  ]Describe security aspects of an ADF BC application
    [  ]Add ADF Security Authentication to an application
    [  ]Add ADF Security Authorization to an application
    [  ]Use two approaches for granting users access to resources
    [  ]Prevent unauthorised access to the ADF BC Model
    [  ]Explain the types of application authentication at run time
    [  ]Use Expression Language to extend the default security capabilities of the framework
    Explore the Project Structure and Core File Architecture
    [  ]Define File Structure of a Project
    [  ]Examine how Metadata files are used to specify paramters, methods, and return values to a data control
    [  ]Define ADF Data Control and Databinding Files
    [  ]Explore the ADF Faces and Web Configuration Files to know where task flows, pages and code are created
    [  ]Define Hierarchical Relationship of the XML Metadata files in a Web Application


    Extend the ADF Business Components Framework
    [  ]Examine some general considerations when using ADF Business Components
    [  ]Extend the ADF Business Components (ADF BC) Framework to customize your application
    [  ]Override the standard way data is committed to the database using a PL/SQL procedure
    [  ]Design ADF Business comonents to avoid database contraint


    Use ADF Business Components for Validation, Calculations and List of Values
    [  ]Build Cascading List of Values
    [  ]Enhance the Application with Calculations and Validation
    [  ]Create Validation for Foreign Keys
    [  ]Employ Groovy Expressions in Validations


    Use Inheritance in the Business Domain Layer
    [  ]Reuse existing Bussiness Component designs by extending components
    [  ]Implement Supertype/Subtype designs using Entity Objects
    [  ]Create View Objects to access more than one table


    ADF as a part of a Service Oriented Architecture
    [  ]Expose ADF Business Components as SDO for use in a SOA Process (BPEL)
    [  ]Create Rich User Interfaces that access data from a composite application
    [  ]Create events for ADF Business Components to trigger Enterprise Service Bus
    [  ]Use Service Data Objects to access heterogeneous data in a uniform way


    Implement Data Binding Controls
    [  ]Define and Recognize ADF Model binding types
    [  ]Define ADF Model executables and how to use them
    [  ]Customize data-bound components within the page definition file to support application requirements
    [  ]Use Expression Language to connect page items to model components
    [  ]Determine how model components get transformed into Data Control Palette items


    Practical Data Binding in Action
    [  ]Examine data binding in the JavaServer Faces (JSF) Page life cycle
    [  ]Define listeners and custom controllers to augment the ADFm life cycle
    [  ]Develop two different style queries: Query by example and Query using Google style
    [  ]Develop two different types of list of allowable values: Static lists and Dynamic lists


    Work with Managed Beans and JavaServer Faces
    [  ]Define key JavaServer Faces (JSF) terms
    [  ]Describe the JSF Architecture with Application Development Framework (ADF)
    [  ]Differentiate between Managed and Backing Beans
    [  ]In a JSF page, create and reference a Managed Bean to perform a custom method
    [  ]Set and use Managed Properties to store and retrieve user login information
    [  ]Use context object classes to access application messages, work with the Servlet API or ADF specific funcationality


    ADF Faces Advanced Features
    [  ]Examine AJAX and ADF
    [  ]Employ Partial Page Rendering (PPR) on a JSF Page
    [  ]Enhance a page by creating input and output items using ADF Components
    [  ]Use page, panel and splitter componentss to design and build a JSF page
    [  ]Develop UI shell templates to incorporate company standard behavours, look and feel
    [  ]Display numerical data using Data Visualization components and Active Data Services


    Integrate with WebCenter
    [  ]Allow end users to perform runtime customization to their application pages
    [  ]Integrate ADF pages with Content Management systems to access file systems
    [  ]Add Web Center Services, like social networking and collaboration, to JSF/ADF pages
    [  ]Add reusable Portlets that provide dynamic view of data, into a JSF/ADF page


    Customize the Application Look and Feel with Skins
    [  ]Use Firebug and Mozilla Developer Toolbar to build skins
    [  ]Explain how skin selectors work
    [  ]Build instance specific skins
    [  ]Develop a managed bean to change skin at runtime

    Dig more/References:

    • Oracle JDeveloper 11g Handbook . This book by Duncan Mills really helps to answer many of the above. If you are a newbie consider buying ( http://www.amazon.co.uk/Oracle-JDeveloper-11g-Handbook-Development/dp/B001NLL53Q/ref=sr_1_4?ie=UTF8&s=digital-text&qid=1294509536&sr=8-4)
    • http://xmlandmore.blogspot.com
    • http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=41&p_org_id=1001&lang=US&p_exam_id=1Z0_554#3
    • Here are a set of Interview Question/Tips for Oracle ADF :
      Q : What is the return type of Service Methods?
      A : Service Methods can return Scalar or Primitive Data types.
      Q : Can Service Methods return type Void?
      A : Yes, Service Methods can Return type Void
      Q : Can Service Methods return Complex Data types?
      A : No, service methods can return only primitive/scalar data types.
      Q : Which component in ADF BC manages transaction ?
      A : Application Module, manages transaction.
      Q : Can an entity object be based on two Database Objects(tables/views) or two Webservices ?
      A : No entity objects will always have one to one relationship with a database object or web service.
      Q : 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.

      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.
      Q: 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 *.cpxfile 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.xmlfile of a JSF application and is responsible for initially creating the JSFLifecycle 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 ADFPageLifecycle 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.
      How JSF Page 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.
      Q : What is Action Listener ?
      Ans : An action listener is a class that wants to be notified when a command component
      fires an action event. An action listener contains an action listener method that
      processes the action event object passed to it by the command component
      Q:What are business Component In ADF.Describe them?
      Ans: All of these features can be summarized by saying that using ADF Business
      Components for your J2EE business service layer makes your life a lot easier. The key
      ADF Business Components components that cooperate to provide the business service
      implementation are:
      ■Entity Object
      An entity object represents a row in a database table and simplifies modifying its
      data by handling all DML operations for you. It can encapsulate business logic for
      the row to ensure your business rules are consistently enforced. You associate an
      entity object with others to reflect relationships in the underlying database schema
      to create a layer of business domain objects to reuse in multiple applications.
      ■Application Module
      An application module is the transactional component that UI clients use to work
      with application data. It defines an up datable data model and top-level
      procedures and functions (called service methods) related to a logical unit of work
      related to an end-user task.
      ■View Object
      A view object represents a SQL query and simplifies working with its results. You
      use the full power of the familiar SQL language to join, project, filter, sort, and
      aggregate data into exactly the “shape” required by the end-user task at hand. This
      includes the ability to link a view object with others to create master/detail
      hierarchies of any complexity. When end users modify data in the user interface,
      your view objects collaborate with entity objects to consistently validate and save
      the changes
      Q: What is Top Link?
      Ans:
      Top Link is an Object-Relational Mapping layer that provides a map between the Java objects that
      the model uses and the database that is the source of their data.
      By default, a session is created named default. In the following steps, you create a new session
      Q:What is Managed Bean?
      Ans:JavaBean objects managed by a JSF implementation are called managed beans. A managed bean describes how a bean is created and managed. It has nothing to do with the bean’s functionality.
      Q :What is Backing Bean?
      Ans:Backing beans are JavaBeans components associated with UI components used in a page. Backing-bean management separates the definition of UI component objects from objects that perform application-specific processing and hold data.
      The backing bean defines properties and handling-logics associated with the UI components used on the page. Each backing-bean property is bound to either a component instance or its value. A backing bean also defines a set of methods that perform functions for the component, such as validating the component’s data, handling events that the component fires and performing processing associated with navigation when the component activates.
      What is view object?
      Ans :A view object is a model object used specifically in the presentation tier. It contains the data that must display in the view layer and the logic to validate user input, handle events, and interact with the business-logic tier. The backing bean is the view object in a JSF-based application. Backing bean and view object are interchangeable terms
      Q: Difference between Backing Bean and Managed Bean?
      Backing BeansManaged Beans
      A backing bean is any bean that is referenced by a form.A managed bean is a backing bean that has been registered with JSF (in faces-config.xml) and it automatically created (and optionally initialized) by JSF when it is needed.
      The advantage of managed beans is that the JSF framework will automatically create these beans, optionally initialize them with parameters you specify in faces-config.xml,
      Backing Beans should be defined only in the request scopeThe managed beans that are created by JSF can be stored within the request, session, or application scopes
      Q? What do you mean by Bean Scope?
      Bean Scope typically holds beans and other objects that need to be available in the different components of a web application.
      Q.  What are the different kinds of Bean Scopes in JSF?
      JSF supports three Bean Scopes. viz.,
      Request Scope: The request scope is short-lived. It starts when an HTTP request is submitted and ends when the response is sent back to the client.
      Session Scope: The session scope persists from the time that a session is established until session termination.
      Application Scope: The application scope persists for the entire duration of the web application. This scope is shared among all the requests and sessions.
      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.

      Q:How to declare the page navigation (navigation rules) in faces-config.xml file in ADF 10g
      ?
      Ans: Navigation rules tells JSF implementation which page to send back to the browser after a form has been submitted. We can declare the page navigation as follows:
      <naviagation-rule>
      <from-view-id>/index.jsp</from-view-id>
      <navigation-case>
      <from-outcome>login</from-outcome>
      <to-view-id>/welcome.jsp</to-view-id>
      </navigation-case>
      </naviagation-rule>
      This declaration states that the login action navigates to /welcome.jsp, if it occurred inside /index.jsp.
      Q: Setting the range of table
      Ans : <af:table rows=”#{bindings.LoggedInUserServiceRequests.rangeSize}”…/>
      Q : Which component in ADF BC manages transaction ?
      A : Application Module, manages transaction.
      Q : Can an entity object be based on two Database Objects(tables/views) or two Webservices ?
      A : No entity objects will always have one to one relationship with a database object or web service.
      Q : 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.
      Q: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
      Q. 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.
      Q: 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}"
      2to="#{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.

    Oracle ADF and Webcenter interview questions

    1. what is policy store and identity store in OID



    2. difference b/w databindings.cpx and datacontrol.dcx


    3. diff b/w trinidad.config and trinidad.skins


    4. train component when i go from 1st page to 2nd page.. in the 1st page it is asking to enter one mandatory field which is not shown how to avoid this error.


    5. what is binding context and binding container.. what are the 3types of bindings


    6. i have an am with a vo and another am with a vo both are on a taskflow which has rollback as end transaction ... what will happen


    7. difference between am transaction and task flow level transaction


    8. what is meta data commit during life cycle phase of adf what happens here


    9. in case of java control or ejb does it have a datacontrol.dcx file


    10. in case of security if tomorrow some other admin role comes in then i need to change code... i dont want to do at code level where should i do it


    11. how does a join query and view link work


    12. i have 2 taskflows, on which i have page fragments jsff and i have a jspx which all components should i secure.


    13. have you worked on java script or ajax


    14. how good are you in webcenter

    15. How can i do Exception handling at global level


    16.what are Contextual events

    17. What r the six service methods at Am level



    18. Difference between user scope and session scope


    19. How do you do load balancing



    20. i have a value in session scope after my user logs in and logs out .. the value is gone... i want it to be available when i login again how do u do that.


    21. i have certain records i want to make a db trip only once in the beginning and store it in vo cache ... as i want to use the same values again n again ... i do not want to make anymore db trips how do u do that.


    22, what is transaction handling... like have u worked on asynchronous pushing of data where the data is coming from db and in UI before display you have to modify and show the data.


    23. how to implement single sign on in adf


    24 . one of my user is entering data into db through adf form 1,2,3 to other user i should show as 10,20,30... it should automatically get refreshed for other user both opened the form at the sametime.


    25. my client is using oracle apps... how can i convince him to use this fusion soa


    26. in bpel process where do i write all my business rules


    27. in taskflow i got exception some weird exception occurs once in a while i want to log that how can i do it.


    28. i have R12 application which one would be better for me oaf or adf


    29. i have two procedures in db A and B ... in A... B is getting called in B... A is getting called and this is going to infinite loop how can i exit out of the loop after a certain process is completed.


    30. difference between dbadapter and oracleapps adapter why we need both.


    31. what are the different ways for a db connection other than using plain java or adf connections... like for any application how can i connect to db.


    32. Java Question : how to dynamically increase array size at run time.. if array length is 10 i want to add 5 more as per my requirement at runtime dynamically.


    33. What is a view scope


    34. In a task flow after certain activities an error occurs i want to rollback the activities that have been done how can we do it


    35. In a TF u r calling another module TF then you are performing some transactions ... your first TF activities got committed the error occured before commiting other module transaction how to roll back the commited changes


    36. on an adf table i have delete link for each row.. when a user clicks a delete link for that end user that row should be deleted but in the db that row should be updated to inactive.. like overriding of remove method what exactly do u do here


    37. when you have added other module as a jar and you are doing some transaction how to make your AM as the main AM rather than other modules AM's . Is there any configuration setup you do


    38. for email or sms... if i want to send email or sms daily at 5 a.m where do i actually schedule that


    39. what is mvc.. where does controller fit into it what is the exact role of it


    40. what r the three types of generic bindings


    41. Java Question: how can i store a UI input values in a java algorithm what ever the user is entering one by one in different fields ... without storing it in db or any file. i want to store in the java code only.


    42. What are the Best practices for ADF


    43. My Page is loading till yesterday now its not loading may be due to data increase , etc how do u proceed on this what are the things that u will look at


    44. when your team starts development what all things u ask them to look at ... in development whether it is related to performance, etc


    45. if i want to increase the performance of my page even by atleast 1% or present thing what all things u do


    46. on a popup there is a button save&close on that what all values i have entered iam validating based on a button click calling bean in a popup form ... values are getting saved but my popup doesn't close what should be done here. Previously it was closing on binding to a bean its not closing


    47. what are declarative components have u used them


    48. difference between action and action listener


    49. what is the architectural design of your project.


    50. Other than exposing webservice as a data control is there any other option to show it on a UI.


    51. how do one portlet communicate with the other portlet in a page. if some change is done in one portlet based on that it should reflect in other portlet.


    52. what all challenges u faced in adf... what are the things that you would like to see the improvement in the next versions of adf.


    53. have u worked on Nested am's


    54. how do u know that you need to go for a webservice like osb in the application u r developing in adf


    55. life cycle of webcenter


    56. difference between process action and render


    57. how do u define the data source... is it a jdbc or jndi connectivity... how do u test your bc component when you run your am if it is a jndi connectivity how can u test that


    58. how do you define the db connectivity.


    59. what is a collection interface.


    60. why are java interfaces actually used what are its advantages


    61. Sorting in collection how do u do that


    62. design patterns in oops . what is factory method


    63. What is the diff between a normal web development and Oracle webcenter portal . What r the advantages of webcenter compared to using web development


    64. what is the diff between visible property and render property


    65. how do you define pagination in adf , if i have 100 pages just by giving the page number below i want to go to that page. how do you do that


    66. what are converters and validators have you used them. what is a custom converte r and custom validator


    67. how do you put a page fragment jsff in another page fragment which is a jsff what component do u use.


    68. what is enhanced for loop what is the benefit of it


    69. what all validations u did where all you can do validations


    70. how to use a webservice on a UI. Other than using data control is there any way.


    71. menu... u r saying all the pages you displayed as links on a homepage if i want to display in menu how can we do that


    72. what design patterns you used in your project


    73. what is the architectural design of ur project


    74. what is the differrence between action and action listener.


    75. Jsf life cycle phases


    76. difference if i set immediate=true on a button and if i set immediate=true on a text field


    77. what are the life cycle phases that will be skipped if i set immediate = true on a button


    78. what life cycle phases will be skipped in auto submit = true and in case of partial submit = true


    79. what life cycle phases get executed during ppr.


    80. why should i have a read only vo which is displaying results on a page rather than having it on an eo... my requirement is simple the data comes from just one table i


    81. can make a vo non updateable but still why cant i use it based on an eo... r there any dis adavantages.


    82. i have two am's can i do transaction of one am in other


    83. other than exposing webservices as data controls do i have any other method in adf where i need one of my bpel process to be shown on ui


    84. other than ridc socket method what r the different ways i can create connection to ucm in webcenter


    85. what is a page template what is the significance of it why do u use it


    86. my page is loading very slow... i have one lov that is having huge number of data basically its a master lov... now my data is not changing in db.. so what are the


    87. ways that i can improve the page performance... basically i am looking at a very high level answer for this


    88. what are geometry components and transaction components in adf


    89. what is an adf taskflow template why do u use it


    90. what is the diff between static and dynamic region


    91. what are the different layouts u used


    92. in jquery and html5 there are very high features compared to adf... so were there any customer expectations in ur project on this


    93. without using contextual events how can i refresh the other region on a page


    94. what is am pooling


    95. how can i test whether my am is pooled or not


    96. i want to display one message in all of my modules after a transaction is complete how can i do that


    97. what r the things u consider before building a template


    98. what is a task flow template what does it contain


    99. what is a coarse grained authorization and fine grained authorization


    100. how can i build a thread program in java


    101. i am conducting interviews daily.. i want to store name, dob, gender, etc details in a java program i dont want any
    secondary storage like db, flatfile, etc what is the best method to store such type of details.


    102. how does mvc work in adf.


    103. diff between webcenter portal framework and webcenter spaces


    104. my query is taking too long if i were to tune it what r the 5 to 6 steps that i will look at


    105. what are the features tht are available in string tht are not present in string buffer
    106. Which version of Jdev and weblogic did u worked


    107. is it a good practice to call AM in bean... if not why ?


    108. my UI has combo box list of values in that table name is there what ever table i select the results should be displayed dynamically i am passing the table name.


    109. what is inter portlet communication