General

  • Before Getting Inside.
  • Preface.
  • Evolution of this book.
  • Who should read this book?.
  • What is NOT covered in this book?.
  • Conventions followed in this book.
  • How to Approach this book?.
  • About the author (myself)
  • System requirements.

1. Introduction to Portal & Portlets

  • 1.1 Definition of a Portal
  • 1.2 What are Portlets?.
  • 1.3 Portlet Standards and Specification (JSR-286) .
  • 1.4 Liferay Portal.

2. Setup and Configuration.

  • 2.1 Install Java 7.
  • 2.2 Install Ant 1.9.
  • 2.3 MySQL Database.
  • 2.4 Install Eclipse Juno.
  • 2.5 Supporting Tools.
  • 2.6 Liferay Downloads.

3. Setting the stage with Liferay IDE.

  • 3.1 New Liferay Server
  • 3.2 Basic Configuration.
  • 3.3 Pointing Liferay to MySQL Database.
  • 3.4 New Liferay SDK..
  • 3.5 New Liferay Project

4. Library Management System.

  • 4.1 New Liferay Project.
  • 4.2 Establishing Basic Page flow.
  • 4.3 Anatomy of a Portlet URL.
  • 4.4 Creating a Simple Form.
  • 4.5 HTML form to AUI form.
  • 4.6 Injecting 3rd Party Libraries.

5. Service Layer and Service Builder.

  • 5.1 Service Builder Explained.
  • 5.2 Generating our first Service Layer.
  • 5.3 Invoking the Service Layer API .
  • 5.4 Pulling Data – Use another API .
  • 5.5 Avoiding Multiple Submits.
  • 5.6 Separating the Business Logic.
  • 5.7 Service Layer of Portal Source.
  • 5.8 Sharing a custom service layer.
  • 5.9 Caching to improve performance.
  • 5.10 “service.xml” DTD Explained.

6. Improving the Book List.

  • 6.1 HTML table to Search Container
  • 6.2 Referring to Portal’s TLDs and JARs.
  • 6.3 Adding link to delete book.
  • 6.4 Adding “Actions” on a Book.
  • 6.5 Editing a book.
  • 6.6 Viewing book details.
  • 6.7 Showing details as a popup.
  • 6.8 Sortable Columns.
  • 6.9 Performing an action on a set of items.

7. Data Retrieval Methods.

  • 7.1 Order By Clause.
  • 7.2 Finder Tags.
  • 7.3 Dynamic Query.
  • 7.4 Custom SQL Statements.
  • 7.5 Some Real world use-cases.
  • 7.6 Which mechanism is Best?.

8. Remote Services and Beyond.

  • 8.1 SOAP / RPC based Web Services.
  • 8.2 JSON Web Service.
  • 8.3 RESTful Web Services.
  • 8.4 The “Beyond” Part
  • 8.5 Calling Portal’s JSON Web Service.
  • 8.6 Service Context and its significance.

9. More Features and API’s.

  • 9.1 Portlet Filters.
  • 9.2 Implementing Frienly URL’s.
  • 9.3 Encrypting & Decrypting Portlet Data.
  • 9.4 Enabling Logger at Portlet Level.
  • 9.5 Portlet Internationalization (I18N).
  • 9.6 Portlet and WCM Marriage.
  • 9.7 Making Our Portlet appear in Control Panel.
  • 9.8 Running Backend Jobs through Quartz.
  • 9.9 Firing Emails from Portlet.
  • 9.10 Getting Direct Access to Database.

10. Configuration & Communication.

  • 10.1 Static Portlet Preferences.
  • 10.2 Dynamic Portlet Preferences.
  • 10.3 Reading from “properties” files.
  • 10.4 Firing Emails from Portlet – Continued.
  • 10.5 Portlet Data Handlers – Export / Import.
  • 10.6 Inter-Portlet Communication.
  • 10.7 Non-Standard ways of IPC.
  • 10.8 Portlet URL Invocation.
  • 10.9 Customizing Portlet Based on Query String.

11. Liferay Frameworks – Part 1.

  • 11.1 Security and Permissions.
  • 11.2 Portlet Permissions.
  • 11.3 More Security Layers and Custom Utility.
  • 11.4 Model Permissions.
  • 11.5 Liferay Asset Framework.
  • 11.6 Attaching Tags and Categories.
  • 11.7 Publishing Assets (Books) through Asset Publisher .
  • 11.8 Asset Publisher for Books – Finishing Touches.

12. Liferay Frameworks – Part 2.

  • 12.1 Liferay Storage Framework.
  • 12.2 MVCPortlet and Large Applications.
  • 12.3 Showing Book Cover in the List Page.
  • 12.4 File Processing and Liferay.
  • 12.5 Server Side Validation.
  • 12.6 Custom Fields Framework.
  • 12.7 Enabling Custom Fields for Library Portlet.

13. A Tour of Advanced API’s.

  • 13.1 Portlet Messaging – MessageBus.
  • 13.2 Indexing and Search.
  • 13.3 Advanced Search Features. 320
  • 13.4 Device Detection API
  • 13.5 Creating a Custom Taglib.
  • 13.6 More on Portlet + Web Content Integration.
  • 13.7 Form Navigator Tag. 337