Index

  1. Course Title
  2. Training Objective
  3. Duration
  4. Mode of Delivery
  5. Cost
  6. Technical Requirements
  7. Syllabus

 


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).

  1. In online mode, no more than 3.5 hours per day is recommended.
  2. 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