This wiki does not contain official documentation and is currently deprecated and read only. Please try reading the documentation on the Liferay Developer Network, the new site dedicated to Liferay documentation. DISCOVER Build your web site, collaborate with your colleagues, manage your content, and more. DEVELOP Build applications that run inside Liferay, extend the features provided out of the box with Liferay's APIs. DISTRIBUTE Let the world know about your app by publishing it in Liferay's marketplace. PARTICIPATE Become a part of Liferay's community, meet other Liferay users, and get involved in the open source project. Core Technologies
Table of Contents [-]
Note: This document is part of the Liferay Core Development Guidelines
Introduction #
This article describes the main technologies used within Liferay as well as which of their features of them are being used. As a Liferay Core developer you should use this feature set whenever you want to extend the existing functionality of Liferay or to implement a new functionality.
Frontend #
Struts and Tiles #
Most Liferay portlets are developed using Struts through a custom bridge for portlets called StrutsPortlet.
Features Not Used:
- Struts Forms: Liferay almost never uses Struts Forms. Try to avoid them as much as possible.
- Validation: We do validation in the Service Layer
Taglibs #
Liferay uses Taglibs extensively. The standard JSTL library is used, mainly for tags such as c:if and c:when / c:otherwise
Javascript #
- Alloy UI (http://alloyui.liferay.com)
- jQuery v. 1.1.4 (http://jquery.com)
- Interface (http://interface.eyecon.ro) We are currently migrating from the Interface library to jQuery UI.
- SWFObject v. 1.5 (http://blog.deconcept.com/swfobject)
Business Layer #
Spring #
Features Not Used:
- Aspects: They will be probably introduced in the near future.
Database Access #
Hibernate #
Hibernate is used to access the database in most situations.
Features Not Used:
- Criteria API: We found some problems with some of the supported databases
JDBC #
JDBC is used directly to perform custom queries. See the Finder classes.
SQL #
It's sometimes used when using JDBC instead of Hibernate.
Use very simple SQL to guarantee that it'll work in all of Liferay's supported databases.
Development #
The following tools are used to develop Liferay's core:
- Ant
- Java 5
- Tomcat
- MySQL