Liferay has a variety of frameworks that simplify development of complex functionalities for your own applications. Liferay’s frameworks have evolved from its built in applications, so they’re proven to work in the real world, even in high performance portals.
This section is a placeholder that provides a brief description of the main frameworks provided with Liferay 6.1. The following list is a work in progress, since we’ll add more sections to this chapter over time, and some of the current sections might evolve into their own chapters as we add more information and detailed instructions on how to use them.
Workflow Framework: Lets you add Workflow functionality to your own portlets. One benefit of using this framework is that you can reuse all the workflow management UIs Liferay provides. You can also abstract your code from the specific workflow engine that will be used (e.g., JBPM or Liferay Kaleo). Many Liferay portlets use this framework; to see a simple example and learn how you can use it, the blogs portlet is a good start.
Custom Fields: A portlet that uses custom fields lets the end user extend the fields of its data entries with custom fields defined by the end user. To see a list of data types that support this functionality go to Liferay’s Control Panel → Custom Fields.
Inline Permissions Framework: Lets you enhance your SQL queries so the database checks for view permissions. This is particularly useful when doing queries for data entries that might result in many of items, making the checking of permissions afterward inefficient. It’s also useful when you want to implement pagination (which wouldn’t work if permissions are checked afterward and an item is removed). Liferay’s Document Library and Message Boards portlets both use this functionality.
Faceted Search: A new API that simplifies the creation new facet configurations and searches. It uses a JSON based configuration to define the details of facets used for the search. To find out more, see the Faceted Search wiki by Ray Augé.
Check back in the near future; new editions of the Developer’s Guide will have extended information on each of these frameworks.