I have finished reading Liferay Portal 6 Enterprise Intranets
Overall a good book to make the reader understand the basic concept upon which Liferay is built as well as those out of the box capabilities it provides. Even though the book is not for Liferay developers they can beneficiate from knowing how Liferay is ultimately used by what I call Operations (Liferay administration).
The author covers the Portal-Group-Page-Portlet Liferay Portal organization, how to install and configure the portal, setting groups and permissions, creating pages and adding portlets to them.
Between the covered portlets are Asset Publisher, WIKI, Polls, Message Boards, Email Forms and Blogs.
It is explained how to use CMS and WCM capabilities to build pages from the portal UI.
It is shown how to extend Liferay functionality through the use of hooks (like "Documnent Library Record" which is as the author says "a special use of audit-hook") and custom fields(expando), SEO capabilities using sitemaps (sitemaps.org), caching using ehCache, using velocity to render different content depending on User Agents, how Jasper Reports are integrated, how to agregate content inside a portlet (nested portlets, widgets, gadgets and the "Web Content Display" portlet).
An analysis about search optimization puts the reader in contact with Lucene, Solr and Open Search Framework. Search is for sure one of the areas where optimization and performance tuning are so necessary and it is important for the Liferay Admin to understand the possibilities to make the portal faster and so more scalable.
Thanks to the book I put my attention to some important considerations.
First email templates are still just so simple. I have written about this before, it is time to use a truly flexible template engine and Velocity is more than enough. At least in two real life projects I have successfully integrated Velocity templates to customize emails.
The second issue is related perhaps to the nature of the book which is oriented to non-developers but just people that want to get to speed deploying, configuring and customizing Liferay from the GUI. The book pushes for the use of ad-hoc pages built directly from the CMS/WCM and that might fit certain needs, hiwever in my opinion this is arguable the way to go as versioning, backup and disaster recovery could be affected if too many adhoc code is done directly from the portal UI. Following a proper SDLC would impose a more integrated versioning of the plugins source code and the UI developed markup. Certainly it looks promising that according to the author there is versioning support for those pages built from the UI. I would love to have time to test this in the near future.
Last but not least the book mentions JSR-286 however in reality the current portlets still do not use the new specification but rather stick to the JSR-168 specification. The Search Portlet is an example of it.