Note: This document refers to an old version of Liferay Portal (4.0). If you are using a newer version be sure to check the documentation page in Liferay's website for updated information

Liferay Portal 4.0 - Developers Guide

Joseph Shum

Alexander Chow

Release Candidate 1

Revision History
Revision Updated:Tuesday, April 18, 2006

Table of Contents

Preface
1. Getting Started
1. Setting up the Development Environment
1.1. SVN
1.2. JDK 1.5.0
1.3. Jikes 1.22
1.4. Ant 1.6.5
1.5. Orion 2.0.6
2. Installation and Setup
1. Application Servers
1.1. Borland ES 6.5
1.2. Geronimo
1.3. GlassFish
1.4. JBoss+Jetty 4.0.2
1.4.1. Easy
1.4.2. Expert
1.5. JBoss+Tomcat 4.0.2
1.5.1. Easy
1.5.2. Expert
1.6. Jetty 5.1.4
1.6.1. Easy
1.6.2. Expert
1.7. JFox
1.8. JOnAS+Jetty 4.4.3
1.8.1. Easy
1.8.2. Expert
1.9. JOnAS+Tomcat 4.4.3
1.9.1. Easy
1.9.2. Expert
1.10. JRun 4 Updater 3
1.11. OracleAS 10.1.2
1.12. Orion 2.0.6
1.13. Pramati 4.1
1.14. Resin 3.0.14
1.14.1. Easy
1.14.2. Expert
1.15. RexIP 2.5
1.16. Sun JSAS 8.01
1.17. Tomcat 5.0.x/5.5.x
1.17.1. Easy
1.17.2. Expert
1.18. WebLogic 8.1 SP4
1.19. WebSphere 6.0.2.5
1.20. WebSphere 5.1
2. Databases
2.1. DB2
2.1.1. BES with DB2
2.1.2. JBoss with DB2
2.1.3. Jetty with DB2
2.1.4. JOnAS with DB2
2.1.5. JRun with DB2
2.1.6. OracleAS with DB2
2.1.7. Orion with DB2
2.1.8. Pramati with DB2
2.1.9. Resin with DB2
2.1.10. RexIP with DB2
2.1.11. Sun JSAS with DB2
2.1.12. Tomcat with DB2
2.1.13. WebLogic with DB2
2.1.14. WebSphere with DB2
2.2. Firebird
2.2.1. BES with Firebird
2.2.2. JBoss with Firebird
2.2.3. Jetty with Firebird
2.2.4. JOnAS with Firebird
2.2.5. JRun with Firebird
2.2.6. OracleAS with Firebird
2.2.7. Orion with Firebird
2.2.8. Pramati with Firebird
2.2.9. Resin with Firebird
2.2.10. RexIP with Firebird
2.2.11. Sun JSAS with Firebird
2.2.12. Tomcat with Firebird
2.2.13. WebLogic with Firebird
2.2.14. WebSphere with Firebird
2.3. Hypersonic
2.3.1. BES with Hypersonic
2.3.2. JBoss with Hypersonic
2.3.3. Jetty with Hypersonic
2.3.4. JOnAS with Hypersonic
2.3.5. JRun with Hypersonic
2.3.6. OracleAS with Hypersonic
2.3.7. Orion with Hypersonic
2.3.8. Pramati with Hypersonic
2.3.9. Resin with Hypersonic
2.3.10. RexIP with Hypersonic
2.3.11. Sun JSAS with Hypersonic
2.3.12. Tomcat with Hypersonic
2.3.13. WebLogic with Hypersonic
2.3.14. WebSphere with Hypersonic
2.4. InterBase
2.4.1. BES with InterBase
2.4.2. JBoss with InterBase
2.4.3. Jetty with InterBase
2.4.4. JOnAS with InterBase
2.4.5. JRun with InterBase
2.4.6. OracleAS with InterBase
2.4.7. Orion with InterBase
2.4.8. Pramati with InterBase
2.4.9. Resin with InterBase
2.4.10. RexIP with InterBase
2.4.11. Sun JSAS with InterBase
2.4.12. Tomcat with InterBase
2.4.13. WebLogic with InterBase
2.4.14. WebSphere with InterBase
2.5. JDataStore
2.5.1. BES with JDataStore
2.5.2. JBoss with JDataStore
2.5.3. Jetty with JDataStore
2.5.4. JOnAS with JDataStore
2.5.5. JRun with JDataStore
2.5.6. OracleAS with JDataStore
2.5.7. Orion with JDataStore
2.5.8. Pramati with JDataStore
2.5.9. Resin with JDataStore
2.5.10. RexIP with JDataStore
2.5.11. Sun JSAS with JDataStore
2.5.12. Tomcat with JDataStore
2.5.13. WebLogic with JDataStore
2.5.14. WebSphere with JDataStore
2.6. MySQL
2.6.1. BES with MySQL
2.6.2. JBoss with MySQL
2.6.3. Jetty with MySQL
2.6.4. JOnAS with MySQL
2.6.5. JRun with MySQL
2.6.6. OracleAS with MySQL
2.6.7. Orion with MySQL
2.6.8. Pramati with MySQL
2.6.9. Resin with MySQL
2.6.10. RexIP with MySQL
2.6.11. Sun JSAS with MySQL
2.6.12. Tomcat with MySQL
2.6.13. WebLogic with MySQL
2.6.14. WebSphere with MySQL
2.7. Oracle
2.7.1. BES with Oracle
2.7.2. JBoss with Oracle
2.7.3. Jetty with Oracle
2.7.4. JOnAS with Oracle
2.7.5. JRun with Oracle
2.7.6. OracleAS with Oracle
2.7.7. Orion with Oracle
2.7.8. Pramati with Oracle
2.7.9. Resin with Oracle
2.7.10. RexIP with Oracle
2.7.11. Sun JSAS with Oracle
2.7.12. Tomcat with Oracle
2.7.13. WebLogic with Oracle
2.7.14. WebSphere with Oracle
2.8. PostgreSQL
2.8.1. BES with PostgreSQL
2.8.2. JBoss with PostgreSQL
2.8.3. Jetty with PostgreSQL
2.8.4. JOnAS with PostgreSQL
2.8.5. JRun with PostgreSQL
2.8.6. OracleAS with PostgreSQL
2.8.7. Orion with PostgreSQL
2.8.8. Pramati with PostgreSQL
2.8.9. Resin with PostgreSQL
2.8.10. RexIP with PostgreSQL
2.8.11. Sun JSAS with PostgreSQL
2.8.12. Tomcat with PostgreSQL
2.8.13. WebLogic with PostgreSQL
2.8.14. WebSphere with PostgreSQL
2.9. SAP
2.9.1. BES with SAP
2.9.2. JBoss with SAP
2.9.3. Jetty with SAP
2.9.4. JOnAS with SAP
2.9.5. JRun with SAP
2.9.6. OracleAS with SAP
2.9.7. Orion with SAP
2.9.8. Pramati with SAP
2.9.9. Resin with SAP
2.9.10. RexIP with SAP
2.9.11. Sun JSAS with SAP
2.9.12. Tomcat with SAP
2.9.13. WebLogic with SAP
2.9.14. WebSphere with SAP
2.10. SQL Server
2.10.1. BES with SQL Server
2.10.2. JBoss with SQL Server
2.10.3. Jetty with SQL Server
2.10.4. JOnAS with SQL Server
2.10.5. JRun with SQL Server
2.10.6. OracleAS with SQL Server
2.10.7. Orion with SQL Server
2.10.8. Pramati with SQL Server
2.10.9. Resin with SQL Server
2.10.10. RexIP with SQL Server
2.10.11. Sun JSAS with SQL Server
2.10.12. Tomcat with SQL Server
2.10.13. WebLogic with SQL Server
2.10.14. WebSphere with SQL Server
3. Upgrade to new versions of Liferay
3.1. Run the upgrade scripts
3.2. Regenerate classes
3.3. Upgrading Themes from 3.6.1 to 4.0.0
4. Mail Servers
4.1. Washington IMAP+Sendmail
4.2. Cyrus IMAP+Postfix
4.3. Dovecot+Postfix
4.4. Microsoft Exchange
5. Multiple Portal Instances
5.1. JBoss+Jetty
5.2. JBoss+Tomcat
5.3. Jetty
5.4. Orion
5.5. Tomcat
3. Customizing the Portal
1. /ext
2. /ext/downloads
3. /ext/ext-ear
4. /ext/ext-ejb
5. /ext/ext-lib
6. /ext/ext-web
7. /ext/lib
8. /ext/portlets
9. /ext/servers
10. /ext/sql
11. /ext/web-sites
12. Eclipse
4. Building Themes
1. Themes - Liferay Portal 4.0.0
1.1. Why Hot-Deployable Themes must use Velocity Templates:
1.2. Should I use Velocity or JSP?
1.3. Upgrading Themes from 3.6.1 to 4.0.0 - Velocity
1.4. Upgrading Themes from 3.6.1 to 4.0.0 - JSP
2. Themes - Liferay Portal 3.6.1
2.1. Making Your Own Theme
2.2. Configuration
2.3. Templates
2.4. CSS Styles
3. CMS + Portal = Website
4. Conclusion
5. Code Generation
1. service.xml
6. Deployment
1. Hot Deploy
1.1. Layout Templates, Portlets and Themes
7. Security and Permissions
1. Introduction
2. Overview
3. Implementing Permissions
3.1. Defining Resources and Actions
3.1.1. Portlet Resource
3.1.2. Model Resource
3.1.3. Default.xml
3.2. Adding Resources
3.2.1. UI Interface
3.2.2. Deleting Resources
3.3. Adding Permission
3.3.1. Portlet Permission
3.3.2. Model Permission
3.4. Checking Permissions
3.4.1. Checking Portlet Resource Permission
3.4.2. Checking Model Resource Permission
4. Summary
5. Additional Information
5.1. Roles
5.2. Using your own Security System in Liferay
5.3. Database Schema View
8. Tutorials
1. Portlets
1.1. Hello World
1.2. IFrame
1.3. Calendar
1.4. Message Boards
1.5. Mail
9. Code Conventions