
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