Java News from Wednesday, February 28, 2007

The Apache Portal Project has released Pluto 1.1, the open source reference implementation of the Java Portlet Specification. According to the web page,

Portlets are designed to run in the context of a portal. They are written to the Portlet API which are similar to the Servlet API.

In contrast to servlets, portlets may not do things like sending redirects or errors to browsers directly, forwarding requests or writing arbitrary markup to the output stream to assure that they don?t distract the portal web application which uses them. Another difference compared to servlets is that portlets rely on portal specific infrastructure functions such as access to user profile information, standard interface for storing/retrieving persistent settings, getting client information, etc. Generally, portlets are administrated more dynamically than servlets typically are.

A portlet container provides a runtime environment for portlets implemented according to the Portlet API. In this environment portlets can be instantiated, used and finally destroyed. The portlet container is not a stand-alone container like the servlet container; instead it is implemented as a thin layer on top of the servlet container and reuses the functionality provided by the servlet container.

Pluto serves as portlet container that implements the Portlet API and offers developers a working example platform from which they can test their portlets. However, it's cumbersome to execute and test the portlet container without a driver, in this case, the portal. Pluto's simple portal component is built only on the portlet container's and the JSR 168's requirements.


According to Craig Doremus, version 1.1 "is a major refactoring of Pluto 1.0.1 to allow for easier integration of Pluto's portlet container into a portal and easier configuration of the Pluto portal driver, a bare-bones portal included with Pluto. This release fixes a number of bugs in Pluto 1.1 including ones that prevented standard portlet modes and window states from functioning properly. We've also updated the binary release to deploy Pluto into Tomcat 5.5.17."