ADF Essentials

Oracle ADF Insider - Learn Oracle ADF Online

This page contains recorded sessions that will help you get up to speed with Oracle ADF. The Oracle ADF Insider Basics series gives you introduction to the core functionality of Oracle ADF and the various layers of the framework. ADF Insider Essentials demonstrates essential skills, tips and techniques required for building ADF applications. The Oracle ADF Insider series covers advanced topics and techniques with Oracle Application Development Framework. Check back regularly for updates by experts, for experts.

Note - The videos linked from this page are also available on our ADF Essentials YouTube channel - watch them there if you have issues accessing the videos on this page.

Oracle ADF Insider Basics

Introduction to Oracle ADF

Learn what Oracle ADF is all about, understand how ADF fits into the Oracle Fusion architecture, what solutions does it offer, and how it simplifies application development.

Introduction to Oracle ADF

Introduction to Oracle ADF Business Components

Oracle ADF Business Components offer a simple way to create reusable business services that interact with your relational database. Learn about the architecture and features that are provided by Oracle ADF Business Components.

Oracle ADF Business Components

Introduction to Oracle ADF Faces Components

Oracle ADF Faces offers a set of rich Ajax enabled components that simplify the creation of Web user interfaces. Get an overview of the various components and the built-in capabilities of the Oracle ADF Faces framework.

Oracle ADF Faces Components

Introduction to Oracle ADF Mobile

Oracle ADF Mobile lets you develop on-device mobile applications that run on both iOS and Android devices. Learn about the architecture and components that make up Oracle ADF Mobile and how it simplifies mobile applications development.

Oracle ADF Mobile

Guide to the JDeveloper IDE

A quick Don't PANIC guide to the basic features of the JDeveloper IDE including window manipulation and the 6 core windows that developers will work with.

Guide to the JDeveloper IDE

Guide to the JDeveloper IDE

A fighter pilot's guide to the rich features in the JDeveloper IDE Editor, discussing features that assist programmers to locate and edit their code faster, productivity boosters to save typing and fixing typos, features to keep code neat and tidy so the whole team can read the code, and navigation functions to move around a large code base without getting lost.

Guide to the JDeveloper IDE

Oracle ADF Insider Advanced

ADF Binding Internals - Part 1

Looking at understanding how the ADF Model layer works? What are data controls? What are bindings? In part 1 of this ADF Insider you will learn about data controls, the binding layer and the various files (e.g. DataBindings.cpx, PageDef.xml) that are used to bind business services to UI controls.

ADF Binding Internals - Part 2

In the second part of this ADF Insider presentation you will learn about how you access ADF Model bindings at runtime. Understand what is a BindingContext, a BindingContainer and the common methods you will use. Find out how you can use EL and Java to access an AttributeBinding, an OperationBinding and a JUCtrlListBinding.

ADF Task Flow - Overview (Part 1)

This 90 minute recording introduces the concept of ADF unbounded and bounded task flows, as well as other ADF Controller features. The session starts with an overview of unbounded task flows, bounded task flows and the different activities that exist for developers to build complex application flows. Exception handling and the Train navigation model is also covered in this first part of a two part series. By example of developing a sample application, the recording guides viewers through building unbounded and bounded task flows. This session is continued in a second part.

ADF Task Flow - Overview (Part 2)

This 75 minute session continues where part 1 ended and completes the sample application that guides viewers through different aspects of unbounded and bounded task flow development. In this recording, memory scopes, save for later, task flow opening in dialogs and remote task flow calls are explained and demonstrated. If you are new to ADF Task Flow, then it is recommended to first watch part 1 of this series to be able to follow the explanation guided by the sample application..

ADF Application Security

ADF Security is an authentication and authorization framework in Oracle ADF. This session explains ADF Security from ground up. It starts with container managed security and JAAS to how they to fit into ADF Security. It then explains the ADF Security architecture with Oracle Platform Security Services (OPSS) and the WebLogic security platform for authentication. Topics discussed include authorization, page protection, task flow protection as well as security expressions ADF provides for EL.

Deploying ADF Security-Enabled Applications to a Standalone WebLogic Domain - Part 1

In Part 1 of this series you'll learn how to package your application in an ear file, start Oracle WebLogic Server Domain as well as Oracle Internet Directory (OID), setup OID authenticator, setup a jdbc datasource and deploy your ADF application using Oracle FMW Control.

Deploying ADF Security-Enabled Applications to a Standalone WebLogic Domain - Part 2

This session, Part 2, picks up where Part 1 of this series left off by showing you how to map application roles to the OID groups and test the application, update role permissions at runtime and redeploy the application with different security-related settings.

Enabling SSO for the ADF application using Oracle Access Manager 11g

In this session you'll learn how to enable SSO in an ADF application through the use of Oracle Access Manager 11g. Specifically you'll walk away with an understanding of the installation process for Oracle HTTP Server 11g (OHS) as a reverse proxy for Oracle WebLogic Server, the installation process of Oracle Access Manager 11g (OAM) Web Gate within OHS and then enable SSO through OAM.

Oracle ADF BC Application Module Pooling

Oracle’s ADF Business Component Application Module pooling parameters are one of the least understood parts of ADF applications, but they are key to making a scalable application This set of videos will undertake a deep dive for developers on how to configure the parameters and what the impact of setting them is, all with the goal of building successful ADF applications This series of videos takes a progressive learning approach to introducing the AM pool and its settings. As such new viewers are recommended to watch the video series end-to-end to ensure they understand the full set of concepts.

Part 1 - Introduction to ADF BC Application Module Pooling Part 2 - The Application Module Pool Basic Settings Part 3 - Application Module Passivation & Activation Part 4 - Cleaning the Application Module Pool Part 5 - Application Module Pool Advanced Settings
Using Groovy in ADF Application

Groovy is a Java-like scripting language that gives you huge amounts of flexibility when building ADF applications. In this ADF Insider you will see how Groovy can be used in ADF Business Components to define default values, validation and dynamic error messages.

ADF Faces Skinning

Skinning in ADF Faces enables application developers to change the color scheme of an application without changing the application itself. To build a skin, developers use Cascading Style Sheets (CSS) referenced from the trinidad-skins.xml file and configured in the trinidad-config.xml file. The session explains how skinning works, starting from skin selectors and their usage.

Using JavaScript in Oracle ADF Faces

ADF Faces provides developers with a component oriented client side JavaScript architecture that provides a consistent development environment across browsers. This session explains the server and client architecture of ADF Faces and how developers can use JavaScript in their ADF Faces applications. It explains client listeners, server listeners (Ajax calls to the server) and calls from Java to the client.

ADF Page Templates and Declarative Components

Learn how you can build a consistent look and feel to your ADF application pages using page templates and declarative components. In this session you will see how you can use template facets to define content areas in a template, and how attributes can be used to control features of the template such as initial layout. You will also see how you can build reusable composite components.

A closer look at integrating SOA and ADF

Oracle ADF has built in integration with the Oracle SOA Suite. In this session we'll show you how to expose your business services to SOA consumers, and how to integrate SOA processes into your ADF application.

ADF Region Interaction - An Overview

This session covers most of the options that exist for communicating between regions. It briefly discusses what it takes to build regions from bounded task flows before going into details using slides and samples. The following interaction is explained: contextual events, queue action in region, input parameters and PPR, drag and drop, shared Data Controls, parent action and region navigation listener.

ADF Region Interaction - Contextual Events

Contextual events is a power solution for inter region communication and can be used as a communication channel between a parent view and its contained regions, as well as between regions. This session explains how to set up contextual events, how to define producers and event listeners and how to define the payload message. In a live example the session shows developers the building process too.

Classic Mistakes with Oracle ADF Internal APIs - Part 1

This session focuses on classical mistakes developers make when working with the Oracle ADF binding layer and the ADF Controller (Task Flows). It shows examples of how not to do it and the correct way of using ADF in Oracle JDeveloper 11g.

Classic Mistakes with Oracle ADF Internal APIs - Part 2

This second part of classic API mistakes focuses on Expression Language problems, the use of ADF Faces and JavaScript. Developers learn best practices and pitfalls to avoid.

Project Considerations for Team Development

This session covers many aspects of team development including how to set up your team's resources for developing projects and how to use source control repositories in a team environment. Additionally, an overview of the features of Team Productivity Center is provided. Finally, several considerations for reusing code are covered, including best practices for setting up business components and using ADF libraries to distribute shared code.

Redeveloping an Oracle Forms Application with Oracle JDeveloper and Oracle ADF

Many customers developing ADF applications may be looking to re-implement applications originally built using Oracle Forms. In this presentation you will hear about the options for redevelopment, and see demonstrations of how you can re-implement common Forms features in ADF based on a redevelopment case study.

Building Visually Appealing Web 2.0 Data Dashboards

This session will show you how to turn data into information by presenting it visually to your users. You'll learn how you can turn simple queries into powerful graphs, maps, pivot tables, and other dynamic graphical representations.

Oracle ADF provides a mechanism for implementing and viewing logging information as an aid to debugging

This presentation shows how you can use ADFLogger and the dashboard to view logging information.

Building User Interfaces

This session explains the process of developing layouts with ADF Faces. Prototyping strategies are discussed, including ADF's own Placeholder Data Control. The remainder of the session covers the ADF Faces layout components in detail, highlighting their uses and providing examples of how the components might work in various scenarios. Finally, a demonstration shows how to work with layout components to define the way nested ADF Faces content appears.

In a Nutshell: The ADF UI Shell

Beyond the basic training on Oracle's JDeveloper 11g ADF, developers are left with an overwhelming list of options for presenting a rich application to users. Buttons, sliders, graphs, and more. Yet individually, these don't make an application, these don't make a user experience; how will your application pull this into a consistent look and feel, how will the application flow, how will they navigate in your application? This session looks at Oracle's ADF UI Shell (a.k.a. Dynamic Tabs Shell), a working combination of page templates, navigation controls, and application structure bringing the many parts of 11g ADF applications together into a living application experience.

Using Apache JMeter to load test ADF applications

Apache JMeter can be used to run performance, load and stress tests on ADF applications. However, JMeter has no intelligence on understanding ADF applications and requires careful configuration to process the ADF cookies and HTTP state variables. This presentation shows how to configure JMeter for ADF testing, demonstrates a live stress test, and highlights some gotchas that can break the tests you create.

One-Size-Doesn't-Fit-All: Oracle ADF Architectural Fundamentals

Oracle Application Development Framework (Oracle ADF) practitioners will quickly realize that there’s no one-size-fits-all approach to creating an Oracle ADF application architecture. The unique challenges and requirements of your system will have a strong influence on the solution you finally build. Taking a step back from the nitty-gritty details of Oracle ADF, this presentation looks at the early decisions you need to make and what architectural choices you have in meeting your requirements.

Integrating SOAP and REST Services in Oracle ADF

Oracle ADF Integrates with SOAP and REST services as a service client and service provider. This ADF Insider session shows the options you have for accessing remote SOAP and REST services from ADF and the best practices involved with this. In its second part, this session shows the available options to make ADF Business Components models accessible to SOAP and REST clients. Exposing ADF BC as a service provider allows you to support multi-channel access, e.g. from Web, SOA and ADF mobile client, to your business logic and data.

Building Web Services from an existing ADF application

Each new line of code your write is a potential bug. Moreover, each line of code you add to your existing applications reduces your ROI. On the other hand, service integration is more important today than ever. Mobile applications require deep integration with your line-of-business applications to reach their true potential. Did you know that you can leverage the Oracle ADF applications you already have to build web services? In this presentation, Frédéric Desbiens shows you how to build web services from an existing ADF application by refactoring the Summit ADF sample application and discusses the various technology choices you will have to make.

Using a standalone WebLogic Server instance

With JDeveloper and Oracle Enterprise Pack for Eclipse (OEPE), you can use two great IDEs to develop your ADF applications. Did you know that both can use standalone WebLogic Server instances instead of the integrated one? In this session, you will learn how to install such an instance and what benefits it will provide you. You will also see how to configure your favorite IDEs to use a standalone WebLogic instance.

Building Performant ADF Business Component Applications

This video gives you an insight into the workings of ADF Business Components and how you can use various parameters and features of the framework to ensure you build performant and scalable ADF Business Component Applications.

ADF Mobile Insider - Calling REST Services from an ADF Mobile Application

REST services are one of the primary mechanisms for communicating with server-side business logic from a mobile application. In this ADF Insider you'll learn how to call REST services from an ADF Mobile application.

Adding Charts to your ADF Mobile Application

This ADF Insider video shows how you can bring your ADF Mobile applications to life using DVT (Data Visualization Tools) graphs and chart.

Avoiding JSF and ADF Lifecycle Frustrations

The request lifecycle in web applications defines individual steps that incoming requests needs to pass before a response is returned to the requesting client. JavaServer Faces knows of 6 life cycle steps that need to process in order to read, insert, update and delete form data and to process navigation. Oracle ADF seamlessly integrates with the JavaServer Faces lifecycle, which makes understanding the lifecycle an important skill for every ADF application developer. This session explains the JavaServer Faces lifecycle from ground-up and how ADF fits into it. This session then continues discussing three popular use cases to provide expert insight to the lifecycle behavior and the required lifecycle manipulations to avoid developer frustration. Be aware the information in this sessions is not easy to digest and you want to plan in to watch it twice.

Take a Tour of the Improved Apache Maven Support in JDeveloper 12c

With JDeveloper 12c, Oracle has significantly improved the support for Apache Maven. Not only is there a new POM file editor, but also Maven plugins for both ojmake and ojdeploy. Discover the new features and see how you can create new Maven-enabled ADF applications and also add Maven support to existing ADF applications. If you don't know what Maven is, this ADF Insider will explain the basics of Maven as well as some of the more advanced features.

Oracle Diagnostic Log Analyzer - ADF Request Analyzer and the JSF Lifecycle

In this ADF Insider we investigate the ADF Request Analyzer, a tool within JDeveloper's Oracle Diagnostic Log Analyzer which is designed to help you understand the runtime behaviour of your program, including looking under the covers of the JSF & ADF Lifecycle. The ADF Request Analyzer is therefore an excellent debugging aid in assisting developers with building their ADF applications.

Oracle ADF Insider Essentials

ADF Business Components
Creating RESTFul web services with ADF BCs

Often you need to create a RESTful web services and would like to call ADF BC logic inside them. Unfortunately, service interfaces for Application Modules are SOAP only at present. This can be achieved by combining custom code that makes use of a JAX-RS implementation.

Programmatically iterating through rows of a view object

A common use case is to be able to programmatic access the rows in a view object. This ADF Insider Essentials shows you how.

Building a dependent list of values

Find out how you can use the declarative features of ADF Business Components to build a dependent list of values that automatically limit its choices based on another attribute value.

Implementing Sequences in an ADF Applications

Most, if not all, ADF applications based on database tables will have to manage assigning sequence numbers to unique and primary key attribute values. Find out how you can do this in ADF Business Components.

Extending ADF Framework Security with Resource Permissions

This sample shows how to use the OPSS Resource Permission in ADF Security to protect an entity attribute from update when an entity row is newly created.

Programmatical access a view criteria

View criteria allow you to define parameterized filters on a view object. This ADF Insider Essentials explains how you can apply, remove, and append view criteria from code.

Setting a row as non editable based on a value

In this ADF Insider Essentials you will see how you can set a row of data to be non editable depending on the value in another field or attribute.

ADF BC Model Driven LOV Switcher

In this ADF Insider Essentials you will learn a feature of model driven list-of-values where the LOV definition can be switched at runtime. This is usually triggered by data in a related view object attribute.

Referencing a default value from an attribute in a different EO

In this ADF Insider Essentials you will learn how you can default an attribute's value with a value populated from a different entity object. For example, an order item price is defaulted to the suggested wholesale price for the product.

Implementing a total

Often in an application you will want to display a sum or total of a particular attribute, for example the total salaries in a department. In this ADF Insider Essential you will see how you can implement using a Groovy expression.

Building a test client for testing ADF Business Components

ADF Business Components can be tested in the ADF Model Tester or in simple Test Client classes. These Test Client classes can work with generic view objects or set and use bind variables and view criteria. This ADF Insider shows you how to write the class using a template and set all the appropriate component values.

Basing ADF Business Component View Objects on more than one Entity Object

Tables are littered with foreign keys that have little meaning to users. Often we want to show fields from other tables with more meaningful values to the user, and, if the user changes the foreign key then the lookup values are instantly changed. This presentation will show you how to create ADF Business Component View Objects where the View Object is based on more than one Entity Object: An updatable Entity Object and a reference lookup Entity Object.

Retrieving the previous value of an ADF BC attribute

Sometimes we will have a requirement to show the previous value of an ADF BC attribute, or even create a business rule that needs to compare an old and new value for an attribute. You will learn how easy it is to do this in this ADF Insider Essential.

ADF Model
Accessing ADF Binding Layer from Java

When writing code in a managed bean you might want to access attribute values or execute method calls. This ADF Insider Essentials shows you how you can access ADF bindings from a managed bean.

Synchronizing a Tree Control with Detail Data

This ADF Insider Essentials shows you how selecting a node in a UI tree component can automatically synchronize that data with a form. The key is to use EL to indicate which iterator should be refreshed.

How-to populate an af:selectOneChoice component from a different Data Control than the one used to update the model

This ADF Insider Essentials shows you how to create dynamic lists to populate an af:selectOneChoice component. It also shows how to populate the list from a different Data Control than the Data Control used to build the editable table or form that host the select one choice component.

ADF Controller
Passing Data Within A Task Flow

In a task flow you may want to reference data or values set up in another activity of the task flow. This ADF Insider Essentials shows you how you can pass data in a task flow.

ADF Debugging
How to implement logging in an ADF application

Yes, the ADF source is available! This ADF Insider Essentials shows you how to add the ADF source to JDeveloper and use it to debug your application, as well as how to implement logging for ADF applications.

Debugging task flows and memory scope

In this ADF Insider Essentials, you learn how to debug typical errors that occur in ADF applications. Through an example, tips for triaging and debugging an issue using the JDeveloper debugger and the ADF task flow debugger are given.

ADF Faces
Building UI Layout using the ADF Faces Switcher Component

Sometimes you might want to dynamically switch an area of your page to show a different UI component. This demonstration shows how you can use af:switcher to dynamically change the UI layout.

Storing Different Values to those Displayed Using a select One Radio

For a binary value, such as OrderFilled (Y or N) you may have the use case of storing a Y and N in the database but display different values (e.g. Yes and No, or Filled & Not Filled) to the user. This demonstration shows how you can achieve this with a selectOneRadio component.

Controlling Using Input in Table Column Filters

This sample shows how to customize the column filter in an af:table component to control user query data input. The sample uses JavaScript to enforce numeric value input on an ID attribute field.

Using af:iterator to Dynamically Render an Image

How can you dynamically render a UI component a set number of times? For example, for a customer rating (which is a numeric value) you want to "stamp out" a certain number of stars to indicate the rating rather than just display a number (like an Amazon rating). This demonstration shows you how using the af:iterator component.

How-to handle the af:dialog OK and CANCEL buttons

The ADF Faces dialog component is a child component of the af:popup component and shows a framed content area with optional OK/Cancel and Yes/No buttons. This session explains how to determine which button has been pressed by a user and how to handle the CANCEL event, which, in contrast to the other button options is a pure client side event. It also shows how the CANCEL event can be broadcast to the server for developers to query data or clean up uncommitted changes.

How-to delete node(s) in Oracle ADF bound ADF Faces hierarchical trees

This sample shows how to determine selected tree nodes and delete them from an action exposed on the tree context menu. The sample shows how the tree is created, the context menu is defined and how to create a managed bean action to handle the tree node(s) delete operation. A topic covered in here too is the confusion that exists about View Accessors and how the tree structure uses internal APIs to access child collections.

Strategy for creating page templates with global button functionality

Page templates ensure consistent layouts being used throughout an application and, if the template is deployed and reused in an ADF library, across applications. A frequent requirement is to build layouts with default functionality, like global buttons. Global buttons execute application wide functionality, like navigating to a login page or a help page, but may also execute page context specific functionality like creating a new record or deleting a current row. This session shows how the ADF Faces page template can be used to build layout blueprints that contain global buttons for invoking application wide and context specific functionality.

Programmatic Partial Page Refresh

ADF Faces includes a number of declarative features for controlling the submission and refresh of the ADF Faces pages. This is called Partial Page Refresh (PPR). In this sample you will see how to programmatically control the partial page refresh feature of ADF Faces.

Customizing the ADF Search Form Initial Rendering and Query Behavior

This ADF Insider essential recording shows how to initially render the ADF search form in advanced mode and how to change the query behavior to case insensitive. As an extra goody, you learn how to use a custom view criteria with ADF table filters.

Undo ADF table selection on validation error

This ADF Insider essential recording shows what do you do if uncommitted data exists when users change the row currency of a table. If uncommitted data exists, an alert is shown to remind the user to commit the changes before selecting another row in a table. If data change validation succeeds, the system sets the new table row as the current row in the underlying binding layer. Though the example uses data commit as the validation exit criteria, it can be any Java accessible condition that determines whether the row selection needs to be undone or not.

General ADF Techniques
Getting started on ADF Essentials with Oracle Enterprise Pack for Eclipse and GlassFish

You want to build ADF Essentials applications with Oracle Enterprise Pack for Eclipse (OEPE) and deploy them on the GlassFish application server. In this ADF Insider you will learn how to configure GlassFish in order to run your ADF Essentials applications as well as how to build an ADF Essentials application using JPA persistence with OEPE.

ADF Mobile: Using the Local Database

When building an ADF Mobile application the need may arise to store data on the mobile device. In order to do this you could use ADF Mobile's local database, which relies on the SQLite database engine, to read and write data through familiar JDBC calls.

Deploying reusable components

To maintain consistency, page templates and other common UI elements should be shared among different applications. Additionally, you can create a reusable data model using ADF Business Components and build user interfaces upon the common data model. In this ADF Insider Essential you will see how you can distribute these reusable components using an ADF Library.

ojdeploy ADF Build Utility

JDeveloper's ojdeploy command line utility provides a mechanism for building ADF applications from scripts or Apache Ant without human intervention. In this recording you'll learn the necessity of ojdeploy, as well as learn from demonstrations showing ojdeploy in action so you can make use of it in your own build environments.

Configuring you ADF Mobile development environment for Android

Out of the biggest advantages of ADF Mobile is that it enables you to deploy your applications on both iOS and Android. This flexibility, however, means that you cannot simply install JDeveloper and the ADF Mobile extension. In this session, you will learn how to configure your development environment in order to deploy your applications on Google's mobile OS.

Training from Oracle University

Oracle Application Development Framework - Oracle ADF

Faster and Simpler Java-based Application Development

Oracle ADF is an end-to-end Java EE framework that simplifies application development by providing out-of-the-box infrastructure services and a visual and declarative development experience.