Oracle Identity Manager ADF Primer Part 1: Developing ADF Applications

Overview

Purpose

The Oracle Identity Manager ADF Primer aims to present you the ADF basics while helps you develop your first Oracle Identity Manager custom UI application, the Hello World app.

Time to Complete

Approximately 1 hour

Introduction

The Oracle Identity Manager 11gR2 PS2 web user interface is based on the Application Development Framework (ADF). The ADF framework permits you develop and deploy several customizations to the Oracle Identity Manager user interface (UI), such as:

  • Change the User Interface look and feel;
  • Change Oracle Identity Manager pages;
  • Provide new functionality in Oracle Identity Manager Identity Self-Service Console.

The Oracle Identity Manager ADF Primer aims to present you the ADF basics while helps you develop your first Oracle Identity Manager advanced UI customization, the Hello World app.
To streamline your knowledge, the Oracle Identity Manager ADF Primer is divided in the following topics:

Topic image

Mandatory Prerequisites

The following is a list of hardware and software required to run this Primer:

  • JDeveloper Studio IDE installed and running
  • OIM Server 11gR2PS2 installed (to copy the OIMLibraries)

Recommended Prerequisites

This tutorial is recommended for developers familiar with:

Meeting Requirements

In this topic you configure your environment to meet the requirements to build ADF applications for the Oracle Identity Manager.

Topic image

Overview

Before start developing your ADF application for the Oracle Identity Manager, you must have a development environment meeting the following requirements:

  1. IDE with ADF support available: to develop your application, you need an IDE with support to Oracle ADF. The options available for use are:

    Note: The activities reported in this primer are based on Oracle JDeveloper.

  2. Copy Oracle Identity Manager libraries: after install your IDE, you need to import the following Oracle Identity Manager libraries to your development environment:

    • OIM Client Library: Contains objects to connect your application to Oracle Identity Manager Server as a client

    • OIM Model Shared Library: Contains Oracle Identity Manager APIs that allow your application to manipulate entities and data in Oracle Identity Manager (for example, creating a user or updating a user’s role membership)

    • OIM View Shared Library: Contains Oracle Identity Manager APIs to integrate your application with the Oracle Identity Manager UI.

  3. Import Oracle Identity Manager libraries in your IDE: you import the Oracle Identity Manager libraries in your IDE, so custom applications can use the libraries provided.

Tutorial

In the next tasks, you copy the libraries from the Oracle Identity Manager server binaries to the development machine and import the libraries in Oracle JDeveloper.

Conceptual View - Copying OIM Libraries

  1. To copy Oracle Identity Manager libraries:

    1. Access Oracle Identity Manager server and execute the following commands to create the OIMLibraries folder structure:

      mkdir $HOME/OIMLibraries
      cd $HOME/OIMLibraries
      mkdir -p client
      mkdir -p ext/internal
      
      Screenshot

      Note: this point you have an empty folder structure for the OIMLibraries:

      Screenshot
    2. Execute the following commands to copy the Oracle Identity Manager libraries from the product binary to the OIMLibraries folder:

      cp -R $IDM_HOME/server/jdev.lib $HOME/OIMLibraries
      cp $IDM_HOME/server/client/oimclient.jar $HOME/OIMLibraries/client
      cp $IDM_HOME/server/ext/internal/orai18n-adf.jar $HOME/OIMLibraries/ext/internal
      cp -R $IDM_HOME/server/modules $HOME/OIMLibraries
      
      Screenshot

      Note: The $IDM_HOME environment variable can be replaced by your IDM Home folder. For example: /u01/app/Oracle/Middleware/Oracle_IDM1

    3. Copy the OIMLibraries folder from the Oracle Identity Manager server machine to the development machine:

      Screenshot

      Note: You can paste the OIMLibraries folder anywhere in the desktop workstation. For this tutorial, you paste the libraries under the folder in C:\ADFPrimer folder.

  2. Import Oracle Identity Manager libraries in JDeveloper

    1. Launch JDeveloper.

      Important: If the Select Role dialog box appears, make sure that the Default Role option button is selected. Click OK.

      Screenshot
    2. In JDeveloper, select Tools > Manage Libraries.

      Screenshot
    3. In the Manage Libraries window, click Load Dir.

      Screenshot
    4. In the Load Directory window, select the OIMLibraries > jdev.lib folder and click Select.

      Screenshot
    5. In the Manage Libraries window, observe the jdev.lib folder in the Libraries pane. Nested within the directory, you will find Oracle Identity Manager library files that you will use in this practice. Click OK to close the Manage Libraries window.

      Screenshot

Checkpoint

At this point, your JDeveloper IDE is ready to develop custom ADF applications for the Oracle Identity Manager using the libraries provided by the product. In the next topic, you create an ADF application.

Creating your ADF Application

In this topic you create a blank ADF application in JDeveloper. This application will keep your source code in the next topics.

Topic image

Overview

JDeveloper organizes the code you develop by applications and projects. Application is the main container in JDeveloper. Each application can have several projects. The project organizes the code per matter. Each project has its own meta configuration shared by the objects within the project, such as the deployment plan, the libraries and dependencies in the project and so on.

Screenshot

Tutorial

In the next task, you create the ExampleUI Application in JDeveloper. This application will contain your ADF projects.

  1. In JDeveloper, click File > New.

  2. In the New Gallery dialog box, select General > Applications under the categories section. Select Fusion Web Application (ADF) under the items section and click OK:

  3. Screenshot
  4. In the “Create Fusion Web Application” dialog box, “Application Name” step, enter the following values and click Next:

    Attribute Value
    Application Name ExampleUI
    Directory C:\ADFPrimer\ExampleUI
    Application Package Prefix com.example
    Screenshot
  5. In the “Project1 Name” step, enter ExampleModel as the Project Name and click Next:

    Screenshot
  6. In the “Project 1 Java Settings” step, click Next;

  7. In the “Project 2 Name” step, enter ExampleViewController as the Project Name and click Finish:

    Screenshot

    JDeveloper creates the ExampleUI application with the ExampleModel and ExampleViewController projects

    Screenshot

    JDeveloper also opens the ExampleUI Overview with a Quick Start Checklist to assist you build ADF applications:

    Screenshot

    Note: For this primer, you do not use the Quick Start Checklist to develop your application. For a hands-on tutorial on how to use this feature, visit Oracle JDeveloper Tutorials – Developing Rich Web Applications with ADF

  8. To import the Oracle Identity Manager Libraries in the ExampleModel project:

    1. Right-click the ExampleModel project and select Project Properties

    2. In the Project Properties dialog box, click Libraries and Classpath.

    3. In Libraries and Classpath, click Add Library

      Screenshot
    4. Select all the libraries under the jdev.lib folder and click OK:

      Screenshot
    5. In the Project Properties dialog box, click OK:

      Screenshot
    6. Click File > Save All to save your progress.

  9. Using the preceding task as a reference, import the Oracle Identity Manager Libraries in the ExampleViewController project.

  10. Configure the ExampleViewController project dependency:

    Note: You configure the ExampleViewController project dependency because this project depends on the code provided by the ExampleModel project.

    1. Right-click the ExampleViewController project and select Project Properties

    2. In the Project Properties dialog box, click Dependencies.

    3. In Dependencies, click Edit Dependencies.

      Screenshot
    4. In Edit Dependencies, expand the ExampleModel.jpr, select Build Output and click OK.

      Screenshot
    5. In Dependencies, click OK.

    6. Click File > Save-All to save your progress.

Checkpoint

At this point, you have an ADF Application ready for development. In the next topic, you plan your ADF project based on the MVC architectural pattern.

The MVC Architecture

In this topic you have an overview of the MVC architecture and observe how your ADF application implements this concept.

Topic image

Overview

Screenshot

MVC is an architectural pattern widely adopted to implement web applications that divides the application code into three tiers:

  • Model: This tier interacts with storage and external API services to query and save information. This tier notifies its associated View and Controller tiers when there has been a change in its state. This notification allows the View tier to produce the updated output, and the Controller tier to change the available set of commands.

  • View: This tier requests information from the Model tier that it uses to generate the UI for the application, such as the page, the buttons, the layout, and the model.

  • Controller: Provides the Business Logic for the application and acts as a glue between the Model and View tiers. This tier is used to send commands to the Model tier to update the model's state (for example, editing a document). It can also send commands to the View tier to change the view's presentation of the model (for example, by scrolling through a document).

Benefits of using MVC include:

  • Modularity: The modularity in the MVC provides several benefits, such as provide segregation of concerns between developers for each layer, and enables the code maintenance without impacting other layers.

  • Organization: The MVC has the code organized in three responsibilities. This organization reduces the dependency between layers and simplifies the learning curve for those building and maintaining the code.

  • Reuse of code: The MVC pattern permits you to reuse the layers in other applications. For example, you can reuse the same Model layer code for several applications.

  • Support of multiple views: Because the View tier is separated from the Model tier and there is no direct dependency between the tiers, the UI can display multiple views of the same data at the same time. For example, multiple pages in a web application may use the same model objects. Another example is a web application that allows the user to change the appearance of the pages. These pages display the same data from the shared model, but show it in a different way.

  • Flexibility: UI requirements tend to change more rapidly than business rules. Users may prefer different colors, fonts, screen layouts, and levels of support for new devices such as cell phones or PDAs. Because the model does not depend on the views, adding new types of views to the system generally does not affect the model. As a result, the scope of change is confined to the view.

The Oracle ADF is adherent to the MVC architectural pattern and provides you frameworks for each MVC layer. You can mix and match ADF frameworks with other compatible frameworks or Java code to provide each layer. In the next topics, you are presented to some of those options.

Tutorial

In this tutorial, you observe how your custom ADF Application is presented in regards to the MVC pattern.

  1. In JDeveloper, observe the projects under the ExampleUI application:

    Screenshot

    Note: The ExampleUI application has two distinct projects. The ExampleModel is to contain the code to integrate your application with external systems. The ExampleViewController is to contain code to provide the Business Logic and the View for your application.

  2. Observe that the ADF application MVC code is divided in two projects. This way, you can create new ViewController projects to reuse the Model project already built, like in the illustration below:

    Screenshot

    Note: The illustration presents a conceptual example on how you can leverage on ExampleModel project to create a new ViewController to collect reports.

Checkpoint

At this point, you understand how the ADF framework, and hence your project, adheres to the MVC architectural pattern. In the next tutorials, you start developing your ADF application starting from the Model Layer.

Developing the Model Layer

In this topic, you are presented to the options you have to develop the Model layer.

Topic image

Overview

As mentioned in the previous topic, ADF is adherent to the MVC architectural pattern and provides you frameworks for each MVC layer. You can mix and match ADF with other compatible frameworks or Java code to provide each layer. To develop the model layer you can use:

  • ADF Business Components: ADF-BC is a Model API provided by the Oracle ADF to streamline the integration between your application with Database tables. ADF-BC lets you query a database and automatically create code to integrate with the tables you select, providing a declarative experience.

    Note: In this primer you will not use ADF-BC. For a hands-on tutorial on how to use this feature, visit Oracle JDeveloper Tutorials – Developing Rich Web Applications with ADF

  • Java Code: You can create Java code to provide the Model. In this primer, you are to create a simple Java class to provide a Hello World.

  • Java API’s: You can leverage on Java API’s to integrate with third party applications if those API’s are compatible with your runtime environment.

Tutorial

In this tutorial, you create a HelloWorld class to implement the model services for your ADF application:

  1. Create the HelloWorld class:

    1. In JDeveloper Application Navigator right-click ExampleModel and select New.

      Screenshot
    2. In the New Gallery tab, select Java under Categories section and Java Class under Items sections, them click OK.

    3. In the Create Java Class dialog box, enter HelloWorld as Name and click OK:

      Screenshot

      JDeveloper displays the HelloWorld java source:

      Screenshot
  2. Implement the HelloWorld code:

    1. Enter the following method in the HelloWorld class to provide the Hello World:

      public String helloWorld(String name){
        //here you can integrate your model with data or service providers
        return "Hello world! My name is "+name;
      }
      
    2. Enter the following method in the Hello World class to test your code:

      public static void main(String args[]){
        String name = "John Doe";
        HelloWorld hw = new HelloWorld();
        String returnedMessage = hw.helloWorld(name);
        System.out.println("Returned message: "+returnedMessage);
      }
      

      Note: The HelloWorld is a Plain Old Java Object (POJO), an ordinary, simple and easy to understand Java Object that does not carry any fancy feature.

    3. Click File > Save to save your progress.

  3. Test the Hello World:

    1. Right-click the HelloWorld.java file in the Application Navigator, and click Run:

    2. Screenshot
    3. Observe the output under the “Running: ExampleModel.jpr – Log” section:

      Screenshot

      Note: To further proof the code, you can change the name variable in the main method and run the code again.

  4. Click File > Save All to save your progress.

Checkpoint

At this point, you implemented and tested a Hello World class for your ExampleModel project. Although this is a fairly simple class, it showcases where you can integrate your model with any compatible code you want to provide model services for your ADF application. In the next steps, you draw the Controller layer for your ADF application. Your Controller layer will act as a broker between the View layer and the HelloWorld class.

Developing the Controller Layer

In this topic, you are presented to the ADF Controller layer components.

Topic image

Overview

ADF leverages on the following components to deliver the Controller Layer:

  • ADF Task-Flows: The task flow provides a modular approach to control the navigation in your ADF application:

    Screenshot
  • Managed Beans: Java classes that you register with your ADF application to provide the business logic and utility methods during run time. When available, managed bean properties and methods are accessed by the ADF application. The managed bean availability is determined by the memory scope.

    Screenshot
  • Memory Scope: The memory scope determines the life cycle for the managed bean in the memory. During the memory scope, you can interact with the managed bean:

    Screenshot

Important: In the remaining topics, you develop the Hello World Controller Layer using the components listed above. For a better understanding we recommend you to review the ADF components defined above during each of the remaining development steps. This measure keeps you in track of the ADF framework usage in the Controller Layer.

Note: This tutorial presents the ADF basics for the Oracle Identity Manager development. For complete detailed information and hands-on tutorials on ADF, refer to:

Tutorial

In this tutorial, you develop and configure the Controller layer for your application:

  1. Create the HelloWorldBean managed bean:

    Note:The HelloWorldBean managed bean will carry the business logic and integration with the Model Layer.

    1. In JDeveloper Application Navigator right-click ExampleViewController and select New.

    2. In the New Gallery tab, select Java under Categories section, Java Class under Items sections and click OK.

    3. In the Create Java Class dialog box, enter the following information and click OK.

      Attribute Value
      Name HelloWorldBean
      Implements java.io.Serializable
      Screenshot

      JDeveloper displays the HelloWorldBean java source:

      Screenshot
  2. Implement the HelloWorldBean managed bean code:

    1. Implement the HelloWorldBean source code:

      
      package com.example.view;
      
      import java.io.Serializable;
      import com.example.model.HelloWorld;
      import javax.faces.event.ActionEvent;
      
      public class HelloWorldBean implements Serializable {
          private String name;
          private String helloWorldMessage;
          private HelloWorld helloWolrdModel;
          
          public void setName(String name) {
              this.name = name;
          }
          
          public String getName() {
              return name;
          }
          
          public String getHelloWorldMessage() {
              return helloWorldMessage;
          }
          
          public void invokeHelloWorldModel(ActionEvent e){
              helloWolrdModel = new HelloWorld();
              this.helloWorldMessage = helloWolrdModel.helloWorld(this.name);
          }
      }
      
    2. Enter the following method in the HelloWorldBean class to test your code:

      
      public static void main(String args[]){
        System.out.println("Testing the HelloWorldBean");
        HelloWorldBean hwb = new HelloWorldBean();
        hwb.setName("Mary Doe");
        System.out.println("Invoking the Hello World in Model Layer");
        hwb.invokeHelloWorldModel(null);
        System.out.println("The Hello World message from model is: " +hwb.getHelloWorldMessage());
      }
      

      Note: The HelloWorldBean is a POJO (Plain Old Java Object), an ordinary, simple and easy to understand Java Object that does not carry any fancy feature.

    3. Click File > Save All to save your progress.

  3. Test the HelloWorldBean managed bean code:

    1. Right-click the HelloWorldBean.java file in the Application Navigator, and click Run.

    2. Observe the output under the “Running: ExampleViewController.jpr – Log” section:

      Screenshot

      Note: To further proof the code, you can change the name variable in the main method and run the code again.

    3. Click File > Save All to save your progress.

  4. Create the hello-world task-flow:

    Note: the hello-world task flow controls the navigation in your application.

    1. In JDeveloper Application Navigator right-click ExampleViewController and select New.

    2. In the New Gallery tab, select JSF under Categories section, ADF Task Flow under Items sections and click OK.

    3. Use the following table to populate the Create Task Flow window, and click OK:

      Attribute Value
      File Name hello-world.xml
      Directory add the following path appendix after the WEB-INF folder: \oracle\iam\ui\custom
      Screenshot

      JDeveloper displays the hello-world.xml tab and the Component Palette to the right of the tab.

      Screenshot

      The Component Palette contains components that you can drag and drop onto the bulk-loader.xml tab to design your task flow.

  5. Draw the hello-world task-flow navigation:

    1. From the Component Palette, drag and drop a View onto the hello-world.xml tab:

      Screenshot
    2. Enter provideName as the View name:

      Screenshot
    3. From the Component Palette, drag and drop a View onto the hello-world.xml tab (to the right of the providerName

      Screenshot
    4. Enter helloWorldMessage as the View name.

    5. From the Component Palette, drag a Control Flow Case onto the hello-world.xml tab and release the component over the providerName

      Screenshot
    6. Click helloWorldMessage

    7. Enter sayHello as the Control Flow Case name:

      Screenshot
    8. Click File > Save All to save your progress.

  6. Integrate the HelloWorldBean managed bean and the hello-world task flow:

    Note: In the ADF, the task flow combined with the managed bean provides the Controller Layer. Through the task flow, you can control what managed beans are integrated and when they are available (the memory scope).

    1. In the hello-world.xml tab, click the Overview subtab.

      Screenshot
    2. JDeveloper displays the Overview pane, where you can configure properties for your task flow. Click the Managed Beans tab.

      Screenshot

      Note: The Managed Beans tab controls the beans that are bounded to the hello-world.xml task flow.

    3. On the Managed Beans tab, click the plus icon to add a managed bean to your task flow.

      Screenshot
    4. Add the following entry to the Managed Beans area of the tab:

      Field Value
      Name HelloWorldBean
      Class com.example.view.HelloWorldBean
      Scope pageFlow
      Screenshot

      Note: The HelloWorldBean managed bean is integrated with the hello-world task flow using the pageFlow memory scope. This signifies the HelloWorldBean managed bean is instantiated once the hello-world task flow is executed and is kept in memory until the hello-world task flow is finished. For more information about the managed bean memory scope in ADF, refer to Oracle Fusion Middleware Fusion Developer’s Guide for Oracle Application Development Framework 11g Release 2.

    5. Click File > Save All to save your progress.

Checkpoint

At this point, you implemented the Controller Layer for your custom ADF application. In the next steps, you implement the View Layer.

Developing the View Layer

In this topic, you are presented to the ADF View layer components.

Topic image

Overview

ADF leverages the following components to deliver the View Layer:

  • ADF Page Fragments: As you build web pages for an application, some pages may quickly become large and unmanageable. The ADF Page fragment address this concern by providing a small page fragment connected and controlled by the task-flow. The ADF page fragment is easy to build, maintain and reuse in several different task-flows.

  • ADF Faces Components: ADF Faces consists of over 150 components you can drag and drop into your ADF Page Fragment to build the layout, provide functionality and interact with the user. The ADF Faces Components are presented in your IDE through a component palette for a simplified navigation, selection and configuration, so developers are able to work with the ADF Faces Components visually, minimizing the manual codification.

  • Expression Language: The Expression Language is a Java EE feature that permits developers invoke Managed Beans attributes and methods:

    Screenshot

Important: In the this topic, you develop the Hello World View Layer using the components listed above. For a better understanding we recommend you to review this overview during each of the remaining development steps. This measure keeps you in track of the ADF framework usage in the View Layer.

Note: This tutorial presents the ADF basics for the Oracle Identity Manager development. For complete detailed information and hands-on tutorials on ADF, refer to:

Tutorial

In this tutorial, you develop the View layer for your application:

  1. Create the provideName page fragment:

    Note: The provideName page fragment will provide a form where users can inform their name and invoke the Hello World.

    1. In the hello-world.xml tab, Design section, double-click provideName

      Screenshot
    2. In the “Create New JSF Page Fragment”, click OK.

      Screenshot

      JDeveloper displays the provideName.jsff tab with the Page Fragment, the Component Palette to the right of the tab and the Property Inspector under the Component Pallete.

      Screenshot
  2. Design the provideName page fragment:

    Note: In this task, you drag, drop and configure ADF components to design the provideName page fragment.

    1. From the Component Palette, drag and drop the Output Text component onto provideName.jsff

      Screenshot

      Note: The Output Text component displays output text in the page.

    2. Select the outputText1 component under the provideName.jsff tab. In the Property Inspector, enter Provide Name as Value and press Enter.

      Screenshot

      The provideName.jsff tab displays Provide Name

      Screenshot
    3. In the Component Palette, enter separator in the search field and then press Enter.

      Screenshot

      The Component Palette displays the Separator component in the Search Results section.

      Screenshot

      Note: Separator provides a bold line that organizes components in your page.

    4. From the component palette results, drag the Separator component and drop it under the “Provide Name” output text.

    5. Screenshot
    6. From the Component Palette, drag and drop the Input Text component under the separator component:

      Screenshot

      Note: The Input Text field will be used by users during the run time to provide their name.

    7. Select the “Input Text - Label 1”. In the Property Inspector, enter Your Name as Label and press Enter.

    8. In the Property Inspector, click the down arrow next to Value > Expression Builder.

      Screenshot

      Note: You select Expression Builder because want to invoke a managed bean method or property to store the input text entered by users during the runtime.

    9. In the Expression Builder window, select ADF Managed Beans > pageFlowScope, > HelloWorldBean > name and click OK.

      Screenshot

      Note:Expression Builder window permits you browsing and selecting managed beans methods and automatically generates the Expression Language based on your selection.

      JDeveloper displays the Expression Language you pick for the Value property.

      Screenshot
    10. From the Component Palette, drag and drop the Button component under the Input Text component.

      Note: The button component will be used to invoke the Hello World with the name provided by the user during run time.

    11. Select the “commandButton1”. In the Property Inspector, enter the information provided in the following table and press Enter

      Attribute Value
      Text Say Hello to Me
      Action sayHello
      ActionListener #{pageFlowScope.HelloWorldBean.invokeHelloWorldModel}
      Screenshot

      JDeveloper displays the “Say Hello to Me” button under the Your Name input text:

      Screenshot
    12. k. Click File > Save All.

  3. Create the helloWorldMessage page fragment:

    Note: The helloWorldMessage page fragment will display the personalized Hello World message for the users.

    1. In the hello-world.xml tab, Design section, double-click helloWorldMessage

    2. In the “Create New JSF Page Fragment”, click OK.

      JDeveloper displays the helloWorldMessage.jsff tab with the Page Fragment, the Component Palette to the right of the tab and the Property Inspector under the Component Pallete.

  4. Design the helloWorldMessage page fragment:

    Note: In this task, you drag, drop and configure ADF components to design the helloWorldMessage page fragment.

    1. From the Component Palette, drag and drop the Output Text component onto helloWorldMessage.jsff

    2. Select the outputText1 component under the helloWorldMessage.jsff tab. In the Property Inspector, enter Your Hello World Message as Value and press Enter.

    3. In the Component Palette, enter separator in the search field and then press Enter.

    4. From the component palette results, drag the Separator component and drop it under the “Your Hello World Message” output text.

    5. From the Component Palette, drag and drop a Output Text component under the separator component:

      Screenshot

      Note: This Output Text field will print the Hello World message.

    6. Select the outputText1 component. In the Property Inspector, enter the Expression Language #{pageFlowScope.HelloWorldBean.helloWorldMessage} as Label and press Enter.

    7. Click File > Save All.

    8. Observe the helloWorldMessage.jsff file after design:

      Screenshot

Checkpoint

At this point, you implemented the View Layer for your custom ADF application. In the next steps, you test your ADF application in JDeveloper IDE.

Testing your ADF Application

In this topic, you are learn how to test your ADF Application.

Topic image

Overview

Testing your ADF web application requires an Application Server with ADF framework libraries configured. The Oracle JDeveloper Studio comes with Oracle Fusion Middleware Infrastructure software, which includes the Oracle Application Development Framework and an embedded version of the Oracle WebLogic Server for developing and testing Java and Oracle ADF applications.

Screenshot

When developers start a test in JDeveloper, the IDE automatically runs the embedded WebLogic Server in developer’s desktop, deploys and provides a link for the ADF application. During the run time, JDeveloper IDE also monitors and displays the embedded WebLogic Server logs.

Tutorial

In this tutorial, you test your ADF application in JDeveloper embedded WebLogic Server:

  1. Create a JSF Page to display the hello-world task flow:

    Note: You create a JSF page to work as a mechanism to launch your ADF task flow.

    1. In JDeveloper Application Navigator right-click ExampleViewController and select New.

    2. In the New Gallery window, select Web Tier > JSF from the Categories pane and “JSF Page” from the Items pane, and click OK.

      Screenshot
    3. In the Create JSF Page dialog box, enter test.jsp in the File Name field and click OK.

    4. In the Application Navigator pane, navigate select the hello-world.xml file.

      Screenshot
    5. Drag and drop the hello-world.xml file onto the test.jsp tab.

      Screenshot
    6. Select Region from the Create popup menu that appears in the test.jsp tab.

      Screenshot

      JDeveloper displays the hello-world task flow content in the test.jsp file:

      Screenshot
    7. Click File > Save All.

  2. Run your custom ADF application in the embedded WebLogic Server:

    1. In the Application Navigator, right-click the test.jsp page and click run:

      Screenshot

      Note: If this is your first time using the JDeveloper embedded WebLogic Server, the Jdeveloper will display a dialog box to configure your server. Enter the values below as reference and click OK:

      Screenshot
    2. Wait until the WebLogic Server run and deploy your application.

      Note: This step may take several minutes depending on your machine resources and if this is your first time using the embedded WebLogic Server.

      After a successful deployment in the embedded WebLogic Server, JDeveloper displays the message:

      Screenshot

      JDeveloper also launches a browser instance to display the test.jsp page with the hello-world task flow.

      Screenshot

      Note: If JDeveloper does not launch the browser, click in the hyperlink provided in the log.

  3. Test your application:

    1. Enter a value as Your Name (for example: Random Guy and click “Say Hello to Me”:

      Screenshot

      Observe the results.

      Screenshot

      Return to JDeveloper and click Stop > Integrated WebLogic Server:

      Screenshot

      Click File > Save All.

Checkpoint

At this point, you tested your ADF application using the embedded WebLogic Server. This signifies you know the ADF basics to develop web applications.

In the next topic, you are guided to the next steps.

Summary and Next Steps

Summary

In this tutorial, you learned:

  • How to configure the JDeveloper to develop Oracle Identity Manager customizations
  • How to create and develop a custom ADF Application
  • The ADF components that you can leverage to build Oracle Identity Manager User Interface customizations
  • How to test your application in the JDeveloper embedded WebLogic Server

Next Steps

These are the recommended next steps after you finish the ADF Primer 1:

Next Steps
  • ADF Primer 2: in this tutorial, you experience deploying your custom ADF application in Oracle Identity Manager
  • Oracle Identity Governance Essentials: in this course, you learn the Oracle Identity Manager main functionalities. This includes the not only the traditional Identity Management capabilites (such as reconciliation and provisioning), but also the newest features (such as the certification and risk aggregation).
  • Oracle Identity Governance Develop Identity Provisioning: this course provides the ultimate development experience for the Oracle Identity Manager, including:
    • Developing your own custom connector
    • Customizing the identity life cycle
    • Extending Oracle Identity Manager connectors
    • Providing event based certification with closed-loop remediation
    • Customizing the Oracle Identity Manager workflows
    • Customizing the Oracle Identity Manager UI

    During the course, you explore the Oracle Identity Manager API's and environment to deliver advanced configuration and customizations based on typical busincess case scenarios

    In regards to the User Interface customization, the Develop Identity Provisioning course delivers the most advanced UI customization, involving not only the ADF customization, but the use of the product API's, the advanced authorization configuration, the advanced sandbox editing and so on.

Resources

Help topics relevant to the this primer.

Credits

Put credits here

  • Lead Curriculum Developer: Frederico Hakamine

To navigate this Oracle by Example tu, note the following:

Topic List:
Click a topic to navigate to that section.
Expand All Topics:
Click the button to show or hide the details for the sections. By default, all topics are collapsed.
Hide All Images:
Click the button to show or hide the screenshots. By default, all images are displayed.
Print:
Click the button to print the content. The content that is currently displayed or hidden is printed.

To navigate to a particular section in this tutorial, select the topic from the list.