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
PortletMVC4Spring Annotations
PortletMVC4Spring Annotations PortletMVC4Spring provides several annotations for mapping requests to controller classes and controller methods. @RenderMapping Annotation Examples The following...
Published Date: Nov 22, 2024 10:50 PM
PortletMVC4Spring Project Anatomy
PortletMVC4Spring Project Anatomy PortletMVC4Spring portlets are packaged in WARs. Liferay provides Maven archetypes for creating projects configured to use JSP/JSPX and Thymeleaf templates. Their...
Published Date: Nov 22, 2024 10:50 PM
Using React
Using React Build your own solutions using Liferay and React.
Published Date: Nov 22, 2024 10:50 PM
Remote Applications with Headless APIs
Remote Applications with Headless APIs Available 7.4+ After creating and publishing objects, headless REST APIs are automatically generated. Here you'll see how to integrate these endpoints to...
Published Date: Nov 22, 2024 10:50 PM
Using Object Data with React Charts
Using Object Data with React Charts Here you'll use Objects, Headless APIs, and custom element remote applications to create a dynamic chart for data dashboards. First, you'll set up a new DXP...
Published Date: Nov 22, 2024 10:50 PM
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...
Published Date: Nov 22, 2024 10:50 PM
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...
Published Date: Nov 22, 2024 10:50 PM
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...
Published Date: Nov 22, 2024 10:50 PM
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...
Published Date: Nov 22, 2024 10:50 PM
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...
Published Date: Nov 22, 2024 10:50 PM
Configuration Framework
Configuration Framework Setting and Accessing Configurations Categorizing a Configuration Scoping Configurations Portlet Level Configuration Configuration Form Renderer DDM Form Annotations ...
Published Date: Nov 22, 2024 10:50 PM
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....
Published Date: Nov 22, 2024 10:50 PM
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: ...
Published Date: Nov 22, 2024 10:50 PM
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...
Published Date: Nov 22, 2024 10:50 PM
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...
Published Date: Nov 22, 2024 10:50 PM
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,...
Published Date: Nov 22, 2024 10:50 PM
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...
Published Date: Nov 22, 2024 10:50 PM
Data Set Sorting
Data Set Sorting Liferay DXP 2024.Q1 U112 [Beta Feature](../../../system-administration/configuring-liferay/feature-flags.md#beta-feature-flags) While managing data sets, you can set default...
Published Date: Nov 22, 2024 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, 2024 10:50 PM
Micro Frontends
Micro Frontends Micro frontends extend the concept of microservices to the frontend side of development. You can build a fully-featured and powerful browser application that uses a microservice...
Published Date: Nov 22, 2024 10:50 PM
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, 2024 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, 2024 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, 2024 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, 2024 10:50 PM
Exporting Packages
Exporting Packages In OSGi, packages are private by default. You must explicitly exporting a package so other modules can import and use them. Here's how to export packages: Open your bnd.bnd...
Published Date: Nov 22, 2024 10:50 PM
Importing Packages
Importing Packages You often find yourself in a position of needing functionality provided by another module. To access this functionality, you must import packages from other modules into your...
Published Date: Nov 22, 2024 10:50 PM
Module Projects
Module Projects Liferay applications and customizations are OSGi modules: .jar files containing Java code and some extra configuration for publishing and consuming APIs. A module project comprises...
Published Date: Nov 22, 2024 10:50 PM
Semantic Versioning
Semantic Versioning Semantic Versioning is a three tiered versioning system for incrementing version numbers based on the degree of API change made in a releasable software component. It's a...
Published Date: Nov 22, 2024 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, 2024 10:50 PM
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...
Published Date: Nov 22, 2024 10:50 PM
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...
Published Date: Nov 22, 2024 10:52 PM
Using an OSGi Service
Using an OSGi Service Liferay APIs are readily available as OSGi services. You can access a service by creating a field of that service type and annotating the field with @Reference, like this: ...
Published Date: Nov 22, 2024 10:50 PM
Using the Gogo Shell
Using the Gogo Shell The Gogo shell provides a way to interact with the module framework. Among other things, you can Dynamically install/uninstall bundles (modules) Examine package...
Published Date: Nov 22, 2024 10:50 PM
Command Line Gogo Shell
Command Line Gogo Shell If you're in a development environment, you can interact with the module framework locally from the command line. Gogo shell should only be run from the command line in...
Published Date: Nov 22, 2024 10:50 PM
Gogo Shell Commands
Gogo Shell Commands The Gogo shell executes Felix Gogo basic commands and Liferay commands. The Gogo shell is accessible in the Control Panel (recommended) and from the command line. Here are some...
Published Date: Nov 22, 2024 10:50 PM
Reference
Reference 7.4 Breaking Changes 7.3 Breaking Changes 7.2 Breaking Changes Exported Third-Party Packages Portal Developer Properties
Published Date: Nov 22, 2024 10:50 PM
User Account API Basics
User Account API Basics You can add and manage users from the Control Panel, but you can also use Liferay's REST APIs. You can call these services to add, edit, delete users. Start with adding a...
Published Date: Nov 22, 2024 10:53 PM
Using Upgrade Processes in Earlier Versions
Using Upgrade Processes in Earlier Versions Liferay DXP 7.4 U10/Portal 7.4 GA14 and Below Follow these steps to create an upgrade process for your module: Open your module's bnd.bnd file, and...
Published Date: Dec 3, 2024 3:10 PM
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....
Published Date: Dec 3, 2024 3:11 PM
Advanced Queries
Advanced Queries Service Builder doesn't limit you to elements in service.xml. If simple finders aren't sufficient for getting data out of your application, there are three other ways to make the...
Published Date: Jan 11, 2025 4:12 PM
React Component Utilities Reference
React Component Utilities Reference Several useful tools are available to help you build high-performance components and applications in Liferay DXP using React: frontend-js-react-web module ...
Published Date: Jan 18, 2025 2:48 AM
Listening for Registration Events
Listening for Registration Events Liferay DXP 2023.Q3/Portal 7.4 GA92 and Below The messaging API supports listening for destination and message listener registration events. Here are some reasons...
Published Date: Jan 18, 2025 2:48 AM
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...
Published Date: Jan 18, 2025 2:48 AM
Using Default Synchronous Messaging in Previous Versions
Using Default Synchronous Messaging in Previous Versions Synchronous messaging was removed and is no longer supported for Liferay DXP 7.4 U49/Liferay Portal 7.4 GA49 and above. In default...
Published Date: Jan 18, 2025 2:48 AM
Developing a JavaScript Application
Developing a JavaScript Application
Published Date: Jan 18, 2025 2:48 AM
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...
Published Date: Jan 18, 2025 2:48 AM
Using Direct Synchronous Messaging in Previous Versions
Using Direct Synchronous Messaging in Previous Versions Synchronous messaging was removed and is no longer supported for Liferay DXP 7.4 U49/Liferay Portal 7.4 GA49 and above. Direct synchronous...
Published Date: Jan 18, 2025 2:48 AM
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, 2025 2:48 AM
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...
Published Date: Jan 18, 2025 2:48 AM
Using Client Extensions
Using Client Extensions Liferay DXP 2024.Q1+/Portal 7.4 GA112+ Using client extensions, you can extend Liferay without using OSGi modules. Deploy them to any Liferay environment, whether you host...
Published Date: May 9, 2024 6:45 PM
Using the Checkout Step Client Extension
Using the Checkout Step Client Extension Liferay DXP 2024.Q1+/Portal 7.4 GA112+ You can use a client extension to create a new checkout step. This tutorial uses an example client extension from...
Published Date: May 9, 2024 6:45 PM
Using the Payment Integration Client Extension
Using the Payment Integration Client Extension Liferay DXP 2024.Q1+/Portal 7.4 GA112+ You can use a client extension to integrate with a new payment method in Liferay. This client extension from...
Published Date: May 9, 2024 6:45 PM
Using the Shipping Engine Client Extension
Using the Shipping Engine Client Extension Liferay DXP 2024.Q1+/Portal 7.4 GA112+ You can use a client extension to add a new shipping engine to Liferay. This client extension from the sample...
Published Date: May 9, 2024 6:45 PM
Creating Video Shortcut Providers
Creating Video Shortcut Providers Liferay DXP 7.4+ By default, Liferay's external video shortcuts support YouTube, Vimeo, Facebook, and Twitch. However, you can extend this feature to support...
Published Date: May 9, 2024 6:50 PM
Liferay Development
Liferay 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...
Published Date: May 9, 2024 6:52 PM
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...
Published Date: May 9, 2024 6:52 PM
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...
Published Date: May 9, 2024 6:52 PM
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...
Published Date: May 9, 2024 6:52 PM
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...
Published Date: May 9, 2024 6:52 PM
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...
Published Date: May 9, 2024 6:52 PM

Capabilities

Product

Education

Contact Us

Connect

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