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.

Feature
Deployment Approach
Capability
Creating a Basic Custom Element
Creating a Basic Custom Element Liferay 7.4+ Custom element client extensions use Liferay's frontend infrastructure to register external, remote applications with the Liferay platform and render...
Published Date: May 9, 24, 6:54 PM
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: ...
Published Date: May 9, 24, 6:54 PM
Custom Element YAML Configuration Reference
Custom Element YAML Configuration Reference You can define a custom element client extension with a client-extension.yaml file. Usage Details This client-extension.yaml file defines a custom...
Published Date: May 9, 24, 6:54 PM
Using an IFrame Client Extension
Using an IFrame Client Extension Liferay 7.4+ IFrame client extensions use Liferay's frontend infrastructure to register external applications as HTML elements. They're added to Liferay pages as...
Published Date: May 9, 24, 6:54 PM
Using Routes with Custom Elements
Using Routes with Custom Elements Liferay 7.4+ Custom element client extensions use Liferay's frontend infrastructure to register external applications with the Liferay platform and render them as...
Published Date: May 9, 24, 6:54 PM
Integrating Microservices
Integrating Microservices Liferay Self-Hosted Liferay SaaS Liferay PaaS Liferay 7.4 You can define microservice client extensions to run your own code in response to events in your Liferay...
Published Date: May 9, 24, 6:54 PM
Notification Type YAML Configuration Reference
Notification Type YAML Configuration Reference You can define a notification type client extension with a client-extension.yaml file. Usage Details This client-extension.yaml file defines a...
Published Date: May 9, 24, 6:54 PM
Object Action YAML Configuration Reference
Object Action YAML Configuration Reference You can define an object action client extension with a client-extension.yaml file. Usage Details This client-extension.yaml defines an object action and...
Published Date: May 9, 24, 6:54 PM
Object Validation Rule YAML Configuration Reference
Object Validation Rule YAML Configuration Reference To define an Object Validation Rule client extension, add the objectValidationRule type to your client-extension.yaml file. Usage Details This...
Published Date: May 9, 24, 6:54 PM
Using a Microservice Client Extension
Using a Microservice Client Extension A microservice client extension is a standalone server process that relies on OAuth 2 for communication with Liferay. The microservice is a resource server and...
Published Date: May 9, 24, 6:54 PM
Workflow Action YAML Configuration Reference
Workflow Action YAML Configuration Reference You can define a workflow action client extension with a client-extension.yaml file. Usage Details This client-extension.yaml file defines a workflow...
Published Date: May 9, 24, 6:54 PM
Liferay Internals
Liferay Internals 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 framework, which...
Published Date: Jul 18, 24, 8:39 PM
Architecture
Architecture The Liferay DXP/Portal architecture has three parts: Core: Bootstraps DXP and its frameworks. The Core provides a runtime environment for managing services, UI components, and...
Published Date: May 9, 24, 6:55 PM
Bundle Classloading Flow
Bundle Classloading Flow The OSGi container searches several places for imported classes. It's important to know where it looks and in what order. Liferay DXP's classloading flow for OSGi bundles...
Published Date: Nov 22, 24, 10:50 PM
Liferay Classloader Hierarchy
Liferay Classloader Hierarchy All Liferay DXP/Portal applications live in an OSGi container. DXP/Portal is a web application deployed on your application server. Its Module Framework bundles...
Published Date: May 9, 24, 6:55 PM
OSGi and Modularity
OSGi and Modularity Modularity makes writing software, especially as a team, fun! Here are some benefits to modular development on Liferay: Liferay's runtime framework is lightweight, fast, and...
Published Date: Nov 22, 24, 10:50 PM
Module Life Cycle
Module Life Cycle In OSGi, all components, Java classes, resources, and descriptors are deployed via modules (OSGi bundles). The MANIFEST.MF file describes the module's physical characteristics,...
Published Date: Nov 22, 24, 10:50 PM
The Benefits of Modularity
The Benefits of Modularity Dictionary.com defines modularity as the use of individually distinct functional units, as in assembling an electronic or mechanical system. The distinct functional units...
Published Date: May 9, 24, 6:55 PM
Building Liferay Source
Building Liferay Source This section aims to provide instructions for building Liferay Portal from source as quickly as possible. Using a nightly snapshot bundle no longer requires a full build...
Published Date: Nov 22, 24, 10:50 PM
Extending Liferay
Extending Liferay Liferay DXP/Portal is highly customizable. Its modular architecture contains components you can extend and override dynamically using APIs.
Published Date: Jul 18, 24, 8:39 PM
UI Architecture
UI Architecture
Published Date: Nov 22, 24, 10:50 PM
Contributing to Liferay Development
Contributing to Liferay Development The first thing to do in learning to fix bugs or contributing a feature is to become familiar with how to build the system. The Liferay Portal build system now...
Published Date: Nov 22, 24, 10:50 PM
Organizing the Source
Organizing the Source It is important to have a solid understanding of how the Liferay source is organized when working on fixing a bug or adding a new feature to the product. The Liferay Source...
Published Date: Nov 22, 24, 10:50 PM
Creating a Model Listener
Creating a Model Listener Model listeners listen for persistence method calls that signal changes to a specified model (such as update or add methods). Most of the methods model listeners use are...
Published Date: Jul 18, 24, 8:39 PM
Creating Service Wrappers
Creating Service Wrappers With Service Wrappers, you can override default service methods to add extra functionality. For example, you may want the value of a field you've added to Liferay's User...
Published Date: Jul 18, 24, 8:39 PM
Adding a Language
Adding a Language Liferay ships with over 50 languages out-of-the-box. Translation is complete for many of these languages, and some are still in the translation process. Each language has its own...
Published Date: Jul 18, 24, 8:39 PM
Overriding Global Language Translations with Language Properties
Overriding Global Language Translations with Language Properties Liferay DXP/Portal implements headings, labels, and messages for many locales using language translations. You can override these...
Published Date: Jul 18, 24, 8:39 PM
Overriding Module Language Translations in Earlier Versions
Overriding Module Language Translations in Earlier Versions For Liferay DXP 7.4 U4 (Update 4) and above or Liferay Portal 7.4 GA8 and above, the Language Override tool is the recommended approach....
Published Date: Jul 18, 24, 8:39 PM
Customizing JSPs with Dynamic Includes
Customizing JSPs with Dynamic Includes The liferay-util:dynamic-include tag is a placeholder into which you can inject content---JavaScript code, HTML, and more. The example project demonstrates...
Published Date: Jul 18, 24, 8:39 PM
Customizing Localization
Customizing Localization Liferay ships with 55 translations, making it ideal for deployments all over the world. Sometimes, however, you must modify a translation or provide a new one. Here you can...
Published Date: Jul 18, 24, 4:48 PM
Generating Translations Automatically
Generating Translations Automatically Liferay DXP supports 50 languages out-of-the-box. Each locale has its own language properties file containing keys for its language. When you create an...
Published Date: Jul 18, 24, 8:39 PM
Overriding OSGi Services
Overriding OSGi Services Liferay's OSGi container is a dynamic environment in which services can be added, removed, or overridden as needed. This framework registers Liferay components with the...
Published Date: Jul 18, 24, 8:39 PM
Using Portlet Filters
Using Portlet Filters Portlet filters intercept requests and responses at the start of each portlet request processing phase so you can add functionality there. This makes them useful for auditing...
Published Date: Jul 18, 24, 8:39 PM
Using Servlet Filters
Using Servlet Filters Servlet filters can both pre-process requests as they arrive and post-process responses before they go to the client browser. You can apply functionality to requests and...
Published Date: Oct 18, 24, 4:07 PM
Fundamentals
Fundamentals Liferay development projects consist primarily of simple .jar files. These contain a few extra configuration files that make them OSGi modules, but they're easily understandable by...
Published Date: Jan 18, 25, 2:48 AM
APIs as OSGi Services
APIs as OSGi Services After you've learned what a module is and how to deploy one, you can use modules to define APIs and implement them. Liferay APIs are OSGi services, defined by Java interfaces...
Published Date: Nov 22, 24, 10:50 PM
Finding Artifacts
Finding Artifacts To use external artifacts in your project, you must configure their dependencies in your build.gradle Gradle script. Before specifying an artifact as a dependency, you must first...
Published Date: Nov 22, 24, 10:50 PM
Configuring Dependencies
Configuring Dependencies Liferay provides a container where modules can publish and consume functionality through their Java packages. Modules can leverage packages from other modules or...
Published Date: Nov 22, 24, 10:50 PM
Resolving Third Party Library Package Dependencies
Resolving Third Party Library Package Dependencies An application can rely on multiple OSGi modules. Resolving their Java package dependencies can be challenging. In a perfect world, every package...
Published Date: Nov 22, 24, 10:50 PM
Specifying Dependencies
Specifying Dependencies You must satisfy all dependencies to compile and deploy a module successfully. After you find the dependency artifacts, add them as dependencies in your Gradle build file....
Published Date: Nov 22, 24, 10:50 PM

Capabilities

Product

Education

Contact Us

Connect

Powered by Liferay
© 2024 Liferay Inc. All Rights Reserved • Privacy Policy