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
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...
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 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...
Traditional Java-Based Development
Traditional Java-Based Development Liferay is a complex open-source platform built on several key technologies and architectural principles. Liferay is written mostly in Java and built on the OSGi...
Configuration Framework
Configuration Framework Setting and Accessing Configurations Categorizing a Configuration Scoping Configurations Portlet Level Configuration Configuration Form Renderer DDM Form Annotations ...
Categorizing a Configuration
Categorizing a Configuration When you register a configuration interface, the UI for your application is generated in System Settings → Platform → Third Party. If you prefer a different section and...
Node Version Information
Node Version Information Liferay DXP uses Node (and NPM) for many different frontend components. Specifically, the Liferay Theme Generator and Liferay's JavaScript application tools require the use...
Core Frameworks
Core Frameworks
Using the Bootstrap 3 Compatibility Layer in Liferay 7.4
Using the Bootstrap 3 Compatibility Layer in Liferay 7.4 As of Liferay DXP 7.4 GA1, the Bootstrap 3 compatibility layer is removed from the built-in packages in Liferay frontend applications. If...
Completely Custom Configuration
Completely Custom Configuration A configuration UI is generated automatically when you create a configuration interface. But in some cases you want a completely custom UI for your configuration....
Configuration Model Listener Reference
Configuration Model Listener Reference Use model listeners in your own configurations to listen for events and execute code in response. Creating a model listener requires only three steps: ...
Configuration Form Renderer
Configuration Form Renderer When you create a configuration interface, a configuration UI is automatically generated. But in some cases you want customize the look and feel of the UI. For example,...
DDM Form Annotations
DDM Form Annotations The auto-generated configuration interface UI may be too simplistic for some configurations. You can use the Dynamic Data Mapping (DDM) form annotations to customize your...
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...
Hiding the Configuration UI
Hiding the Configuration UI Liferay generates a configuration UI automatically after a configuration interface deploys. But you may have certain use cases where you want to hide the UI. For...
Dependency Injection
Dependency Injection
Portlet Level Configuration
Portlet Level Configuration With the configuration framework, you can set your application's configuration for different levels of scope. Where Instance and Site-scoped configurations use...
Scoping Configurations
Scoping Configurations In Liferay DXP, you can set an application's configuration to different levels of scope: System, Instance, Site, or Portlet. For example, if you create an application to have...
Setting and Accessing Configurations
Setting and Accessing Configurations You can use Liferay's configuration framework to add a settings UI for a MVC Portlet. See the Example Portlet Then, follow these steps: Download and unzip...
Using Direct Synchronous Messaging in Previous Versions
Using Direct Synchronous Messaging in Previous Versions Liferay DXP 7.4 U48/Portal GA49 and Below Direct synchronous messaging is the easiest way to block processing until all listeners receive a...
Portlets
Portlets Liferay DXP started off as a portal server for Java-based web applications called portlets (see JSR 168, JSR-286, and JSR-362). Portlets process requests and generate responses like any...
Logs
Logs The OSGi Log Service Extender enables bundles to provide OSGi logging configuration using embedded properties files META-INF/osgi-logging.properties or META-INF/osgi-logging-ext.properties....
Message Bus
Message Bus The Message Bus provides a loosely coupled way to exchange messages. A class sending a message invokes the Message Bus to send the message to a destination, while other classes...
Using Asynchronous Messaging
Using Asynchronous Messaging Message Bus's asynchronous option provides fire and forget behavior; send a message and continue processing without waiting for a response. An asynchronous message is...
Listening for Messages
Listening for Messages You can listen for messages sent to any registered Message Bus destination, whether it's built-in to DXP/Portal, defined by third-parties, or created by you. Messages sent to...
Listening for Registration Events
Listening for Registration Events Liferay DXP 2023.Q3/Portal GA92 and Below The messaging API supports listening for destination and message listener registration events. Here are some reasons to...
Tuning Messaging Performance
Tuning Messaging Performance Liferay DXP 2023.Q3/Portal GA92 and Below Messaging performance is tuned at the destinations. Performance depends on the destination type, the amount of processing the...
Using Default Synchronous Messaging in Previous Versions
Using Default Synchronous Messaging in Previous Versions Liferay DXP 7.4 U48/Portal GA49 and Below In default synchronous messaging, the sender blocks while a Message Bus thread dispatches the...
Portlet Descriptor to OSGi Service Property Map
Portlet Descriptor to OSGi Service Property Map Here's a map of portlet XML descriptor values to OSGi service properties for publishing OSGi Portlets. The properties centralize and simplify portlet...
Portlet 3.0 API Opt In
Portlet 3.0 API Opt In A portlet must specify version 3.0 to opt in to the Portlet 3.0 API. The 3.0 Portlet API version can be specified in the following ways. Standard Portlet @PortletApplication...
Portlet IDs
Portlet IDs Below is a listing of the portlet IDs for the default portlets in Liferay DXP. You can use these IDs to embed portlets in your theme's sitemap. Collaboration PortletID...
Servlets
Servlets
Data Frameworks
Data Frameworks
Asset Framework
Asset Framework The asset framework is behind many of Liferay's most powerful features. It provides tools for displaying and interacting with any type of content and data. For example, if you build...
Enabling Assets
Enabling Assets Many of Liferay's applications (e.g. Blogs, Documents and Media, Message Boards, etc.) are asset-enabled out of the box. You can publish assets with the Asset Publisher widget or...
Cache
Cache
Auto-Deploying Fragments
Auto-Deploying Fragments Liferay Portal 7.3 GA1+ or Liferay DXP 7.3+ If you're developing page fragments with your own tooling, you can deploy them by packaging them in ZIP files for importing via...
Creating a Contributed Fragment Set
Creating a Contributed Fragment Set Contributed fragment sets are deployable modules containing page fragments. Fragments in a contributed set can be used like regular fragments, but aren't...
Including Default Resources in Fragments
Including Default Resources in Fragments You can include images files (e.g. .gif, .jpg, .jpeg, or .png) direct in your fragment sets. Keeping images with your fragments, rather than in other...
Best Practices for Using Fragment Configurations
Best Practices for Using Fragment Configurations When you are creating page fragments for your site with your own configurations, it's your responsibility to use them in their HTML presentation...
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...
Defining Fragment Drop Zones
Defining Fragment Drop Zones Drop zones are integral to building your content pages. With them, you can create unique page layouts and dynamic displays by defining areas within fragments where...
Fragment Configuration Types Reference
Fragment Configuration Types Reference Below are the available configuration types for fragments. See Adding Configuration Options to Fragments for more on how to make a fragment configurable. ...
Fragment Specific Tags and Attributes Reference for Liferay 7.3 and Earlier Versions
Fragment Specific Tags and Attributes Reference for Liferay 7.3 and Earlier Versions Along with standard HTML, CSS, and JavaScript, you can use Liferay-specific tags and attributes to define...
Page Fragment Editor Interface Reference
Page Fragment Editor Interface Reference The page fragment editor's interface is organized into two tabs: Code Editor Configuration The sections below cover how to use these portions of the...
Using Custom Fields in Page Fragments
Using Custom Fields in Page Fragments If you've added custom fields to Liferay's users or pages, you can access them in fragments. To get the value of a page custom field, use ...
Using the Fragments Toolkit
Using the Fragments Toolkit The Fragments Toolkit is deprecated as of Liferay 2024.Q1+/Portal GA112+. See Alternatives for the Fragments Toolkit for more information. The Fragments Toolkit helps...
Editor Config Contributor YAML Configuration Reference
Editor Config Contributor YAML Configuration Reference Liferay DXP 2024.Q1+/Portal GA112+ This feature is currently behind a release feature flag (LPS-186870). Read Release Feature Flags for more...
Developing Page Fragments
Developing Page Fragments Page fragments are the building blocks for content pages. They're made from the three components of web pages: CSS, HTML, and JavaScript. To create a page you combine...
Using a Theme Sprite Map Client Extension
Using a Theme Sprite Map Client Extension Liferay DXP 2023.Q4+/Portal GA100+ With a theme sprite map client extension, you can override the default Clay sprite map used for icons on a page. Start...
Using an Editor Config Contributor Client Extension
Using an Editor Config Contributor Client Extension Liferay DXP 2024.Q2+/Portal GA120+ Editor Config Contributor client extensions override existing CKEditor configuration in a...
Theme Sprite Map YAML Configuration Reference
Theme Sprite Map YAML Configuration Reference You can define a theme sprite map client extension with a client-extension.yaml file. Usage Details This client-extension.yaml defines a theme sprite...
Applying Styles to Fragments
Applying Styles to Fragments When you add a fragment to a page, you can use the sidebar menu to configure the fragment, including the Styles configuration tab. Use the Styles tab in the sidebar...
Adding Configuration Options to Fragments
Adding Configuration Options to Fragments Liferay DXP 7.2 SP1 Configurable options make your fragments flexible, minimizing the maintenance of similar fragments. For example, instead of creating...
Fragment Specific Tags and Attributes Reference
Fragment Specific Tags and Attributes Reference Along with standard HTML, CSS, and JavaScript, you can use Liferay-specific tags and attributes to define editable sections, embed widgets, and more....
Fragments Toolkit Command Reference
Fragments Toolkit Command Reference The Fragments Toolkit is deprecated as of Liferay 2024.Q1+/Portal GA112+. See Alternatives for the Fragments Toolkit for more information. The Fragments...
Setting the Order of Elements in a Fragment
Setting the Order of Elements in a Fragment Liferay 7.4+ The Slider or Tab fragments are typically used to show different areas of information. Sliders present this information in a carousel of...
Using the Fragments Editor
Using the Fragments Editor Liferay DXP includes a built-in editor for developing content page fragments. To access the editor, open the Site Menu ( Site Menu ) and navigate to Design → Fragments....
Validating Fragment Configurations
Validating Fragment Configurations When defining fragment configuration options, you can add validation properties to text type fields that determine rules for valid entries. Determine what type of...