Portlets are Web-based components managed by portlet containers that supply dynamic content. Portals employ portlets as pluggable user-interface components—a presentation layer—for information systems. The Java Portlet Specification achieves interoperability among portlets and portals by defining the APIs for portlets and by standardizing the rules for preferences, user data, portlet requests and responses, deployment, packaging, and security. Java Portlet Specification 1.0, Java Specification Request (JSR) 168, was released in October 2003. In February 2006, the JSR 286 Expert Group was formed to start work on Java Portlet Specification 2.0. When that is finalized, backward compatibility will be in place: JSR 168 portlets will be able to run seamlessly in JSR 286 portlet containers. No recompilation will be necessary. This article spotlights JSR 168 and the associated software, Portlet Container 2.0 and the Portal Pack NetBeans Plug-in (formerly NetBeans Portlet Plug-in). Also described are sample portlets and JSR 286 in its draft state. Contents
JSR 168, Portlet Container, and Portal Pack NetBeans Plug-in
In the pre-JSR 168 days, you had to develop and maintain a separate version of your portlet that complied with the vendor-specific portlet API for each and every vendor portal. The related tasks were time-consuming, aggravating, and cumbersome. Moreover, to the detriment of the end users, ISVs, developers, and vendors, that scenario meant that only a limited number of applications were available through only a few portals. JSR 168 brought a world of a difference: By adhering to the standards, you can build portlets that can run in portals, irrespective of their vendors. Hence, no more hassles with the requirements that vary according to vendors. That’s a win-win situation for all. With the release of Sun Java System Portal Server (henceforth, Portal Server) 6.2, Sun became one of the first vendors that supported JSR 168. Portal System Server 7.0, the latest portal server release from Sun, is free for download and deployment. To send questions or comments on JSR 168, write its interest alias. Java Community Process
JSR 168 was born of the Java Community Process (JCP), an open, international, community-based organization that coordinates the development of Java technology standards, reference implementations, and technology compatibility kits. As coleader of the JCP, Sun also serves as the editor of JSR 168 and developer of the Test Compatibility Kit (TCK). Since its inception, JSR 168 has received strong and enthusiastic industry support. See the technical paper, Introduction to JSR 168: The Java Portlet Specification (PDF), which describes the benefits of JSR 168 and introduces the portlet programming model through the code of a robust portlet example. Portlet Container
Portlet Container 2.0, developed through the Enterprise-Class Portlet Container Open Source Project, not only delivers an implementation of the JSR 168 Portlet Container but also contains a portlet driver—a lightweight rendering environment. As part of Java Application Platform SDK Update 5, Portlet Container 2.0 is integrated with Sun Java System Application Server 9.1. The implementation of the JSR 168 Portlet Container, which originated from Portal Server 7.0, offers capabilities well beyond JSR 168. In the future, the Enterprise-Class Portlet Container Open Source Project will deliver an enterprise implementation of JSR 286. Portal Open Source Project
Furthermore, the Enterprise-Class Portlet Container Open Source Project is part of the Portal Open Source Project, which includes development projects for other portal-related components. Examples are:
For details, see Open-Source Portal Initiative at Sun, Part 1: Overview. Portal Pack NetBeans Plug-in
The Portal Pack NetBeans Plug-in is a key component for generating and deploying JSR 168 portlets on the Portlet Container. For details, see a related blog. JSR 168-Compliant Sample Portlets
Check out a few sample portlets that demonstrate the benefits of adopting JSR 168. But first, download Java EE 5 Tools Bundle Update 5 for the components for developing, testing, and deploying JSR 168 portlets, namely—
A Stand-alone Sample
Now download the Weather Portlet, a stand-alone sample that is prebuilt with the Portal Pack NetBeans Plug-in. This sample provides the complete source code for the example that is described in the technical paper mentioned earlier. As its name implies, the Weather Portlet displays the current temperature
in a U.S. location denoted by a user-specified zip code. Also, as a demonstration
of how the Java APIs for XML-Based Remote Procedure Call (JAX-RPC) connect to
Web services, this sample obtains the temperature from the weather Web service
of To run the Weather Portlet:
Alternatively, run the Weather Portlet sample in another IDE that supports JSR 168 portlets. Be sure to supply the appropriate environment- specific project files. Samples From the Open Source Portlet Repository
The Open Source Portlet
Repository (henceforth, the repository), a Currently, the repository offers numerous sample portlets, among them the following:
Here is a screen shot that shows those portlets at a glance:
For details on the repository, see the article Open-Source Portal Initiative at Sun, Part 2: Portlet Repository. JSR 286
Since its release in 2003, JSR 168 has gone through many real-life tests in portal development and deployment. For all that the community has identified "gaps," standards take time to evolve and become available to the public. Meanwhile, many portal vendors have been filling those gaps with their own custom solutions, which unfortunately cause portlets to be not portable. To date, one of the most clamored-for standards is that for interportlet communication. The only JSR 168 provision that serves that purpose is the portlet session. Currently, the OASIS Technical Committee is finalizing WSRP Specification 2.0, a complementary standard. In the past, WSRP Specification 1.0 and Java Portlet Specification 1.0 were developed hand in hand. Not surprisingly, the JSR 286 Expert Group has placed a high priority on aligning Java Portlet Specification 2.0 with WSRP 2.0. The first draft of JSR 286 brings to the Java portlets all the key capabilities introduced by WSRP 2.0. Examples are—
In addition, the first JSR 286 draft defines the portlet filters, with which portlets can, on the fly, transform the content of portlet requests and responses. Stay tuned for the many enhancements in Java Portlet Specification 2.0. For example, you will be able to take advantage of the Java Portlet Specification 1.0 caching model and reap support for asynchronous technologies, such as AJAX. To send questions or comments on JSR 286, write its interest alias. References
|
| ||||||||||||||||||||
|
| ||||||||||||