1. Introduction to WebSphere Portal Server
|
| |
- Topics
- What is a Portal
- An Example of A WebSphere Portal Site
- General Portal Architecture
- WebSphere Portal Products
- A Typical Network Architecture for WebSphere Portal
- WebSphere Portal Server
- WebSphere Portal Server Architecture
- Page Aggregation Modules
- Portlet
- WebSphere Portal Built-in Portlets
- Portlet Application
- Portlet Mode and State
- WebSphere Portal Information
- Java Portlet Specification v1.0 (JSR-168)
- Java Portlet Specification v2.0 (JSR-286)
- Portlet Security Overview
- Portal Access Control
- Portal User Management
- Credential Vault Service
- Best Practices For Development
- Summary
- Review Questions
- Review Answers
|
| |
2. Portlet Development Using Rational Application Developer (RAD) v7.5
|
| |
- Objectives
- The RAD 7.5 Product
- Eclipse Platform
- Key Features in RAD v7.5
- Views, Perspective, and Editor Areas
- Basic Operations with RAD Views and Perspectives
- The Java Perspective
- Portlet Development Support
- RAD 7.5 Installation
- Portal Server v6.1 Installation
- Basic Steps in Development
- Project Structure
- Portlet Project
- Create a Project Structure
- Working With the Project
- portlet.xml Editor
- Creating a Test Server
- Managing the Server
- Unit Testing
- Export Portlet Application
- Summary
- Review Questions
- Review Answers
|
| |
3. Introduction to JSR 286 Based Portal Programming
|
| |
- Topics
- What is JSR 286
- Other API Alternatives
- Relationship With Java SE and Java EE
- Relationship With Servlets
- A Portal Site
- The Portlet
- Portlet Application
- The portlet.xml File
- Portlet Container
- Portal Server
- Portlet Window
- Summary
- Review Questions
- Review Answers
|
| |
4. Basic Portal Programming
|
| |
- Objectives
- Design Pattern of Portlet Applications Model-View-Controller
- More on MVC
- The Portlet Interface
- The Hello World Portlet
- Portlet Lifecycle - Initialization
- Portlet Lifecycle Request Handling
- Two Phase Request Processing
- The render Method
- The PortletRequest Interface
- The PortletResponse Interface
- The RenderResponse Interface
- PortletURL
- Example
- The processAction Method
- The ActionRequest Interface
- The ActionResponse Interface
- Example
- More on Render Parameter
- The GenericPortlet Class
- User Session Management
- Relationship of PortletSession with HttpSession
- Example
- End of Portlet Life
- Portlet Configuration
- Portlet Initialization Parameter
- Portlet Context
- Interacting With JSP
- State Management
- Better View State Management
- Objectives
- Review Questions
- Review Answers
|
| |
5. Portlet Preferences
|
| |
- Objectives
- Portlet Preferences
- Example: Reading Preferences
- Updating Portlet Preferences
- Example: Updating Preference
- Validating Preference Update
- Example Validation
- Creating Portlet Preferences Using RAD 7.5
- Summary
- Review Questions
- Review Answers
|
| |
6. Display Generation
|
| |
- Objectives
- Techniques in View Development
- JSP Custom Tags
- Available Portal Custom Tags
- JSR 286 Tags
- The defineObjects Tag
- More on defineObjects
- The actionURL Tag
- The param Tag
- The namespace Tag
- The property Tag
- JSP Expression Language Support
- National Language Support
- Dynamic Translation
- Resource Bundle File
- Displaying Translated Text
- More on JSTL Internationalization Tags
- Example of Using Resource Bundles
- Static Translation
- Portlet Resource Bundle
- Summary
- Providing Locale Specific Preference Defaults
- Review Questions
- Review Answers
|
| |
7. Advanced Programming
|
| |
- Objectives
- Annotations
- @RenderMode Annotation
- @ProcessAction Annotation
- Portlet Caching
- Cache Scope
- Programmatically Control Cache
- Validation-based Caching
- How does validation-based caching work?
- Validation-based Caching Example
- Enabling Caching in WebSphere Portal Server
- Accessing User Information
- Steps to Access User Information
- Access User Information From Portlet
- Summary
- Review Questions
- Review Answers
|
| |
8. Portlet Services
|
| |
- Objectives
- Portlet Services
- Writing a Portlet Service
- Defining the Portlet Service Interface
- Example - AccountService
- Writing the Portlet Service Implementation
- java.util.prefs.Preferences
- Example - AccountServiceImpl
- Registering Portlet Services
- WAS Admin Console PortletServiceRegistryService
- Using a Service from a Portlet
- Example
- Content Access Service
- Summary
- Review Questions
- Review Answers
|
| |
9. Credential Vault
|
| |
- Objectives
- Credential Vault
- Credential
- Components of Credential Vault
- Structure of the Credential Vault
- Slot
- Slot Scope
- Credential Access Level
- Single Sign-on Scenario
- CredentialSlotConfig
- Methods of CredentialSlotConfig
- CredentialVaultService
- CredentialVaultService Interface Methods
- Methods of the CredentialVaultService
- Example - Looking Up CredentialVaultService
- Example Create a Slot
- Saving Credential in a Slot
- Credential Class
- Classes that Implement the Credential Interface
- Example Retrieve the Credential
- PassiveCredential
- UserPasswordPassiveCredential
- ActiveCredential
- HttpFormBasedAuthCredential
- Example - Using HttpFormBasedAuthCredential
- Summary
- Review Questions
- Review Answers
|
| |
10. Portlet Communication Overview
|
| |
- Objectives
- Portlet Communication Techniques
- Comparison of Portlet Communication Techniques
- Which Portlet Communication Technique Should I Use?
- Summary
|
| |
11. Portlet Event Communication
|
| |
- Objectives
- Portlet Events
- Example Use Case
- Setting up Event Handling
- Create Event Payload
- Event Payload Examples
- Declare Event in portlet.xml
- Declare Event Publisher in portlet.xml
- Declare Event Processor in portlet.xml
- Modify Source Portlet to Publish the Event
- The EventResponse Interface
- Modify Target Portlet to Process the Event
- Publish an Event in Response to an Event
- Wire the Source and Target Portlet
- Event Communication Between Portlets in Different Applications
- Complex Event Payloads and WSRP 2.0
- @ProcessEvent Annotation
- Things to Keep in Mind
- Summary
|
| |
12. Non-Event Portlet Communication
|
| |
- Objectives
- Public Render Parameters
- Example Use Case
- Using Public Render Parameters
- Declare Public Render Parameter in portlet.xml
- Declare Render Parameters a Portlet Shares in portlet.xml
- Modify Source Portlet to Set a Render Parameter
- Modify Target Portlet to Get a Render Parameter
- Advanced Methods
- Limiting the Scope of Public Render Parameters
- Sharing Render Parameters Between Portlets in Different Applications
- Client-side Click-to-Action ("Live Text")
- Example Use Case
- Setting up Client-side Click-to-Action
- Specify a Live Text Source
- Specify a Live Text Target
- Using RAD 7.5 to Set up Client-side Click-to-Action
- Insert a Client-side Click-to-Action Output Property
- Insert a Client-side Click-to-Action Input Property
- Insert a Client-side Click-to-Action Menu Header
- Looking Underneath the Hood
- Summary
|
| |
13. JSF Portlet Development
|
| |
- JavaServer Faces (JSF) Basics
- Defining the Screen Layout
- Managed Bean
- Assigning the Model
- HTTP Request Handling
- Navigation
- Advantage of JSF
- Creating a JSF Portlet
- Navigation State Management
- Advanced: Obtaining Core Objects
- Creating a JSF Portlet Project
|
| |
14. Composite Applications
|
| |
- Objectives
- What Is A Composite Application?
- What Is A Component?
- Components and Applications
- Benefits Of Composite Applications
- Template
- Enabling Composite Application Support
- Composite Application Design and Use
- Creating A Template
- Configuring A Template
- Edit the Template Layout
- Creating the Application
- Configuring the Application
- Using the Application
- Protecting Applications and Templates
- Defining Roles
- Roles Portlet
- Assign Application Members
- Summary
|
| |
15. Using AJAX in a Portlet
|
| |
- Objectives
- What is AJAX?
- A Simple Example
- The Old Way
- The AJAX Way
- Two Key Aspects of AJAX
- What are the Advantages of the AJAX Approach?
- AJAX Technologies
- The Basic AJAX API
- Creating the XMLHttpRequest Object
- The XMLHttpRequest Object Basics
- Complete Example
- The Timeline
- Using AJAX from a Portlet
- JSR-286 and AJAX
- ResourceURL
- The ResourceServingPortlet Interface
- Making an AJAX Request
- Ajax Portlet Example
- View JSP
- Portlet
- Where to Go From Here?
- Summary
|
| |
16. Service Data Objects
|
| |
- Objectives
- Service Data Objects
- Service Data Objects Why?
- Service Data Objects
- SDO - Components
- Data Object
- Data Graphs
- Data Mediator
- SDO Data Graph
- Components of SDO
- UML Model of Core SDO Components
- What is a Relational Record?
- Relational Record
- Relational Record Connection
- Relational Record New Connection
- Relational Record Properties
- Relational Record Column Selection
- Relational Record Configure Data Controls
- Relational Record Resulting Faces JSP
- Data Source Explorer View
- What is a Relational Record List?
- Relational Record List
- Relational Record List - Properties
- Relational Record List Column Selection
- Relational Record List Configure Data Controls
- Relational Record List Resulting Faces JSP
- Page Data View
- XML Artifacts Created for Relational Record addressRecord
- XML Artifacts Created for Relational Record addressList
- Configure Database Connection Details
- The SDO API
- Java API for SDO
- DataObject Interface
- DataGraph
- ChangeSummary
- ChangeSummary Interface
- Type
- Type Interface
- Property
- Summary
|
| |
17. The Portal Designer
|
| |
- Objectives
- What is a Portal Project?
- Creating a Portal Project
- Importing an Existing Portal Site
- Using the New Portal Project Wizard
- Portal Project Structure
- What is the Portal Designer?
- Portal Designer
- Outline View
- Palette View
- Properties View
- Navigating the Portal
- Creating a New Label
- Creating a New Page
- Adding Portlets to a Page
- Page Layout Basics
- Adding Rows and Columns
- Removing Rows and Columns and Merging Columns
- Changing Column Width
- Deploying a Portal Project Using the Portal Test Environment
- Deploying a Portal Project to a Remote Server
- Deploying a Portal Project Using the Export Option
- Deploying a Portal Project Using "Deploy Portal" Option
- Summary
|
| |
18. Themes and Skins
|
| |
- Topics
- Elements of a Portal Site
- Page and Label
- Page/Label Hierarchy
- Portal Site Navigation
- URL
- Theme
- Screen
- The Home Screen
- Skin
- Container
- How is a Page Rendered?
- The Default.jsp
- Theme Navigational JSP Fragments
- The Control.jsp
- A Typical Layout of HTML Skins
- Directory Structure of Themes & Skins
- Creating a New Theme
- Creating a New Skin
- Custom JSP Tags
- Summary
- Review Questions
- Review Answers
- Objectives
- Creating a Theme Using the Portal Designer
- Creating a Skin Using the Portal Designer
- Setting a Theme's Default Skin
- Applying a Theme
- Applying a Skin
- Editing a Theme
- Editing a Theme's Files
- Editing a Theme's Navigation
- Editing a Theme's Styles
- Editing a Screen
- Editing a Skin
- Custom Theme and Skin Example
- Summary
|
| |
19. Web Services for Remote Portlets
|
| |
- Objectives
- Remote Portlets
- WSRP
- WSRP Architecture
- WSRP Benefits
- Information Artifacts
- Security Issues
- JSR-286 and WSRP 2.0
- Pre-defined Container Events
- Summary
|
| |
20. Portlet Build and Deployment Process
|
| |
- Objectives
- Introduction
- Overview of the Build Process
- The Build Process
- Installing a Portlet Web Module
- How is a Portlet Web Module Installed?
- Deploying Portlets Within an EAR
- Managing Portlet Web Modules
- Managing Portlet Applications
- Managing Portlets
- Adding a Portlet to a Page
- Configuring a Portlet
- Copying a Portlet Application
- Copy a Portlet
- Removing a Portlet From a Page
- Uninstalling a Portlet Application
- Summary
|
| |
21. Portal Development Best Practices
|
| |
- Objectives
- Architecture Best Practices
- Controller (Portlet) Guidelines
- View (JSP) Guidelines
- Configuration Management
- Session Management
- Security Guidelines
- Java Performance Tips
- Portlet Performance Tips
- Performance Testing Guidelines
- Summary
|
| |
Appendix A. IBM Cooperative Portlets
|
| |
- Objectives
- Cooperative Portlets
- Example Use Case
- Distinguishing an Action
- Data Source and Destination Location
- Steps to Setup Cooperation
- Understanding the WSDL
- A Simple Source WSDL
- A Simple Source JSP
- A Simple Target WSDL
- Processing the Message in the Target
- Wiring the Source and Target
- Publishing Data from a Target
- Creating Cooperative Portlets in RAD
- Summary
|
| |
Appendix B. What's new in WebSphere Portal 6.1
|
| |
- Introduction
- Overview of Talk
- Portal Customization
- Theme Customizer Tool
- Client-side Aggregation
- Portal Collaboration
- Business Process Management
- IBM Accelerators for WebSphere Portal
- Once Upon a Time...JSR 168
- JSR 286 - Portlets v2
- Changes in JSR 286
- WSRP v2.0
- AJAX and Portlets
- REST Services
- IBM Portlet Development
- Bundled WebSphere Application Server
- Install Portal Sub-set
- Site Management
- Performance - Monitoring
- Performance - WSRP Remote Deployment
- WA1685 - Portal 6.1 Programming
- WA1684 - Portal 6.1 Administration
- Summary
- Contact and Resources
|
| |
Appendix C. Struts Portlet Development
|
| |
- Introduction to Struts
- Why Use Struts to Write Portlets
- Struts and Portlet API Mismatch
- Customizing Struts
- Portal Struts Processor Class
- The Struts Portlet
- Struts Portlet Framework
- Struts Portlet Framework Details
- Generating Portlet URL
- The Response Object
- Action Processing
- Display Rendering
- Getting the Portlet Objects
- Struts Logging
- Creating a Struts Portlet Project
|