Java News from Wednesday, December 22, 2004

The Apache Portal Project has posted the second release candidate of Pluto 1.0.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. (In contrast, the more sophisticated, Jetspeed project concentrates on the portal itself rather than the portlet container, and considers requirements from other groups.)

Sebastiano Vigna has released version 4.3.2 of fastUtil, a collection of type-specific Java maps and sets with a small memory footprint and faster access and insertion. The classes implement their standard counterpart interfaces such as java.util.Map and can be plugged into existing code. However, they also contain type-specific methods. For instance, the CharList class has not only the usual add(Object o) method but also an add(char c) method. Version 4.3.2 is a bug fix release. fastUtil is published under the Gnu Lesser General Public License (LGPL).

Gaudenz Alder has released JGraph 5.2.1, a free-as-in-speech (GPL/MPL) graph component for Swing that requires Java 1.4 or later. JGraph is accompanied by Graphpad, an open-source diagram editor for Swing that offers Automatic Layout, Printing, Zoom, and much more. It is available in English, German and French. Version 5.2.1 fixes some bugs, adds a few switches, re-enables auto selection, and adds new utility methods to the layout cache and graph model.