Preface
I first came across the Java Portlet technology in 2006. I was working on a data warehousing project, and data from different sources was managed by a portal application. My first encounter with the technology wasn’t a pleasant one—I faced issues with inter-portlet communication, Ajax, file downloading, and so on. After a lot of struggles and analysis, I was able to get past the limitations inherent in Portlet 1.0 by building ad hoc solutions involving Java servlets to address the business requirements. The design of these solutions resulted in a highly complex system that was hard to maintain and understand. It left me feeling that the Java Portlet technology wasn’t ready for developing web portals in the real world.
But even though Portlet 1.0 (JSR-168) had limitations, it didn’t stop businesses from taking advantage of the benefits web portals offered—personalization and content aggregation. The lack of support for some critical features in the Java Portlet technology meant that portlets had to rely on portal server–specific extensions, which resulted in portlets that were not portable across different portal servers and were not Portlet 1.0–compliant.