Go to main content
1/37
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
Conventions
Who's Who
Knowledge Worker
Application Specialist
Web Developer
Developer
System Administrator
Part I Getting Started
1
Introduction to Developing for Oracle WebCenter Portal
1.1
What Is the Purpose of This Guide?
1.2
What Is My Role as a WebCenter Portal Developer?
2
Setting Up a Development Environment
2.1
Introduction to Setting up a Development Environment
2.2
Basic Setup Tasks
2.2.1
Installing Oracle JDeveloper
2.2.2
Installing the WebCenter Portal Extensions for JDeveloper
2.2.3
Setting the User Home Directory Environment Variable
2.2.4
Managing the Integrated WebLogic Server
2.2.4.1
What is the Integrated WebLogic Server?
2.2.4.2
Starting and Stopping Integrated WebLogic Server
2.2.4.3
Configuring the JVM for the Integrated WebLogic Server
2.2.5
Creating Application Resource Connections
2.2.5.1
Where Are Connections Located?
2.2.5.2
How Do I Access the Connection Wizards?
2.3
Setup Tasks Specific to WebCenter Portlet Producer Applications
2.3.1
Deploying the Preconfigured Portlet Producers
2.3.2
Accessing OmniPortlet
2.3.3
WSRP Sample Portlet Producers and Portlets
2.3.4
PDK-Java Sample Portlet Producer and Portlets
Part II Working with WebCenter Portal Assets
3
Introduction to WebCenter Portal Assets
3.1
About Working with WebCenter Portal Assets
3.2
Developing Assets for WebCenter Portal
3.2.1
Setting Up Your JDeveloper Environment for Asset Development
4
Working with the Portal Asset Application Template
4.1
About the WebCenter Portal Asset Application Template
4.2
Creating a WebCenter Portal Asset Application
4.2.1
How to Create a WebCenter Portal Asset Application
4.2.2
What You May Need to Know About Asset Application Artifacts
4.3
Creating and Editing WebCenter Portal Assets
4.4
Publishing WebCenter Portal Assets
4.4.1
Creating a WebCenter Portal Server Connection
4.4.2
Publishing a WebCenter Portal Asset
4.5
Testing WebCenter Portal Assets
5
Developing Layouts
5.1
About Developing Layouts
5.2
Creating a Layout
5.2.1
How to Create a Layout
5.2.2
What You May Need to Know About Layout Artifacts
5.3
Editing a Layout
5.4
Publishing a Layout
6
Developing Page Styles
6.1
About Developing Page Styles
6.2
Best Practices for Creating Page Styles
6.3
Creating a Page Style
6.3.1
How to Create a Page Style
6.3.2
What You May Need to Know About Page Style Artifacts
6.4
Editing a Page Style
6.5
Publishing a Page Style
7
Developing Page Templates
7.1
Introduction to Developing Page Templates
7.1.1
Understanding Page Templates
7.1.2
Understanding Page Template Structure
7.1.3
Understanding Page Template Layout
7.1.4
Understanding Page Template Layout Components
7.2
Best Practices for Developing Page Templates
7.2.1
Best Practices for Creating Stretching Layouts
7.2.2
Best Practices for Creating Flowing Layouts
7.2.3
Best Practices for Developing Page Templates That Can Be Edited at Runtime
7.2.4
Best Practices for Customizing the Appearance of Components
7.2.5
Best Practices for Defining Scrolling in a Page Template
7.2.6
Best Practices for Defining Margins, Borders, and Padding
7.3
Creating a Page Template
7.3.1
About Creating Page Templates
7.3.2
How to Create a Page Template
7.3.3
What You May Need to Know About Page Template Artifacts
7.4
Editing a Page Template
7.5
Adding a Floating Toolbar to a Page Template
7.6
Publishing a Page Template
7.7
Page Template Tutorials and Examples
8
Developing Skins
8.1
Introduction to Developing Skins
8.1.1
About Skins
8.1.2
About Runtime Management of Skins
8.2
Best Practices for Developing Skins
8.3
Creating a Skin
8.3.1
How to Create a Skin
8.3.2
What You May Need to Know About Skin Artifacts
8.4
Editing a Skin
8.5
Publishing a Skin
8.6
Conditionally Changing Skins for Users
9
Developing Visualization Templates
9.1
About Visualization Templates
9.2
Creating a Visualization Template
9.2.1
How to Create a Visualization Template
9.2.2
What You May Need to Know About Visualization Template Artifacts
9.3
Editing a Visualization Template
9.3.1
Placeholder EL Binding in Visualization Templates
9.4
Publishing a Visualization Template
9.5
What Happens at Runtime
10
Developing Content Presenter Display Templates
10.1
Introduction to Developing Content Presenter Display Templates
10.2
Creating a Content Presenter Display Template
10.2.1
How to Create a Content Presenter Display Template
10.2.2
What You May Need to Know About Content Presenter Display Templates
10.3
Editing a Content Presenter Display Template
10.3.1
How to Define a Single-Item Display Template
10.3.2
Content Display Template Tags for Single Content Items
10.3.3
How to Define a Multiple-Item Display Template
10.3.4
Content Display Template Tags for Multiple Content Items
10.3.5
How to Use Responsive Templates
10.3.5.1
About Responsive Templates
10.3.5.2
Prerequisites for Responsive Templates
10.3.5.3
Displaying Multiple Articles
10.3.5.4
Using CSS3 Media Queries
10.3.6
How to Extend Responsive Templates
10.3.6.1
How to Extend the Articles View Template
10.3.6.2
How to Extend the Full Article View Template
10.3.6.3
How to Adapt the Out-of-the-Box Templates
10.3.6.3.1
How to Support Responsive Layouts for Older Browsers
10.3.6.3.2
How to Use Different Region Definitions
10.3.6.3.3
How to Update the Layout in a Template
10.3.7
How to Use Image Renditions in Content Presenter Display Templates
10.3.7.1
About Image Renditions
10.3.7.2
Prerequisites for Image Renditions
10.3.7.3
Retrieving Image Rendition Information for Image Documents
10.3.7.4
Retrieving Image Renditions for Site Studio Region Definitions
10.3.8
How to Use EL Expressions to Retrieve Content Item Information
10.3.8.1
How to Retrieve Basic Information About a Content Item
10.3.8.2
How to Work with Content Item Properties and Values
10.3.8.3
How to Work with Content Item Icons and URLs
10.3.8.4
How to Work with Image Renditions
10.3.8.5
How to Work with Group Portal Information
10.3.9
How to Discover Content Type Property Names
10.3.10
How to Reference External Files in Display Templates
10.3.11
How to Reference Site Studio Region Elements in a Custom View
10.4
Publishing a Content Presenter Display Template
10.5
Optimizing Performance for Content Presenter Display Templates
10.6
Using Content Presenter (Tips, Tutorials, and Examples)
Part III Working with Portlets
11
Introduction to Portlets
11.1
About Portlets
11.2
About Portlet Anatomy
11.3
About Portlet Resources
11.3.1
About Prebuilt Portlets
11.3.2
About Java Server Faces (JSF) Portlets
11.3.3
About Custom Java Portlets
11.3.4
About OmniPortlet
11.3.5
Portlet Technologies
11.3.6
Portlets Versus Task Flows
11.4
About Portlet Development
11.4.1
Portlet Producer Applications
11.4.1.1
About Portlet Producer Applications
11.4.1.2
How to Create a Portlet Producer Application
11.4.2
Portlet Modes
11.4.2.1
About Portlet Modes
11.4.2.2
View Mode
11.4.2.2.1
HTML Guidelines for Rendering Portlets
11.4.2.2.2
CSS Guidelines for Rendering Portlets
11.4.2.3
Edit Mode
11.4.2.3.1
Guidelines for Edit Mode Operations
11.4.2.3.2
Guidelines for Buttons in Edit Mode
11.4.2.4
Edit Defaults Mode
11.4.2.4.1
Guidelines for Edit Defaults Mode Operation
11.4.2.4.2
Guidelines for Buttons in Edit Defaults Mode
11.4.2.4.3
Guidelines for Rendering Customization Values
11.4.2.5
Help Mode
11.4.2.5.1
Guidelines for Help Mode
11.4.2.6
About Mode
11.4.2.6.1
Guidelines for About Mode
11.4.3
Interportlet Communication
11.4.4
Portlet Personalization and Customization
11.4.5
Portlet Performance
11.4.6
Multilanguage Portlets
11.4.7
Portlet Deployment
12
Creating Portlets from JSF Applications Using the Oracle JSF Portlet Bridge
12.1
About Creating Portlets from JSF Applications Using the Oracle JSF Portlet Bridge
12.2
Creating a Portlet from a JSF Application
12.2.1
How to Create a JSF Portlet Based on a Page
12.2.2
How to Create a JSF Portlet Based on a Task Flow
12.2.2.1
About Creating Portlets from Tasks Flows
12.2.2.2
Creating a Portlet From a Task Flow Using the Create Portlet Entry Dialog
12.2.2.3
Creating a Portlet From a Task Flow Using the Manage Portlet Entries of Task Flows Dialog
12.2.3
What You May Need to Know When Creating a JSF Portlet
12.2.3.1
General Guidelines for Creating a JSF Portlet
12.2.3.2
Portlet Guidelines
12.2.3.3
Security Guidelines
12.2.3.4
JSF Guidelines
12.2.3.5
Oracle ADF Guidelines
12.3
Updating the Portlet Entry for a Portletized Page or Task Flow
12.4
Testing a Portletized Page or Task Flow in JDeveloper
12.5
Testing a JSF Portlet Using the Integrated WebLogic Server
12.6
Deploying JSF Portlets to a WebLogic Managed Server
12.7
Using Events to Link JSF Portlets with Other Portlets
12.7.1
About Linking JSF Portlets with Other Portlets
12.7.2
How to Link a JSF Portlet to Another JSF Portlet
12.7.3
How to Link a JSF Portlet to a JSR 286 Portlet
12.7.4
How to Link a JSR 286 Portlet to a JSF Portlet
12.7.5
What You May Need to Know About Portlet Events in the Oracle JSF Portlet Bridge
12.7.5.1
What You May Need to Know About Using a Serialized Type for the Contextual Event Payload
12.7.5.2
What You May Need to Know About Raising Undeclared Events
12.7.5.3
What You May Need to Know About Partial Page Rendering
13
Building Standards-Based Java Portlets Using JSR 286
13.1
About Building Standards-Based Java Portlets Using JSR 286
13.2
Creating a JSR 286 Java Portlet
13.3
Developing JSR 286 Java Portlets
13.3.1
Example Portlet Deployment Descriptor File
13.3.2
How to Edit the Portlet Deployment Descriptor File
13.3.3
Portlet Modes for JSR 286 Portlets
13.3.4
How to Add Custom Portlet Modes to JSR 286 Portlets
13.3.5
How to Access User Information in JSR 286 Portlets
13.3.6
How to Customize the Runtime Environment for JSR 286 Portlets
13.3.6.1
Supported Container Runtime Options
13.3.6.1.1
javax.portlet.actionScopedRequestAttributes
13.3.6.1.2
javax.portlet.escapeXml
13.3.6.1.3
javax.portlet.servletDefaultSessionScope
13.3.6.1.4
com.oracle.portlet.allowEventPayloadsWithoutJAXBBinding
13.3.6.1.5
com.oracle.portlet.allowWsrpExport
13.3.6.1.6
com.oracle.portlet.compatibilityMode
13.3.6.1.7
com.oracle.portlet.defaultProxiedResourceRequiresWsrpRewrite
13.3.6.1.8
com.oracle.portlet.defaultServedResourceRequiresWsrpRewrite
13.3.6.1.9
com.oracle.portlet.disallowResourceServing
13.3.6.1.10
com.oracle.portlet.escapeXmlEncodeUrls
13.3.6.1.11
com.oracle.portlet.eventPayloadsXmlType
13.3.6.1.12
com.oracle.portlet.excludedActionScopeRequestAttributes
13.3.6.1.13
com.oracle.portlet.externalScopeRequestAttributes
13.3.6.1.14
com.oracle.portlet.importCssToIFrame
13.3.6.1.15
com.oracle.portlet.minimumWsrpVersion
13.3.6.1.16
com.oracle.portlet.offerPortletOverWsrp
13.3.6.1.17
com.oracle.portlet.portalInfoProvider
13.3.6.1.18
com.oracle.portlet.redirectAfterAction
13.3.6.1.19
com.oracle.portlet.requireIFrame
13.3.6.1.20
com.oracle.portlet.streamingOptimized
13.3.6.1.21
com.oracle.portlet.suppressWsrpOptimisticRender
13.3.6.1.22
com.oracle.portlet.trapWsrpRenderExceptions
13.3.6.1.23
com.oracle.portlet.trimEncodeUrls
13.3.6.1.24
com.oracle.portlet.useWsrpUserContextForUserAuthentication
13.3.6.1.25
com.oracle.portlet.wsrpHeaderMode
13.3.6.1.26
com.oracle.portlet.wsrpLegacyPortletHandle
13.3.6.1.27
com.oracle.portlet.wsrpPortletHandle
13.3.6.1.28
oracle.portlet.bridge.adf.raiseUndeclaredContextualEvents
13.3.6.2
Setting Container Runtime Options for All Portlets in an Application
13.3.6.3
Setting Container Runtime Options for Individual Portlets
13.3.7
How to Use Public Render Parameters in JSR 286 Portlets
13.3.7.1
About Public Render Parameters
13.3.7.2
Declaring a Public Render Parameter at the Application Level
13.3.7.3
Defining a Public Render Parameter for a Portlet
13.3.7.4
Using Public Render Parameters: An Example
13.3.8
How to Use Portlet Events in JSR 286 Portlets
13.3.8.1
About Portlet Events
13.3.8.2
Declaring a Portlet Event at the Application Level
13.3.8.3
Defining a Processing Event for a Portlet
13.3.8.4
Defining a Publishing Event for a Portlet
13.3.8.5
Using Portlet Events: An Example
13.3.9
How to Add Portlet Preferences to JSR 286 Portlets
13.3.9.1
About Portlet Preferences
13.3.9.2
Adding a Portlet Preference to a JSR 286 Portlet
13.3.9.3
Adding Simple Portlet Personalization: An Example
13.3.10
How to Use Portlet Filters in JSR 286 Portlets
13.3.10.1
About Portlet Filters
13.3.10.2
Adding a Portlet Filter to an Application
13.3.10.3
Applying a Portlet Filter to a Portlet
13.3.11
How to Implement Interportlet Communication Across Different Pages
13.3.12
How to Enhance JSR 286 Portlet Performance with Caching
13.3.12.1
About Portlet Caching
13.3.12.2
Implementing Expiry-Based Caching in JSR 286 Portlets
13.3.12.3
Implementing Validation-Based Caching in JSR 286 Portlets
13.3.13
How to Implement Rewritten URLs for Resource Proxy
13.3.14
How to Implement Stateless Resource Proxying
13.3.15
How to Manage the Persistence Store for JSR 286 Portlets
13.3.15.1
About the Persistence Store
13.3.15.2
JNDI Variables for WSRP Producer Persistence Store
13.3.15.3
Setting Up a Persistence Store for a WSRP Producer
13.3.15.4
Migrating a WSRP Producer Persistence Store
13.3.15.4.1
Migrating a Database or File-Based Persistence Store
13.3.15.4.2
Migrating to or from a Consumer Persistence Store
13.3.15.4.3
Moving a WSRP Portlet Producer
13.4
Testing JSR 286 Portlets
13.4.1
How to Run a WSRP Portlet Producer on Integrated WebLogic Server
13.4.2
How to Deploy a WSRP Portlet Producer to the Integrated WebLogic Server
13.4.3
How to Hide or Remove the WSRP Test Page
13.4.3.1
Hiding the WSRP Test Page
13.4.3.2
Removing the WSRP Test Page
13.5
Migrating WebLogic Portal Portlets to WebCenter Portal
13.6
Files Related to JSR 286 Portlets
13.6.1
portlet.xml
13.6.2
oracle-portlet-tags.jar
13.6.3
portlet_mode.jsp
13.6.4
portlet_name.java
13.6.5
portlet_nameBundle.jar
13.6.6
web.xml
Part IV Working with Pagelets
14
Introduction to Pagelets
14.1
About Creating Pagelets with Pagelet Producer
14.1.1
Overview
14.1.2
Pagelet Producer Architecture
14.1.2.1
Pagelet Producer Architecture and Components
14.1.2.2
Pagelet Producer Key Concepts
14.1.2.3
Pagelet Producer Console
14.1.2.4
Using HTTP and Content Syndication Protocol
14.1.2.4.1
HTTP
14.1.2.4.2
Content Syndication Protocol
14.1.2.5
Pagelet Producer Proxy
14.1.3
Requirements
14.2
Configuring Pagelet Producer Settings
14.2.1
How to Configure a WCI Data Source
14.2.2
How to Configure Logging Settings
14.2.3
How to Configure Proxy Settings
14.2.4
How to Configure Transform Settings
14.2.5
How to Configure CSP Settings
14.2.6
How to Configure Kerberos Settings
14.2.7
How to Configure OpenSocial Settings
15
Creating Pagelet Producer Objects
15.1
Creating Resources
15.1.1
How to Configure Web and CSP Resources
15.1.1.1
How to Configure General Settings
15.1.1.2
How to Configure CSP settings
15.1.1.3
How to Configure Policy Settings
15.1.1.4
How to Configure Autologin
15.1.1.4.1
How to Configure Autologin: Form Login
15.1.1.4.2
How to Configure Autologin: Basic Login and NTLM Login
15.1.1.4.3
How to Configure Autologin: Kerberos Login
15.1.1.4.4
How to Configure Autologin: Authentication Sources
15.1.1.5
How to Configure Headers
15.1.2
How to Configure WSRP and Oracle PDK-Java Resources
15.1.2.1
How to Configure General Settings
15.1.2.2
How to Configure Policy Settings
15.1.3
How to Configure OpenSocial Resources (OpenSocial Gadget Producers)
15.1.3.1
How to Configure General Settings
15.1.3.2
How to Configure Policy Settings
15.2
Creating Pagelets
15.2.1
How to Configure General Settings
15.2.2
How to Configure Preferences
15.2.3
How to Configure Parameters
15.2.4
How to Configure the Clipper
15.2.5
How to Access the Pagelet and Preference Editor
15.3
Creating Web Injectors
15.3.1
How to Configure General Settings
15.3.2
How to Inject Content
15.4
Creating Custom Parsers
15.5
Creating Hosted Files
16
Working with Pagelets and Gadgets
16.1
Working with OpenSocial Gadgets
16.1.1
How to Configure Authentication
16.1.2
How to Store User Preferences
16.1.3
How to Access WebCenter Portal Profile Information
16.1.4
How to Access a User's Activity Stream
16.1.5
How to Use Gadget Eventing
16.1.6
Example: How to Consume an External OpenSocial Gadget
16.1.7
Example: How to Consume a Local OpenSocial Gadget
16.2
Working with Pagelet Chrome for WSRP and Oracle PDK-Java Portlets
17
Creating Custom Pagelets
17.1
Using the Adaptive Pagelet Scripting Framework
17.1.1
How to Handle Structured HTTP Responses
17.1.2
How to Use Event Notification
17.1.2.1
How to Use Page-Level Events with the Scripting Framework
17.1.3
How to Use In-Place Refresh
17.1.4
How to Use Session Preferences
17.1.5
What You May Need to Know About Adaptive Pagelet Development
17.2
Modifying Pagelet Functionality at Runtime
17.2.1
How to Use Web Injectors
17.2.2
How to Use Custom Parsers
17.3
Debugging Pagelets
17.3.1
How to View HTTP Requests and Responses
17.3.2
How to View Transformation Content
18
Using Pagelets in Web Applications
18.1
Adding a Pagelet to a Web Page
18.1.1
How to Insert Pagelets Using Javascript
18.1.1.1
How to Add a Preference Editor Using Javascript
18.1.2
How to Access Pagelets Using REST
18.1.2.1
What You May Need to Know About the Pagelet Inject API
18.1.2.2
What You May Need to Know About Data Retrieval APIs
18.1.3
How to Use Automatic Resizing with IFrames
18.2
Adding a Pagelet to a Portal Page
19
Creating Pagelets: Examples and Advanced Topics
19.1
Creating a Simple Pagelet (an Example)
19.1.1
Configuring the Initial Pagelet Producer Setup
19.1.2
Creating a Resource
19.1.3
Creating a Pagelet
19.1.4
Clipping the Pagelet
19.2
Consuming a Pagelet in WebCenter Portal (an Example)
19.2.1
Registering the Pagelet Producer with WebCenter Portal
19.2.2
Inserting the Pagelet into a Portal
19.3
Consuming a Pagelet in WebCenter Interaction (an Example)
19.3.1
Registering the Pagelet Producer Remote Server
19.3.2
Creating the "Hello World" Web Service
19.3.3
Creating the "Hello World" Portlet
19.3.4
Using the Hello World Portlet on the WCI Home Page
19.4
Consuming a Pagelet in Oracle WebCenter Sites (an Example)
19.4.1
Adding Pagelets to Oracle WebCenter Sites
19.4.1.1
Enabling IFrame Auto-Resizing
19.4.1.2
Changing Pagelet Styling
19.4.2
Using Identity Propagation
19.4.2.1
Establishing Identity in Pagelet Producer
19.4.2.2
Using a Login Page Supplied by Pagelet Producer
19.4.3
Propagating Identity from Pagelet Producer to the Backend Application
19.4.3.1
WSRP/JPDK Portlets
19.4.3.2
Stand-alone Backend Application Protected with Native Authentication (Non-SSO)
19.4.3.3
Identity Propagation with Autologin
19.4.3.4
Stand-alone Backend Application Protected with SSO
19.4.3.4.1
Using Direct Identity Propagation to OAM Protected Backend Application
19.4.3.4.2
Using Identity Propagation with Autologin and SSO
19.4.3.5
Reference: Common Autologin Configurations
19.4.3.5.1
Autologin Settings for Oracle Access Manager (OAM)
19.4.3.5.2
Autologin Settings for Oracle SSO (OSSO)
19.5
Consuming WSRP Portlets as Pagelets
19.6
Exposing Custom ADF Task Flows as WSRP Portlets
19.6.1
Exposing WSRP Portlets Developed for Oracle WebLogic Portal
19.6.2
Exposing WLP Portlets Using WLP as WSRP Producer
19.6.3
Configuring WS-Security between a WLP WSRP Producer and WebCenter Consumer
19.6.4
Registering the WLP WSRP Producer in Pagelet Producer
19.6.5
Adding WLP WSRP Portlets to Sites
19.7
Consuming WebCenter Portal Services as Pagelets in Sites
19.7.1
Requirements
19.7.2
Configuring Security and Single Sign-On
19.7.2.1
Creating a Common User Base: LDAP Integration
19.7.2.2
Establishing User Identity Propagation: OAM Configuration
19.7.2.3
Configuring the GUID Attribute in the Identity Store
19.7.2.4
Configuring SSO for Discussions Server
19.7.3
Importing WebCenter Services Exposed as WSRP Portlets
19.7.3.1
Adding Pagelets to Sites Pages
19.8
Consuming Applications as Pagelets Using EBS11i
19.8.1
Creating a Resource for Basic URL Mapping (Proxy)
19.8.2
Configuring Autologin
19.8.3
Creating a Pagelet
19.8.4
Making Corrective Configurations
19.8.4.1
Creating a Pluggable Parser for Popup URL Rewriting
19.8.4.2
Creating an Injector to Disable Frame-busting
19.8.4.3
Creating an Injector to Auto-Resize the iFrame
19.8.4.4
Setting Up Clipping by JavaScript Injection
19.8.4.5
Creating an Injector for Pagelet Restyling
19.8.4.6
Testing the Pagelets
19.8.4.7
Final Result
19.8.4.8
Troubleshooting
19.9
Consuming OpenSocial Gadgets Using Pagelet Producer
19.10
Guidelines for Effective Geometry Management and Pagination
19.10.1
Using an Injector with JavaScript
19.10.2
Using an Injector with SSL
19.11
Advanced URL Rewriting
19.11.1
Using Auto-Login
19.11.2
Using a Custom Parser
Part V Additional WebCenter Portal Customizations
20
Developing Shared Libraries
20.1
Developing Shared Libraries for Use in WebCenter Portal
20.2
Packaging and Deploying ADF Components for Use in WebCenter Portal
20.2.1
Understanding the WebCenter Portal Server Extension Template
20.2.1.1
How the WebCenter Portal Server Extension Workspace Is Organized
20.2.1.2
The PortalSharedLibrary Project
20.2.1.2.1
Versioning extend.spaces.webapp.war
20.2.1.3
The PortalExtension Project
20.2.2
Understanding Shared Library Development for WebCenter Portal
20.2.2.1
General Documentation for ADF Library Development
20.2.2.2
General Documentation for Shared Library Deployment
20.2.3
Creating a WebCenter Portal Server Extension Workspace
20.2.4
Using Additional Shared Libraries with WebCenter Portal
20.2.5
Deploying Extensions to the WebCenter Portal Shared Library (extend.spaces.webapp.war)
20.2.5.1
Deploying Extensions Directly to the Portal Server
20.2.5.2
Deploying Extensions to an Archive
20.2.5.3
Reverting to a Previous WebCenter Portal Shared Library Version
20.2.6
Developing ADF Library Components for WebCenter Portal Using the PortalExtension Project
21
Localizing Portals
21.1
Guidelines for Building Multilanguage Portals
21.2
Language Support in ADF Faces Components
21.3
Using Resource Bundles to Support Multiple Languages
21.4
Adding Support for a New Language
22
Extending Oracle Composer
22.1
Adding Custom Actions to Components
22.1.1
Adding a Java-Based Custom Action to a Show Detail Frame Component in Design View
22.1.2
Adding a Java-Based Direct Select Custom Action to a Component in Select View
22.1.3
Adding Custom Actions to a Show Detail Frame Component by Using Facets
22.1.3.1
Example: Adding a Custom Action to a Show Detail Frame Component by Using Facets
22.1.3.1.1
How to Create an ADF Task Flow
22.1.3.1.2
How to Include an Additional Actions Facet
22.1.3.1.3
How to Create a Redirection Page
22.1.3.1.4
How to Create Navigation Rules Between Pages
22.1.3.1.5
What Happens at Runtime
22.1.4
Adding Custom Actions to a Task Flow
22.1.4.1
Adding a Custom Action Directly on a Task Flow
22.1.4.2
Adding a Custom Action on a Show Detail Frame Enclosing a Task Flow
22.1.4.2.1
Defining Custom Actions at the Instance Level
22.1.4.2.2
Defining Custom Actions at the Global Level
22.1.4.2.3
Configuring Custom Actions that Display Task Flow Views in a Separate Browser Window
22.1.4.3
What Happens at Runtime
22.1.4.4
Example: Adding a Custom Action to a Show Detail Frame Enclosing a Task Flow
22.1.5
Adding Custom Actions that Display on Task Flows in the Component Navigator
22.1.5.1
How to Configure Custom Actions in the Component Navigator
22.1.5.1.1
Defining the Logic for the Custom Action
22.1.5.1.2
Creating a JSF Page Containing the Custom Action
22.1.5.1.3
Calling the JSF Page from the Application Page Containing the Task Flow
22.1.5.2
What Happens at Runtime
23
Customizing WebCenter Portal Impersonation Security
23.1
About Customizing WebCenter Portal Impersonation
23.2
Using the WebCenter Portal Impersonation ELs
23.3
Using the WebCenter Portal Impersonation APIs
Appendixes
A
Expression Language Expressions
A.1
Introduction to Expression Language (EL) Expressions
A.1.1
Introducing the Expression Builder
A.1.2
Introducing the Expression Editor in WebCenter Portal
A.2
ELs Related to WebCenter Portal Information
A.3
ELs Related to Specific Pages
A.4
ELs Related to Specific Portals
A.4.1
Example: Using EL Expressions for Various Portals
A.5
ELs Related to Portal Event Contexts
A.6
ELs Related to Assets
A.6.1
Example: Using EL Expressions for Assets
A.7
ELs Related to Security
A.8
ELs Related to General Settings
A.9
ELs Related to Portal Resources
A.10
ELs Related to Navigation
A.11
ELs Related to Tools and Services
A.12
ELs Related to Documents
A.13
ELs Related to People Connections
A.14
ELs Related to Impersonation
A.15
EL Expressions Related to the Page Editor
A.15.1
Example: Using EL Expressions for the Page Editor
A.16
EL Expressions Related to Device Settings
A.16.1
Sample Task Flow Code for Discovering Device Attributes
A.17
Utilitarian EL Expressions
A.18
Built-In Expressions in the Expression Editor
A.18.1
Application Info Built-In ELs
A.18.2
Asset Info Built-In ELs
A.18.3
Page Info Built-In ELs
A.18.4
Page Parameter Built-In ELs
A.18.5
Portal Info Built-In ELs
A.18.6
Portal Page Info Built-In Paths
A.18.7
System Built-In ELs
A.18.8
User Info Built-In ELs
A.18.9
WebCenter Events Built-In ELs
A.19
Desupport of Freeform JPQL WHERE and SORT Clauses in Portal Queries
B
WebCenter Portal Accessibility Features
B.1
Generating Accessible HTML
B.2
Accessibility Features at Runtime
B.3
Accessibility Considerations for Portlets
C
Using the WebCenter Portal REST APIs
C.1
Introduction to REST
C.2
Understanding the Username-Based Security Token Encryption
C.3
Benefits of Using REST
C.4
Introduction to the WebCenter Portal REST APIs
C.5
Understanding the Link Model
C.5.1
Using the Resource Index
C.5.2
Anatomy of a Link
C.5.2.1
Resource Type
C.5.2.2
Relationship
C.5.2.3
Capabilities
C.5.2.4
Media Type
C.5.2.5
Templates
C.5.2.5.1
Common Request Query Parameters
C.6
Understanding Items Hypermedia
C.7
Navigating Hypermedia Using HTTP
C.7.1
HTTP Response Status Codes
C.8
Security Considerations for WebCenter Portal REST APIs
C.9
Security Considerations for CMIS REST APIs
C.10
Understanding Common Types
C.10.1
Common Types
C.10.1.1
personReference
C.10.1.2
groupSpaceReference
C.10.2
Portable Contact Types
C.10.2.1
name Portable Contact Type
C.10.2.2
address Portable Contact Type
C.10.2.3
organization Portable Contact Type
C.10.2.4
value Portable Contact Type
C.11
Managing Caches
C.12
Configuring a Proxy Server
C.13
WebCenter Portal REST API Examples
C.13.1
Navigating the Message Board Hypermedia
C.13.1.1
Accessing the Resource Index
C.13.1.2
Reading Messages
C.13.1.3
Creating a New Message
C.13.1.4
Updating a Message
C.13.1.5
Deleting a Message
C.13.1.6
Filtering Messages
C.13.1.6.1
Public vs Private Messages
C.13.1.6.2
Hidden vs Non-hidden Messages
C.13.2
Displaying Activity Stream Data
C.13.3
Updating User Status
C.14
Using the People Connections REST APIs
C.14.1
Activity Stream REST API
C.14.1.1
Activity Stream Entry Point
C.14.1.2
Activity Stream Resource Type Taxonomy
C.14.1.3
Activity Stream Security Considerations
C.14.1.4
Activity Stream Resource Types
C.14.1.4.1
urn:oracle:webcenter:activities:stream
C.14.1.4.2
Navigation Paths to stream
C.14.1.4.3
Supported Methods for stream
C.14.1.4.4
Resource Types Linked to From stream
C.14.1.4.5
urn:oracle:webcenter:activities:activity
C.14.1.4.6
Navigation Paths to activity
C.14.1.4.7
Supported Methods for activity
C.14.1.4.8
Resource Types Linked to from activity
C.14.1.4.9
Read-only Elements for activity
C.14.1.4.10
Understanding the templateParams Element
C.14.1.4.11
Understanding Comments and Likes
C.14.1.4.12
urn:oracle:webcenter:activities:parameter
C.14.1.4.13
urn:oracle:webcenter:activities:activity:icon
C.14.1.4.14
Navigation Paths to activities:activity:icon
C.14.1.4.15
Supported Methods for icon
C.14.1.4.16
Resource Types Linked to from icon
C.14.2
Connections and Profile REST API
C.14.2.1
Connections and Profile Entry Point
C.14.2.2
Connections and Profile Resource Type Taxonomy
C.14.2.3
Connections and Profile Security Considerations
C.14.2.4
Connections and Profile Resource Types
C.14.2.4.1
urn:oracle:webcenter:people
C.14.2.4.2
Navigation Paths to people
C.14.2.4.3
Supported Methods for people
C.14.2.4.4
Predefined Sets for the links Parameter
C.14.2.4.5
Resource Types Linked to from people
C.14.2.4.6
urn:oracle:webcenter:people:icon
C.14.2.4.7
Supported Methods for icon
C.14.2.4.8
Resource Types Linked to from icon
C.14.2.4.9
urn:oracle:webcenter:people:person
C.14.2.4.10
Navigation Paths to person
C.14.2.4.11
Supported Methods for person
C.14.2.4.12
Read-only Elements for person
C.14.2.4.13
Resource Types Linked to from person
C.14.2.4.14
urn:oracle:webcenter:people:person:list
C.14.2.4.15
Navigation Paths to list
C.14.2.4.16
Supported Methods for list
C.14.2.4.17
Resource Types Linked to from list
C.14.2.4.18
urn:oracle:webcenter:people:person:listNames
C.14.2.4.19
Navigation Paths to listNames
C.14.2.4.20
Supported Methods for listNames
C.14.2.4.21
Resource Types Linked to from listNames
C.14.2.4.22
urn:oracle:webcenter:people:person:listName
C.14.2.4.23
Navigation Paths to listName
C.14.2.4.24
Supported Methods for listName
C.14.2.4.25
Writable Elements for listName
C.14.2.4.26
Resource Types Linked to from listName
C.14.2.4.27
urn:oracle:webcenter:people:person:list:member
C.14.2.4.28
Navigation Paths to member
C.14.2.4.29
Supported Methods for member
C.14.2.4.30
Writable Elements for member
C.14.2.4.31
urn:oracle:webcenter:people:person:status
C.14.2.4.32
Navigation Paths to status
C.14.2.4.33
Supported Methods for status
C.14.2.4.34
Writable Elements for status
C.14.2.4.35
Resource Types Linked to from status
C.14.2.4.36
urn:oracle:webcenter:people:invitations
C.14.2.4.37
Navigation Paths to invitations
C.14.2.4.38
Supported Methods for invitations
C.14.2.4.39
Writable Elements for invitations
C.14.2.4.40
Resource Types Linked to from invitations
C.14.2.4.41
urn:oracle:webcenter:people:invitation
C.14.2.4.42
Navigation Paths to invitation
C.14.2.4.43
Supported Methods for invitation
C.14.2.4.44
Writable Elements for invitation
C.14.2.4.45
Read-only Elements for invitation
C.14.2.4.46
Resource Types Linked to from invitation
C.14.3
Feedback REST API
C.14.3.1
Feedback Entry Point
C.14.3.2
Feedback Resource Type Taxonomy
C.14.3.3
Feedback Security Considerations
C.14.3.4
Feedback Resource Types
C.14.3.4.1
urn:oracle:webcenter:feedback
C.14.3.4.2
Navigation Paths to feedback
C.14.3.4.3
Supported Methods for feedback
C.14.3.4.4
Resource Types Linked to from feedback
C.14.3.4.5
urn:oracle:webcenter:feedback:message
C.14.3.4.6
Navigation Paths to message
C.14.3.4.7
Supported Methods from message
C.14.3.4.8
Read-only Elements for message
C.14.3.4.9
Resource Types Linked to from feedback
C.14.4
Message Board REST API
C.14.4.1
Message Board Entry Point
C.14.4.2
Message Board Resource Type Taxonomy
C.14.4.3
Message Board Security Considerations
C.14.4.4
Message Board Resource Types
C.14.4.4.1
urn:oracle:webcenter:messageBoard
C.14.4.4.2
Navigation Paths to messageBoard
C.14.4.4.3
Supported Methods for messageBoard
C.14.4.4.4
Read-only Elements for messageBoard
C.14.4.4.5
Resource Types Linked to from messageBoard
C.14.4.4.6
urn:oracle:webcenter:messageBoard:message
C.14.4.4.7
Navigation Paths to message
C.14.4.4.8
Supported Methods for message
C.14.4.4.9
Writable Elements for message
C.14.4.4.10
Read-only Elements for message
C.14.4.4.11
Resource Types Linked to from message
C.14.4.5
Filtering Messages Based on Visibility
C.14.4.5.1
Private Messages:
C.14.4.5.2
Hidden Messages:
C.14.4.5.3
REST URLs for Message Boards:
C.14.5
Creating an Invitation
C.14.5.1
Creating an Invitation
C.14.5.2
Accepting an Invitation
C.14.5.3
Deleting an Invitation
C.15
Content Management REST API
C.15.1
CMIS Domain Model
C.15.1.1
Data Model
C.15.1.1.1
Repository
C.15.1.1.2
Object
C.15.1.1.3
Object-Type
C.15.1.1.4
Document Object
C.15.1.1.5
Folder Object
C.15.1.1.6
Relationship Object
C.15.1.1.7
Policy Object
C.15.1.1.8
Access Control
C.15.1.1.9
Versioning
C.15.1.1.10
Query
C.15.1.2
Services
C.15.2
CMIS Part II: RESTful AtomPub Binding
C.15.2.1
Service Document
C.15.2.2
Response Formats
C.15.2.3
Additional Functionality
C.15.2.3.1
Folder Children Collection
C.15.2.3.2
Document Entry
C.15.2.3.3
Content Stream
C.15.3
Best Practices and Examples
C.15.3.1
Best Practices
C.15.3.2
Examples
C.16
Using the Events REST API
C.16.1
Events Entry Point
C.16.2
Events Resource Type Taxonomy
C.16.3
Security Considerations
C.16.4
Events Resource Types
C.16.4.1
urn:oracle:webcenter:events:gsEvents
C.16.4.1.1
Navigation Paths to gsEvents
C.16.4.1.2
Supported Methods for gsEvents
C.16.4.1.3
Resource Types Linked to From gsEvents
C.16.4.2
urn:oracle:webcenter:events:gsEvent
C.16.4.2.1
Navigation Paths to gsEvent
C.16.4.2.2
Supported Methods for gsEvent
C.16.4.2.3
Writable Elements for gsEvent
C.16.4.2.4
Read-only Elements for gsEvent
C.16.4.2.5
Resource Types Linked to from gsEvent
C.16.4.3
urn:oracle:webcenter:events:gsCategories
C.16.4.3.1
Navigation Paths to gsCategories
C.16.4.3.2
Supported Methods for gsCategories
C.16.4.3.3
Resource Types Linked to From gsCategories
C.17
Using the Tags REST APIs
C.17.1
Tags Entry Point
C.17.2
Tags Resource Type Taxonomy
C.17.3
Security Considerations
C.17.4
Tags Resource Types
C.17.4.1
urn:oracle:webcenter:tagging:tags
C.17.4.1.1
Navigation Paths to tags
C.17.4.1.2
Supported Methods for tags
C.17.4.1.3
Resource Types Linked to From tags
C.17.4.2
urn:oracle:webcenter:tagging:tag
C.17.4.2.1
Navigation Paths to tag
C.17.4.2.2
Supported Methods for tag
C.17.4.2.3
Resource Types Linked to From tag
C.17.4.3
urn:oracle:webcenter:tagging:taggedItems
C.17.4.3.1
Navigation Paths to taggedItems
C.17.4.3.2
Supported Methods for taggedtems
C.17.4.3.3
Resource Types Linked to From taggedItems
C.17.4.4
urn:oracle:webcenter:tagging:taggedItem
C.17.4.4.1
Supported Methods for taggedItem
C.17.4.4.2
Resource Types Linked to From taggedItem
C.17.4.5
urn:oracle:webcenter:tagging:users
C.17.4.5.1
Navigation Paths to users
C.17.4.5.2
Supported Methods for users
C.17.4.5.3
Resource Types Linked to From users
C.18
Using the Discussions REST API
C.18.1
Discussions Entry Point
C.18.2
Discussions Resource Type Taxonomy
C.18.3
Security Considerations
C.18.4
Discussions Resource Types
C.18.4.1
urn:oracle:webcenter:discussions:forums
C.18.4.1.1
Navigation Paths to forums
C.18.4.1.2
Supported Methods for forums
C.18.4.1.3
Resource Types Linked to From forums
C.18.4.2
urn:oracle:webcenter:discussions:forum
C.18.4.2.1
Navigation Paths to forum
C.18.4.2.2
Supported Methods for forum
C.18.4.2.3
Writable Elements for forum
C.18.4.2.4
Read-only Elements for forum
C.18.4.2.5
Resource Types Linked to From forum
C.18.4.3
urn:oracle:webcenter:discussions:forum:topics
C.18.4.3.1
Navigation Paths to topics
C.18.4.3.2
Supported Methods for topics
C.18.4.3.3
Resource Types Linked to From topics
C.18.4.4
urn:oracle:webcenter:discussions:forum:topic
C.18.4.4.1
Navigation Paths to topic
C.18.4.4.2
Supported Methods for topic
C.18.4.4.3
Writable Elements for topic
C.18.4.4.4
Read-only Elements for topic
C.18.4.4.5
Resource Types Linked to From topic
C.18.4.5
urn:oracle:webcenter:discussions:forum:topic:messages
C.18.4.5.1
Navigation Paths to messages
C.18.4.5.2
Supported Methods for messages
C.18.4.5.3
Resource Types Linked to From messages
C.18.4.6
urn:oracle:webcenter:discussions:forum:topic:message
C.18.4.6.1
Navigation Paths to message
C.18.4.6.2
Supported Methods for message
C.18.4.6.3
Writable Elements for message
C.18.4.6.4
Read-only Elements for message
C.18.4.6.5
Resource Types Linked to From message
C.19
Using the Lists REST API
C.19.1
Entry Point for Lists
C.19.2
Lists Resource Type Taxonomy
C.19.3
Lists Security Considerations
C.19.4
Lists Resource Types
C.19.4.1
urn:oracle:webcenter:space:lists
C.19.4.1.1
Navigation Paths to lists
C.19.4.1.2
Supported Methods for lists
C.19.4.1.3
Resource Types Linked to from lists
C.19.4.2
urn:oracle:webcenter:space:list
C.19.4.2.1
Navigation Paths to list
C.19.4.2.2
Supported Methods for list
C.19.4.2.3
Method (list): GET
C.19.4.2.4
Method (list): PUT
C.19.4.2.5
Method (list): DELETE
C.19.4.2.6
Resource Types Linked to from list
C.19.4.3
urn:oracle:webcenter:space:list:rows
C.19.4.3.1
Navigation Paths to rows
C.19.4.3.2
Supported Methods for rows
C.19.4.3.3
Resource Types Linked to from rows
C.19.4.4
urn:oracle:webcenter:space:list:row
C.19.4.4.1
Navigation Paths to row
C.19.4.4.2
Supported Methods for row
C.19.4.4.3
Method (row): GET
C.19.4.4.4
Method (row): PUT
C.19.4.4.5
Method (row): DELETE
C.19.4.4.6
Resource Types Linked to from row
C.19.4.5
urn:oracle:webcenter:space:list:columns
C.19.4.5.1
Navigation Paths to columns
C.19.4.5.2
Supported Methods for columns
C.19.4.5.3
Method (columns): GET
C.19.4.5.4
Method (columns): POST
C.19.4.5.5
Resource Types Linked to from columns
C.19.4.6
urn:oracle:webcenter:space:list:column
C.19.4.6.1
Navigation Paths to column
C.19.4.6.2
Supported Methods for column
C.19.4.6.3
Resource Types Linked to from column
C.20
Using the Activity Graph REST APIs
C.20.1
Activity Graph Entry Point
C.20.2
Activity Graph Resource Type Taxonomy
C.20.3
Security Considerations
C.20.4
Activity Graph Resource Types
C.20.4.1
urn:oracle:webcenter:activitygraph:recommendations
C.20.4.1.1
Navigation Paths to recommendations
C.20.4.1.2
Supported Methods for recommendations
C.20.4.1.3
Resource Types Linked to from recommendations
C.20.4.2
urn:oracle:webcenter:activitygraph:recommendations:recommendation
C.20.4.2.1
Navigation Paths to recommendation
C.20.4.2.2
Read-only Elements for recommendation
C.20.4.3
urn:oracle:webcenter:activitygraph:items
C.20.4.3.1
Navigation Paths to items
C.20.4.3.2
Supported Methods for items
C.20.4.3.3
Resource Types Linked to from items
C.20.4.4
urn:oracle:webcenter:activitygraph:items:item
C.20.4.4.1
Navigation Paths to item
C.20.4.4.2
Supported Methods for item
C.20.4.4.3
Writable Elements for item
C.20.4.4.4
Read-only Elements for item
C.20.4.4.5
Resource Types Linked to from item
C.21
Using the Search REST APIs
C.21.1
Search Entry Point
C.21.2
Search Resource Type Taxonomy
C.21.2.1
Navigation Paths to results
C.21.2.2
Supported Methods for results
C.21.2.3
Resource Types Linked to From results
C.21.3
Security Considerations
C.21.4
Search Resource Types
C.21.4.1
urn:oracle:webcenter:searchcollection:links
C.21.4.2
urn:oracle:webcenter:searchcollection:results
C.21.4.3
urn:oracle:webcenter:searchcollection:facets
D
Troubleshooting
D.1
Troubleshooting WebCenter Portal Shared Library Deployment
D.2
Troubleshooting Portlet Creation
D.2.1
Cannot Access the Create Portlet Wizard
D.2.2
Cannot Add the Portlet Functionality that I Want to the Portlet
D.3
Troubleshooting Pagelets
D.4
Troubleshooting OmniPortlet
Scripting on this page enhances content navigation, but does not change the content in any way.