Browse Prior Art Database

Method for maintaining Sametime objects and user states within a portlet. Disclosure Number: IPCOM000020252D
Original Publication Date: 2003-Nov-06
Included in the Prior Art Database: 2003-Nov-06
Document File: 1 page(s) / 40K

Publishing Venue



User-specific transient data for IBM Lotus Sametime is made accessible to all methods within a portlet, despite limitations on the usage of instance variables and the data encapsulation methods provided by the portlet API.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 55% of the total text.

Page 1 of 1

Method for maintaining Sametime objects and user states within a portlet.

   Disclosed is a method of handling Java objects and session states for IBM Lotus Sametime, within the restrictions of the portlet architecture (Java Specification Request 168).

In non-portlet Java applications, these Sametime objects and states are commonly stored as instance variables, so that they are always accessible from any point in the code. However, a portlet can only use instance variables to store constants, since like a servlet, only a single instance (concrete portlet) is created, to serve multiple users. Therefore, any class variables become visible to all users. Only the first portal user to log in can store the Sametime session object and login state as instance variables. Subsequent users are confronted with a DuplicateObjectException, because the Sametime session already exists from the first user, and their login state would also be incorrect.

The portlet API provides several mechanisms for storing transient data. The PortletRequest and PortletSession classes each have setAttribute() and getAttribute() methods. The base PortletAdapter class also includes setVariable() and getVariable() methods. However, these cannot be used in non-portlet methods, such as those provided by IBM Lotus Sametime.

For example, the Sametime LoginListener interface is used to confirm connectivity to Sametime. If login is successful, then the loggedIn() method is executed. If login fails, or logout...