Developing JSR 168 Portlet Based Applications Training

Training Description:

Effective information delivery is a vital need of enterprises. Information needs to be aggregated from disparate systems within or external to organizations and distributed via a convenient user interface. Value of the delivery platform further improves if a user can choose what information he/she prefers to see, personalize how the information is presented according to his/her preferences, and access all the information he/she needs and permitted via a single point of access.

Modern enterprises select web based portals to achieve the above needs. Some examples are: news distribution among general public (like Yahoo or new BBC web site), offering personalized services to customers, granting mobile employees access to corporate data, delivering consolidated information within the enterprise via a single point of access and in a secured manner with multiple levels of access control.

Java, which is an ideal information integration platform defines Portlets in its JSR 168 specification to implement web based portals. This training on JSR 168 Portlet development is a comprehensive training covering all the aspects of Portlet based application development.

Training Objectives:

At the end of the training, participants will be able to
  1. Develop JSR 168 standard compliant Portlet applications from the scratch.
  2. Use the full feature set of Portlets as defined in JSR 168 (This training covers 100% of JSR 168 and more; Nothing left behind to be learned later on). To name a few, features include personalization, user attributes maintenance, multi-level access controlling, caching, single-sign-on, multi-lingual and multi-protocol support.
  3. Deploy Portlet applications in award winning Liferay Portal, a freely available Java Portlet container which also has an integrated Content Management System (CMS), a collaboration suite and a number of pre-built Portlets.
  4. Describe the common and almost the same steps to be followed if applications are deployed in other free or commercial Portlet containers.
  5. Administrate Liferay based portals.

Target Groups:

  1. Java Enterprise Edition developers

Prerequisites:

  1. Participants should necessarily be familiar with Servlet based web application development.

Communication Language:

English

Duration:

3 Day (24 hours)

Facilitator:

Kamal Wickramanayake (Profile)

Notes:

  1. This training is delivered with hands-on lab exercises where participants will develop a comprehensive set of demonstrative Portlet applications.
  2. The award winning Liferay Portal will be used as the Portlet container during lab exercises. Liferay is freely available and is production ready. It has a built in Content Management System (CMS), a collaboration suite and a number of pre-built Portlets.

Training Content:

  1. Introduction to Portals/Portlets
    • What is a portal?
    • What is a Portlet?
    • Example portals
  2. JSR 168 Portlets and Java Enterprise Edition
    • Purpose of a Portlet container
    • HTML fragments and content aggregation
    • Portlets Vs Servlets
    • Portlet containers Vs Servlet containers
  3. Life Cycle of a Portlet
    • Loading and instantiation
    • Initialization
    • Request handling
    • End of service
  4. Anatomy of Portlet Applications
    • Directory structure
    • Deployment descriptor
    • Resource bundles
    • Packaging
    • Deployment
  5. Portlet API
    • Portlet
    • GenericPortlet
    • PortletConfig
    • PortletContext
    • PortalContext
    • PortletRequest
    • PortletResponse
    • ActionRequest
    • ActionResponse
    • RenderRequest
    • RenderResponse
  6. Portlet Modes and Window States
    • VIEW mode
    • EDIT mode
    • HELP mode
    • Custom modes
    • NORMAL state
    • MAXIMIZED state
    • MINIMIZED state
    • Custom states
  7. Portlet URLs
    • Action and render URLs
    • Triggering Portlet modes and window states
    • Portlet URL restrictions and security
  8. Multithreading and Exceptions
    • Avoiding multithreading pitfalls
    • Thread safety (request and response objects)
    • Exceptions while initialization
    • Exceptions while request handling
  9. Portlet Preferences
    • Using PortletPreferences interface
    • Preference attribute scopes
    • Preference attribute definition
    • Validating attributes
  10. User Attributes
    • Defining user attributes
    • Accessing user attributes
  11. Session Management
    • Session scope
    • Session management in Portlets Vs Sevlets
  12. Security
    • Security roles
    • Programmatic security
    • Security constraints
    • Security identity propagation
  13. Portlet Tag Library
    • Dispatching to JSPs
    • defineObjects Tag
    • actionURL Tag
    • renderURL Tag
    • namespace Tag
    • param Tag
  14. Other Topics
    • Using Servlets within Portlet applications
    • Portlets using AJAX
    • Caching
    • Implementing single sign-on
    • Different mechanisms used to implement inter-Portlet communication
    • Multi-lingual support
    • Multi-protocol support (HTML, XHTML, WML,...)
    • JSR 168 Portlet limitations
    • Non JSR 168 compliant Portlet containers and extensions
    • Future evolution of JSR 168 and related standards