Capability

Development and Tooling

Liferay offers a comprehensive toolkit to extend or customize your digital experience. Build applications quickly with low-code/no-code features like Objects, or leverage developer tools like Liferay Workspace and Blade CLI for further customizations.

For users on PaaS or running Self-Hosted, Liferay also offers tools deploying customizations.

Category
Category
Liferay Performance Use Cases with Glowroot
Liferay Performance Use Cases with Glowroot Liferay DXP 2023.Q4+/Portal GA100+ Use Glowroot to diagnose and inform you on making performance improvements to your Liferay installation. Here are a...
Using Glowroot with Liferay
Using Glowroot with Liferay Liferay DXP 2023.Q4+/Portal GA100+ Liferay bundles Glowroot, the open source Java application monitoring tool. The tool displays helpful statistics about your system...
Invoking Liferay Services From Scripts
Invoking Liferay Services From Scripts Many scripting scenarios require invoking Liferay services. Liferay *ServiceUtil classes are the fastest and most convenient way to invoke Liferay services in...
Running Scripts From the Script Console
Running Scripts From the Script Console The Script Console provides a single view for executing Groovy scripts and printing their output. It has predefined variables that facilitate working with...
Script Examples
Script Examples Here are some examples to help you use scripts in DXP. Most of the examples originated from the Liferay blog post 5 Tips to Improve Usage of the Liferay Script Console. Example 1:...
Portal Developer Properties
Portal Developer Properties There are Portal Properties that facilitate development. Liferay's portal-developer.properties file includes all of them. The portal-developer.properties file is enabled...
7.2 Breaking Changes
7.2 Breaking Changes This document presents a chronological list of changes that break existing functionality, APIs, or contracts with third party Liferay developers or users. We try our best to...
7.4 Breaking Changes
7.4 Breaking Changes Breaking changes break or significantly alter existing functionality or code structure. Here are all of the breaking changes for Liferay 7.4, starting with the latest quarterly...
Troubleshooting Templates with Glowroot Freemarker Plugin
Troubleshooting Templates with Glowroot Freemarker Plugin Liferay DXP 2023.Q4+/Portal GA100+ Glowroot can troubleshoot FreeMarker templates to pinpoint slow transactions. Configuring the...
Troubleshooting Liferay Performance Issues with Glowroot
Troubleshooting Liferay Performance Issues with Glowroot Liferay DXP 2023.Q4+/Portal GA100+ Use Glowroot to identify and diagnose performance issues in your Liferay installation. The following...
Client Extension Reference
Client Extension Reference Liferay Self-Hosted Liferay SaaS Liferay PaaS Liferay 7.4 You can find code examples for all types of client extensions in liferay-portal Frontend Client Extensions ...
Field Options Provider
Field Options Provider You can populate a drop-down list manually in the @Meta.AD annotation of the configuration interface. But you can also populate the option labels and values automatically...
Development
Development Liferay's development platform makes developers faster and more efficient by providing a baseline set of features to build upon. Rather than start from scratch, you can start instead...
Defining a Custom Data Schema
Defining a Custom Data Schema The ticketing application requires custom data fields and selections. You use Liferay objects and picklists to define a custom data schema. Creating Custom Picklists...
Deploying a Custom Application
Deploying a Custom Application You can use a custom element client extension to render a JavaScript application as a widget on a Liferay site page. The application is served by Liferay and...
Applying a Custom Theme
Applying a Custom Theme You can use different front-end client extensions to customize the look and feel of your site. Specifically, theme CSS type client extension can be used as an alternative to...
Building a Custom Ticketing System
Building a Custom Ticketing System Liferay makes it easy for you to build digital solutions. For example, you can create a custom ticketing application with the styling and features needed for your...
Implementing a Documentation Referral System
Implementing a Documentation Referral System The ticketing system can be further enhanced with a documentation referral system. The system searches automatically for relevant documentation based on...
Building Applications
Building Applications For maximum compatibility with all of Liferay's deployment options, you can combine Liferay's Objects, Client Extensions, and other features and tools to build real-world...
Working with Client Extensions
Working with Client Extensions Liferay Self-Hosted Liferay SaaS Liferay PaaS Liferay 7.4 Using client extensions, you can extend Liferay without deploying OSGi modules. Just like traditional...
Building a Time Off Requester
Building a Time Off Requester Liferay 7.4+ With Liferay Objects, you can build entire applications without writing code or deploying modules. Here, create a Time Off Request application using...
Packaging Client Extensions
Packaging Client Extensions Liferay Self-Hosted Liferay SaaS Liferay PaaS Liferay 7.4 Client extension projects are built as deployable archives called Liferay Universal File Format Archives...
Configuration as Code
Configuration as Code Liferay Self-Hosted Liferay SaaS Liferay PaaS Liferay 7.4 Liferay instance configurations are deployable with client extensions. For example, you can deploy OAuth2...
Client Extensions
Client Extensions Liferay Self-Hosted Liferay SaaS Liferay PaaS Liferay 7.4 When you want to extend Liferay, either by modifying its look and feel or by calling functions outside of Liferay, you...
Ticket Management with Cron Jobs
Ticket Management with Cron Jobs Use Cron jobs to automate managing tickets. For example, have a job to run at a regular schedule to delete any tickets that have a resolution type of duplicate or...
OAuth User Agent YAML Configuration Reference
OAuth User Agent YAML Configuration Reference You can define an OAuth user agent client extension with a client-extension.yaml file. Usage Details This client-extension.yaml file defines an OAuth...
OAuth Headless Server YAML Configuration Reference
OAuth Headless Server YAML Configuration Reference You can define an OAuth headless server client extension with a client-extension.yaml file. Usage Details This client-extension.yaml file defines...
JavaScript Import Map Entry YAML Configuration Reference
JavaScript Import Map Entry YAML Configuration Reference Usage Details This client-extension.yaml file defines a JavaScript import map entry client extension: assemble: - from: build/static ...
Language Client Extensions
Language Client Extensions Liferay DXP 2025.Q1+/Portal GA132+ A language client extension adds new language keys or overrides existing keys and their translations. For example, you can translate...
Customizing Liferay's Look and Feel
Customizing Liferay's Look and Feel One of the easiest ways to get started developing on Liferay's platform is to modify its look and feel. You can change everything from its favicon to its entire...
Instance Settings YAML Configuration Reference
Instance Settings YAML Configuration Reference You can use an instance settings client extension to configure a wide variety of Liferay configurations. Each configuration is referenced by its PID...
Bundling Resources in a JavaScript Import Map Entry Client Extension
Bundling Resources in a JavaScript Import Map Entry Client Extension Liferay DXP 2023.Q1+/Portal GA92+ JavaScript import map entry client extensions make JavaScript code or resources available to...
Checkout Step Client Extension Reference
Checkout Step Client Extension Reference Checkout Step Client Extension YAML Reference FieldValueDescription activetrueSpecifies that the checkout step is active....
Using the Shipping Engine Client Extension
Using the Shipping Engine Client Extension Liferay DXP 2024.Q1+/Portal GA112+ You can use a client extension to add a new shipping engine to Liferay. This client extension from the sample...
Using Client Extensions
Using Client Extensions Liferay DXP 2024.Q1+/Portal GA112+ Using client extensions, you can extend Liferay without using OSGi modules. Deploy them to any Liferay environment, whether you host it...
Shipping Engine Client Extension Reference
Shipping Engine Client Extension Reference Shipping Engine Client Extension YAML Reference FieldValueDescription keyliferay-sample-commerce-shipping-engineSpecifies the unique key for the shipping...
Using the Payment Integration Client Extension
Using the Payment Integration Client Extension Liferay DXP 2024.Q1+/Portal GA112+ You can use a client extension to integrate with a new payment method in Liferay. This client extension from the...
Using the Checkout Step Client Extension
Using the Checkout Step Client Extension Liferay DXP 2024.Q1+/Portal GA112+ You can use a client extension to create a new checkout step. This tutorial uses an example client extension from the...
Payment Integration Client Extension Reference
Payment Integration Client Extension Reference Payment Integration Client Extension YAML Reference FieldValueDescription keyliferay-sample-commerce-payment-integrationSpecifies the unique key for...
Batch YAML Configuration Reference
Batch YAML Configuration Reference Use a client-extension.yaml file to define a batch client extension. Usage Details This client-extension.yaml file defines a client extension of type batch: ...
Getting Started
Getting Started Previously, Poshi tests could only be executed by downloading and creating the test files within the Liferay source code. The Poshi Standalone gradle project enables you to use...
Running a Test
Running a Test Open the poshi-ext.properties file on your poshi-standalone directory and add the following line, replacing the TestCaseFileName#TestCaseName with the one you created in Creating A...
Developing Page Fragments Reference
Developing Page Fragments Reference The Developing Fragments Reference provides essential information on key aspects of fragment development in Liferay. It covers command references, configuration...
Creating a Macro File
Creating a Macro File Test Scenario Write your first macro file using the test scenario below: You would like to test that your name does not appear on any learn.liferay.com article. The steps you...
Syntax Validation
Syntax Validation The Poshi Standalone grade projects includes a validation task that can be used to check your code for syntax errors before running your test. To use this, simply run ./gradlew...
Setup
Setup Prerequisites A supported version of Java. Google Chrome. Gradle or Gradle Wrapper 6.6.1 or higher. Setting up the Poshi Standalone Gradle Project Create a new directory, example...
IFrame YAML Configuration Reference
IFrame YAML Configuration Reference You can define an IFrame client extension with a client-extension.yaml file. Data Usage This client-extension.yaml file defines an IFrame client extension: ...
Understanding Test Results and Debugging Tests
Understanding Test Results and Debugging Tests Poshi tests are run on the terminal or command line. When a test run is completed there are multiple ways to view the test results and diagnose test...
Poshi Layers
Poshi Layers
Poshi Advantages
Poshi Advantages Simplified Syntax To make it easier for less technical testers to read and write test automation, Poshi uses a simplified Groovy-like script syntax. It is less wordy than most...
Functions
Functions In Poshi, Functions handle extra WebDriver commands that an element might require to interact with a page object or element. Functions combine the basic methods defined in the...
Poshi Basics
Poshi Basics New features, improvements, and system upgrades can sometimes introduce unexpected behaviors and bugs. Running suites of automated tests is an advantageous method of identifying issues...
Macros
Macros A macro is a set of functions that perform a task. Macros are where locators (paths) and functions are brought together to script interactions that a user performs on the system being...
Using Variables
Using Variables Though not a Poshi layer, variables are a large part of Poshi tests. Variables, like in other programming languages, are used to store data which can be referenced and reused in...
Poshi Resources
Poshi Resources To give Poshi test writers easy access to commonly used functions or other files, Poshi resources were created to store existing Poshi files as dependencies that can be loaded apart...
Reference
Reference Node Version Information
Core Frameworks
Core Frameworks
Configuration Framework
Configuration Framework Setting and Accessing Configurations Categorizing a Configuration Scoping Configurations Portlet Level Configuration Configuration Form Renderer DDM Form Annotations ...
Paths
Paths A path is an element on a page that a test will interact with. An element can be a button, text field, link, image, paragraph, or just about anything you would need to assert, click, or type...
Dependency Injection
Dependency Injection