Index
1. Course Title
Customization and Component Development for Liferay
2. Training Objective
During this course, you will learn various techniques for customizing out-of-the-box components as well as developing new components with various programming technologies that will allow you to modify both the appearance and functionality of Liferay.
We will explore how to expose web services that we will develop, secured with Oauth2, and learn how to create integration tests with Arquillian and debug our code.
3. Duration
40 hours of instruction
4. Mode of Delivery
Online or in-person (recommended).
- In online mode, no more than 3.5 hours per day is recommended.
- In-person mode requires additional costs for transportation and accommodation, if applicable.
5. Cost
Consult. Go to the contact form.
Please indicate the number of participants, the location for the in-person course, and whether you need any modifications to the syllabus to meet your needs.
6. Technical Requirements
The course will be taught for Liferay 7.4. The syllabus is nearly 90% compatible with all Liferay 7 versions, but differences will be indicated during the course.
Hardware Requirements
- One computer per participant
- 8 GB RAM minimum (16GB recommended)
- 30 GB free disk space
- Dual-core processor or higher
Software Requirements
- Web browser (Chrome)
- Java OpenJDK 11.x
- PostgreSQL 13.x
- NodeJS 14.x
- GIT
- Apache Maven 3.5.x
- Telnet
- UNZIP, UNRAR or similar
- Development IDE: IntelliJ (recommended), Eclipse
Classroom Requirements (In-person mode)
- Wi-Fi connection with internet access
- Projector and cable with HDMI or VGA connection (or Chromecast)
- Whiteboard
7. Syllabus
Block 0. Presentation
Block I. Development Environment
- Installing a Liferay bundle
- Using blade
- The workspace
- The Liferay source code
Block II. Themes
- Configurations
- Portlet decorators
- Themelets
- Theme contributor
- Template context contributor (practice)
- Invoking portlets
Block III. Layouts
- The grid in bootstrap 4
- Useful CSS classes
- Invoking portlets
Block IV - What is OSGI?
- Lifecycle
- Apache Felix
- Dependency management with bnd
Block V. Translations
- Global
- Modular
Block VI. Customizing
-
JSP files
- Fragments. In modules and core (practice)
- Dynamic includes (practice)
- Portlet filters (practice)
- MVCCommands (practice)
-
Java services
- Service wrappers (practice)
- Model listeners (practice)
- MVCCommands (practice)
- Marketplace override (practice)
- Extension environment
Block VII. Portlets
- Portlet specifications (JSR 168, 286, and 362). Portlet 1.0, 2.0, and 3.0
-
Developing and installing portlets with CRUD and AJAX operations (practice)
- Logs and debugging
- MVCPortlet
- Liferay Faces (Primefaces)
- React
- Communication between portlets
Block VIII. The Service Builder
- Developing the business layer (practice)
- Entities and finders. 1..n and m..n relationships
- Using dynamic query and custom SQL. Caching non-cached data.
Block IX. Integrations with Liferay frameworks
- Integration with the permissions system (practice)
- Integration with the asset Framework (practice)
-
Integration with the search system. (practice)
- Using and configuring Elasticsearch
- Liferay indexers
-
Other common integrations
- Workflow Kaleo
- Recycle bin
- ADT
Block X. Tests
- Integration tests with Arquillian
Block XI. Web Services
- JSONWS (practice)
- REST JAX-RS (practice)
- Securing with Oauth2 (practice)
- GraphQL (practice)
Block XII. The Liferay update process
Block XIII. Best practices
Do you need a quote?
Describe your needs to us and we will send you a free estimate, no obligation!
Contact us