Welcome to Pluto

JSR-286 - The Java Portlet API 2.0

The Java Portlet API version 2.0 specification is now under development by the JSR-286 Expert Group under the auspices of the Java Community Process. Details on the specification work can be found at the JSR-286 web site. Drafts of the new portlet specification and API can be found at http://hnsp.inf-bb.uni-jena.de/spec/. The Expert Group is very interested in feedback from the community. Send your comments to jsr-286-comments@jcp.org.

Get Pluto 1.1.5

Download Pluto 1.1.5 GA

Pluto is the Reference Implementation of the Java Portlet Specfication. The current version (1.0) of this specification is JSR-168. Version 2.0 of the Specification is under development by the JSR-286 Expert Group.

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.)

Project Status

Apache Pluto is a subproject of the Apache Portals Project. The current stable release of Apache Pluto is version 1.1.5.

Pluto 2.0

Pluto 2.0, built from the Pluto 1.1 code-base, is the reference implementation of version 2.0 of the Java Portlet API specification (JSR-286). The JSR-286 specification adds interportlet coordination (events and shared render parameters), portlet filters and resource serving to the Portlet API in addition to numerous other changes from version 1.0.

Pluto 1.1

Pluto 1.1 introduces a new container architecture. If you are embedding Pluto in your portal, realize that 1.1 is not binarily compatible with Pluto 1.0.x.

Pluto 1.1 aims to simplify the architecture in order to make it more user and developer friendly. You should find Pluto 1.1 easier to get started with, easier to understand, and easier to embed with your portal. Your feedback regarding how far we've come is always welcome on the user and developer mailing lists!

Pluto 1.0.1

Pluto 1.0.1 is the first stable release of Pluto. This version of Pluto is utilized as the portlet container for Jetspeed and other portals. In addition, Pluto 1.0.1 is embeded within Apache Geronimo.