This guide is intended to be used to catalog what the Liferay
community considers to be the most important resources you should
be aware of as a new developer and new member of the Liferay community.
This document is not a manual itself, but instead is intended to
point you to what the community considers to be the "most up to date"
resource covering a particular topic.
If you do not plan on doing development using Liferay (creating custom portlets, customizing the existing Liferay system, etc.), and instead plan to use the existing features of Liferay unmodified, you may instead be more interested in Roadmap for new users.
IMPORTANT NOTE TO COMMUNITY MEMBERS!:
Because of the fast pace in which Liferay development occurs, new resources are created every day. While one day, a Wiki page may be more "up to date" than a page in the official documentation, the next day, the official documentation may have "better" information. If you ever find a reference in this Wiki page that is not "as good" as another source, please update this document! That way, the next developer to come along will have an easier time.
Key Technologies
These technologies are used in Liferay (the more you know about these, the easier Liferay is):
Setting up a development environment
Last updated: 11-04-2007
Covers version: 4.3.3
There are two major parts to the Liferay system: the "Portal Container" itself (referred to as the kernel), and the individual portlets (sometimes referred to as "plug-ins"). When developing for Liferay, you can set up your environment in a variety of ways (see also "platform specific tips" below):
- Develop "hot deployable" portlets that are stand-alone .WAR files and can be deployed on any free-standing Liferay distribution. For more information, see:
- Develop in a "extension environment" of the Liferay kernel. The "extension environment" is a development environment that separates your customizations from the core Liferay source tree. The idea of the extension environment is to isolate your changes from the core code. When updates come out to the core, you simply "rebuild" the extension environment, which mixes your custom code with the updated code from the Liferay community. For more information, see:
- Develop directly in the Liferay source tree. This method is for those who want to contribute their changes back to the Liferay community and thus are developing for the Liferay kernel directly. see:
IDE specific tips
Customizing Liferay
- The "look and feel" of the portlets and the portal in general is the responsibility of the Liferay Theme system. See Themes
- The words and phrases displayed throughout the Liferay system can be customized using Liferay's support for language customizations. See Language/display customization
Developing portlets
Liferay supports a wide variety of presentation technologies. You can develop your portlets using JSP+Struts, JSF (both JSP and Facelets), as well as many others. Sample portlets and source code can be found at the Official Plugs download page. The latest sources for these samples, as well as newer presentation technology samples can found in the SVN repository in the plugins/trunk/portlets sub-directory of the lportal project. For more information on the repository, see SourceForge
- "Hot deployable" portlets are stand-alone .WAR files and can be deployed on any free-standing Liferay distribution.
- Portlets are generally created with a corresponding "service layer" - a set of code that is presentation independent, and performs the primary business logic, manipulation of the data entities, etc. This service layer is built using a tool called "ServiceBuilder". For more information, see
- Liferay supports a "fine grained" permission system that goes beyond the basic J2EE role based authorization specification. For information about permissions, see Permissioning Explained
- Tools useful for Cross-Browser development.
Sources of documentation
- The XML DTDs for many of the portal files (like liferay-portlet.xml, liferay-display.xml, liferay-look-and-feel.xml, etc.) contain a wealth of human readable documentation. You can find the DTDs in the source tree under /portal/definitions. They also appear in the binary distribution on a deployed server in the webapps/ROOT/dtd directory (that is the location for Tomcat).
- The file "portal.properties" contains many settings that you can customize in your portal deployment. See the file /portal/portal-impl/classes/portal.properties
- The file "system.properties" contains many settings that you can customize in your portal deployment. See the file /portal/portal-impl/classes/system.properties
Developer tips and tricks
Other developer resources