WA2487
WebSphere Portal 8.5 Programming Training
This five day training class teaches students WebSphere Portal development using JSR 286 portlet API. The JSR 286 API is a major revision of the portlet specification and contains significant improvements. The class also covers JavaServer Faces based portal site development and using Dojo and AJAX with portlets. All labs are done using Rational Application Developer (RAD) 9.0.
Course Details
Duration
5 days
Prerequisites
- Intermediate knowledge of Java development using Rational Application Developer.
- Knowledge of Servlet and JSP is strongly recommended.
Target Audience
Programmers who will be developing applications for WebSphere Portal Server.
Skills Gained
- Install and use the latest Portal Toolkit
- Understand the JSR 286 portlet programming model
- Use the Rational Application Developer (RAD) 9.0 based Portal Toolkit to build portal applications
- Develop cooperative portlets to share data
- Develop portlets using Struts and JavaServer Faces (JSF)
- Use AJAX in a portlet
- Provide and consume portlets using Web Services for Remote Portlets (WSRP)
Course Outline
- Introduction to WebSphere Portal Server
- 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 1.0 (JSR-168)
- Java Portlet Specification 2.0 (JSR-286)
- Portlet Security Overview
- Portal Access Control
- Portal User Management
- Credential Vault Service
- Best Practices For Development
- Portlet Development Using Rational Application Developer 9.1
- The RAD 9.1 Product
- Portlet Development Support
- RAD 9.1 Installation
- Portal Server 8.5 Installation
- Basic Steps in Portlet Development
- Project Structure
- Portlet Project
- Create a Project Structure
- portlet.xml Editor
- Create a Test Portal Server
- Managing the Server
- Unit Testing
- Export Portlet Application
- JSR 286 Based Portal Programming
- What is JSR 286?
- Relationship With Java SE and Java EE
- Comparing Portlets with Servlets
- A Portal Site
- Portlet
- Portlet Application
- The portlet.xml File
- Portlet Definition in portlet.xml
- Portlet Container
- Portlet Window
- Basic Portlet Programming
- Model-View-Controller in Portlet Application
- The Portlet Interface
- The Hello World Portlet
- Portlet Lifecycle - Initialization
- Portlet Lifecycle – Request Handling
- Two Phase Request Processing
- Two Phase Request Processing Architecture
- The render Method
- The PortletRequest Interface
- The PortletResponse Interface
- The RenderResponse Interface
- PortletURL
- PortletURL Example
- The processAction Method
- The ActionRequest Interface
- Example: Handling Form Submission
- The ActionResponse Interface
- Example Use of Render Parameters
- Dealing With Browser History
- The GenericPortlet Class
- User Session Management
- Using the Session
- Relationship of PortletSession with HttpSession
- Session Usage Example
- End of Portlet Life
- Portlet Configuration
- Initialization Parameters
- Portlet Context
- Invoking the View Layer
- Controller Logic Implementation Techniques
- Portlet Preferences
- Portlet Preferences API
- Example: Reading Preferences
- Updating Portlet Preferences
- Example: Updating Preference
- Validating Preference Update
- Display Generation
- Techniques in View Development
- PortletRequestDispatcher include/forward Details
- JSR 286 Tags
- The defineObjects Tag
- Example defineObjects Usage
- The actionURL Tag
- The renderURL Tag
- The param Tag
- The namespace Tag
- Portlet Build and Deployment Process
- 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
- Configuring a Portlet
- Copying a Portlet Application
- Copy a Portlet
- Uninstalling a Portlet Application
- Portlet Internationalization
- National Language Support
- Resource Bundle File
- Displaying Translated Text
- Portlet Resource Bundle
- Providing Locale Specific Preference Defaults
- Advanced Programming Topics
- JSR 286 Annotations
- @RenderMode
- @ProcessAction Annotation
- Setting the Action Name in URL
- Portlet Caching
- Basic Caching Setup
- Programmatic Cache Control
- Validation Based Caching
- Validation Caching API
- Portlet Communication Overview
- Portlet Communication Techniques
- Comparison of Portlet Communication Techniques
- Which Portlet Communication Technique Should I Use?
- Portlet Event
- Portlet Events
- Event Architecture
- Example Use Case
- Event Flow Sequence
- Sequence Diagram
- Defining an Event in portlet.xml
- Using Default Namespace
- Creating the Payload Class
- Publishing an Event
- Consuming an Event
- The @ProcessEvent Annotation
- Details about @ProcessEvent
- Additional Notes About Events
- Portlet Event Configuration
- Public Render Parameter
- Public Render Parameters
- Example Use Case
- Steps to Using Public Render Parameters
- Define Public Render Parameter in portlet.xml
- Declare Public Render Parameter for a Portlet
- Setting Value of a Public Render Parameter
- Example Setting Public Render Parameter
- Getting Value of a Public Render Parameter
- Additional API
- Limitations
- Client-side Click-to-Action Portlet Communication
- Client-side Click-to-Action ("Live Text")
- Example Use Case
- Specify a Live Text Source
- Specify a Live Text Source – Example
- Specify a Live Text Target
- Specify a Live Text Target - Example
- Looking Underneath the Hood
- Theme Profile for Live Text
- Developing JSF Portlets for WebSphere Portal
- What is JavaServer Faces (JSF)?
- Why Use JSF?
- Nature of a JSF Application
- JSF and MVC
- Faces Servlet
- Managed Bean
- The View
- A Simple JSF Application
- The Input Form: form.jsp
- The Result: thanks.jsp
- The Controller: AddressBean
- Page Flow or Navigation Rule
- How Does the Application Work?
- Creating a JSF Portlet
- Navigation State Management
- Advanced: Obtaining Core JSF Objects
- JSF 2.0 and Portlets 2.0
- Spring MVC Portlets
- Portlets
- Spring Portlet MVC Framework
- Spring MVC and Portlet Configuration
- Spring Required JARS
- Configuring Spring Portlet MVC Framework
- Spring Portlet Views
- Spring Portlet Handler Mappings
- Mapping on Render Parameters
- Handling Portlet Actions
- Session Attributes
- Global Session
- JSR-286 Resource Serving
- JSR-286 Events
- Web Services for Remote Portlets
- Remote Portlets
- WSRP
- WSRP Terminology
- WSRP Benefits
- WSRP Architecture
- Information Artifacts
- Security Issues
- JSR-286 and WSRP 2.0
- Pre-defined Container Events
- Using AJAX in a Portlet
- What is AJAX?
- A Simple Example
- The Old Way
- The AJAX Way
- Two Key Aspects of AJAX
- Advantages of the AJAX Approach
- 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
- The ResourceServingPortlet Interface
- Output From serveResource()
- ResourceURL
- AJAX Request Timeline
- Steps to be Taken by a Portlet
- A Complete Example
- The View JSP
- The Portlet Class
- The Dojo Toolkit
- Installation
- Dojo Capabilities
- Simple Example – Tab Widget
- How Does DOJO Work?
- Importing Packages
- Widget Basics
- Widget Layout Example
- The Two byId() Methods
- Widget Properties
- Widget Events
- Common Features of Widgets
- Form Input Widgets
- The Button Widget
- The Checkbox Widget
- The ComboBox Widget
- The FilteringSelect Widget
- The DateTextBox Widget
- Layout Widgets
- Other Common GUI Widgets
- Creating Widget Instances Programmatically
- Creating Widgets Programmatically
- Using Dojo in WebSphere Portal 8.5
- Dojo and WebSphere Portal 8.5
- Dojo and AJAX Portlets
- Dojo Versions in WebSphere Portal 8.5
- Dojo Best Practices
- Dojo Support in RAD 9.1 – New Project
- Dojo Support in RAD 9.1 – Existing Project
- Dojo Tools in RAD 9.1
- Generated Dojo Code in RAD 9.1
- WebSphere Portal Personalization Framework
- Overview of Personalization
- Presenting the Personalized Content
- Creating a Personalization Rule
- Personalization Campaigns
- Content Spots
- Personalization JAR Files
- Personalization Resources
- Personalization Portlets
- Personalization Rules
- Using Visibility Rules
- Personalization Rules Process Flow
- Portlet Services
- 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 – Using a Service
- Credential Vault Service
- Example - Looking Up Credential Vault Service
- Example – Create a Credential Slot
- Content Access Service
- WebSphere Portal Server 8.5 Administration
- Elements of a Portal Site
- Page, Label, and URL
- Creating Pages, Labels and URLs
- Adding a Portlet to a Page
- Removing a Portlet From a Page
- Web Content Page Management
- New WCM Features in WebSphere Portal 8
- Create a Project
- Publish and Approval
- WebSphere Portal Security Management
- Admin portlets: Manage Users and Groups
- Create New User
- Virtual Portals and Realms
- Associating Virtual Portal with Realm
- Create Virtual Portal
- Login to Virtual Portal
- XML Access
- Export Portal Configuration
- Export Virtual Portals
- Developing WebSphere Portal Themes and Skins
- Changes in WebSphere Portal 8.5 Themes
- Theme and Skin Concepts
- Using WebDAV to Access Theme Files
- Creating a Custom Theme
- Customizing the New Theme
- Important Styles
- Dynamic Content Spot
- Configuring Dynamic Content Spot
- Developing a Theme as an EAR File
- Registering Themes Deployed as an EAR
- WebSphere Portal Tag Libraries
- Using WebSphere Portal Tag Libraries
- Managing Themes and Skins
- Module Theme Framework
- Setting Theme Profiles
- Custom Theme Modules
- Developing Multi Channel Portal Application
- Multi Channel Support by RAD 9.1
- Developing Views for Smart-phones and tablets
- Create Portlet Project with Mobile Support
- Portlet Project Structure with Device Support
- Using Dojo Mobile widgets
- Testing Portlets in Mobile Browser Simulator
- Run on Mobile Browser Simulator
- Device classes
- Portal Development Best Practices
- Architecture Best Practices
- Controller (Portlet) Guidelines
- View (JSP) Guidelines
- Configuration Management
- Session Management
- Security Guidelines
- Portlet Performance Tips
- Performance Testing Guidelines
- Lab Exercises
- Lab 1. Configure The Development Environment
- Lab 2. Basic Portlet Development
- Lab 3. Action Handling
- Lab 4. Working With Portlet Modes
- Lab 5. Working With Portlet Preferences
- Lab 6. Validating Preference Values
- Lab 7. Basic View Development
- Lab 8. Building a Complete Application Using MVC
- Lab 9. Internationalize the Addressbook Portlet
- Lab 10. Portlet Events
- Lab 11. Non-Event Portlet Communication
- Lab 12. Basic JSF Based Portlet Development
- Lab 13. Spring MVC Portlet
- Lab 14. Using AJAX From a Portlet
- Lab 15. Dojo Portlet Using Dojo Toolkit
- Lab 16. Develop a Portlet Service
- Lab 17. Customizing Portal Look and Feel
- Lab 18. Develop Multichannel Portal Application