Client Services Portlet applications run on the Lotus® Expeditor platform. A primary difference between a Client Services Portlet application and one that is deployed to run on a WAS or Portal runtime is that the Client Services Portlet application must also be a valid OSGi bundle.
The Lotus Expeditor Toolkit automatically handles many of these bundle specific details, which is why developing the Portlet application through a Client Services Portlet project is the recommended development path for Portlet applications that are to be run on the Lotus Expeditor platform. Nevertheless, it is also possible to develop the Portlet application through a Java EE Portlet project, and subsequently test run it on the Lotus Expeditor platform. It is also possible to transform an existing Portlet Web Application Archive (WAR) file into a Portlet Web Application Bundle (WAB) suitable for running on the Lotus Expeditor platform through the use of the WAB Utility
The following lists aspects of a Client Services Portlet application that differ from a standard Portlet application.
- The Lotus Expeditor platform does not support deploying Enterprise Applications through an EAR. The Portlet application is directly deployed to the runtime.
- A Client Services Portlet application has a manifest file, located in META-INF/MANIFEST.MF, that contains bundle information including package and bundle dependencies. This is associated with the bundle, and is separate from the manifest file found under the Portlet application's content folder.
- A Client Services Portlet application contains additional deployment information in wab.properties. This is located in the web content WEB-INF folder.
- JSP files are translated into their respective servlet classes before the web application is deployed to the runtime as a WAB.
In most cases, these artifacts and differences are handled transparently by the Lotus Expeditor tools. These differences do not affect the functionality of the Portlet application. There are, however, some development considerations you should take into account. These are described in Client Services Portlet Application Development section.
A Client Services Portlet application can be developed using many of the same Portlet development tools provided by the Rational® Software Delivery platform. The primary differences are:
- Use the Client Services Portlet project wizard to create a Client Services Portlet project, as described in Creating a Client Services Portlet project.
- Since the Lotus Expeditor platform does not support EARs, EAR projects are ignored.
- When testing the project, target the Lotus Expeditor runtime when using the Run / Run on Server action. Or, use the Lotus Expeditor launch configuration when using the Eclipse Run / Debug launch feature. This is explained in Debugging and testing applications.
- When exporting the Portlet application, use the Plug-in Development > Deployable plug-ins and fragments wizard.
URL Addressability: XPD621
The Portlet Container allows a user to call a Portlet directly using an URL. Therefore a special URL format is defined for Portlets. This URL format allows Portlets to be called just like servlets (by context/portlet-name), but also provides the possibility to add additional portal context information, such as the Portlet mode or window state.
Portlet API and Type support: XPD621
The Portlet API and Type support in the Portlet Tooling component is entirely based on the Lotus Expeditor Portlet runtime support.
Unsupported features: XPD621
This section describes the features not supported by the Portlet Container.
Using the Portlet Aggregation Tag Library: XPD621
The Lotus Expeditor 6.2 runtime provides a Tag Library that can be used by developers to write JSPs that aggregate multiple Portlets on one page. This capability will not provide the developer with a full feature portal aggregation implementation, but provides a very good migration scenario for developers who already have aggregating servlets and JSPs and want to switch to Portlets.
Parent topic: Developing Portlet applications: XPD621