Skip Headers
Oracle® Application Development Framework Developer's Guide
10
g
Release 3 (10.1.3.0)
Part Number B28967-02
Home
Index
Contact Us
Next
View PDF
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
Conventions
Part I Getting Started with Oracle ADF Applications
1
Introduction to Oracle ADF Applications
1.1
Overview of Oracle Application Development Framework
1.1.1
Framework Architecture and Supported Technologies
1.1.1.1
View Layer Technologies Supported
1.1.1.2
Controller Layer Technologies Supported
1.1.1.3
Business Services Technologies Supported by ADF Model
1.1.1.4
Recommended Technologies for J2EE Enterprise Developers
1.1.2
Declarative Development with Oracle ADF and JavaServer Faces
1.1.2.1
Declarative J2EE Technologies You May Have Already Used
1.1.2.2
JSF Offers Dependency Injection, Page Handling, EL and More
1.1.2.3
Oracle ADF Further Raises the Level of Declarative Development for JSF
1.1.3
Key ADF Binding Features for JSF Development
1.1.3.1
Comprehensive JDeveloper Design-Time Support
1.1.3.2
More Sophisticated UI Functionality Without Coding
1.1.3.3
Centralize Common Functionality in Layered Model Metadata
1.1.3.4
Simplified Control Over Page Lifecycle
1.2
Development Process with Oracle ADF and JavaServer Faces
1.2.1
Overview of the Steps for Building an Application
1.2.1.1
Starting by Creating a New Application
1.2.1.2
Building the Business Service in the Model Project
1.2.1.3
Creating a Data Control for Your Service to Enable Data Binding
1.2.1.4
Dragging and Dropping Data to Create a New JSF Page
1.2.1.5
Examining the Binding Metadata Files Involved
1.2.1.6
Understanding How Components Reference Bindings via EL
1.2.1.7
Configuring Binding Properties If Needed
1.2.1.8
Understanding How Bindings Are Created at Runtime
1.2.2
Making the Display More Data-Driven
1.2.2.1
Hiding and Showing Groups of Components Based on Binding Properties
1.2.2.2
Toggling Between Alternative Sets of Components Based on Binding Properties
2
Oracle ADF Service Request Demo Overview
2.1
Introduction to the Oracle ADF Service Request Demo
2.1.1
Requirements for Oracle ADF Service Request Application
2.1.2
Overview of the Schema
2.2
Setting Up the Oracle ADF Service Request Demo
2.2.1
Downloading and Installing the Oracle ADF Service Request Application
2.2.2
Installing the Oracle ADF Service Request Schema
2.2.3
Creating the Oracle JDeveloper Database Connection
2.2.4
Running the Oracle ADF Service Request Demo in JDeveloper
2.2.5
Running the Oracle ADF Service Request Demo Unit Tests in JDeveloper
2.3
Quick Tour of the Oracle ADF Service Request Demo
2.3.1
Customer Logs In and Reviews Existing Service Requests
2.3.2
Customer Creates a Service Request
2.3.3
Manager Logs In and Assigns a Service Request
2.3.4
Manager Views Reports and Updates Technician Skills
2.3.5
Technician Logs In and Updates a Service Request
3
Building and Using Application Services
3.1
Introduction to Business Services
3.2
Implementing Services with EJB Session Beans
3.2.1
How to Create a Session Bean
3.2.1.1
Remote and Local Interfaces
3.2.1.2
Generating Session Facade Methods
3.2.2
What Happens When You Create a Session Bean
3.2.3
What You May Need to Know When Creating a Session Bean
3.2.4
How to Update an Existing Session Bean With New Entities
3.3
Creating Classes to Map to Database Tables
3.3.1
How to Create Classes
3.3.2
What Happens when you Create a Class
3.3.3
What You May Need to Know
3.3.3.1
Associating Descriptors with Different Database Tables
3.3.3.2
Using Amendment Methods
3.3.3.3
Modifying the Generated Code
3.4
Mapping Classes to Tables
3.4.1
Types of Mappings
3.4.2
Direct Mappings
3.4.3
How to Create Direct Mappings
3.4.4
What Happens when you Create a Direct Mapping
3.4.5
What You May Need to Know
3.5
Mapping Related Classes with Relationships
3.5.1
How to Create Relationship Mappings
3.5.2
What Happens when you Create a Relationship
3.5.3
What You May Need to Know
3.6
Finding Objects by Primary Key
3.7
Querying Objects
3.7.1
How to Create a Query
3.7.2
What You May Need to Know
3.7.2.1
Using a Query By Example
3.7.2.2
Sorting Query Results
3.8
Creating and Modifying Objects with a Unit of Work
3.8.1
How to Create a Unit of Work
3.8.1.1
Creating Objects with Unit of Work
3.8.1.2
Typical Unit of Work Usage
3.8.2
What Happens when you Modify a Unit of Work
3.8.2.1
Deleting Objects
3.8.3
What You May Need to Know
3.8.3.1
Unit of Work and Change Policy
3.8.3.2
Nested and Parallel Units of Work
3.9
Interacting with Stored Procedures
3.9.1
Specifying an Input Parameter
3.9.2
Specifying an Output Parameter
3.9.3
Specifying an Input / Output Parameter
3.9.4
Using an Output Parameter Event
3.9.5
Using a StoredFunctionCall
3.9.6
Query Sequencing
3.10
Exposing Services with ADF Data Controls
3.10.1
How to Create ADF Data Controls
3.10.2
Understanding the Data Control Files
3.10.2.1
About the DataControls.dcx File
3.10.2.2
About the Structure Definition Files
3.10.2.3
About the Entity XML Files
3.10.2.4
About the Design-time XML Files
3.10.3
Understanding the Data Control Palette
3.10.3.1
Overview of the Data Control Business Objects
3.10.3.2
Refreshing ADF Data Controls After Modifying Business Services
Part II Building the Web Interface
4
Getting Started with ADF Faces
4.1
Introduction to ADF Faces
4.2
Setting Up a Workspace and Project
4.2.1
What Happens When You Use an Application Template to Create a Workspace
4.2.1.1
Starter web.xml File
4.2.1.2
Starter faces-config.xml File
4.2.2
What You May Need to Know About the ViewController Project
4.2.3
What You May Need to Know About Multiple JSF Configuration Files
4.3
Creating a Web Page
4.3.1
How to Add a JSF Page
4.3.2
What Happens When You Create a JSF Page
4.3.3
What You May Need to Know About Using the JSF Navigation Diagram
4.3.4
What You May Need to Know About ADF Faces Dependencies and Libraries
4.4
Laying Out a Web Page
4.4.1
How to Add UI Components to a JSF Page
4.4.2
What Happens When You First Insert an ADF Faces Component
4.4.2.1
More About the web.xml File
4.4.2.2
More About the faces-config.xml File
4.4.2.3
Starter adf-faces-config.xml File
4.4.3
What You May Need to Know About Creating JSF Pages
4.4.3.1
Editing in the Structure Window
4.4.3.2
Displaying Errors
4.4.4
Using the PanelPage Component
4.4.4.1
PanelPage Facets
4.4.4.2
Page Body Contents
4.5
Creating and Using a Backing Bean for a Web Page
4.5.1
How to Create and Configure a Backing Bean
4.5.2
What Happens When You Create and Configure a Backing Bean
4.5.3
How to Use a Backing Bean in a JSF Page
4.5.4
How to Use the Automatic Component Binding Feature
4.5.5
What Happens When You Use Automatic Component Binding in JDeveloper
4.5.6
What You May Need to Know About Backing Beans and Managed Beans
4.5.7
Using ADF Data Controls and Backing Beans
4.6
Best Practices for ADF Faces
5
Displaying Data on a Page
5.1
Introduction to Displaying Data on a Page
5.2
Using the Data Control Palette
5.2.1
How to Understand the Items on the Data Control Palette
5.2.2
How to Use the Data Control Palette
5.2.3
What Happens When You Use the Data Control Palette
5.2.4
What Happens at Runtime
5.3
Working with the DataBindings.cpx File
5.3.1
How to Create a DataBindings.cpx File
5.3.2
What Happens When You Create a DataBindings.cpx File
5.4
Configuring the ADF Binding Filter
5.4.1
How to Configure the ADF Binding Filter
5.4.2
What Happens When You Configure an ADF Binding Filter
5.4.3
What Happens at Runtime
5.5
Working with Page Definition Files
5.5.1
How to Create a Page Definition File
5.5.2
What Happens When You Create a Page Definition File
5.5.2.1
Binding Objects Defined in the parameters Element
5.5.2.2
Binding Objects Defined in the executables Element
5.5.2.3
Binding Objects Defined in the bindings Element
5.5.3
What Happens at Runtime
5.5.4
What You May Need to Know About Binding Container Scope
5.6
Creating ADF Data Binding EL Expressions
5.6.1
How to Create an ADF Data Binding EL Expression
5.6.2
How to Use the Expression Builder
5.6.3
What Happens When You Create ADF Data Binding Expressions
5.6.3.1
EL Expressions That Reference Attribute Binding Objects
5.6.3.2
EL Expressions That Reference Table Binding Objects
5.6.3.3
EL Expressions That Reference Action Binding Objects
5.6.4
What You May Need to Know About ADF Binding Properties
5.6.5
What You May Need to Know About Binding to Values in Other Pages
6
Creating a Basic Page
6.1
Introduction to Creating a Basic Page
6.2
Using Attributes to Create Text Fields
6.2.1
How to Use the Data Control Palette to Create a Text Field
6.2.2
What Happens When You Use the Data Control Palette to Create a Text Field
6.2.2.1
Creating and Using Iterator Bindings
6.2.2.2
Creating and Using Value Bindings
6.2.2.3
Using EL Expressions to Bind UI Components
6.2.3
What Happens at Runtime: The JSF and ADF Lifecycles
6.3
Creating a Basic Form
6.3.1
How to Use the Data Control Palette to Create a Form
6.3.2
What Happens When You Use the Data Control Palette to Create a Form
6.3.2.1
Using Facets
6.4
Incorporating Range Navigation into Forms
6.4.1
How to Insert Navigation Controls into a Form
6.4.2
What Happens When Command Buttons Are Created Using the Data Control Palette
6.4.2.1
Using Action Bindings for Built-in Navigation Operations
6.4.2.2
Iterator RangeSize Attribute
6.4.2.3
Using EL Expressions to Bind to Navigation Operations
6.4.3
What Happens at Runtime: About Action Events and Action Listeners
6.4.4
What You May Need to Know About the Browser Back Button
6.5
Modifying the UI Components and Bindings on a Form
6.5.1
How to Modify the UI Components and Bindings
6.5.1.1
Changing the Value Binding for a UI Component
6.5.1.2
Changing the Action Binding for a UI Component
6.5.2
What Happens When You Modify Attributes and Bindings
7
Adding Tables
7.1
Introduction to Adding Tables
7.2
Creating a Basic Table
7.2.1
How to Create a Basic Table
7.2.2
What Happens When You Use the Data Control Palette to Create a Table
7.2.2.1
Iterator and Value Bindings for Tables
7.2.2.2
Code on the JSF Page for an ADF Faces Table
7.3
Incorporating Range Navigation into Tables
7.3.1
How to Use Navigation Controls in a Table
7.3.2
What Happens When You Use Navigation Controls in a Table
7.3.3
What Happens at Runtime
7.3.4
What You May Need to Know About the Browser Back Button
7.4
Modifying the Attributes Displayed in the Table
7.4.1
How to Modify the Displayed Attributes
7.4.2
How to Change the Binding for a Table
7.4.3
What Happens When You Modify Bindings or Displayed Attributes
7.5
Adding Hidden Capabilities to a Table
7.5.1
How to Use the DetailStamp Facet
7.5.2
What Happens When You Use the DetailStamp Facet
7.5.3
What Happens at Runtime
7.6
Enabling Row Selection in a Table
7.6.1
How to Use the TableSelectOne Component in the Selection Facet
7.6.2
What Happens When You Use the TableSelectOne Component
7.6.3
What Happens at Runtime
7.6.4
How to Use the TableSelectMany Component in the Selection Facet
7.6.5
What Happens When You Use the TableSelectMany Component
7.6.6
What Happens at Runtime
7.7
Setting the Current Object Using a Command Component
7.7.1
How to Manually Set the Current Row
7.7.2
What Happens When You Set the Current Row
7.7.3
What Happens At Runtime
8
Displaying Master-Detail Data
8.1
Introduction to Displaying Master-Detail Data
8.2
Identifying Master-Detail Objects on the Data Control Palette
8.3
Using Tables and Forms to Display Master-Detail Objects
8.3.1
How to Display Master-Detail Objects in Tables and Forms
8.3.2
What Happens When You Create Master-Detail Tables and Forms
8.3.2.1
Code Generated in the JSF Page
8.3.2.2
Binding Objects Defined in the Page Definition File
8.3.3
What Happens at Runtime
8.3.4
What You May Need to Know About Master-Detail on Separate Pages
8.4
Using Trees to Display Master-Detail Objects
8.4.1
How to Display Master-Detail Objects in Trees
8.4.2
What Happens When You Create ADF Databound Trees
8.4.2.1
Code Generated in the JSF Page
8.4.2.2
Binding Objects Defined in the Page Definition File
8.4.3
What Happens at Runtime
8.5
Using Tree Tables to Display Master-Detail Objects
8.5.1
How to Display Master-Detail Objects in Tree Tables
8.5.2
What Happens When You Create a Databound Tree Table
8.5.2.1
Code Generated in the JSF Page
8.5.2.2
Binding Objects Defined in the Page Definition File
8.5.3
What Happens at Runtime
8.6
Using an Inline Table to Display Detail Data in a Master Table
8.6.1
How to Display Detail Data Using an Inline Table
8.6.2
What Happens When You Create an Inline Detail Table
8.6.2.1
Code Generated in the JSF Page
8.6.2.2
Binding Objects Defined in the Page Definition File
8.6.3
What Happens at Runtime
9
Adding Page Navigation
9.1
Introduction to Page Navigation
9.2
Creating Navigation Rules
9.2.1
How to Create Page Navigation Rules
9.2.1.1
About Navigation Rule Elements
9.2.1.2
Using the Navigation Modeler to Define Navigation Rules
9.2.1.3
Using the JSF Configuration Editor
9.2.2
What Happens When You Create a Navigation Rule
9.2.3
What Happens at Runtime
9.2.4
What You May Need to Know About Navigation Rules and Cases
9.2.4.1
Defining Rules in Multiple Configuration Files
9.2.4.2
Overlapping Rules
9.2.4.3
Conflicting Navigation Rules
9.2.4.4
Splitting Navigation Cases Over Multiple Rules
9.2.5
What You May Need to Know About the Navigation Modeler
9.3
Using Static Navigation
9.3.1
How to Create Static Navigation
9.3.2
What Happens When You Create Static Navigation
9.4
Using Dynamic Navigation
9.4.1
How to Create Dynamic Navigation
9.4.2
What Happens When You Create Dynamic Navigation
9.4.3
What Happens at Runtime
9.4.4
What You May Need to Know About Using Default Cases
9.4.5
What You May Need to Know About Action Listener Methods
9.4.6
What You May Need to Know About Data Control Method Outcome Returns
10
Creating More Complex Pages
10.1
Introduction to More Complex Pages
10.2
Using a Managed Bean to Store Information
10.2.1
How to Use a Managed Bean to Store Information
10.2.2
What Happens When You Create a Managed Bean
10.3
Creating Command Components to Execute Methods
10.3.1
How to Create a Command Component Bound to a Service Method
10.3.2
What Happens When You Create Command Components Using a Method
10.3.2.1
Using Parameters in a Method
10.3.2.2
Using EL Expressions to Bind to Methods
10.3.3
What Happens at Runtime
10.4
Setting Parameter Values Using a Command Component
10.4.1
How to Set Parameters Using Command Components
10.4.2
What Happens When You Set Parameters
10.4.3
What Happens at Runtime
10.5
Overriding Declarative Methods
10.5.1
How to Override a Declarative Method
10.5.2
What Happens When You Override a Declarative Method
10.6
Creating a Form or Table Using a Method that Takes Parameters
10.6.1
How to Create a Form or Table Using a Method That Takes Parameters
10.6.2
What Happens When You Create a Form Using a Method that Takes Parameters
10.6.3
What Happens at Runtime
10.7
Creating an Input Form for a New Record
10.7.1
How to Use Constructors to Create an Input Form
10.7.2
What Happens When You Use a Constructor
10.7.3
How to Use a Custom Method to Create an Input Form
10.7.4
What Happens When You Use Methods to Create a Parameter Form
10.7.4.1
Using Variables and Parameters
10.7.5
What Happens at Runtime
10.8
Creating Search Pages
10.8.1
How to Create a Search Form
10.8.2
What Happens When You Use Parameter Methods
10.8.3
What Happens at Runtime
10.9
Conditionally Displaying the Results Table on a Search Page
10.9.1
How to Add Conditional Display Capabilities
10.9.2
What Happens When you Conditionally Display the Results Table
11
Using Complex UI Components
11.1
Introduction to Complex UI Components
11.2
Using Dynamic Menus for Navigation
11.2.1
How to Create Dynamic Navigation Menus
11.2.1.1
Creating a Menu Model
11.2.1.2
Creating the JSF Page for Each Menu Item
11.2.1.3
Creating the JSF Navigation Rules
11.2.2
What Happens at Runtime
11.2.3
What You May Need to Know About Menus
11.3
Using Popup Dialogs
11.3.1
How to Create Popup Dialogs
11.3.1.1
Defining a JSF Navigation Rule for Launching a Dialog
11.3.1.2
Creating the JSF Page That Launches a Dialog
11.3.1.3
Creating the Dialog Page and Returning a Dialog Value
11.3.1.4
Handling the Return Value
11.3.1.5
Passing a Value into a Dialog
11.3.2
How the SRDemo Popup Dialogs Are Created
11.3.3
What You May Need to Know About ADF Faces Dialogs
11.3.4
Other Information
11.4
Enabling Partial Page Rendering
11.4.1
How to Enable PPR
11.4.2
What Happens at Runtime
11.4.3
What You May Need to Know About PPR and Screen Readers
11.5
Creating a Multipage Process
11.5.1
How to Create a Process Train
11.5.1.1
Creating a Process Train Model
11.5.1.2
Creating the JSF Page for Each Train Node
11.5.1.3
Creating the JSF Navigation Rules
11.5.2
What Happens at Runtime
11.5.3
What You May Need to Know About Process Trains and Menus
11.6
Providing File Upload Capability
11.6.1
How to Support File Uploading on a Page
11.6.2
What Happens at Runtime
11.6.3
What You May Need to Know About ADF Faces File Upload
11.6.4
Configuring File Uploading Initialization Parameters
11.6.5
Configuring a Custom Uploaded File Processor
11.7
Creating Databound Dropdown Lists
11.7.1
How to Create a Dropdown List with a Fixed List of Values
11.7.2
What Happens When You Create a Dropdown List Bound to a Fixed List
11.7.3
How to Create a Dropdown List with a Dynamic List of Values
11.7.4
What Happens When You Create a Dropdown List Bound to a Dynamic List
11.7.5
How to Use Variables with Dropdown Lists
11.8
Creating a Databound Shuttle
11.8.1
How to Create a Databound Shuttle
11.8.2
What Happens at Runtime
12
Using Validation and Conversion
12.1
Introduction to Validation and Conversion
12.2
Validation, Conversion, and the Application Lifecycle
12.3
Adding Validation
12.3.1
How to Add Validation
12.3.1.1
Adding ADF Faces Validation
12.3.1.2
Adding ADF Model Validation
12.3.2
What Happens When You Create Input Fields Using the Data Control Palette
12.3.3
What Happens at Runtime
12.3.4
What You May Need to Know
12.4
Creating Custom JSF Validation
12.4.1
How to Create a Backing Bean Validation Method
12.4.2
What Happens When You Create a Backing Bean Validation Method
12.4.3
How to Create a Custom JSF Validator
12.4.4
What Happens When You Use a Custom JSF Validator
12.5
Adding Conversion
12.5.1
How to Use Converters
12.5.2
What Happens When You Create Input Fields Using the Data Control Palette
12.5.3
What Happens at Runtime
12.6
Creating Custom JSF Converters
12.6.1
How to Create a Custom JSF Converter
12.6.2
What Happens When You Use a Custom Converter
12.7
Displaying Error Messages
12.7.1
How to Display Server-Side Error Messages on a Page
12.7.2
What Happens When You Choose to Display Error Messages
12.8
Handling and Displaying Exceptions in an ADF Application
12.8.1
How to Change Exception Handling
12.8.2
What Happens When You Change the Default Error Handling
13
Adding ADF Bindings to Existing Pages
13.1
Introduction to Adding ADF Bindings to Existing Pages
13.2
Designing Pages for ADF Bindings
13.2.1
Creating the Page
13.2.2
Adding Components to the Page
13.2.3
Other Design Considerations
13.2.3.1
Creating Text Fields in Forms
13.2.3.2
Creating Tables
13.2.3.3
Creating Buttons and Links
13.2.3.4
Creating Lists
13.2.3.5
Creating Trees or Tree Tables
13.3
Using the Data Control Palette to Bind Existing Components
13.3.1
How to Add ADF Bindings Using the Data Control Palette
13.3.2
What Happens When You Use the Data Control Palette to Add ADF Bindings
13.4
Adding ADF Bindings to Text Fields
13.4.1
How to Add ADF Bindings to Text Fields
13.4.2
What Happens When You Add ADF Bindings to a Text Field
13.5
Adding ADF Bindings to Tables
13.5.1
How to Add ADF Bindings to Tables
13.5.2
What Happens When You Add ADF Bindings to a Table
13.6
Adding ADF Bindings to Actions
13.6.1
How to Add ADF Bindings to Actions
13.6.2
What Happens When You Add ADF Bindings to an Action
13.7
Adding ADF Bindings to Selection Lists
13.7.1
How to Add ADF Bindings to Selection Lists
13.7.2
What Happens When You Add ADF Bindings to a Selection List
13.8
Adding ADF Bindings to Trees and Tree Tables
13.8.1
How to Add ADF Bindings to Trees and Tree Tables
13.8.2
What Happens When You Add ADF Bindings to a Tree or Tree Table
14
Changing the Appearance of Your Application
14.1
Introduction to Changing ADF Faces Components
14.2
Changing the Style Properties of a Component
14.2.1
How to Set a Component's Style Attributes
14.2.2
What Happens When You Format Text
14.3
Using Skins to Change the Look and Feel
14.3.1
How to Use Skins
14.3.1.1
Creating a Custom Skin
14.3.1.2
Configuring an Application to Use a Skin
14.4
Internationalizing Your Application
14.4.1
How to Internationalize an Application
14.4.2
How to Configure Optional Localization Properties for ADF Faces
15
Optimizing Application Performance with Caching
15.1
About Caching
15.2
Using ADF Faces Cache to Cache Content
15.2.1
How to Add Support for ADF Faces Cache
15.2.2
What Happens When You Cache Fragments
15.2.2.1
Logging
15.2.2.2
AFC Statistics Servlet
15.2.2.3
Visual Diagnostics
15.2.3
What You May Need to Know
16
Testing and Debugging Web Applications
16.1
Getting Started with Oracle ADF Model Debugging
16.2
Correcting Simple Oracle ADF Compilation Errors
16.3
Correcting Simple Oracle ADF Runtime Errors
16.4
Understanding a Typical Oracle ADF Model Debugging Session
16.4.1
Turning on Diagnostic Logging
16.4.2
Creating an Oracle ADF Debugging Configuration
16.4.3
Understanding the Different Kinds of Breakpoints
16.4.4
Editing Breakpoints to Improve Control
16.4.5
Filtering Your View of Class Members
16.4.6
Communicating Stack Trace Information to Someone Else
16.5
Debugging the Oracle ADF Model Layer
16.5.1
Correcting Failures to Display Pages
16.5.1.1
Fixing Binding Context Creation Errors
16.5.1.2
Fixing Binding Container Creation Errors
16.5.2
Correcting Failures to Display Data
16.5.2.1
Fixing Executable Errors
16.5.2.2
Fixing Render Value Errors Before Submit
16.5.3
Correcting Failures to Invoke Actions and Methods
16.5.4
Correcting Page Validation Failures
16.6
Tracing EL Expressions
Part III Implementing Projects With Oracle ADF
17
Working Productively in Teams
17.1
Using CVS with an ADF Project
17.1.1
Choice of Internal or External CVS Client
17.1.2
Preference Settings
17.1.3
File Dependencies
17.1.4
Use Consistent Connection Definition Names
17.1.5
General Advice for Committing ADF Work to CVS
17.1.5.1
Other Version Control Tips and Techniques
17.1.6
Check Out or Update from the CVS Repository
17.1.7
Special Consideration when Manually Adding Navigation Rules to the faces-config.xml File
17.2
General Advice for Using CVS with JDeveloper
17.2.1
Team-Level Activities
17.2.2
Developer-Level Activities
17.2.2.1
Typical Workflow When Checking Your Work Into CVS
17.2.2.2
Handling CVS Repository Configuration Files
18
Adding Security to an Application
18.1
Introduction to Security in Oracle ADF Web Applications
18.2
Specifying the JAZN Resource Provider
18.2.1
How To Specify the Resource Provider
18.2.2
What You May Need to Know About Oracle ADF Security and Resource Providers
18.3
Configuring Authentication Within the web.xml File
18.3.1
How to Enable J2EE Container-Managed Authentication
18.3.2
What Happens When You Use Security Constraints without Oracle ADF Security
18.3.3
How to Enable Oracle ADF Authentication
18.3.4
What Happens When You Use Security Constraints with Oracle ADF
18.4
Creating a Login Page
18.4.1
Wiring the Login and Error Pages
18.4.2
What Happens When You Wire the Login and Error Pages
18.5
Creating a Logout Page
18.5.1
Wiring the Logout Action
18.5.2
What Happens When You Wire the Logout Action
18.6
Implementing Authorization Using Oracle ADF Security
18.6.1
Configuring the Application to Use Oracle ADF Security Authorization
18.6.1.1
How to Configure Oracle ADF Security Authorization
18.6.1.2
What Happens When You Configure An Application to Use Oracle ADF Security
18.6.1.3
What You May Need to Know About the Authorization Property
18.6.2
Setting Authorization on ADF Binding Containers
18.6.3
Setting Authorization on ADF Iterator Bindings
18.6.4
Setting Authorization on ADF Attribute and MethodAction Bindings
18.6.5
What Happens When Oracle ADF Security Handles Authorization
18.7
Implementing Authorization Programmatically
18.7.1
Making User Information EL Accessible
18.7.1.1
Creating a Class to Manage Roles
18.7.1.2
Creating a Managed Bean for the Security Information
18.7.2
Integrating the Managed Bean with Oracle ADF Model
18.7.2.1
Creating a TopLink Named Query To Return a User Object
18.7.2.2
Create a Session Facade Method to Wrap the Named Query
18.7.2.3
Create a Page Definition to Make the Method an EL Accessible Object
18.7.2.4
Executing the Session Facade Method from the UserInfo Bean
19
Advanced TopLink Topics
19.1
Introduction to Advanced TopLink Topics
19.2
Using Advanced Parameters (databindings.cpx)
19.2.1
Performing Deletes First
19.2.2
Specifying the TopLink Session File
19.2.3
Specifying the Sequencing
19.3
Configuring Method Access for Relationship
19.4
Using sessions.xml with a TopLink Data Control
19.5
Using Multiple Maps with a TopLink Data Control
19.6
Compiling TopLink Classes with Specific JDK Versions
20
Creating Data Control Adapters
20.1
Introduction to the Simple CSV Data Control Adapter
20.2
Overview of Steps to Create a Data Control Adapter
20.3
Implement the Abstract Adapter Class
20.3.1
Location of JAR Files
20.3.2
Abstract Adapter Class Outline
20.3.3
Complete Source for the SampleDCAdapter Class
20.3.4
Implementing the initialize Method
20.3.5
Implementing the invokeUI Method
20.3.6
Implementing the getDefinition Method
20.4
Implement the Data Control Definition Class
20.4.1
Location of JAR Files
20.4.2
Data Control Definition Class Outline
20.4.3
Complete Source for the SampleDCDef Class
20.4.4
Creating a Default Constructor
20.4.5
Collecting Metadata from the User
20.4.6
Defining the Structure of the Data Control
20.4.7
Creating an Instance of the Data Control
20.4.8
Setting the Metadata for Runtime
20.4.9
Setting the Name for the Data Control
20.5
Implement the Data Control Class
20.5.1
Location of JAR Files
20.5.2
Data Control Class Outline
20.5.3
Complete Source for the SampleDataControl Class
20.5.4
Implementing the invokeOperation Method
20.5.4.1
About Calling processResult
20.5.4.2
Return Value for invokeOperation
20.5.5
Implementing the getName Method
20.5.6
Implementing the release Method
20.5.7
Implementing the getDataProvider Method
20.6
Create any Necessary Supporting Classes
20.7
Create an XML File to Define Your Adapter
20.8
Build Your Adapter
20.9
Package and Deploy Your Adapter to JDeveloper
20.10
Location of Javadoc Information
20.11
Contents of Supporting Files
20.11.1
sampleDC.xsd
20.11.2
CSVHandler Class
20.11.3
CSVParser
21
Working with Web Services
21.1
What are Web Services
21.1.1
SOAP
21.1.2
WSDL
21.1.3
UDDI
21.1.4
Web Services Interoperability
21.2
Creating Web Service Data Controls
21.2.1
How to Create a Web Service Data Control
21.3
Securing Web Service Data Controls
21.3.1
WS-Security Specification
21.3.2
Creating and Using Keystores
21.3.2.1
How to Create a Keystore
21.3.2.2
How to Request a Certificate
21.3.2.3
How to Export a Public Key Certificate
21.3.3
Defining Web Service Data Control Security
21.3.3.1
How to Set Authentication
21.3.3.2
How to Set Digital Signatures
21.3.3.3
How to Set Encryption and Decryption
21.3.3.4
How to Use a Key Store
22
Deploying ADF Applications
22.1
Introduction to Deploying ADF Applications
22.2
Deployment Steps
22.3
Deployment Techniques
22.4
Deploying Applications Using Ant
22.5
Deploying the SRDemo Application
22.6
Deploying to Oracle Application Server
22.6.1
Oracle Application Server Versions Supported
22.6.2
Oracle Application Server Release 2 (10.1.2) Deployment Notes
22.6.3
Oracle Application Server Deployment Methods
22.6.4
Oracle Application Server Deployment to Test Environments ("Automatic Deployment")
22.6.5
Oracle Application Server Deployment to Clustered Topologies
22.7
Deploying to JBoss
22.7.1
JBoss Versions Supported
22.7.2
JBoss Deployment Notes
22.7.3
JBoss Deployment Methods
22.8
Deploying to WebLogic
22.8.1
WebLogic Versions Supported
22.8.2
WebLogic Versions 8.1 and 9.0 Deployment Notes
22.8.3
WebLogic 8.1 Deployment Notes
22.8.4
WebLogic 9.0 Deployment Notes
22.8.5
WebLogic Deployment Methods
22.9
Deploying to WebSphere
22.9.1
WebSphere Versions Supported
22.9.2
WebSphere Deployment Notes
22.9.3
WebSphere Deployment Methods
22.10
Deploying to Tomcat
22.10.1
Tomcat Versions Supported
22.10.2
Tomcat Deployment Notes
22.11
Deploying to Application Servers That Support JDK 1.4
22.11.1
Switching Embedded OC4J to JDK 1.4
22.12
Installing ADF Runtime Library on Third-Party Application Servers
22.12.1
Installing the ADF Runtime Libraries from JDeveloper
22.12.2
Configuring WebSphere 6.0.1 to Run ADF Applications
22.12.2.1
Source for install_adflibs_1013.sh Script
22.12.2.2
Source for install_adflibs_1013.cmd Script
22.12.3
Installing the ADF Runtime Libraries Manually
22.12.3.1
Installing the ADF Runtime Libraries from a Zip File
22.12.4
Deleting the ADF Runtime Library
22.13
Verifying Deployment and Troubleshooting
22.13.1
How to Test Run Your Application
22.13.2
"Class Not Found" or "Method Not Found" Errors
22.13.3
Application Is Not Using data-sources.xml File on Target Application Server
22.13.4
Using jazn-data.xml with the Embedded OC4J Server
Part IV Appendices
A
Reference ADF XML Files
A.1
About the ADF Metadata Files
A.2
ADF File Overview Diagram
A.2.1
Oracle ADF Data Control Files
A.2.2
Oracle ADF Data Binding Files
A.2.3
Oracle ADF Faces and Web Configuration Files
A.3
ADF File Syntax Diagram
A.4
DataControls.dcx
A.4.1
Syntax of the DataControls.dcx File
A.4.2
Sample of the DataControls.dcx File
A.4.3
Sample of the adfm.xml File
A.5
Structure Definition Files
A.5.1
Syntax for the Structure Definition for a JavaBean
A.5.2
Sample Structure Definition for the <sessionbeanname>.xml File
A.5.3
Sample Structure Definition for the <entitybeanname>.xml File
A.5.4
Collection and SingleValue Sample Files
A.6
DataBindings.cpx
A.6.1
DataBindings.cpx Syntax
A.6.2
DataBindings.cpx Sample
A.7
<pageName>PageDef.xml
A.7.1
PageDef.xml Syntax
A.7.2
PageDef.xml Sample for a Method That Returns a String
A.7.3
PageDef.xml Sample for a Method that Returns a Collection
A.8
web.xml
A.8.1
Tasks Supported by the web.xml File
A.8.1.1
Configuring for State Saving
A.8.1.2
Configuring for Application View Caching
A.8.1.3
Configuring for Debugging
A.8.1.4
Configuring for File Uploading
A.8.1.5
Configuring for ADF Model Binding
A.8.1.6
Other Context Configuration Parameters for JSF
A.8.1.7
What You May Need to Know
A.9
j2ee-logging.xml
A.9.1
Tasks Supported by the j2ee-logging.xml
A.9.1.1
Change the Logging Level for Oracle ADF Packages
A.9.1.2
Redirect the Log Output
A.9.1.3
Change the Location of the Log File
A.10
faces-config.xml
A.10.1
Tasks Supported by the faces-config.xml
A.10.1.1
Registering a Render Kit for ADF Faces Components
A.10.1.2
Registering a Phase Listener for ADF Binding
A.10.1.3
Registering a Message Resource Bundle
A.10.1.4
Configuring for Supported Locales
A.10.1.5
Creating Navigation Rules and Cases
A.10.1.6
Registering Custom Validators and Converters
A.10.1.7
Registering Managed Beans
A.11
adf-faces-config.xml
A.11.1
Tasks Supported by adf-faces-config.xml
A.11.1.1
Configuring Accessibility Levels
A.11.1.2
Configuring Currency Code and Separators for Number Groups and Decimals
A.11.1.3
Configuring For Enhanced Debugging Output
A.11.1.4
Configuring for Client-Side Validation and Conversion
A.11.1.5
Configuring the Language Reading Direction
A.11.1.6
Configuring the Skin Family
A.11.1.7
Configuring the Output Mode
A.11.1.8
Configuring the Number of Active ProcessScope Instances
A.11.1.9
Configuring the Time Zone and Year Offset
A.11.1.10
Configuring a Custom Uploaded File Processor
A.11.1.11
Configuring the Help Site URL
A.11.1.12
Retrieving Configuration Property Values From adf-faces-config.xml
A.12
adf-faces-skins.xml
A.12.1
Tasks Supported by adf-faces-skins.xml
B
Reference ADF Binding Properties
B.1
EL Properties of Oracle ADF Bindings
Index