More Information

This book will give you plenty of hands-on examples to customize and extend Liferay portal. You will learn how to:

  • Work with the JSR-286 portlets and Extension environment, helping you to build larger applications and reuse portlets in different scenarios
  • Build basic and advanced Struts portlets with permissions and a set of actions helping you to build enterprise-ready Java web applications
  • Manage communities and pages with locale and tracking features to employ layout templates dynamically
  • Customize WYSIWYG editor FCKEditor – Making images, links, videos, games, video queues, video lists, and play lists as part of web content
  • Empower CMS and WCM providing you with one central place to aggregate and manage all content
  • Build My Community – Share web sites, pages, and portlets with friends allowing you to introduce control panel and inter-portlet communication
  • Develop layout templates and themes in the Plugins SDK environment so that you can customize the overall look and feel of web sites and pages
  • Build your Social Office with portlets, hooks, and themes enabling you to be a part of the team without sacrificing your preferences
  • Stage, schedule, and publish web content with workflow capability allowing you to alter and manage what you have created
  • Build custom attributes, OpenSearch, Spring services, and web services thus helping you to build dynamic web sites smoothly

Chapter 1: Introducing Liferay portal framework and architecture
What is Liferay portal?
Why do you use Liferay portal?
What is the framework and architecture of Liferay portal?
Portlet development strategies

Chapter 2: Working with JSR-286 portlets
Experiencing Liferay portal and portlets
Using JSR-286 portlets
Employing Portlet actions
Extending JSR-286 portlets
Serving resources
Coordinating portlets

Chapter 3: Using extension environment
Setting up the Ext
Building the Ext
Deploying the Ext
Employing SVN for portal source and Ext
Browsing a sample portlet – Reports – in the Ext
Using the Ext efficiently

Chapter 4: Experiencing Struts portlets
Developing the JSP Portlet
Constructing a basic Struts portlet
Building advanced Struts portlet
Using Struts efficiently

Chapter 5: Managing pages
Extending the Communities Portlet
Customizing the Manage – Pages Portlet
Extending page management
Using the community and layout page efficiently

Chapter 6: Customizing the WYSIWYG editor
Configuring the WYSIWYG HTML text editors
Adding templates and styles in the FCKEditor
Inserting images and links from different services
Inserting content-rich flashes into journal articles
Using the WYSIWYG HTML text editor FCKEditor efficiently

Chapter 7: Empowering CMS and WCM
Managing Terms of Use dynamically
Constructing featured content
Extending the journal articles portlet
Customizing theasset publisher portlet
Building dynamic articles with both recently added content and related content
Building dynamic articles with polls and related content
Using CMS and WCM efficiently

Chapter 8: Building My Community
Sharing with friends
Setting up most popular journal articles
Personalizing user comments
Customizing my account
Building my street
Using My Community efficiently

Chapter 9: Developing layout templates and themes
Building many layout templates in the Extension environment
Experiencing the Plugins SDK
Developing layout templates in the Plugins SDK
Building themes in the Plugins SDK
Adding Velocity services in themes
Using the Plugins SDK efficiently

Chapter 10: Building my social office
Experiencing the control panel
Building inter-portlet communication
Developing a Social Office theme
Adding mail and chat portlets
Building Social Office with portlets
Hooking portal properties and custom JSP files into Social Office
Using hooks efficiently

Chapter 11: Staging and Publishing
Building dynamic navigation and site map
Customizing event handlers and model listeners
Undergoing local staging and publishing
Employing staging workflow and other workflows
Scheduling pages and assets before publishing
Experiencing remote staging and publishing

Chapter 12: Using common API
Adding custom attributes
Building OpenSearch
Overriding Spring services
Constructing web services
Enjoying best practice


Liferay portal is one of the most mature portal frameworks in the market, offering many key business benefits that involve personalization, customization, and workflow. If you are a Java developer who wants to build custom web sites and intranet applications using Liferay portal, this is where your search ends.

This book shows how Java developers can use Liferay as a framework to develop custom intranet systems, based on Liferay portal platform thus helping you to maximize your productivity gains. Get ready for a rich, friendly, intuitive and collaborative end-user experience!

The author's experience customizing Liferay using Java enables him to explain in a clear and precise manner how to build custom systems on top of Liferay portal.

Using this book you can customize Liferay into a single point of access to all an organization's data, content, web content, and other information from both existing in-house applications (HR, CRM) and external sources (such as Alfresco, FatWire, Magnolia, Vignette).



  • Learn to use Liferay tools to create your own applications as a Java developer, with hands-on examples
  • Customize Liferay portal using the JSR-286 portlet, extension environment, and Struts framework
  • Build your own Social Office with portlets, hooks, and themes and manage your own community
  • The only Liferay book aimed at Java developers
Page Count 552
Course Length 16 hours 33 minutes
ISBN 9781847194701
Date Of Publication 25 May 2009


Jonas X. Yuan

Jonas X. Yuan is a Chief Architect of ForgeLife LLC and an expert on Liferay Portal, e-commerce, and Content Management Systems (CMS). As an open source community contributor, he has published five Liferay books from 2008 to 2012. He is also an expert on Liferay integration with Ad Server OpenX, different search engines, enterprise content including videos, audio, images, documents, and web contents, and other technologies, such as BPM Intalio and Business Intelligence Pentaho, LDAP, and SSO. He holds a Ph.D. in Computer Science from the University of Zurich, where he focused on Integrity Control in federated database systems. He earned his M.S. and B.S. degrees from China, where he conducted research on expert systems for predicting landslides. Previously, he worked as a Project Manager and a Technical Architect in Web GIS (Geographic Information System). He is experienced in Systems Development Lifecycle (SDLC) and has deep, hands-on skills in J2EE technologies. He developed a BPEL (Business Process Execution Language) engine called BPELPower from scratch at the NASA data center. As the chief architect, Dr. Yuan successfully led and launched several large-scale Liferay/Alfresco e-commerce projects for millions of users each month. He has worked on the following books: Liferay Portal Enterprise Intranets, 2008; Liferay Portal 5.2 Systems Development, 2009; Liferay Portal 6 Enterprise Intranets, 2010; Liferay User Interface Development, 2010; Liferay Portal Systems Development, 2012.