Course (3-7-3) Oracle Application Development Framework Part 3
- 31 Creating ADF Databound Search Forms
- 31.1 About Creating Search Forms
- 31.1.1 Implicit and Named View Criteria
- 31.1.2 List of Values (LOV) Input Fields
- 31.1.3 Search Form Use Cases and Examples
- 31.1.4 Additional Functionality for Search Forms
- 31.2 Creating Query Search Forms
- 31.2.1 Named Bind Variables in Query Search Forms
- 31.2.2 How to Create a Query Search Form with a Results Table or Tree Table
- 31.2.3 How to Create a Query Search Form and Add a Results Component Later
- 31.2.4 How to Persist Saved Searches into MDS
- 31.2.5 How to Set Default Search Binding Behavior
- 31.2.6 What You May Need to Know About Dependent Criterion
- 31.2.7 What Happens When You Create a Query Form
- 31.2.8 What Happens at Runtime: Search Forms
- 31.3 Setting Up Search Form Properties
- 31.3.1 How to Set Search Form Properties on the View Criteria
- 31.3.2 How to Set Search Form Properties on the Query Component
- 31.3.3 How to Create Custom Operators or Remove Standard Operators
- 31.4 Creating Quick Query Search Forms
- 31.4.1 How to Create a Quick Query Search Form with a Results Table or Tree Table
- 31.4.2 How to Create a Quick Query Search Form and Add a Results Component Later
- 31.4.3 How to Set the Quick Query Layout Format
- 31.4.4 What Happens When You Create a Quick Query Search Form
- 31.4.5 What Happens at Runtime: Quick Query
- 31.5 Creating Standalone Filtered Search Tables from Named View Criteria
- 31.5.1 How to Create Filtered Table and Query-by-Example Searches
- 31.1 About Creating Search Forms
- 32 Using More Complex Databound ADF Faces Components
- 32.1 About More Complex Databound ADF Faces Components
- 32.1.1 Complex Databound ADF Faces Components Use Cases and Examples
- 32.1.2 Additional Functionality of Complex Databound ADF Faces Components
- 32.2 Using the ADF Faces Calendar Component
- 32.2.1 How to Use the ADF Faces Calendar
- 32.2.2 What Happens When You Create a Calendar
- 32.2.3 What Happens at Runtime: How the Calendar Binding Works
- 32.3 Using the ADF Faces Carousel Component
- 32.3.1 How to Create a Databound Carousel Component
- 32.3.2 What Happens When You Create a Carousel
- 32.1 About More Complex Databound ADF Faces Components
- 33 Creating Databound ADF Data Visualization Components
- 33.1 About ADF Data Visualization Components
- 33.1.1 End User and Presentation Features
- 33.1.2 Data Visualization Components Use Cases and Examples
- 33.1.3 Additional Functionality for Data Visualization Components
- 33.2 Creating Databound Graphs
- 33.2.1 How to Create a Graph
- 33.2.2 What Happens When You Use the Data Controls Panel to Create a Graph
- 33.2.3 What You May Need to Know About Using a Graph's Row Selection Listener for Master-Detail Processing
- 33.2.4 What You May Need to Know About Using Name-Value Pairs
- 33.2.5 How to Create a Graph Using Name-Value Pairs
- 33.2.6 How to Create a Databound Spark Chart
- 33.2.7 Configuring Databound Graphs for Drilling
- 33.2.7.1 How to Configure Databound Graphs for Drilling
- 33.3 Creating Databound Gauges
- 33.3.1 How to Create a Databound Dial Gauge
- 33.3.2 What Happens When You Create a Dial Gauge from a Data Control
- 33.3.3 How to Create a Databound Status Meter Gauge Set
- 33.3.4 What Happens When You Create a Status Meter Gauge from a Data Control
- 33.4 Creating Databound Pivot Tables
- 33.4.1 How to Create a Pivot Table
- 33.4.2 What Happens When You Use the Data Controls Panel to Create a Pivot Table
- 33.4.2.1 Bindings for Pivot Tables
- 33.4.2.2 Code on the JSF Page for a Pivot Table and Pivot Filter Bar
- 33.4.3 What You May Need to Know About Aggregating Attributes in the Pivot Table
- 33.4.3.1 Default Aggregation of Duplicate Data Rows
- 33.4.3.2 Custom Aggregation of Duplicate Rows
- 33.4.4 What You May Need to Know About Specifying an Initial Sort for a Pivot Table
- 33.5 Creating Databound Geographic Maps
- 33.5.1 How to Create a Geographic Map with a Point Theme
- 33.5.2 How to Create Point Style Items for a Point Theme
- 33.5.3 What Happens When You Create a Geographic Map with a Point Theme
- 33.5.3.1 Binding XML for a Point Theme
- 33.5.3.2 XML Code on the JSF Page for a Geographic Map and Point Theme
- 33.5.4 What You May Need to Know About Adding Custom Point Style Items to a Map Point Theme
- 33.5.5 How to Add a Databound Color Theme to a Geographic Map
- 33.5.6 What Happens When You Add a Color Theme to a Geographic Map
- 33.5.6.1 Binding XML for a Color Theme
- 33.5.6.2 XML Code on the JSF Page for a Color Theme
- 33.5.7 What You May Need to Know About Customizing Colors in a Map Color Theme
- 33.5.8 How to Add a Databound Pie Graph Theme to a Geographic Map
- 33.5.9 What Happens When You Add a Pie Graph Theme to a Geographic Map
- 33.5.9.1 Binding XML for a Pie Graph Theme
- 33.5.9.2 Code on the JSF Page for a Pie Graph Theme
- 33.6 Creating Databound Thematic Maps
- 33.6.1 How to Create a Thematic Map Using ADF Data Controls
- 33.6.2 What Happens When You Use Data Controls to Create a Thematic Map
- 33.6.3 What You May Need to Know About Base Map Location Ids
- 33.6.4 How to Add Data Layers to Thematic Maps
- 33.6.5 How to Configure Drilling in Thematic Maps
- 33.6.6 What You May Need to Know About Configuring Master-Detail Relationships
- 33.6.7 Styling Areas, Markers, and Images to Display Dat
- 33.6.7.1 How to Style Areas to Display Data
- 33.6.7.2 How to Style Markers to Display Data
- 33.6.7.3 What You May Need to Know About Styling Markers
- 33.6.7.4 What You May Need to Know About Default Style Values for Attribute Groups
- 33.6.7.5 How to Style Images to Display Data
- 33.6.7.6 What You May Need to Know About SVG Files
- 33.6.8 Creating Databound Legends
- 33.6.9 How to Define a Custom Map Layer
- 33.7 Creating Databound Gantt Charts
- 33.7.1 How to Create a Databound Project Gantt Chart
- 33.7.2 What Happens When You Create a Project Gantt Chart from a Data Control
- 33.7.3 What You May Need to Know About Summary Tasks in a Project Gantt Chart
- 33.7.4 What You May Need to Know About Percent Complete in a Project Gantt Chart
- 33.7.5 What You May Need to Know About Variance in a Project Gantt Chart
- 33.7.6 How to Create a Databound Resource Utilization Gantt Chart
- 33.7.7 What Happens When You Create a Resource Utilization Gantt Chart
- 33.7.8 How to Create a Databound Scheduling Gantt Chart
- 33.7.9 What Happens When You Create a Scheduling Gantt Chart
- 33.8 Creating Databound Hierarchy Viewers
- 33.8.1 How to Create a Hierarchy Viewer Using ADF Data Controls
- 33.8.2 What Happens When You Create a Databound Hierarchy Viewer
- 33.8.3 How to Create a Databound Search in a Hierarchy Viewer
- 33.1 About ADF Data Visualization Components
- 34 Using Contextual Events
- 34.1 About Creating Contextual Events
- 34.1.1 Contextual Events Use Cases and Examples
- 34.1.2 Additional Functionality for Contextual Events
- 34.2 Creating Contextual Events Declaratively
- 34.2.1 How to Publish Contextual Events
- 34.2.2 How to Subscribe to and Consume Contextual Events
- 34.2.3 What Happens When You Create Contextual Events
- 34.2.4 How to Control Contextual Events Dispatch
- 34.2.5 What Happens at Runtime: Contextual Events
- 34.3 Creating Contextual Events Manually
- 34.3.1 How to Create Contextual Events Manually
- 34.4 Creating Contextual Events Using Managed Beans
- 34.5 Creating Contextual Events Using JavaScript
- 34.6 Creating the Event Map Manually
- 34.6.1 How to Create the Event Map Manually
- 34.7 Registering a Custom Dispatcher
- 34.7.1 How to Register a Custom Dispatcher
- 34.1 About Creating Contextual Events
- 35 Enabling ADF Security in a Fusion Web Application
- 35.1 About ADF Security
- 35.1.1 Integration of ADF Security and Java Security
- 35.1.2 ADF Security Use Cases and Examples
- 35.1.3 Additional Functionality for ADF Security
- 35.2 ADF Security Process Overview
- 35.3 Enabling ADF Security
- 35.3.1 How to Enable ADF Security
- 35.3.2 What Happens When You Enable ADF Security
- 35.3.3 What Happens When You Generate a Default Form-Based Login Page
- 35.3.4 What You May Need to Know About the Configure ADF Security Wizard
- 35.3.5 What You May Need to Know About ADF Authentication
- 35.3.6 What You May Need to Know About the Built-In test-all Role
- 35.3.7 What You May Need to Know About the valid-users Role
- 35.4 Creating Application Roles
- 35.4.1 How to Create Application Roles
- 35.4.2 What Happens When You Create Application Roles
- 35.4.3 What You May Need to Know About Enterprise Roles and Application Roles
- 35.5 Defining ADF Security Policies
- 35.5.1 How to Make an ADF Resource Public
- 35.5.2 What Happens When You Make an ADF Resource Public
- 35.5.3 What Happens at Runtime: How the Built-in Roles Are Used
- 35.5.4 How to Define Policies for ADF Bounded Task Flows
- 35.5.5 How to Define Policies for Web Pages That Reference a Page Definition
- 35.5.6 How to Define Policies to Control User Access to ADF Methods
- 35.5.6.1 Creating a Resource Grant to Control Access to ADF Methods
- 35.5.6.2 Enforcing the Resource Grant in the User Interface
- 35.5.7 What Happens When You Define the Security Policy
- 35.5.8 What Happens at Runtime: How ADF Security Policies Are Enforced
- 35.5.9 What You May Need to Know About Defining Policies for Pages with No ADF Bindings
- 35.5.10 How to Use Regular Expressions to Define Policies on Groups of Resources
- 35.5.11 How to Define Policies for Data
- 35.5.11.1 Defining Permission Maps on ADF Entity Objects
- 35.5.11.2 Defining Permission Maps on ADF Entity Object Attributes
- 35.5.11.3 Granting Permissions on ADF Entity Objects and Entity Attributes
- 35.5.12 How to Aggregate Resource Grants as Entitlement Grants
- 35.5.13 What Happens After You Create an Entitlement Grant
- 35.6 Creating Test Users
- 35.6.1 How to Create Test Users in JDeveloper
- 35.6.2 What Happens When You Create Test Users
- 35.6.3 How to Associate Test Users with Application Roles
- 35.6.4 What Happens When You Configure Application Roles
- 35.7 Creating a Login Page
- 35.7.1 How to Create a Login Link Component and Add it to a Public Web Page
- 35.7.2 How to Create a Login Page
- 35.7.2.1 Creating Login Code for the Backing Bean
- 35.7.2.2 Creating an ADF Faces-Based Login Page
- 35.7.2.3 Configuring the web.xml File for an ADF Faces-Based Login Page
- 35.7.2.4 Ensuring That the Login Page Is Public
- 35.7.2.5 Ensuring That the Login Page's Resources Are Accessible
- 35.7.3 How to Create a Public Welcome Page
- 35.7.3.1 Ensuring That the Welcome Page Is Public
- 35.7.3.2 Adding Login and Logout Links
- 35.7.3.3 Hiding Links to Secured Pages
- 35.7.4 How to Redirect a User After Authentication
- 35.7.5 What You May Need to Know About ADF Servlet Logout and Browser Caching
- 35.8 Testing Security in JDeveloper
- 35.8.1 How to Configure, Deploy, and Run a Secure Application in JDeveloper
- 35.8.2 What Happens When You Configure Security Deployment Options
- 35.8.3 How to Use the Built-In test-all Application Role
- 35.8.4 What Happens at Runtime: How ADF Security Handles Authentication
- 35.8.5 What Happens at Runtime: How ADF Security Handles Authorization
- 35.9 Preparing the Secure Application for Deployment
- 35.9.1 How to Remove the test-all Role from the Application Policy Store
- 35.9.2 How to Remove Test Users from the Application Identity Store
- 35.9.3 How to Secure Resource Files Using a URL Constraint
- 35.10 Disabling ADF Security
- 35.10.1 How to Disable ADF Security
- 35.10.2 What Happens When You Disable ADF Security
- 35.11 Advanced Topics and Best Practices
- 35.11.1 Using Expression Language (EL) with ADF Security
- 35.11.1.1 How to Evaluate Policies Using EL
- 35.11.1.2 What Happens When You Use the Expression Builder Dialog
- 35.11.1.3 What You May Need to Know About Delayed Evaluation of EL
- 35.11.2 How to Evaluate Policies Using Custom JAAS Permissions and EL
- 35.11.2.1 Creating the Custom JAAS Permission Class
- 35.11.2.2 Creating the ADF Security Policy Using a Custom Permission
- 35.11.2.3 Associating the Rendering of a UI Component with a Custom Permission
- 35.11.3 Getting Information from the ADF Security Context
- 35.11.3.1 How to Determine Whether Security Is Enabled
- 35.11.3.2 How to Determine Whether the User Is Authenticated
- 35.11.3.3 How to Determine the Current User Name, Enterprise Name, or Enterprise ID
- 35.11.3.4 How to Determine Membership of a Java EE Security Role
- 35.11.3.5 How to Determine Permission Using Java
- 35.11.4 Best Practices for Working with ADF Security
- 35.11.1 Using Expression Language (EL) with ADF Security
- 35.1 About ADF Security
- 36 Testing and Debugging ADF Components
- 36.1 About ADF Debugging
- 36.2 Correcting Simple Oracle ADF Compilation Errors
- 36.3 Correcting Simple Oracle ADF Runtime Errors
- 36.4 Reloading Oracle ADF Metadata in Integrated WebLogic Server
- 36.5 Validating ADF Controller Metadata
- 36.6 Using the ADF Logger
- 36.6.1 How to Set ADF Logging Levels
- 36.6.2 How to Turn On Diagnostic Logging
- 36.6.3 How to Create an Oracle ADF Debugging Configuration
- 36.6.4 How to Use the Log Analyzer to View Log Messages
- 36.6.4.1 Viewing Diagnostic Messages in the Log Analyzer
- 36.6.4.2 Using the Log Analyzer to Analyze the ADF Request
- 36.6.4.3 Sorting Diagnostic Messages By ADF Events
- 36.6.5 What You May Need to Know About the Logging.xml File
- 36.6.6 What You May Need to Know About ADF Logging and Oracle WebLogic Server
- 36.7 Using the Oracle ADF Model Tester for Testing and Debugging
- 36.7.1 How to Run in Debug Mode and Test with the Oracle ADF Model Tester
- 36.7.2 How to Run the Oracle ADF Model Tester and Test with a Specific Configuration
- 36.7.3 What Happens When You Run the Oracle ADF Model Tester in Debug Mode
- 36.7.4 How to Verify Runtime Artifacts in the Oracle ADF Model Tester
- 36.7.5 How to Refresh the Oracle ADF Model Tester with Application Changes
- 36.8 Using the ADF Declarative Debugger
- 36.8.1 Using ADF Source Code with the Debugger
- 36.8.2 How to Set Up the ADF Source User Library
- 36.8.3 How to Add the ADF Source Library to a Project
- 36.8.4 How to Use the EL Expression Evaluator
- 36.8.5 How to View and Export Stack Trace Information
- 36.9 Setting ADF Declarative Breakpoints
- 36.9.1 How to Set and Use Task Flow Activity Breakpoints
- 36.9.2 How to Set and Use Page Definition Executable Breakpoints
- 36.9.3 How to Set and Use Page Definition Action Binding Breakpoints
- 36.9.4 How to Set and Use Page Definition Value Binding Breakpoints
- 36.9.5 How to Set and Use Page Definition Contextual Event Breakpoints
- 36.9.6 How to Set and Use ADF Lifecycle Phase Breakpoints
- 36.9.7 How to Use the ADF Structure Window
- 36.9.8 How to Use the ADF Data Window
- 36.9.9 What Happens When You Set an ADF Declarative Breakpoint
- 36.10 Setting Java Code Breakpoints
- 36.10.1 How to Set Java Breakpoints on Classes and Methods
- 36.10.2 How to Optimize Use of the Source Editor
- 36.10.3 How to Set Breakpoints and Debug Using ADF Source Code
- 36.10.4 How to Use Debug Libraries for Symbolic Debugging
- 36.10.5 How to Use Different Kinds of Java Code Breakpoints
- 36.10.6 How to Edit Breakpoints for Improved Control
- 36.10.7 How to Filter Your View of Class Members
- 36.10.8 How to Use Common Oracle ADF Breakpoints
- 36.11 Regression Testing with JUnit
- 36.11.1 How to Obtain the JUnit Extension
- 36.11.2 How to Create a JUnit Test Case
- 36.11.3 How to Create a JUnit Test Fixture
- 36.11.4 How to Create a JUnit Test Suite
- 36.11.5 How to Create a Business Components Test Suite
- 36.11.6 How to a Create Business Components Test Fixture
- 36.11.7 How to Run a JUnit Test Suite as Part of an Ant Build Script
- 37 Refactoring a Fusion Web Application
- 37.1 About Refactoring a Fusion Web Application
- 37.1.1 Refactoring Use Cases and Examples
- 37.2 Renaming Files
- 37.3 Moving JSF Pages
- 37.4 Refactoring pagedef.xml Bindings Objects
- 37.5 Refactoring ADF Business Components
- 37.6 Refactoring ADF Business Component Object Attributes
- 37.7 Refactoring Named Elements
- 37.8 Refactoring ADF Task Flows
- 37.9 Refactoring the DataBindings.cpx File
- 37.10 Refactoring Limitations
- 37.11 Moving the ADF Business Components Project Configuration File (.jpx)
- 37.1 About Refactoring a Fusion Web Application
- 38 Reusing Application Components
- 38.1 About Reusable Components
- 38.1.1 Creating Reusable Components
- 38.1.1.1 Naming Conventions
- 38.1.1.1.1 Naming Considerations for Packages
- 38.1.1.1.2 Naming Considerations for Connections
- 38.1.1.1.3 Naming Considerations for Applications with EJB Projects
- 38.1.1.2 The Naming Process for the ADF Library JAR Deployment Profile
- 38.1.1.3 Keeping the Relevant Project
- 38.1.1.4 Selecting the Relevant Feature
- 38.1.1.5 Selecting Paths and Folders
- 38.1.1.6 Including Connections Within Reusable Components
- 38.1.1.1 Naming Conventions
- 38.1.2 Reusable ADF Components Use Cases and Examples
- 38.1.3 Additional Functionality for Reusable ADF Components
- 38.1.1 Creating Reusable Components
- 38.2 Common Functionality of Reusable ADF Components
- 38.2.1 Using Extension Libraries
- 38.3 Packaging a Reusable ADF Component into an ADF Library
- 38.3.1 How to Package a Component into an ADF Library JAR
- 38.3.2 What Happens When You Package a Project to an ADF Library JAR
- 38.3.2.1 Application Modules
- 38.3.2.2 Data Controls
- 38.3.2.3 Task Flows
- 38.3.2.4 Page Templates
- 38.3.2.5 Declarative Components
- 38.3.3 How to Place and Access JDeveloper JAR Files
- 38.4 Adding ADF Library Components into Projects
- 38.4.1 How to Add an ADF Library JAR into a Project using the Resource Palette
- 38.4.2 How to Add an ADF Library JAR into a Project Manually
- 38.4.3 What Happens When You Add an ADF Library JAR to a Project
- 38.4.4 What You May Need to Know About Using ADF Library Components
- 38.4.4.1 Using Data Controls
- 38.4.4.2 Using Application Modules
- 38.4.4.3 Using Business Components
- 38.4.4.4 Using Task Flows
- 38.4.4.5 Using Page Templates
- 38.4.4.6 Using Declarative Components
- 38.4.5 What You May Need to Know About Differentiating ADF Library Components
- 38.4.6 What Happens at Runtime: Adding ADF Libraries
- 38.5 Removing an ADF Library JAR from a Project
- 38.5.1 How to Remove an ADF Library JAR from a Project Using the Resource Palette
- 38.5.2 How to Remove an ADF Library JAR from a Project Manually
- 38.1 About Reusable Components
- 39 Customizing Applications with MDS
- 39.1 About Customization and MDS
- 39.1.1 Customization and Layers: Use Cases and Examples
- 39.1.2 Static and Dynamic Customization Content
- 39.1.3 Additional Functionality for Customization
- 39.2 Developing a Customizable Application
- 39.2.1 How to Create Customization Classes
- 39.2.1.1 Customization Classes
- 39.2.1.2 Implementing the getValue() Method in Your Customization Class
- 39.2.1.3 Creating a Customization Class
- 39.2.2 What You May Need to Know About Customization Classes
- 39.2.3 How to Consume Customization Classes
- 39.2.3.1 Making Customization Classes Available to JDeveloper at Design Time
- 39.2.3.2 Making Customization Classes Available to the Application at Run Time
- 39.2.4 How to Enable Seeded Customizations for View Projects
- 39.2.5 How to Enable Seeded Customizations in Existing Pages
- 39.2.6 How to Enable Customizations in Resource Bundles
- 39.2.7 How to Configure the adf-config.xml file
- 39.2.8 What Happens When You Create a Customizable Application
- 39.2.9 What You May Need to Know About Customizable Objects and Applications
- 39.2.1 How to Create Customization Classes
- 39.3 Customizing an Application
- 39.3.1 Introducing the Customization Developer Role
- 39.3.2 How to Switch to the Customization Developer Role in JDeveloper
- 39.3.3 Introducing the Tip Layer
- 39.3.4 How to Configure Customization Layers
- 39.3.4.1 Configuring Layer Values Globally
- 39.3.4.2 Configuring Workspace-Level Layer Values from the Studio Developer Role
- 39.3.5 How to Customize Metadata in JDeveloper
- 39.3.6 What Happens When You Customize an Application
- 39.3.7 How to Customize ADF Library Artifacts in JDeveloper
- 39.3.7.1 Specifying a Location for ADF Library Customizations
- 39.3.9 What Happens When You Customize ADF Library Artifacts
- 39.3.10 How to Package and Deploy Customized Applications
- 39.3.10.2 Explicitly Creating a MAR Profile
- 39.3.11 What Happens at Runtime in a Customized Application
- 39.3.12 What You May Need to Know About Customized Applications
- 39.3.12.1 Customization and Integrated Source Control
- 39.3.12.2 Editing Resource Bundles in Customized Applications
- 39.4 Extended Metadata Properties
- 39.4.1 How to Edit Extended Metadata Properties
- 39.4.2 How to Enable Customization for Design Time at Runtime
- 39.4.2.1 Editing Customization Properties in the Property Inspector
- 39.4.2.2 Using a Standalone Annotations File to Specify Type-Level Customization Properties
- 39.5 Enabling Runtime Modification of Customization Configuration
- 39.1 About Customization and MDS
- 40 Allowing User Customizations at Runtime
- 40.1 About User Customizations
- 40.1.1 Runtime User Customization Use Cases and Examples
- 40.1.2 Additional Functionality for Runtime User Customization
- 40.2 Enabling Runtime User Customizations for a Fusion Web Application
- 40.2.2 What Happens When You Enable User Customizations
- 40.3 Configuring User Customizations
- 40.3.1 How to Configure Change Persistence
- 40.3.2 What Happens When You Configure Change Persistence
- 40.4 Controlling User Customizations in Individual JSF Pages
- 40.4.1 How to Control User Customizations on a JSF Page
- 40.4.2 What Happens at Runtime
- 40.4.3 What You May Need to Know About Using Change Persistence on Templates and Regions
- 40.5 Implementing Custom User Customizations
- 40.5.1 Change Persistence Framework API
- 40.5.2 How to Create Code for Custom User Customizations
- 40.6 Creating Implicit Change Persistence in Custom Components
- 40.6.1 How to Set Implicit Change Persistence For Attribute Values that Use Events
- 40.6.2 How to Set Implicit Change Persistence For Other Attribute Values
- 40.1 About User Customizations
- 41 Deploying Fusion Web Applications
- 41.1 About Deploying Fusion Web Applications
- 41.1.1 Developing Applications with Integrated WebLogic Server
- 41.1.2 Developing Applications to Deploy to Standalone Application Server
- 41.2 Running an ADF Application in Integrated WebLogic Server
- 41.2.1 How to Run an Application in Integrated WebLogic Server
- 41.2.2 How to Run an Application with Metadata in Integrated WebLogic Server
- 41.3 Preparing the Application
- 41.3.1 How to Create a Connection to the Target Application Server
- 41.3.2 How to Create Deployment Profiles
- 41.3.2.1 Creating a WAR Deployment Profile
- 41.3.2.2 Creating a MAR Deployment Profile
- 41.3.2.3 Creating an Application-Level EAR Deployment Profile
- 41.3.2.4 Delivering Customization Classes as a Shared Library
- 41.3.2.5 Viewing and Changing Deployment Profile Properties
- 41.3.2.6 Adding Customization Classes into a JAR
- 41.3.3 How to Create and Edit Deployment Descriptors
- 41.3.3.1 Creating Deployment Descriptors
- 41.3.3.2 Viewing or Modifying Deployment Descriptor Properties
- 41.3.3.3 Configuring the application.xml File for Application Server Compatibility
- 41.3.3.4 Configuring the web.xml File for Application Server Compatibility
- 41.3.3.5 Enabling the Application for Real User Experience Insight
- 41.3.4 How to Deploy Applications with ADF Security Enabled
- 41.3.4.1 Applications That Will Run Using Oracle Single Sign-On (SSO)
- 41.3.4.2 Configuring Security for Weblogic Server
- 41.3.4.2.1 Applications with JDBC URL for WebLogic
- 41.3.4.2.2 Applications with JDBC Data Source for WebLogic
- 41.3.4.3 Configuring Security for Websphere Application Server
- 41.3.4.3.1 Applications with JDBC URL for WebSphere
- 41.3.4.3.2 Applications with JDBC Data Source for WebSphere
- 41.3.4.3.3 Editing the web.xml File to Protect the Application Root for WebSphere
- 41.3.5 How to Replicate Memory Scopes in a Clustered Environment
- 41.3.6 How to Enable the Application for ADF MBeans
- 41.3.7 What You May Need to Know About JDBC Data Source for Oracle WebLogic Server
- 41.4 Deploying the Application
- 41.4.1 How to Deploy to the Application Server from JDeveloper
- 41.4.2 How to Create an EAR File for Deployment
- 41.4.3 How to Deploy New Customizations Applied to ADF Library
- 41.4.3.1 Exporting Customization to a Deployed Application
- 41.4.3.2 Deploying Customizations to a JAR
- 41.4.4 What You May Need to Know About ADF Libraries
- 41.4.5 What You May Need to Know About EAR Files and Packaging
- 41.4.6 How to Deploy the Application Using Scripts and Ant
- 41.4.7 What You May Need to Know About JDeveloper Runtime Libraries
- 41.5 Postdeployment Configuration
- 41.5.1 How to Migrate an Application
- 41.5.2 How to Configure the Application Using ADF MBeans
- 41.5.3 How to Configure WebSphere for Result Set Reuse
- 41.6 Testing the Application and Verifying Deployment
- 41.1 About Deploying Fusion Web Applications
- 42 Advanced View Object Techniques
- 42.1 Advanced View Object Concepts and Features
- 42.1.1 Limiting the View Object Max Fetch Size to Fetch the First n Rows
- 42.1.2 Maintaining New Row Consistency in View Objects Based on the Same Entity
- 42.1.2.1 What Happens at Runtime When View Link Consistency is Enabled
- 42.1.2.2 How to Change the Default View Link Consistency Setting
- 42.1.2.3 How to Use a RowMatch to Qualify Which New, Unposted Rows Get Added to a Row Set
- 42.1.2.4 What You May Need to Know About the Dynamic WHERE Clause and View Link Consistency
- 42.1.3 Understanding View Link Accessors Versus Data Model View Link Instances
- 42.1.3.1 Enabling a Dynamic Detail Row Set with Active Master-Detail Coordination
- 42.1.3.2 Accessing a Stable Detail Row Set Using View Link Accessor Attributes
- 42.1.3.3 Accessor Attributes Create Distinct Row Sets Based on an Internal View Object
- 42.1.4 Presenting and Scrolling Data a Page at a Time Using the Range
- 42.1.5 Efficiently Scrolling Through Large Result Sets Using Range Paging
- 42.1.5.1 Understanding How to Oracle Supports "TOP-N" Queries
- 42.1.5.2 How to Enable Range Paging for a View Object
- 42.1.5.3 What Happens When You Enable Range Paging
- 42.1.5.4 What Happens When View Rows are Cached When Using Range Paging
- 42.1.5.5 How to Scroll to a Given Page Number Using Range Paging
- 42.1.5.6 Estimating the Number of Pages in the Row Set Using Range Paging
- 42.1.5.7 Understanding the Tradeoffs of Using a Range Paging Mode
- 42.1.6 Setting Up a Data Model with Multiple Masters
- 42.1.7 Understanding When You Can Use Partial Keys with findByKey()
- 42.1.8 Handling View Object Queries with Primary Keys Defined by Transient Attributes
- 42.1.9 Creating Dynamic Attributes to Store UI State
- 42.1.10 Working with Multiple Row Sets and Row Set Iterators
- 42.1.11 Optimizing View Link Accessor Access By Retaining the Row Set
- 42.2 Tuning Your View Objects for Best Performance
- 42.2.1 Use Bind Variables for Parameterized Queries
- 42.2.1.1 Use Bind Variables to Avoid Re-parsing of Queries
- 42.2.1.2 Use Bind Variables to Prevent SQL-Injection Attacks
- 42.2.2 Consider Using Entity-Based View Objects for Read-Only Data
- 42.2.3 Use SQL Tracing to Identify Ill-Performing Queries
- 42.2.4 Consider the Appropriate Tuning Settings for Every View Object
- 42.2.4.1 Set the Database Retrieval Options Appropriately
- 42.2.4.2 Consider Whether Fetching One Row at a Time is Appropriate
- 42.2.4.3 Specify a Query Optimizer Hint if Necessary
- 42.2.5 Using Care When Creating View Objects at Runtime
- 42.2.6 Use Forward Only Mode to Avoid Caching View Rows
- 42.2.1 Use Bind Variables for Parameterized Queries
- 42.3 Generating Custom Java Classes for a View Object
- 42.3.1 How To Generate Custom Classes
- 42.3.1.1 Generating Bind Variable Accessors
- 42.3.1.2 Generating View Row Attribute Accessors
- 42.3.1.3 Exposing View Row Accessors to Clients
- 42.3.1.4 Configuring Default Java Generation Preferences
- 42.3.2 What Happens When You Generate Custom Classes
- 42.3.2.1 Seeing and Navigating to Custom Java Files
- 42.3.3 What You May Need to Know About Custom Classes
- 42.3.3.1 About the Framework Base Classes for a View Object
- 42.3.3.2 You Can Safely Add Code to the Custom Component File
- 42.3.3.3 Attribute Indexes and InvokeAccessor Generated Code
- 42.3.1 How To Generate Custom Classes
- 42.4 Working Programmatically with Multiple Named View Criteria
- 42.4.1 Applying One or More Named View Criteria
- 42.4.2 Removing All Applied Named View Criteria
- 42.4.3 Using the Named Criteria at Runtime
- 42.5 Performing In-Memory Sorting and Filtering of Row Sets
- 42.5.1 Understanding the View Object's SQL Mode
- 42.5.2 Sorting View Object Rows In Memory
- 42.5.2.1 Combining setSortBy and setQueryMode for In-Memory Sorting
- 42.5.2.2 Extensibility Points for In-Memory Sorting
- 42.5.3 Performing In-Memory Filtering with View Criteria
- 42.5.4 Performing In-Memory Filtering with RowMatch
- 42.5.4.1 Applying a RowMatch to a View Object
- 42.5.4.2 Using RowMatch to Test an Individual Row
- 42.5.4.3 How a RowMatch Affects Rows Fetched from the Database
- 42.6 Using View Objects to Work with Multiple Row Types
- 42.6.1 Working with Polymorphic Entity Usages
- 42.6.2 How to Create a View Object with a Polymorphic Entity Usage
- 42.6.3 What Happens When You Create a View Object with a Polymorphic Entity Usage
- 42.6.4 What You May Need to Know About Entity Usages
- 42.6.4.1 Your Query Must Limit Rows to Expected Entity Subtypes
- 42.6.4.2 Exposing Selected Entity Methods in View Rows Using Delegation
- 42.6.4.3 Creating New Rows With the Desired Entity Subtype
- 42.6.5 Working with Polymorphic View Rows
- 42.6.6 How to Create a View Object with Polymorphic View Rows
- 42.6.7 What You May Need to Know About Polymorphic View Rows
- 42.6.7.1 Selecting Subtype-Specific Attributes in Extended View Objects
- 42.6.7.2 Delegating to Subtype-Specific Methods After Overriding the Entity Usage
- 42.6.7.3 Working with Different View Row Interface Types in Client Code
- 42.6.7.4 View Row Polymorphism and Polymorphic Entity Usage are Orthogonal
- 42.7 Reading and Writing XML
- 42.7.1 How to Produce XML for Queried Data
- 42.7.2 What Happens When You Produce XML
- 42.7.3 What You May Need to Know About Reading and Writing XML
- 42.7.3.1 Controlling XML Element Names
- 42.7.3.2 Controlling Element Suppression for Null-Valued Attributes
- 42.7.3.3 Printing or Searching the Generated XML Using XPath
- 42.7.3.4 Using the Attribute Map For Fine Control Over Generated XML
- 42.7.3.5 Use the Attribute Map Approach with Bi-Directional View Links
- 42.7.3.6 Transforming Generated XML Using an XSLT Stylesheet
- 42.7.3.7 Generating XML for a Single Row
- 42.7.4 How to Consume XML Documents to Apply Changes
- 42.7.5 What Happens When You Consume XML Documents
- 42.7.5.1 How ViewObject.readXML() Processes an XML Document
- 42.7.5.2 Using readXML() to Processes XML for a Single Row
- 42.8 Using Programmatic View Objects for Alternative Data Sources
- 42.8.1 How to Create a Read-Only Programmatic View Object
- 42.8.2 How to Create an Entity-Based Programmatic View Object
- 42.8.3 Key Framework Methods to Override for Programmatic View Objects
- 42.8.4 How to Create a View Object on a REF CURSOR
- 42.8.4.1 The Overridden create() Method
- 42.8.4.2 The Overridden executeQueryForCollection() Method
- 42.8.4.3 The Overridden createRowFromResultSet() Method
- 42.8.4.4 The Overridden hasNextForCollectionMethod()
- 42.8.4.5 The Overridden releaseUserDataForCollection() Method
- 42.8.4.6 The Overridden getQueryHitCount() Method
- 42.9 Creating a View Object with Multiple Updatable Entities
- 42.9.1 How to Programmatically Create New Rows With Multiple Updatable Entity Usages
- 42.9.2 What Happens at Runtime: View Row Creation
- 42.10 Programmatically Creating View Definitions and View Objects
- 42.11 Declaratively Preventing Insert, Update, and Delete
- 42.1 Advanced View Object Concepts and Features
- 43 Application State Management
- 43.1 Understanding Why State Management is Necessary
- 43.1.1 Examples of Multi-Step Tasks
- 43.1.2 Stateless HTTP Protocol Complicates Stateful Applications
- 43.1.3 How Cookies Are Used to Track a User Session
- 43.1.4 Performance and Reliability Impact of Using HttpSession
- 43.2 Introduction to Fusion Web Application State Management
- 43.2.1 Basic Architecture of the Save for Later Facility
- 43.2.2 Basic Architecture of the Application Module State Management Facility
- 43.2.2.1 Understanding When Passivation and Activation Occurs
- 43.2.2.2 How Passivation Changes When Optional Failover Mode is Enabled
- 43.2.2.3 About State Management Release Levels
- 43.2.2.3.1 About Managed Release Level
- 43.2.2.3.2 About Unmanaged Release Level
- 43.2.2.3.3 About Reserved Release Level
- 43.2.2.4 State Management and Subclassed Entity Objects
- 43.3 Using Save For Later
- 43.4 Setting the Application Module Release Level at Runtime
- 43.4.1 How to Set Unmanaged Level
- 43.4.2 How to Set Reserved Level
- 43.4.3 How to Set Managed Level
- 43.4.4 How to Set Release Level in a JSF Backing Bean
- 43.4.5 How to Set Release Level in an ADF PagePhaseListener
- 43.4.6 How to Set Release Level in an ADF PageController
- 43.4.7 How to Set Release Level in a Custom ADF PageLifecycle
- 43.5 What Model State Is Saved and When It Is Cleaned Up
- 43.5.1 State Information Saved During Passivation
- 43.5.2 Where the Model State Is Saved
- 43.5.2.1 How Database-Backed Passivation Works
- 43.5.2.2 Controlling the Schema Where the State Management Table Resides
- 43.5.2.3 Configuring the Type of Passivation Store
- 43.5.3 Cleaning Up the Model State
- 43.5.3.1 Previous Snapshot Removed When Next One Taken
- 43.5.3.2 Passivation Snapshot Removed on Unmanaged Release
- 43.5.3.3 Passivation Snapshot Retained in Failover Mode
- 43.5.4 Cleaning Up Temporary Storage Tables
- 43.6 Timing Out the HttpSession
- 43.6.1 How to Configure the Implicit Timeout Due to User Inactivity
- 43.6.2 How to Code an Explicit HttpSession Timeout
- 43.7 Managing Custom User-Specific Information
- 43.7.1 How to Passivate Custom User-Specific Information
- 43.7.1.1 What Happens When You Passivate Custom Information
- 43.7.1 How to Passivate Custom User-Specific Information
- 43.8 Managing the State of View Objects
- 43.8.1 How to Manage the State of View Objects
- 43.8.2 What You May Need to Know About Passivating View Objects
- 43.8.3 How to Manage the State of Transient View Objects and Attributes
- 43.8.4 What You May Need to Know About Passivating Transient View Objects
- 43.8.5 How to Use Transient View Objects to Store Session-level Global Variables
- 43.9 Using State Management for Middle-Tier Savepoints
- 43.9.1 How to Use State Management for Savepoints
- 43.10 Testing to Ensure Your Application Module is Activation-Safe
- 43.10.1 Understanding the jbo.ampool.doampooling Configuration Parameter
- 43.10.2 Disabling Application Module Pooling to Test Activation
- 43.11 Keeping Pending Changes in the Middle Tier
- 43.11.1 How to Confirm That Applications Use Optimistic Locking
- 43.11.2 How to Avoid Clashes Using the postChanges() Method
- 43.11.3 How to Use the Reserved Level For Pending Database States
- 43.1 Understanding Why State Management is Necessary
- 44 Tuning Application Module Pools and Connection Pools
- 44.1 About Application Module Pooling
- 44.1.1 Types of Pools Created When Running the Fusion Web Application
- 44.1.1.1 Application Module Pools
- 44.1.1.2 Database Connection Pools
- 44.1.2 Understanding Application Module and Connection Pools
- 44.1.2.1 Single Oracle Application Server Instance, Single Oracle WebLogic Server Instance, Single JVM
- 44.1.2.2 Multiple Oracle Application Server Instances, Single Oracle WebLogic Server Instance, Multiple JVMs
- 44.1.1 Types of Pools Created When Running the Fusion Web Application
- 44.2 Setting Pool Configuration Parameters
- 44.2.1 How to Set Configuration Properties Declaratively
- 44.2.2 What Happens When You Set Configuration Properties Declaratively
- 44.2.3 How to Set Configuration Properties as System Parameters
- 44.2.4 How to Programmatically Set Configuration Properties
- 44.2.5 What You May Need to Know About Configuration Property Scopes
- 44.2.6 What You May Need to Know About How Database and Application Module Pools Cooperate
- 44.2.7 What You May Need to Know About Application Module Pool Parameters
- 44.2.7.1 Pool Behavior Parameters
- 44.2.7.2 Pool Sizing Parameters
- 44.2.7.3 Pool Cleanup Parameters
- 44.2.8 What You May Need to Know About Data Source Configuration
- 44.2.9 What You May Need to Know About Database Connection Pool Parameters
- 44.3 Initializing Database State and Pooling Considerations
- 44.3.1 How to Set Database State Per User
- 44.3.2 What You May Need to Know About Database User State and jbo.doconnectionpooling = true
- 44.1 About Application Module Pooling
- 45 Using the Active Data Service
- 45.1 About the Active Data Service
- 45.1.1 Active Data Service Use Cases and Examples
- 45.1.2 Limitations of the Active Data Service Framework
- 45.1.3 Active Data Service Framework
- 45.1.4 Data Transport Modes
- 45.2 Configuring the Active Data Service
- 45.2.1 How to Configure the Active Data Service
- 45.2.2 What You May Need to Know About Transport Modes
- 45.3 Configuring Components to Use the Active Data Service
- 45.3.1 How to Configure Components to Use the Active Data Service Without the Active Data Proxy
- 45.3.2 How to Configure Components to Use the Active Data Service with the Active Data Proxy
- 45.3.3 What You May Need to Know About Displaying Active Data in ADF Trees
- 45.3.4 What Happens at Runtime: How Components Render When Bound to Active Data
- 45.3.5 What You May Need to Know About ADS and Google Chrome
- 45.4 Using the Active Data Proxy
- 45.4.1 What You May Need to Know About Read Consistency
- 45.5 Using the Active Data with a Scalar Model
- 45.1 About the Active Data Service
Online LIVE Training Programming Course offered by INCAPROG ONLINE - www.incaprog.com - contacto@incaprog.com - Phone : (954) 727-3141